blob: 64a1796b8de6e52aadc2d23618199df41eac7c9e [file] [log] [blame]
package client
import (
"context"
"github.com/moby/moby/api/types/network"
)
// NetworkDisconnectOptions represents the data to be used to disconnect a container
// from the network.
type NetworkDisconnectOptions struct {
Container string
Force bool
}
// NetworkDisconnectResult represents the result of a NetworkDisconnect operation.
type NetworkDisconnectResult struct {
// Currently empty; placeholder for future fields.
}
// NetworkDisconnect disconnects a container from an existent network in the docker host.
func (cli *Client) NetworkDisconnect(ctx context.Context, networkID string, options NetworkDisconnectOptions) (NetworkDisconnectResult, error) {
networkID, err := trimID("network", networkID)
if err != nil {
return NetworkDisconnectResult{}, err
}
containerID, err := trimID("container", options.Container)
if err != nil {
return NetworkDisconnectResult{}, err
}
req := network.DisconnectRequest{
Container: containerID,
Force: options.Force,
}
resp, err := cli.post(ctx, "/networks/"+networkID+"/disconnect", nil, req, nil)
defer ensureReaderClosed(resp)
return NetworkDisconnectResult{}, err
}