Structs

Address represents an IP address

AuthConfig contains authorization information for connecting to a Registry

AuthenticateOKBody authenticate o k body

It should hold only portable information about the container. Here, "portable" means "independent from the host we are running on". Non-portable information should appear in HostConfig. All fields added to this struct must be marked omitempty to keep getting predictable hashes from the old v1Compatibility configuration.

ConfigReference specifies the source which provides a network’s configuration

ConmonInfo describes the conmon executable being used

ContainerCgroupConfig contains configuration information about a container’s cgroups.

ContainerChangeResponseItem change item in response to ContainerChanges operation

ContainerCreateCreatedBody OK response to ContainerCreate operation

ContainerHealthCheckConfig describes a container healthcheck with attributes like command, retries, interval, start period, and timeout.

ContainerNetworkConfig contains information on a container’s network configuration.

ContainerNode stores information about the node that a container is running on. It’s only used by the Docker Swarm standalone API

ContainerSecurityConfig is a container’s security features, including SELinux, Apparmor, and Seccomp.

ContainerSize holds the size of the container’s root filesystem and top read-write layer.

ContainerState stores container’s running state it’s part of ContainerJSONBase and will return by "inspect" command

ContainerStorageConfig contains information on the storage configuration of a container.

ContainerStore describes the quantity of containers in the store by status

ContainerTopOKBody OK response to ContainerTop operation

ContainerUpdateOKBody OK response to ContainerUpdate operation

ContainerWaitOKBody OK response to ContainerWait operation

ContainerWaitOKBodyError container waiting error, if any

CreateContainerConfig used when compatible endpoint creates a container

Used by GPU device drivers.

DistributionInfo describes the host distribution for libpod

DNS contains values interesting for DNS resolvers

DriverData handles the data for a storage driver

EndpointIPAMConfig represents IPAM configurations for the endpoint

EndpointResource contains network resources allocated and used for a container in a network

EndpointSettings stores the network endpoint details

Health stores information about the container’s healthcheck results

HealthCheckLog describes the results of a single healthcheck

HealthCheckResults describes the results/logs from a healthcheck

HealthcheckResult stores information about a single run of a healthcheck probe

HistoryResponseItem individual image layer information in response to ImageHistory operation

Here, "non-portable" means "dependent of the host we are running on". Portable information should appear in Config.

HostInfo describes the libpod host

IDMap contains a single entry for user namespace range remapping. An array of IDMap entries represents the structure that will be provided to the Linux kernel for creating a user namespace.

IDMappingOptions are used for specifying how ID mapping should be set up for a layer or container.

IDMappings describe the GID and UID mappings

IDResponse Response to an API call that returns just an Id

ImageDeleteResponseItem image delete response item

ImageMetadata contains engine-local data about the image

ImageStore describes the image store. Right now only the number of images present

ImageSummary image summary

ImageVolume is a volume based on a container image. The container image is first mounted on the host and is then bind-mounted into the container. An ImageVolume is always mounted read only.

Info is the overall struct that describes the host system running libpod/podman

InspectAdditionalNetwork holds information about non-default CNI networks the container has been connected to. As with InspectNetworkSettings, many fields are unused and maintained only for compatibility with Docker.

InspectBlkioThrottleDevice holds information about a speed cap for a device node. This cap applies to a specific operation (read, write, etc) on the given node.

InspectBlkioWeightDevice holds information about the relative weight of an individual device node. Weights are used in the I/O scheduler to give relative priority to some accesses.

InspectContainerConfig holds further data about how a container was initially configured.

InspectContainerHostConfig holds information used when the container was created. It’s very much a Docker-specific struct, retained (mostly) as-is for compatibility. We fill individual fields as best as we can, inferring as much as possible from the spec and container config. Some things cannot be inferred. These will be populated by spec annotations (if available). Field names are fixed for compatibility and cannot be changed. As such, silence lint warnings about them. nolint

InspectContainerState provides a detailed record of a container’s current state. It is returned as part of InspectContainerData. As with InspectContainerData, many portions of this struct are matched to Docker, but here we see more fields that are unused (nonsensical in the context of Libpod).

InspectHostPort provides information on a port on the host that a container’s port is bound to.

InspectLogConfig holds information about a container’s configured log driver

InspectMount provides a record of a single mount in a container. It contains fields for both named and normal volumes. Only user-specified volumes will be included, and tmpfs volumes are not included even if the user specified them.

InspectNetworkSettings holds information about the network settings of the container. Many fields are maintained only for compatibility with docker inspect and are unused within Libpod.

InspectPodInfraConfig contains the configuration of the pod’s infra container.

InspectSecret contains information on secrets mounted inside the container

IPAM represents IP Address Management

IPAMConfig represents IPAM configurations

LibpodImagesRemoveReport is the return type for image removal via the rest api.

LinuxBlockIO for Linux cgroup ‘blkio’ resource management

linuxBlockIODevice holds major:minor format supported in blkio cgroup

LinuxCPU for Linux cgroup ‘cpu’ resource management

LinuxDevice represents the mknod information for a Linux special device file

LinuxDeviceCgroup represents a device rule for the devices specified to the device controller

LinuxHugepageLimit structure corresponds to limiting kernel hugepages

LinuxInterfacePriority for network interfaces

LinuxMemory for Linux cgroup ‘memory’ resource management

LinuxNetwork identification and priority configuration

LinuxPersonality represents the Linux personality syscall input

LinuxPids for Linux cgroup ‘pids’ resource management (Linux 4.3)

LinuxRdma for Linux cgroup ‘rdma’ resource management (Linux 4.11)

LinuxResources has container runtime resource constraints

LinuxThrottleDevice struct holds a major:minor rate_per_second pair

LinuxWeightDevice struct holds a major:minor weight pair for weightDevice

Listcontainer describes a container suitable for listing

ListContainer Namespaces contains the identifiers of the container’s Linux namespaces

This is used for reporting the mountpoints in use by a container.

NamedVolume holds information about a named volume that will be mounted into the container.

Namespace describes the namespace

NetworkConnect represents the data to be used to connect a container to the network

Network disconnect

NetworkCreate is the expected body of the "create network" http request message

NetworkCreateOptions describes options to create a network

NetworkCreateReport describes a created network for the cli

NetworkDisconnect represents the data to be used to disconnect a container from the network

Network disconnect

NetworkListReport describes the results from listing networks

NetworkPruneReport containers the name of network and an error associated in its pruning (removal)

NetworkResource is the body of the "get network" http response message

NetworkRmReport describes the results of network removal

NetworkSettings exposes the network settings in the api

NetworkingConfig represents the container’s networking configuration for each of its interfaces Carries the networking configs specified in the docker run and docker network connect commands

OCIRuntimeInfo describes the runtime (crun or runc) being used with podman

OverlayVolume holds information about a overlay volume that will be mounted into the container.

PeerInfo represents one peer of an overlay network

PlayKubePod represents a single pod and associated containers created by play kube

Plugin A plugin for the Engine API

PluginConfigArgs plugin config args

PluginConfigInterface The interface between Docker and the plugin

PluginConfigLinux plugin config linux

PluginConfigNetwork plugin config network

PluginConfigRootfs plugin config rootfs

PluginConfigUser plugin config user

PluginDevice plugin device

PluginEnv plugin env

PluginInterfaceType plugin interface type

PluginMount plugin mount

This will be expanded in future updates to pods.

PodCreateOptions provides all possible options for creating a pod and its infra container

PodSpecGenerator describes options to create a pod

Port An open port on a container

PortBinding represents a binding between a Host IP address and a Host Port

POSIXRlimit type and restrictions

RemoteSocket describes information about the API socket

Resources contains container’s resources (cgroups config, ulimits…)

RootFS holds the root fs information of an image

Schema2HealthConfig is a HealthConfig, which holds configuration settings for the HEALTHCHECK feature, from docker/docker/api/types/container.

Schema2PlatformSpec describes the platform which a particular manifest is specialized for.

HostInfo describes the libpod host

ServiceInfo represents service parameters with the list of service’s tasks

ServiceUpdateResponse service update response

SlirpInfo describes the slirp executable that is being being used.

SpecGenerator creates an OCI spec and Libpod configuration options to create a container based on the given configuration.

StoreInfo describes the container storage and its attributes

SystemDfContainerReport describes a container for use with df

SystemDfImageReport describes an image for use with df

SystemDfVolumeReport describes a volume and its size

Task carries the information about one backend task

ThrottleDevice is a structure that holds device:rate_per_second pair

Version is an output struct for API

Volume volume

VolumeCreateBody Volume configuration

VolumeListBody Volume list response

VolumeListOKBody Volume list response

VolumeUsageData Usage details about the volume. This information is used by the GET /system/df endpoint, and omitted in other endpoints.

WeightDevice is a structure that holds device:weight pair

Type Definitions

CgroupnsMode represents the cgroup namespace mode of the container

The following is an example of the contents of Digest types: sha256:7173b809ca12ec5dee4506cd86be934c4596dd234ee82c0662eac04a8c2c71dc This allows to abstract the digest behind this type and work only in those terms.

A Duration represents the elapsed time between two instants as an int64 nanosecond count. The representation limits the largest representable duration to approximately 290 years.

The bits have the same definition on all systems, so that information about files can be moved from one system to another portably. Not all bits apply to all systems. The only required bit is ModeDir for directories.

Note that in this documentation, referring to an IP address as an IPv4 address or an IPv6 address is a semantic property of the address, not just the length of the byte slice: a 16-byte slice can still be an IPv4 address.

See type IPNet and func ParseCIDR for details.

Isolation represents the isolation technology of a container. The supported values are platform specific

PortMap is a collection of PortBinding indexed by Port

PortSet is a collection of structs indexed by Port

It implements the os.Signal interface.

We need to override the json decoder to accept both options.