123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306 |
- package types // import "github.com/docker/docker/api/types"
- import (
- "bufio"
- "io"
- "net"
- "github.com/docker/docker/api/types/container"
- "github.com/docker/docker/api/types/filters"
- "github.com/docker/docker/api/types/registry"
- units "github.com/docker/go-units"
- )
- // ContainerExecInspect holds information returned by exec inspect.
- type ContainerExecInspect struct {
- ExecID string `json:"ID"`
- ContainerID string
- Running bool
- ExitCode int
- Pid int
- }
- // CopyToContainerOptions holds information
- // about files to copy into a container
- type CopyToContainerOptions struct {
- AllowOverwriteDirWithFile bool
- CopyUIDGID bool
- }
- // EventsOptions holds parameters to filter events with.
- type EventsOptions struct {
- Since string
- Until string
- Filters filters.Args
- }
- // NetworkListOptions holds parameters to filter the list of networks with.
- type NetworkListOptions struct {
- Filters filters.Args
- }
- // NewHijackedResponse intializes a HijackedResponse type
- func NewHijackedResponse(conn net.Conn, mediaType string) HijackedResponse {
- return HijackedResponse{Conn: conn, Reader: bufio.NewReader(conn), mediaType: mediaType}
- }
- // HijackedResponse holds connection information for a hijacked request.
- type HijackedResponse struct {
- mediaType string
- Conn net.Conn
- Reader *bufio.Reader
- }
- // Close closes the hijacked connection and reader.
- func (h *HijackedResponse) Close() {
- h.Conn.Close()
- }
- // MediaType let client know if HijackedResponse hold a raw or multiplexed stream.
- // returns false if HTTP Content-Type is not relevant, and container must be inspected
- func (h *HijackedResponse) MediaType() (string, bool) {
- if h.mediaType == "" {
- return "", false
- }
- return h.mediaType, true
- }
- // CloseWriter is an interface that implements structs
- // that close input streams to prevent from writing.
- type CloseWriter interface {
- CloseWrite() error
- }
- // CloseWrite closes a readWriter for writing.
- func (h *HijackedResponse) CloseWrite() error {
- if conn, ok := h.Conn.(CloseWriter); ok {
- return conn.CloseWrite()
- }
- return nil
- }
- // ImageBuildOptions holds the information
- // necessary to build images.
- type ImageBuildOptions struct {
- Tags []string
- SuppressOutput bool
- RemoteContext string
- NoCache bool
- Remove bool
- ForceRemove bool
- PullParent bool
- Isolation container.Isolation
- CPUSetCPUs string
- CPUSetMems string
- CPUShares int64
- CPUQuota int64
- CPUPeriod int64
- Memory int64
- MemorySwap int64
- CgroupParent string
- NetworkMode string
- ShmSize int64
- Dockerfile string
- Ulimits []*units.Ulimit
- // BuildArgs needs to be a *string instead of just a string so that
- // we can tell the difference between "" (empty string) and no value
- // at all (nil). See the parsing of buildArgs in
- // api/server/router/build/build_routes.go for even more info.
- BuildArgs map[string]*string
- AuthConfigs map[string]registry.AuthConfig
- Context io.Reader
- Labels map[string]string
- // squash the resulting image's layers to the parent
- // preserves the original image and creates a new one from the parent with all
- // the changes applied to a single layer
- Squash bool
- // CacheFrom specifies images that are used for matching cache. Images
- // specified here do not need to have a valid parent chain to match cache.
- CacheFrom []string
- SecurityOpt []string
- ExtraHosts []string // List of extra hosts
- Target string
- SessionID string
- Platform string
- // Version specifies the version of the unerlying builder to use
- Version BuilderVersion
- // BuildID is an optional identifier that can be passed together with the
- // build request. The same identifier can be used to gracefully cancel the
- // build with the cancel request.
- BuildID string
- // Outputs defines configurations for exporting build results. Only supported
- // in BuildKit mode
- Outputs []ImageBuildOutput
- }
- // ImageBuildOutput defines configuration for exporting a build result
- type ImageBuildOutput struct {
- Type string
- Attrs map[string]string
- }
- // BuilderVersion sets the version of underlying builder to use
- type BuilderVersion string
- const (
- // BuilderV1 is the first generation builder in docker daemon
- BuilderV1 BuilderVersion = "1"
- // BuilderBuildKit is builder based on moby/buildkit project
- BuilderBuildKit BuilderVersion = "2"
- )
- // ImageBuildResponse holds information
- // returned by a server after building
- // an image.
- type ImageBuildResponse struct {
- Body io.ReadCloser
- OSType string
- }
- // ImageImportSource holds source information for ImageImport
- type ImageImportSource struct {
- Source io.Reader // Source is the data to send to the server to create this image from. You must set SourceName to "-" to leverage this.
- SourceName string // SourceName is the name of the image to pull. Set to "-" to leverage the Source attribute.
- }
- // ImageLoadResponse returns information to the client about a load process.
- type ImageLoadResponse struct {
- // Body must be closed to avoid a resource leak
- Body io.ReadCloser
- JSON bool
- }
- // RequestPrivilegeFunc is a function interface that
- // clients can supply to retry operations after
- // getting an authorization error.
- // This function returns the registry authentication
- // header value in base 64 format, or an error
- // if the privilege request fails.
- type RequestPrivilegeFunc func() (string, error)
- // ImageSearchOptions holds parameters to search images with.
- type ImageSearchOptions struct {
- RegistryAuth string
- PrivilegeFunc RequestPrivilegeFunc
- Filters filters.Args
- Limit int
- }
- // NodeListOptions holds parameters to list nodes with.
- type NodeListOptions struct {
- Filters filters.Args
- }
- // NodeRemoveOptions holds parameters to remove nodes with.
- type NodeRemoveOptions struct {
- Force bool
- }
- // ServiceCreateOptions contains the options to use when creating a service.
- type ServiceCreateOptions struct {
- // EncodedRegistryAuth is the encoded registry authorization credentials to
- // use when updating the service.
- //
- // This field follows the format of the X-Registry-Auth header.
- EncodedRegistryAuth string
- // QueryRegistry indicates whether the service update requires
- // contacting a registry. A registry may be contacted to retrieve
- // the image digest and manifest, which in turn can be used to update
- // platform or other information about the service.
- QueryRegistry bool
- }
- // Values for RegistryAuthFrom in ServiceUpdateOptions
- const (
- RegistryAuthFromSpec = "spec"
- RegistryAuthFromPreviousSpec = "previous-spec"
- )
- // ServiceUpdateOptions contains the options to be used for updating services.
- type ServiceUpdateOptions struct {
- // EncodedRegistryAuth is the encoded registry authorization credentials to
- // use when updating the service.
- //
- // This field follows the format of the X-Registry-Auth header.
- EncodedRegistryAuth string
- // TODO(stevvooe): Consider moving the version parameter of ServiceUpdate
- // into this field. While it does open API users up to racy writes, most
- // users may not need that level of consistency in practice.
- // RegistryAuthFrom specifies where to find the registry authorization
- // credentials if they are not given in EncodedRegistryAuth. Valid
- // values are "spec" and "previous-spec".
- RegistryAuthFrom string
- // Rollback indicates whether a server-side rollback should be
- // performed. When this is set, the provided spec will be ignored.
- // The valid values are "previous" and "none". An empty value is the
- // same as "none".
- Rollback string
- // QueryRegistry indicates whether the service update requires
- // contacting a registry. A registry may be contacted to retrieve
- // the image digest and manifest, which in turn can be used to update
- // platform or other information about the service.
- QueryRegistry bool
- }
- // ServiceListOptions holds parameters to list services with.
- type ServiceListOptions struct {
- Filters filters.Args
- // Status indicates whether the server should include the service task
- // count of running and desired tasks.
- Status bool
- }
- // ServiceInspectOptions holds parameters related to the "service inspect"
- // operation.
- type ServiceInspectOptions struct {
- InsertDefaults bool
- }
- // TaskListOptions holds parameters to list tasks with.
- type TaskListOptions struct {
- Filters filters.Args
- }
- // PluginRemoveOptions holds parameters to remove plugins.
- type PluginRemoveOptions struct {
- Force bool
- }
- // PluginEnableOptions holds parameters to enable plugins.
- type PluginEnableOptions struct {
- Timeout int
- }
- // PluginDisableOptions holds parameters to disable plugins.
- type PluginDisableOptions struct {
- Force bool
- }
- // PluginInstallOptions holds parameters to install a plugin.
- type PluginInstallOptions struct {
- Disabled bool
- AcceptAllPermissions bool
- RegistryAuth string // RegistryAuth is the base64 encoded credentials for the registry
- RemoteRef string // RemoteRef is the plugin name on the registry
- PrivilegeFunc RequestPrivilegeFunc
- AcceptPermissionsFunc func(PluginPrivileges) (bool, error)
- Args []string
- }
- // SwarmUnlockKeyResponse contains the response for Engine API:
- // GET /swarm/unlockkey
- type SwarmUnlockKeyResponse struct {
- // UnlockKey is the unlock key in ASCII-armored format.
- UnlockKey string
- }
- // PluginCreateOptions hold all options to plugin create.
- type PluginCreateOptions struct {
- RepoName string
- }
|