<|start_filename|>vendor/github.com/docker/docker/api/types/plugin.go<|end_filename|>
package types

// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command

// Plugin A plugin for the Remote API
// swagger:model Plugin
type Plugin struct {

	// config
	// Required: true
	Config PluginConfig `json:"Config"`

	// True when the plugin is running. False when the plugin is not running, only installed.
	// Required: true
	Enabled bool `json:"Enabled"`

	// Id
	ID string `json:"Id,omitempty"`

	// manifest
	// Required: true
	Manifest PluginManifest `json:"Manifest"`

	// name
	// Required: true
	Name string `json:"Name"`

	// tag
	// Required: true
	Tag string `json:"Tag"`
}

// PluginConfig Settings that can be modified by users.
// swagger:model PluginConfig
type PluginConfig struct {

	// args
	// Required: true
	Args []string `json:"Args"`

	// devices
	// Required: true
	Devices []PluginDevice `json:"Devices"`

	// env
	// Required: true
	Env []string `json:"Env"`

	// mounts
	// Required: true
	Mounts []PluginMount `json:"Mounts"`
}

// PluginManifest The manifest of a plugin.
// swagger:model PluginManifest
type PluginManifest struct {

	// args
	// Required: true
	Args PluginManifestArgs `json:"Args"`

	// capabilities
	// Required: true
	Capabilities []string `json:"Capabilities"`

	// description
	// Required: true
	Description string `json:"Description"`

	// devices
	// Required: true
	Devices []PluginDevice `json:"Devices"`

	// documentation
	// Required: true
	Documentation string `json:"Documentation"`

	// entrypoint
	// Required: true
	Entrypoint []string `json:"Entrypoint"`

	// env
	// Required: true
	Env []PluginEnv `json:"Env"`

	// interface
	// Required: true
	Interface PluginManifestInterface `json:"Interface"`

	// manifest version
	// Required: true
	ManifestVersion string `json:"ManifestVersion"`

	// mounts
	// Required: true
	Mounts []PluginMount `json:"Mounts"`

	// network
	// Required: true
	Network PluginManifestNetwork `json:"Network"`

	// user
	User PluginManifestUser `json:"User,omitempty"`

	// workdir
	// Required: true
	Workdir string `json:"Workdir"`
}

// PluginManifestArgs plugin manifest args
// swagger:model PluginManifestArgs
type PluginManifestArgs struct {

	// description
	// Required: true
	Description string `json:"Description"`

	// name
	// Required: true
	Name string `json:"Name"`

	// settable
	// Required: true
	Settable []string `json:"Settable"`

	// value
	// Required: true
	Value []string `json:"Value"`
}

// PluginManifestInterface The interface between Docker and the plugin
// swagger:model PluginManifestInterface
type PluginManifestInterface struct {

	// socket
	// Required: true
	Socket string `json:"Socket"`

	// types
	// Required: true
	Types []PluginInterfaceType `json:"Types"`
}

// PluginManifestNetwork plugin manifest network
// swagger:model PluginManifestNetwork
type PluginManifestNetwork struct {

	// type
	// Required: true
	Type string `json:"Type"`
}

// PluginManifestUser plugin manifest user
// swagger:model PluginManifestUser
type PluginManifestUser struct {

	// g ID
	GID uint32 `json:"GID,omitempty"`

	// UID
	UID uint32 `json:"UID,omitempty"`
}


<|start_filename|>vendor/github.com/docker/docker/client/ping.go<|end_filename|>
package client

import "golang.org/x/net/context"

// Ping pings the server and return the value of the "Docker-Experimental" header
func (cli *Client) Ping(ctx context.Context) (bool, error) {
	serverResp, err := cli.get(ctx, "/_ping", nil, nil)
	if err != nil {
		return false, err
	}
	defer ensureReaderClosed(serverResp)

	exp := serverResp.header.Get("Docker-Experimental")
	if exp != "true" {
		return false, nil
	}

	return true, nil
}
