func (c *Client) RemoveSecret(opts RemoveSecretOptions) error {
	path := "/secrets/" + opts.ID
	resp, err := c.do("DELETE", path, doOptions{context: opts.Context})
	if err != nil {
		if e, ok := err.(*Error); ok && e.Status == http.StatusNotFound {
			return &NoSuchSecret{ID: opts.ID}
		}
		return err
	}
	resp.Body.Close()
	return nil
}
RemoveSecret removes a secret, returning an error in case of failure.

See https://goo.gl/Tqrtya for more details.
package docker
import (
	"context"
	"encoding/json"
	"net/http"
	"net/url"
	"strconv"
	"github.com/docker/docker/api/types/swarm"
)
type NoSuchSecret struct {
	ID  string
	Err error
}
func (err *NoSuchSecret) Error() string {
	if err.Err != nil {
		return err.Err.Error()
	}
	return "No such secret: " + err.ID
}
type CreateSecretOptions struct {
	Auth AuthConfiguration `qs:"-"`
	swarm.SecretSpec
	Context context.Context
}
func (c *Client) CreateSecret(opts CreateSecretOptions) (*swarm.Secret, error) {
	headers, err := headersWithAuth(opts.Auth)
	if err != nil {
		return nil, err
	}
	path := "/secrets/create?" + queryString(opts)
	resp, err := c.do("POST", path, doOptions{
		headers:   headers,
		data:      opts.SecretSpec,
		forceJSON: true,
		context:   opts.Context,
	})
	if err != nil {
		return nil, err
	}
	defer resp.Body.Close()
	var secret swarm.Secret
	if err := json.NewDecoder(resp.Body).Decode(&secret); err != nil {
		return nil, err
	}
	return &secret, nil
}
type RemoveSecretOptions struct {
	ID      string `qs:"-"`
	Context context.Context
}