github.com/rish1988/moby@v25.0.2+incompatible/client/network_create.go (about)

     1  package client // import "github.com/docker/docker/client"
     2  
     3  import (
     4  	"context"
     5  	"encoding/json"
     6  
     7  	"github.com/docker/docker/api/types"
     8  	"github.com/docker/docker/api/types/versions"
     9  )
    10  
    11  // NetworkCreate creates a new network in the docker host.
    12  func (cli *Client) NetworkCreate(ctx context.Context, name string, options types.NetworkCreate) (types.NetworkCreateResponse, error) {
    13  	// Make sure we negotiated (if the client is configured to do so),
    14  	// as code below contains API-version specific handling of options.
    15  	//
    16  	// Normally, version-negotiation (if enabled) would not happen until
    17  	// the API request is made.
    18  	cli.checkVersion(ctx)
    19  
    20  	networkCreateRequest := types.NetworkCreateRequest{
    21  		NetworkCreate: options,
    22  		Name:          name,
    23  	}
    24  	if versions.LessThan(cli.version, "1.44") {
    25  		networkCreateRequest.CheckDuplicate = true //nolint:staticcheck // ignore SA1019: CheckDuplicate is deprecated since API v1.44.
    26  	}
    27  
    28  	var response types.NetworkCreateResponse
    29  	serverResp, err := cli.post(ctx, "/networks/create", nil, networkCreateRequest, nil)
    30  	defer ensureReaderClosed(serverResp)
    31  	if err != nil {
    32  		return response, err
    33  	}
    34  
    35  	err = json.NewDecoder(serverResp.body).Decode(&response)
    36  	return response, err
    37  }