// Package backend includes types to send information to server backends. package backend // import "github.com/docker/docker/api/types/backend" import ( "io" "time" "github.com/docker/docker/api/types/container" ) // ContainerAttachConfig holds the streams to use when connecting to a container to view logs. type ContainerAttachConfig struct { GetStreams func() (io.ReadCloser, io.Writer, io.Writer, error) UseStdin bool UseStdout bool UseStderr bool Logs bool Stream bool DetachKeys string // Used to signify that streams are multiplexed and therefore need a StdWriter to encode stdout/stderr messages accordingly. // TODO @cpuguy83: This shouldn't be needed. It was only added so that http and websocket endpoints can use the same function, and the websocket function was not using a stdwriter prior to this change... // HOWEVER, the websocket endpoint is using a single stream and SHOULD be encoded with stdout/stderr as is done for HTTP since it is still just a single stream. // Since such a change is an API change unrelated to the current changeset we'll keep it as is here and change separately. MuxStreams bool } // PartialLogMetaData provides meta data for a partial log message. Messages // exceeding a predefined size are split into chunks with this metadata. The // expectation is for the logger endpoints to assemble the chunks using this // metadata. type PartialLogMetaData struct { Last bool // true if this message is last of a partial ID string // identifies group of messages comprising a single record Ordinal int // ordering of message in partial group } // LogMessage is datastructure that represents piece of output produced by some // container. The Line member is a slice of an array whose contents can be // changed after a log driver's Log() method returns. // changes to this struct need to be reflect in the reset method in // daemon/logger/logger.go type LogMessage struct { Line []byte Source string Timestamp time.Time Attrs []LogAttr PLogMetaData *PartialLogMetaData // Err is an error associated with a message. Completeness of a message // with Err is not expected, tho it may be partially complete (fields may // be missing, gibberish, or nil) Err error } // LogAttr is used to hold the extra attributes available in the log message. type LogAttr struct { Key string Value string } // LogSelector is a list of services and tasks that should be returned as part // of a log stream. It is similar to swarmapi.LogSelector, with the difference // that the names don't have to be resolved to IDs; this is mostly to avoid // accidents later where a swarmapi LogSelector might have been incorrectly // used verbatim (and to avoid the handler having to import swarmapi types) type LogSelector struct { Services []string Tasks []string } // ContainerStatsConfig holds information for configuring the runtime // behavior of a backend.ContainerStats() call. type ContainerStatsConfig struct { Stream bool OneShot bool OutStream io.Writer Version string } // ExecInspect holds information about a running process started // with docker exec. type ExecInspect struct { ID string Running bool ExitCode *int ProcessConfig *ExecProcessConfig OpenStdin bool OpenStderr bool OpenStdout bool CanRemove bool ContainerID string DetachKeys []byte Pid int } // ExecProcessConfig holds information about the exec process // running on the host. type ExecProcessConfig struct { Tty bool `json:"tty"` Entrypoint string `json:"entrypoint"` Arguments []string `json:"arguments"` Privileged *bool `json:"privileged,omitempty"` User string `json:"user,omitempty"` } // CreateImageConfig is the configuration for creating an image from a // container. type CreateImageConfig struct { Repo string Tag string Pause bool Author string Comment string Config *container.Config Changes []string } // CommitConfig is the configuration for creating an image as part of a build. type CommitConfig struct { Author string Comment string Config *container.Config ContainerConfig *container.Config ContainerID string ContainerMountLabel string ContainerOS string ParentImageID string }