func (c *Client) BindEniPublicIp(args *BindEniPublicIpArgs) error {
	if args == nil {
		return fmt.Errorf("The BindEniPublicIpArgs cannot be nil.")
	}
	err := bce.NewRequestBuilder(c).
		WithURL(getURLForEniId(args.EniId)).
		WithMethod(http.PUT).
		WithQueryParam("bind", "").
		WithBody(args).
		WithQueryParamFilter("clientToken", args.ClientToken).
		Do()
	return err
}
BindEniPublicIp - eni bind public ip

PARAMS:
- args: the arguments to bind public ip
RETURNS:
- error: nil if success otherwise the specific error
package eni
import (
	"fmt"
	"strconv"
	"strings"
	"github.com/baidubce/bce-sdk-go/bce"
	"github.com/baidubce/bce-sdk-go/http"
)
func (c *Client) CreateEni(args *CreateEniArgs) (*CreateEniResult, error) {
	if args == nil {
		return nil, fmt.Errorf("The createEniArgs cannot be nil.")
	}
	result := &CreateEniResult{}
	err := bce.NewRequestBuilder(c).
		WithURL(getURLForEni()).
		WithMethod(http.POST).
		WithBody(args).
		WithQueryParamFilter("clientToken", args.ClientToken).
		WithResult(result).
		Do()
	return result, err
}
func (c *Client) UpdateEni(args *UpdateEniArgs) error {
	if args == nil {
		return fmt.Errorf("The updateEniArgs cannot be nil.")
	}
	return bce.NewRequestBuilder(c).
		WithURL(getURLForEniId(args.EniId)).
		WithMethod(http.PUT).
		WithBody(args).
		WithQueryParamFilter("clientToken", args.ClientToken).
		WithQueryParam("modifyAttribute", "").
		Do()
}
func (c *Client) DeleteEni(args *DeleteEniArgs) error {
	return bce.NewRequestBuilder(c).
		WithURL(getURLForEniId(args.EniId)).
		WithMethod(http.DELETE).
		WithQueryParamFilter("clientToken", args.ClientToken).
		Do()
}
func (c *Client) ListEni(args *ListEniArgs) (*ListEniResult, error) {
	if args == nil {
		return nil, fmt.Errorf("The ListEniArgs cannot be nil.")
	}
	if args.MaxKeys == 0 {
		args.MaxKeys = 1000
	}
	result := &ListEniResult{}
	builder := bce.NewRequestBuilder(c).
		WithURL(getURLForEni()).
		WithMethod(http.GET).
		WithQueryParam("vpcId", args.VpcId).
		WithQueryParamFilter("marker", args.Marker).
		WithQueryParamFilter("maxKeys", strconv.Itoa(args.MaxKeys))
	if len(args.PrivateIpAddress) != 0 {
		builder.WithQueryParam("privateIpAddress",
			strings.Replace(strings.Trim(fmt.Sprint(args.PrivateIpAddress), "[]"), " ", ",", -1))
	}
	err := builder.WithResult(result).Do()
	return result, err
}
func (c *Client) GetEniDetail(eniId string) (*Eni, error) {
	if eniId == "" {
		return nil, fmt.Errorf("The eniId cannot be empty.")
	}
	result := &Eni{}
	err := bce.NewRequestBuilder(c).
		WithURL(getURLForEniId(eniId)).
		WithMethod(http.GET).
		WithResult(result).
		Do()
	return result, err
}
func (c *Client) AddPrivateIp(args *EniPrivateIpArgs) (*AddPrivateIpResult, error) {
	if args == nil {
		return nil, fmt.Errorf("The EniPrivateIpArgs cannot be nil.")
	}
	result := &AddPrivateIpResult{}
	err := bce.NewRequestBuilder(c).
		WithURL(getURLForEniId(args.EniId)+"/privateIp").
		WithMethod(http.POST).
		WithBody(args).
		WithQueryParamFilter("clientToken", args.ClientToken).
		WithResult(result).
		Do()
	return result, err
}
func (c *Client) DeletePrivateIp(args *EniPrivateIpArgs) error {
	if args == nil {
		return fmt.Errorf("The EniPrivateIpArgs cannot be nil.")
	}
	err := bce.NewRequestBuilder(c).
		WithURL(getURLForEniId(args.EniId)+"/privateIp/"+args.PrivateIpAddress).
		WithMethod(http.DELETE).
		WithQueryParamFilter("clientToken", args.ClientToken).
		Do()
	return err
}
func (c *Client) AttachEniInstance(args *EniInstance) error {
	if args == nil {
		return fmt.Errorf("The EniInstance cannot be nil.")
	}
	err := bce.NewRequestBuilder(c).
		WithURL(getURLForEniId(args.EniId)).
		WithMethod(http.PUT).
		WithQueryParam("attach", "").
		WithBody(args).
		WithQueryParamFilter("clientToken", args.ClientToken).
		Do()
	return err
}
func (c *Client) DetachEniInstance(args *EniInstance) error {
	if args == nil {
		return fmt.Errorf("The EniInstance cannot be nil.")
	}
	err := bce.NewRequestBuilder(c).
		WithURL(getURLForEniId(args.EniId)).
		WithMethod(http.PUT).
		WithQueryParam("detach", "").
		WithBody(args).
		WithQueryParamFilter("clientToken", args.ClientToken).
		Do()
	return err
}