github.com/cookieai-jar/moby@v17.12.1-ce-rc2+incompatible/api/types/client.go (about)

     1  package types
     2  
     3  import (
     4  	"bufio"
     5  	"io"
     6  	"net"
     7  
     8  	"github.com/docker/docker/api/types/container"
     9  	"github.com/docker/docker/api/types/filters"
    10  	units "github.com/docker/go-units"
    11  )
    12  
    13  // CheckpointCreateOptions holds parameters to create a checkpoint from a container
    14  type CheckpointCreateOptions struct {
    15  	CheckpointID  string
    16  	CheckpointDir string
    17  	Exit          bool
    18  }
    19  
    20  // CheckpointListOptions holds parameters to list checkpoints for a container
    21  type CheckpointListOptions struct {
    22  	CheckpointDir string
    23  }
    24  
    25  // CheckpointDeleteOptions holds parameters to delete a checkpoint from a container
    26  type CheckpointDeleteOptions struct {
    27  	CheckpointID  string
    28  	CheckpointDir string
    29  }
    30  
    31  // ContainerAttachOptions holds parameters to attach to a container.
    32  type ContainerAttachOptions struct {
    33  	Stream     bool
    34  	Stdin      bool
    35  	Stdout     bool
    36  	Stderr     bool
    37  	DetachKeys string
    38  	Logs       bool
    39  }
    40  
    41  // ContainerCommitOptions holds parameters to commit changes into a container.
    42  type ContainerCommitOptions struct {
    43  	Reference string
    44  	Comment   string
    45  	Author    string
    46  	Changes   []string
    47  	Pause     bool
    48  	Config    *container.Config
    49  }
    50  
    51  // ContainerExecInspect holds information returned by exec inspect.
    52  type ContainerExecInspect struct {
    53  	ExecID      string
    54  	ContainerID string
    55  	Running     bool
    56  	ExitCode    int
    57  	Pid         int
    58  }
    59  
    60  // ContainerListOptions holds parameters to list containers with.
    61  type ContainerListOptions struct {
    62  	Quiet   bool
    63  	Size    bool
    64  	All     bool
    65  	Latest  bool
    66  	Since   string
    67  	Before  string
    68  	Limit   int
    69  	Filters filters.Args
    70  }
    71  
    72  // ContainerLogsOptions holds parameters to filter logs with.
    73  type ContainerLogsOptions struct {
    74  	ShowStdout bool
    75  	ShowStderr bool
    76  	Since      string
    77  	Until      string
    78  	Timestamps bool
    79  	Follow     bool
    80  	Tail       string
    81  	Details    bool
    82  }
    83  
    84  // ContainerRemoveOptions holds parameters to remove containers.
    85  type ContainerRemoveOptions struct {
    86  	RemoveVolumes bool
    87  	RemoveLinks   bool
    88  	Force         bool
    89  }
    90  
    91  // ContainerStartOptions holds parameters to start containers.
    92  type ContainerStartOptions struct {
    93  	CheckpointID  string
    94  	CheckpointDir string
    95  }
    96  
    97  // CopyToContainerOptions holds information
    98  // about files to copy into a container
    99  type CopyToContainerOptions struct {
   100  	AllowOverwriteDirWithFile bool
   101  	CopyUIDGID                bool
   102  }
   103  
   104  // EventsOptions holds parameters to filter events with.
   105  type EventsOptions struct {
   106  	Since   string
   107  	Until   string
   108  	Filters filters.Args
   109  }
   110  
   111  // NetworkListOptions holds parameters to filter the list of networks with.
   112  type NetworkListOptions struct {
   113  	Filters filters.Args
   114  }
   115  
   116  // HijackedResponse holds connection information for a hijacked request.
   117  type HijackedResponse struct {
   118  	Conn   net.Conn
   119  	Reader *bufio.Reader
   120  }
   121  
   122  // Close closes the hijacked connection and reader.
   123  func (h *HijackedResponse) Close() {
   124  	h.Conn.Close()
   125  }
   126  
   127  // CloseWriter is an interface that implements structs
   128  // that close input streams to prevent from writing.
   129  type CloseWriter interface {
   130  	CloseWrite() error
   131  }
   132  
   133  // CloseWrite closes a readWriter for writing.
   134  func (h *HijackedResponse) CloseWrite() error {
   135  	if conn, ok := h.Conn.(CloseWriter); ok {
   136  		return conn.CloseWrite()
   137  	}
   138  	return nil
   139  }
   140  
   141  // ImageBuildOptions holds the information
   142  // necessary to build images.
   143  type ImageBuildOptions struct {
   144  	Tags           []string
   145  	SuppressOutput bool
   146  	RemoteContext  string
   147  	NoCache        bool
   148  	Remove         bool
   149  	ForceRemove    bool
   150  	PullParent     bool
   151  	Isolation      container.Isolation
   152  	CPUSetCPUs     string
   153  	CPUSetMems     string
   154  	CPUShares      int64
   155  	CPUQuota       int64
   156  	CPUPeriod      int64
   157  	Memory         int64
   158  	MemorySwap     int64
   159  	CgroupParent   string
   160  	NetworkMode    string
   161  	ShmSize        int64
   162  	Dockerfile     string
   163  	Ulimits        []*units.Ulimit
   164  	// BuildArgs needs to be a *string instead of just a string so that
   165  	// we can tell the difference between "" (empty string) and no value
   166  	// at all (nil). See the parsing of buildArgs in
   167  	// api/server/router/build/build_routes.go for even more info.
   168  	BuildArgs   map[string]*string
   169  	AuthConfigs map[string]AuthConfig
   170  	Context     io.Reader
   171  	Labels      map[string]string
   172  	// squash the resulting image's layers to the parent
   173  	// preserves the original image and creates a new one from the parent with all
   174  	// the changes applied to a single layer
   175  	Squash bool
   176  	// CacheFrom specifies images that are used for matching cache. Images
   177  	// specified here do not need to have a valid parent chain to match cache.
   178  	CacheFrom   []string
   179  	SecurityOpt []string
   180  	ExtraHosts  []string // List of extra hosts
   181  	Target      string
   182  	SessionID   string
   183  	Platform    string
   184  }
   185  
   186  // ImageBuildResponse holds information
   187  // returned by a server after building
   188  // an image.
   189  type ImageBuildResponse struct {
   190  	Body   io.ReadCloser
   191  	OSType string
   192  }
   193  
   194  // ImageCreateOptions holds information to create images.
   195  type ImageCreateOptions struct {
   196  	RegistryAuth string // RegistryAuth is the base64 encoded credentials for the registry.
   197  	Platform     string // Platform is the target platform of the image if it needs to be pulled from the registry.
   198  }
   199  
   200  // ImageImportSource holds source information for ImageImport
   201  type ImageImportSource struct {
   202  	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.
   203  	SourceName string    // SourceName is the name of the image to pull. Set to "-" to leverage the Source attribute.
   204  }
   205  
   206  // ImageImportOptions holds information to import images from the client host.
   207  type ImageImportOptions struct {
   208  	Tag      string   // Tag is the name to tag this image with. This attribute is deprecated.
   209  	Message  string   // Message is the message to tag the image with
   210  	Changes  []string // Changes are the raw changes to apply to this image
   211  	Platform string   // Platform is the target platform of the image
   212  }
   213  
   214  // ImageListOptions holds parameters to filter the list of images with.
   215  type ImageListOptions struct {
   216  	All     bool
   217  	Filters filters.Args
   218  }
   219  
   220  // ImageLoadResponse returns information to the client about a load process.
   221  type ImageLoadResponse struct {
   222  	// Body must be closed to avoid a resource leak
   223  	Body io.ReadCloser
   224  	JSON bool
   225  }
   226  
   227  // ImagePullOptions holds information to pull images.
   228  type ImagePullOptions struct {
   229  	All           bool
   230  	RegistryAuth  string // RegistryAuth is the base64 encoded credentials for the registry
   231  	PrivilegeFunc RequestPrivilegeFunc
   232  	Platform      string
   233  }
   234  
   235  // RequestPrivilegeFunc is a function interface that
   236  // clients can supply to retry operations after
   237  // getting an authorization error.
   238  // This function returns the registry authentication
   239  // header value in base 64 format, or an error
   240  // if the privilege request fails.
   241  type RequestPrivilegeFunc func() (string, error)
   242  
   243  //ImagePushOptions holds information to push images.
   244  type ImagePushOptions ImagePullOptions
   245  
   246  // ImageRemoveOptions holds parameters to remove images.
   247  type ImageRemoveOptions struct {
   248  	Force         bool
   249  	PruneChildren bool
   250  }
   251  
   252  // ImageSearchOptions holds parameters to search images with.
   253  type ImageSearchOptions struct {
   254  	RegistryAuth  string
   255  	PrivilegeFunc RequestPrivilegeFunc
   256  	Filters       filters.Args
   257  	Limit         int
   258  }
   259  
   260  // ResizeOptions holds parameters to resize a tty.
   261  // It can be used to resize container ttys and
   262  // exec process ttys too.
   263  type ResizeOptions struct {
   264  	Height uint
   265  	Width  uint
   266  }
   267  
   268  // NodeListOptions holds parameters to list nodes with.
   269  type NodeListOptions struct {
   270  	Filters filters.Args
   271  }
   272  
   273  // NodeRemoveOptions holds parameters to remove nodes with.
   274  type NodeRemoveOptions struct {
   275  	Force bool
   276  }
   277  
   278  // ServiceCreateOptions contains the options to use when creating a service.
   279  type ServiceCreateOptions struct {
   280  	// EncodedRegistryAuth is the encoded registry authorization credentials to
   281  	// use when updating the service.
   282  	//
   283  	// This field follows the format of the X-Registry-Auth header.
   284  	EncodedRegistryAuth string
   285  
   286  	// QueryRegistry indicates whether the service update requires
   287  	// contacting a registry. A registry may be contacted to retrieve
   288  	// the image digest and manifest, which in turn can be used to update
   289  	// platform or other information about the service.
   290  	QueryRegistry bool
   291  }
   292  
   293  // ServiceCreateResponse contains the information returned to a client
   294  // on the creation of a new service.
   295  type ServiceCreateResponse struct {
   296  	// ID is the ID of the created service.
   297  	ID string
   298  	// Warnings is a set of non-fatal warning messages to pass on to the user.
   299  	Warnings []string `json:",omitempty"`
   300  }
   301  
   302  // Values for RegistryAuthFrom in ServiceUpdateOptions
   303  const (
   304  	RegistryAuthFromSpec         = "spec"
   305  	RegistryAuthFromPreviousSpec = "previous-spec"
   306  )
   307  
   308  // ServiceUpdateOptions contains the options to be used for updating services.
   309  type ServiceUpdateOptions struct {
   310  	// EncodedRegistryAuth is the encoded registry authorization credentials to
   311  	// use when updating the service.
   312  	//
   313  	// This field follows the format of the X-Registry-Auth header.
   314  	EncodedRegistryAuth string
   315  
   316  	// TODO(stevvooe): Consider moving the version parameter of ServiceUpdate
   317  	// into this field. While it does open API users up to racy writes, most
   318  	// users may not need that level of consistency in practice.
   319  
   320  	// RegistryAuthFrom specifies where to find the registry authorization
   321  	// credentials if they are not given in EncodedRegistryAuth. Valid
   322  	// values are "spec" and "previous-spec".
   323  	RegistryAuthFrom string
   324  
   325  	// Rollback indicates whether a server-side rollback should be
   326  	// performed. When this is set, the provided spec will be ignored.
   327  	// The valid values are "previous" and "none". An empty value is the
   328  	// same as "none".
   329  	Rollback string
   330  
   331  	// QueryRegistry indicates whether the service update requires
   332  	// contacting a registry. A registry may be contacted to retrieve
   333  	// the image digest and manifest, which in turn can be used to update
   334  	// platform or other information about the service.
   335  	QueryRegistry bool
   336  }
   337  
   338  // ServiceListOptions holds parameters to list services with.
   339  type ServiceListOptions struct {
   340  	Filters filters.Args
   341  }
   342  
   343  // ServiceInspectOptions holds parameters related to the "service inspect"
   344  // operation.
   345  type ServiceInspectOptions struct {
   346  	InsertDefaults bool
   347  }
   348  
   349  // TaskListOptions holds parameters to list tasks with.
   350  type TaskListOptions struct {
   351  	Filters filters.Args
   352  }
   353  
   354  // PluginRemoveOptions holds parameters to remove plugins.
   355  type PluginRemoveOptions struct {
   356  	Force bool
   357  }
   358  
   359  // PluginEnableOptions holds parameters to enable plugins.
   360  type PluginEnableOptions struct {
   361  	Timeout int
   362  }
   363  
   364  // PluginDisableOptions holds parameters to disable plugins.
   365  type PluginDisableOptions struct {
   366  	Force bool
   367  }
   368  
   369  // PluginInstallOptions holds parameters to install a plugin.
   370  type PluginInstallOptions struct {
   371  	Disabled              bool
   372  	AcceptAllPermissions  bool
   373  	RegistryAuth          string // RegistryAuth is the base64 encoded credentials for the registry
   374  	RemoteRef             string // RemoteRef is the plugin name on the registry
   375  	PrivilegeFunc         RequestPrivilegeFunc
   376  	AcceptPermissionsFunc func(PluginPrivileges) (bool, error)
   377  	Args                  []string
   378  }
   379  
   380  // SwarmUnlockKeyResponse contains the response for Engine API:
   381  // GET /swarm/unlockkey
   382  type SwarmUnlockKeyResponse struct {
   383  	// UnlockKey is the unlock key in ASCII-armored format.
   384  	UnlockKey string
   385  }
   386  
   387  // PluginCreateOptions hold all options to plugin create.
   388  type PluginCreateOptions struct {
   389  	RepoName string
   390  }