pkg/image/api/dockertypes.go
4cf8cec3
 package api
 
 import (
83c702b4
 	kapi "k8s.io/kubernetes/pkg/api"
 	"k8s.io/kubernetes/pkg/util"
4cf8cec3
 )
 
357dc2ee
 // DockerImage is the type representing a docker image and its various properties when
4cf8cec3
 // retrieved from the Docker client API.
 type DockerImage struct {
f6908847
 	kapi.TypeMeta `json:",inline"`
4cf8cec3
 
69923997
 	ID              string        `json:"Id"`
 	Parent          string        `json:"Parent,omitempty"`
 	Comment         string        `json:"Comment,omitempty"`
 	Created         util.Time     `json:"Created,omitempty"`
 	Container       string        `json:"Container,omitempty"`
 	ContainerConfig DockerConfig  `json:"ContainerConfig,omitempty"`
 	DockerVersion   string        `json:"DockerVersion,omitempty"`
 	Author          string        `json:"Author,omitempty"`
 	Config          *DockerConfig `json:"Config,omitempty"`
 	Architecture    string        `json:"Architecture,omitempty"`
 	Size            int64         `json:"Size,omitempty"`
4cf8cec3
 }
 
 // DockerConfig is the list of configuration options used when creating a container.
 type DockerConfig struct {
f6908847
 	Hostname        string              `json:"Hostname,omitempty"`
 	Domainname      string              `json:"Domainname,omitempty"`
 	User            string              `json:"User,omitempty"`
 	Memory          int64               `json:"Memory,omitempty"`
 	MemorySwap      int64               `json:"MemorySwap,omitempty"`
 	CPUShares       int64               `json:"CpuShares,omitempty"`
 	CPUSet          string              `json:"Cpuset,omitempty"`
 	AttachStdin     bool                `json:"AttachStdin,omitempty"`
 	AttachStdout    bool                `json:"AttachStdout,omitempty"`
 	AttachStderr    bool                `json:"AttachStderr,omitempty"`
 	PortSpecs       []string            `json:"PortSpecs,omitempty"`
 	ExposedPorts    map[string]struct{} `json:"ExposedPorts,omitempty"`
 	Tty             bool                `json:"Tty,omitempty"`
 	OpenStdin       bool                `json:"OpenStdin,omitempty"`
 	StdinOnce       bool                `json:"StdinOnce,omitempty"`
 	Env             []string            `json:"Env,omitempty"`
 	Cmd             []string            `json:"Cmd,omitempty"`
 	DNS             []string            `json:"Dns,omitempty"` // For Docker API v1.9 and below only
 	Image           string              `json:"Image,omitempty"`
 	Volumes         map[string]struct{} `json:"Volumes,omitempty"`
 	VolumesFrom     string              `json:"VolumesFrom,omitempty"`
 	WorkingDir      string              `json:"WorkingDir,omitempty"`
 	Entrypoint      []string            `json:"Entrypoint,omitempty"`
 	NetworkDisabled bool                `json:"NetworkDisabled,omitempty"`
9f217aa5
 	SecurityOpts    []string            `json:"SecurityOpts,omitempty"`
 	OnBuild         []string            `json:"OnBuild,omitempty"`
799866c0
 	Labels          map[string]string   `json:"Labels,omitempty"`
9f217aa5
 }
 
 // DockerImageManifest represents the Docker v2 image format.
 type DockerImageManifest struct {
 	SchemaVersion int             `json:"schemaVersion"`
 	Name          string          `json:"name"`
 	Tag           string          `json:"tag"`
 	Architecture  string          `json:"architecture"`
 	FSLayers      []DockerFSLayer `json:"fsLayers"`
 	History       []DockerHistory `json:"history"`
 }
 
 // DockerFSLayer is a container struct for BlobSums defined in an image manifest
 type DockerFSLayer struct {
 	// DockerBlobSum is the tarsum of the referenced filesystem image layer
5f3f5b85
 	// TODO make this digest.Digest once docker/distribution is in Godeps
9f217aa5
 	DockerBlobSum string `json:"blobSum"`
 }
 
 // DockerHistory stores unstructured v1 compatibility information
 type DockerHistory struct {
 	// DockerV1Compatibility is the raw v1 compatibility information
 	DockerV1Compatibility string `json:"v1Compatibility"`
 }
 
 // DockerV1CompatibilityImage represents the structured v1
 // compatibility information.
 type DockerV1CompatibilityImage struct {
69923997
 	ID              string        `json:"id"`
 	Parent          string        `json:"parent,omitempty"`
 	Comment         string        `json:"comment,omitempty"`
 	Created         util.Time     `json:"created"`
 	Container       string        `json:"container,omitempty"`
 	ContainerConfig DockerConfig  `json:"container_config,omitempty"`
 	DockerVersion   string        `json:"docker_version,omitempty"`
 	Author          string        `json:"author,omitempty"`
 	Config          *DockerConfig `json:"config,omitempty"`
 	Architecture    string        `json:"architecture,omitempty"`
 	Size            int64         `json:"size,omitempty"`
4cf8cec3
 }