From f3231018caf5a6547996c3695e552d603f45c3df Mon Sep 17 00:00:00 2001 From: Li Kexian Date: Tue, 18 Feb 2020 18:17:19 +0800 Subject: [PATCH] showing tencentcloud image id after copy to desination region (#8763) --- builder/tencentcloud/cvm/access_config.go | 12 +- builder/tencentcloud/cvm/common.go | 100 ++++-- builder/tencentcloud/cvm/step_copy_image.go | 30 ++ builder/tencentcloud/cvm/step_create_image.go | 26 +- builder/tencentcloud/cvm/step_pre_validate.go | 17 +- builder/tencentcloud/cvm/step_run_instance.go | 2 +- go.mod | 2 +- go.sum | 2 + .../tencentcloud/common/http/request.go | 2 +- .../tencentcloud/cvm/v20170312/client.go | 62 ++-- .../tencentcloud/cvm/v20170312/models.go | 97 ++++-- .../tencentcloud/vpc/v20170312/client.go | 166 +++++++-- .../tencentcloud/vpc/v20170312/models.go | 320 ++++++++++++++++-- vendor/modules.txt | 2 +- 14 files changed, 655 insertions(+), 185 deletions(-) diff --git a/builder/tencentcloud/cvm/access_config.go b/builder/tencentcloud/cvm/access_config.go index 9dbe482e4..91eb484b8 100644 --- a/builder/tencentcloud/cvm/access_config.go +++ b/builder/tencentcloud/cvm/access_config.go @@ -8,8 +8,6 @@ import ( "os" "github.com/hashicorp/packer/template/interpolate" - "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common" - "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile" cvm "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312" vpc "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312" ) @@ -81,17 +79,11 @@ func (cf *TencentCloudAccessConfig) Client() (*cvm.Client, *vpc.Client, error) { return nil, nil, fmt.Errorf("parameter zone must be set") } - credential := common.NewCredential(cf.SecretId, cf.SecretKey) - cpf := profile.NewClientProfile() - cpf.HttpProfile.ReqMethod = "POST" - cpf.HttpProfile.ReqTimeout = 300 - cpf.Language = "en-US" - - if cvm_client, err = cvm.NewClient(credential, cf.Region, cpf); err != nil { + if cvm_client, err = NewCvmClient(cf.SecretId, cf.SecretKey, cf.Region); err != nil { return nil, nil, err } - if vpc_client, err = vpc.NewClient(credential, cf.Region, cpf); err != nil { + if vpc_client, err = NewVpcClient(cf.SecretId, cf.SecretKey, cf.Region); err != nil { return nil, nil, err } diff --git a/builder/tencentcloud/cvm/common.go b/builder/tencentcloud/cvm/common.go index 6b2f3b374..8c81df153 100644 --- a/builder/tencentcloud/cvm/common.go +++ b/builder/tencentcloud/cvm/common.go @@ -10,16 +10,18 @@ import ( "github.com/hashicorp/packer/common/retry" "github.com/hashicorp/packer/helper/multistep" "github.com/hashicorp/packer/packer" + "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors" + "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile" cvm "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312" + vpc "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312" ) // DefaultWaitForInterval is sleep interval when wait statue const DefaultWaitForInterval = 5 // WaitForInstance wait for instance reaches statue -func WaitForInstance(client *cvm.Client, instanceId string, status string, timeout int) error { - ctx := context.TODO() +func WaitForInstance(ctx context.Context, client *cvm.Client, instanceId string, status string, timeout int) error { req := cvm.NewDescribeInstancesRequest() req.InstanceIds = []*string{&instanceId} @@ -50,54 +52,86 @@ func WaitForInstance(client *cvm.Client, instanceId string, status string, timeo } // WaitForImageReady wait for image reaches statue -func WaitForImageReady(client *cvm.Client, imageName string, status string, timeout int) error { - ctx := context.TODO() - req := cvm.NewDescribeImagesRequest() - FILTER_IMAGE_NAME := "image-name" - req.Filters = []*cvm.Filter{ - { - Name: &FILTER_IMAGE_NAME, - Values: []*string{&imageName}, - }, - } - +func WaitForImageReady(ctx context.Context, client *cvm.Client, imageName string, status string, timeout int) error { for { - var resp *cvm.DescribeImagesResponse - err := Retry(ctx, func(ctx context.Context) error { - var e error - resp, e = client.DescribeImages(req) - return e - }) + image, err := GetImageByName(ctx, client, imageName) if err != nil { return err } - find := false - for _, image := range resp.Response.ImageSet { - if *image.ImageName == imageName && *image.ImageState == status { - find = true - break - } - } - if find { - break + + if image != nil && *image.ImageState == status { + return nil } + time.Sleep(DefaultWaitForInterval * time.Second) timeout = timeout - DefaultWaitForInterval if timeout <= 0 { return fmt.Errorf("wait image(%s) status(%s) timeout", imageName, status) } } +} - return nil +// GetImageByName get image by image name +func GetImageByName(ctx context.Context, client *cvm.Client, imageName string) (*cvm.Image, error) { + req := cvm.NewDescribeImagesRequest() + req.Filters = []*cvm.Filter{ + { + Name: common.StringPtr("image-name"), + Values: []*string{&imageName}, + }, + } + + var resp *cvm.DescribeImagesResponse + err := Retry(ctx, func(ctx context.Context) error { + var e error + resp, e = client.DescribeImages(req) + return e + }) + if err != nil { + return nil, err + } + + if *resp.Response.TotalCount > 0 { + for _, image := range resp.Response.ImageSet { + if *image.ImageName == imageName { + return image, nil + } + } + } + + return nil, nil +} + +// NewCvmClient returns a new cvm client +func NewCvmClient(secretId, secretKey, region string) (client *cvm.Client, err error) { + cpf := profile.NewClientProfile() + cpf.HttpProfile.ReqMethod = "POST" + cpf.HttpProfile.ReqTimeout = 300 + cpf.Language = "en-US" + + credential := common.NewCredential(secretId, secretKey) + client, err = cvm.NewClient(credential, region, cpf) + + return +} + +// NewVpcClient returns a new vpc client +func NewVpcClient(secretId, secretKey, region string) (client *vpc.Client, err error) { + cpf := profile.NewClientProfile() + cpf.HttpProfile.ReqMethod = "POST" + cpf.HttpProfile.ReqTimeout = 300 + cpf.Language = "en-US" + + credential := common.NewCredential(secretId, secretKey) + client, err = vpc.NewClient(credential, region, cpf) + + return } // CheckResourceIdFormat check resource id format func CheckResourceIdFormat(resource string, id string) bool { regex := regexp.MustCompile(fmt.Sprintf("%s-[0-9a-z]{8}$", resource)) - if !regex.MatchString(id) { - return false - } - return true + return regex.MatchString(id) } // SSHHost returns a function that can be given to the SSH communicator diff --git a/builder/tencentcloud/cvm/step_copy_image.go b/builder/tencentcloud/cvm/step_copy_image.go index eb14eed01..abc30d86b 100644 --- a/builder/tencentcloud/cvm/step_copy_image.go +++ b/builder/tencentcloud/cvm/step_copy_image.go @@ -2,6 +2,7 @@ package cvm import ( "context" + "fmt" "strings" "github.com/hashicorp/packer/helper/multistep" @@ -19,6 +20,7 @@ func (s *stepCopyImage) Run(ctx context.Context, state multistep.StateBag) multi return multistep.ActionContinue } + config := state.Get("config").(*Config) client := state.Get("cvm_client").(*cvm.Client) imageId := state.Get("image").(*cvm.Image).ImageId @@ -43,6 +45,34 @@ func (s *stepCopyImage) Run(ctx context.Context, state multistep.StateBag) multi return Halt(state, err, "Failed to copy image") } + Message(state, "Waiting for image ready", "") + tencentCloudImages := state.Get("tencentcloudimages").(map[string]string) + + for _, region := range req.DestinationRegions { + rc, err := NewCvmClient(config.SecretId, config.SecretKey, *region) + if err != nil { + return Halt(state, err, "Failed to init client") + } + + err = WaitForImageReady(ctx, rc, config.ImageName, "NORMAL", 1800) + if err != nil { + return Halt(state, err, "Failed to wait for image ready") + } + + image, err := GetImageByName(ctx, rc, config.ImageName) + if err != nil { + return Halt(state, err, "Failed to get image") + } + + if image == nil { + return Halt(state, err, "Failed to wait for image ready") + } + + tencentCloudImages[*region] = *image.ImageId + Message(state, fmt.Sprintf("Copy image from %s(%s) to %s(%s)", s.SourceRegion, *imageId, *region, *image.ImageId), "") + } + + state.Put("tencentcloudimages", tencentCloudImages) Message(state, "Image copied", "") return multistep.ActionContinue diff --git a/builder/tencentcloud/cvm/step_create_image.go b/builder/tencentcloud/cvm/step_create_image.go index 9c4b1e7b3..f0fee3bc2 100644 --- a/builder/tencentcloud/cvm/step_create_image.go +++ b/builder/tencentcloud/cvm/step_create_image.go @@ -58,36 +58,22 @@ func (s *stepCreateImage) Run(ctx context.Context, state multistep.StateBag) mul } Message(state, "Waiting for image ready", "") - err = WaitForImageReady(client, config.ImageName, "NORMAL", 3600) + err = WaitForImageReady(ctx, client, config.ImageName, "NORMAL", 3600) if err != nil { return Halt(state, err, "Failed to wait for image ready") } - describeReq := cvm.NewDescribeImagesRequest() - FILTER_IMAGE_NAME := "image-name" - describeReq.Filters = []*cvm.Filter{ - { - Name: &FILTER_IMAGE_NAME, - Values: []*string{&config.ImageName}, - }, - } - - var describeResp *cvm.DescribeImagesResponse - err = Retry(ctx, func(ctx context.Context) error { - var e error - describeResp, e = client.DescribeImages(describeReq) - return e - }) + image, err := GetImageByName(ctx, client, config.ImageName) if err != nil { - return Halt(state, err, "Failed to wait for image ready") + return Halt(state, err, "Failed to get image") } - if *describeResp.Response.TotalCount == 0 { + if image == nil { return Halt(state, fmt.Errorf("No image return"), "Failed to crate image") } - s.imageId = *describeResp.Response.ImageSet[0].ImageId - state.Put("image", describeResp.Response.ImageSet[0]) + s.imageId = *image.ImageId + state.Put("image", image) Message(state, s.imageId, "Image created") tencentCloudImages := make(map[string]string) diff --git a/builder/tencentcloud/cvm/step_pre_validate.go b/builder/tencentcloud/cvm/step_pre_validate.go index 7bee5d9ea..400535579 100644 --- a/builder/tencentcloud/cvm/step_pre_validate.go +++ b/builder/tencentcloud/cvm/step_pre_validate.go @@ -5,7 +5,6 @@ import ( "fmt" "github.com/hashicorp/packer/helper/multistep" - "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common" cvm "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312" ) @@ -18,24 +17,12 @@ func (s *stepPreValidate) Run(ctx context.Context, state multistep.StateBag) mul Say(state, config.ImageName, "Trying to check image name") - req := cvm.NewDescribeImagesRequest() - req.Filters = []*cvm.Filter{ - { - Name: common.StringPtr("image-name"), - Values: []*string{&config.ImageName}, - }, - } - var resp *cvm.DescribeImagesResponse - err := Retry(ctx, func(ctx context.Context) error { - var err error - resp, err = client.DescribeImages(req) - return err - }) + image, err := GetImageByName(ctx, client, config.ImageName) if err != nil { return Halt(state, err, "Failed to get images info") } - if *resp.Response.TotalCount > 0 { + if image != nil { return Halt(state, fmt.Errorf("Image name %s has exists", config.ImageName), "") } diff --git a/builder/tencentcloud/cvm/step_run_instance.go b/builder/tencentcloud/cvm/step_run_instance.go index e126f70b5..09e889d3e 100644 --- a/builder/tencentcloud/cvm/step_run_instance.go +++ b/builder/tencentcloud/cvm/step_run_instance.go @@ -157,7 +157,7 @@ func (s *stepRunInstance) Run(ctx context.Context, state multistep.StateBag) mul s.instanceId = *resp.Response.InstanceIdSet[0] Message(state, "Waiting for instance ready", "") - err = WaitForInstance(client, s.instanceId, "RUNNING", 1800) + err = WaitForInstance(ctx, client, s.instanceId, "RUNNING", 1800) if err != nil { return Halt(state, err, "Failed to wait for instance ready") } diff --git a/go.mod b/go.mod index 9907a2515..60b685588 100644 --- a/go.mod +++ b/go.mod @@ -144,7 +144,7 @@ require ( github.com/stretchr/objx v0.2.0 // indirect github.com/stretchr/testify v1.4.0 github.com/temoto/robotstxt v1.1.1 // indirect - github.com/tencentcloud/tencentcloud-sdk-go v3.0.97+incompatible + github.com/tencentcloud/tencentcloud-sdk-go v3.0.121+incompatible github.com/ucloud/ucloud-sdk-go v0.12.0 github.com/ufilesdk-dev/ufile-gosdk v0.0.0-20190830075812-b4dbc4ef43a6 github.com/ugorji/go v0.0.0-20151218193438-646ae4a518c1 diff --git a/go.sum b/go.sum index b41b72d2d..15e61f1dd 100644 --- a/go.sum +++ b/go.sum @@ -465,6 +465,8 @@ github.com/temoto/robotstxt v1.1.1 h1:Gh8RCs8ouX3hRSxxK7B1mO5RFByQ4CmJZDwgom++Ja github.com/temoto/robotstxt v1.1.1/go.mod h1:+1AmkuG3IYkh1kv0d2qEB9Le88ehNO0zwOr3ujewlOo= github.com/tencentcloud/tencentcloud-sdk-go v3.0.97+incompatible h1:y2gZtLpcWqFzSFbQSKwv1gL+NocPRM0ktGh7Dlb8U7s= github.com/tencentcloud/tencentcloud-sdk-go v3.0.97+incompatible/go.mod h1:0PfYow01SHPMhKY31xa+EFz2RStxIqj6JFAJS+IkCi4= +github.com/tencentcloud/tencentcloud-sdk-go v3.0.121+incompatible h1:/5EEPgCRsWdGgZsM7YRLhYE9gpE9+kUGoIfGCrFYU0s= +github.com/tencentcloud/tencentcloud-sdk-go v3.0.121+incompatible/go.mod h1:0PfYow01SHPMhKY31xa+EFz2RStxIqj6JFAJS+IkCi4= github.com/ucloud/ucloud-sdk-go v0.12.0 h1:VCFN3jWg/G4wvwjG6qG5AhFuAT1JdmGvY6+4WHbuJcw= github.com/ucloud/ucloud-sdk-go v0.12.0/go.mod h1:lM6fpI8y6iwACtlbHUav823/uKPdXsNBlnBpRF2fj3c= github.com/ufilesdk-dev/ufile-gosdk v0.0.0-20190830075812-b4dbc4ef43a6 h1:FAWNiqocJ04wC4Znj7Ax4PGWstZijayO6ifuHHvb+vI= diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go index 9d10e199c..8331570bc 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go @@ -152,7 +152,7 @@ func CompleteCommonParams(request Request, region string) { params["Action"] = request.GetAction() params["Timestamp"] = strconv.FormatInt(time.Now().Unix(), 10) params["Nonce"] = strconv.Itoa(rand.Int()) - params["RequestClient"] = "SDK_GO_3.0.97" + params["RequestClient"] = "SDK_GO_3.0.121" } func ConstructParams(req Request) (err error) { diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312/client.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312/client.go index 24f87ebaf..7824a47e2 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312/client.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312/client.go @@ -115,6 +115,7 @@ func NewAssociateSecurityGroupsResponse() (response *AssociateSecurityGroupsResp } // 本接口 (AssociateSecurityGroups) 用于绑定安全组到指定实例。 +// * 实例操作结果可以通过调用 [DescribeInstances](https://cloud.tencent.com/document/api/213/15728#.E7.A4.BA.E4.BE.8B3-.E6.9F.A5.E8.AF.A2.E5.AE.9E.E4.BE.8B.E7.9A.84.E6.9C.80.E6.96.B0.E6.93.8D.E4.BD.9C.E6.83.85.E5.86.B5) 接口查询,如果实例的最新操作状态(LatestOperationState)为“SUCCESS”,则代表操作成功。 func (c *Client) AssociateSecurityGroups(request *AssociateSecurityGroupsRequest) (response *AssociateSecurityGroupsResponse, err error) { if request == nil { request = NewAssociateSecurityGroupsRequest() @@ -219,7 +220,7 @@ func NewDeleteDisasterRecoverGroupsResponse() (response *DeleteDisasterRecoverGr return } -// 本接口 (DeleteDisasterRecoverGroups)用于删除[分散置放群组](https://cloud.tencent.com/document/product/213/15486)。只有空的置放群组才能被删除,非空的群组需要先销毁组内所有云主机,才能执行删除操作,不然会产生删除置放群组失败的错误。 +// 本接口 (DeleteDisasterRecoverGroups)用于删除[分散置放群组](https://cloud.tencent.com/document/product/213/15486)。只有空的置放群组才能被删除,非空的群组需要先销毁组内所有云服务器,才能执行删除操作,不然会产生删除置放群组失败的错误。 func (c *Client) DeleteDisasterRecoverGroups(request *DeleteDisasterRecoverGroupsRequest) (response *DeleteDisasterRecoverGroupsResponse, err error) { if request == nil { request = NewDeleteDisasterRecoverGroupsRequest() @@ -246,7 +247,7 @@ func NewDeleteImagesResponse() (response *DeleteImagesResponse) { // 本接口(DeleteImages)用于删除一个或多个镜像。 // -// * 当[镜像状态](https://cloud.tencent.com/document/api/213/9452#image_state)为`创建中`和`使用中`时, 不允许删除。镜像状态可以通过[DescribeImages](https://cloud.tencent.com/document/api/213/9418)获取。 +// * 当[镜像状态](https://cloud.tencent.com/document/product/213/15753#Image)为`创建中`和`使用中`时, 不允许删除。镜像状态可以通过[DescribeImages](https://cloud.tencent.com/document/api/213/9418)获取。 // * 每个地域最多只支持创建10个自定义镜像,删除镜像可以释放账户的配额。 // * 当镜像正在被其它账户分享时,不允许删除。 func (c *Client) DeleteImages(request *DeleteImagesRequest) (response *DeleteImagesResponse, err error) { @@ -566,7 +567,7 @@ func NewDescribeInstanceVncUrlResponse() (response *DescribeInstanceVncUrlRespon // * 管理终端地址的有效期为 15 秒,调用接口成功后如果 15 秒内不使用该链接进行访问,管理终端地址自动失效,您需要重新查询。 // * 管理终端地址一旦被访问,将自动失效,您需要重新查询。 // * 如果连接断开,每分钟内重新连接的次数不能超过 30 次。 -// * 获取到 `InstanceVncUrl` 后,您需要在在链接 末尾加上参数 `InstanceVncUrl=xxxx` 。 +// * 获取到 `InstanceVncUrl` 后,您需要在链接 末尾加上参数 `InstanceVncUrl=xxxx` 。 // - 参数 `InstanceVncUrl` :调用接口成功后会返回的 `InstanceVncUrl` 的值。 // // 最后组成的 URL 格式如下: @@ -602,6 +603,7 @@ func NewDescribeInstancesResponse() (response *DescribeInstancesResponse) { // // * 可以根据实例`ID`、实例名称或者实例计费模式等信息来查询实例的详细信息。过滤信息详细请见过滤器`Filter`。 // * 如果参数为空,返回当前用户一定数量(`Limit`所指定的数量,默认为20)的实例。 +// * 支持查询实例的最新操作(LatestOperation)以及最新操作状态(LatestOperationState)。 func (c *Client) DescribeInstances(request *DescribeInstancesRequest) (response *DescribeInstancesResponse, err error) { if request == nil { request = NewDescribeInstancesRequest() @@ -860,7 +862,7 @@ func NewDisassociateInstancesKeyPairsResponse() (response *DisassociateInstances // 本接口 (DisassociateInstancesKeyPairs) 用于解除实例的密钥绑定关系。 // -// * 只支持[`STOPPED`](https://cloud.tencent.com/document/api/213/9452#INSTANCE_STATE)状态的`Linux`操作系统的实例。 +// * 只支持[`STOPPED`](https://cloud.tencent.com/document/product/213/15753#InstanceStatus)状态的`Linux`操作系统的实例。 // * 解绑密钥后,实例可以通过原来设置的密码登录。 // * 如果原来没有设置密码,解绑后将无法使用 `SSH` 登录。可以调用 [ResetInstancesPassword](https://cloud.tencent.com/document/api/213/15736) 接口来设置登录密码。 // * 支持批量操作。每次请求批量实例的上限为100。如果批量实例存在不允许操作的实例,操作会以特定错误码返回。 @@ -889,6 +891,7 @@ func NewDisassociateSecurityGroupsResponse() (response *DisassociateSecurityGrou } // 本接口 (DisassociateSecurityGroups) 用于解绑实例的指定安全组。 +// * 实例操作结果可以通过调用 [DescribeInstances](https://cloud.tencent.com/document/api/213/15728#.E7.A4.BA.E4.BE.8B3-.E6.9F.A5.E8.AF.A2.E5.AE.9E.E4.BE.8B.E7.9A.84.E6.9C.80.E6.96.B0.E6.93.8D.E4.BD.9C.E6.83.85.E5.86.B5) 接口查询,如果实例的最新操作状态(LatestOperationState)为“SUCCESS”,则代表操作成功。 func (c *Client) DisassociateSecurityGroups(request *DisassociateSecurityGroupsRequest) (response *DisassociateSecurityGroupsResponse, err error) { if request == nil { request = NewDisassociateSecurityGroupsRequest() @@ -1025,8 +1028,8 @@ func NewInquiryPriceResetInstanceResponse() (response *InquiryPriceResetInstance // 本接口 (InquiryPriceResetInstance) 用于重装实例询价。 // // * 如果指定了`ImageId`参数,则使用指定的镜像进行重装询价;否则按照当前实例使用的镜像进行重装询价。 -// * 目前只支持[系统盘类型](/document/api/213/9452#block_device)是`CLOUD_BASIC`、`CLOUD_PREMIUM`、`CLOUD_SSD`类型的实例使用该接口实现`Linux`和`Windows`操作系统切换的重装询价。 -// * 目前不支持海外地域的实例使用该接口实现`Linux`和`Windows`操作系统切换的重装询价。 +// * 目前只支持[系统盘类型](https://cloud.tencent.com/document/api/213/15753#SystemDisk)是`CLOUD_BASIC`、`CLOUD_PREMIUM`、`CLOUD_SSD`类型的实例使用该接口实现`Linux`和`Windows`操作系统切换的重装询价。 +// * 目前不支持境外地域的实例使用该接口实现`Linux`和`Windows`操作系统切换的重装询价。 func (c *Client) InquiryPriceResetInstance(request *InquiryPriceResetInstanceRequest) (response *InquiryPriceResetInstanceResponse, err error) { if request == nil { request = NewInquiryPriceResetInstanceRequest() @@ -1053,8 +1056,8 @@ func NewInquiryPriceResetInstancesInternetMaxBandwidthResponse() (response *Inqu // 本接口 (InquiryPriceResetInstancesInternetMaxBandwidth) 用于调整实例公网带宽上限询价。 // -// * 不同机型带宽上限范围不一致,具体限制详见[购买网络带宽](https://cloud.tencent.com/document/product/213/509)。 -// * 对于`BANDWIDTH_PREPAID`计费方式的带宽,需要输入参数`StartTime`和`EndTime`,指定调整后的带宽的生效时间段。在这种场景下目前不支持调小带宽,会涉及扣费,请确保账户余额充足。可通过[`DescribeAccountBalance`](https://cloud.tencent.com/document/product/378/4397)接口查询账户余额。 +// * 不同机型带宽上限范围不一致,具体限制详见[公网带宽上限](https://cloud.tencent.com/document/product/213/12523)。 +// * 对于`BANDWIDTH_PREPAID`计费方式的带宽,需要输入参数`StartTime`和`EndTime`,指定调整后的带宽的生效时间段。在这种场景下目前不支持调小带宽,会涉及扣费,请确保账户余额充足。可通过[`DescribeAccountBalance`](https://cloud.tencent.com/document/product/555/20253)接口查询账户余额。 // * 对于 `TRAFFIC_POSTPAID_BY_HOUR`、 `BANDWIDTH_POSTPAID_BY_HOUR` 和 `BANDWIDTH_PACKAGE` 计费方式的带宽,使用该接口调整带宽上限是实时生效的,可以在带宽允许的范围内调大或者调小带宽,不支持输入参数 `StartTime` 和 `EndTime` 。 // * 接口不支持调整`BANDWIDTH_POSTPAID_BY_MONTH`计费方式的带宽。 // * 接口不支持批量调整 `BANDWIDTH_PREPAID` 和 `BANDWIDTH_POSTPAID_BY_HOUR` 计费方式的带宽。 @@ -1085,9 +1088,9 @@ func NewInquiryPriceResetInstancesTypeResponse() (response *InquiryPriceResetIns // 本接口 (InquiryPriceResetInstancesType) 用于调整实例的机型询价。 // -// * 目前只支持[系统盘类型](https://cloud.tencent.com/document/api/213/9452#block_device)是`CLOUD_BASIC`、`CLOUD_PREMIUM`、`CLOUD_SSD`类型的实例使用该接口进行调整机型询价。 +// * 目前只支持[系统盘类型](https://cloud.tencent.com/document/product/213/15753#SystemDisk)是`CLOUD_BASIC`、`CLOUD_PREMIUM`、`CLOUD_SSD`类型的实例使用该接口进行调整机型询价。 // * 目前不支持[CDH](https://cloud.tencent.com/document/product/416)实例使用该接口调整机型询价。 -// * 对于包年包月实例,使用该接口会涉及扣费,请确保账户余额充足。可通过[`DescribeAccountBalance`](https://cloud.tencent.com/document/product/378/4397)接口查询账户余额。 +// * 对于包年包月实例,使用该接口会涉及扣费,请确保账户余额充足。可通过[`DescribeAccountBalance`](https://cloud.tencent.com/document/product/555/20253)接口查询账户余额。 func (c *Client) InquiryPriceResetInstancesType(request *InquiryPriceResetInstancesTypeRequest) (response *InquiryPriceResetInstancesTypeResponse, err error) { if request == nil { request = NewInquiryPriceResetInstancesTypeRequest() @@ -1114,7 +1117,7 @@ func NewInquiryPriceResizeInstanceDisksResponse() (response *InquiryPriceResizeI // 本接口 (InquiryPriceResizeInstanceDisks) 用于扩容实例的数据盘询价。 // -// * 目前只支持扩容非弹性数据盘([`DescribeDisks`](https://cloud.tencent.com/document/api/362/16315)接口返回值中的`Portable`为`false`表示非弹性)询价,且[数据盘类型](/document/api/213/9452#block_device)为:`CLOUD_BASIC`、`CLOUD_PREMIUM`、`CLOUD_SSD`。 +// * 目前只支持扩容非弹性数据盘([`DescribeDisks`](https://cloud.tencent.com/document/api/362/16315)接口返回值中的`Portable`为`false`表示非弹性)询价,且[数据盘类型](https://cloud.tencent.com/document/product/213/15753#DataDisk)为:`CLOUD_BASIC`、`CLOUD_PREMIUM`、`CLOUD_SSD`。 // * 目前不支持[CDH](https://cloud.tencent.com/document/product/416)实例使用该接口扩容数据盘询价。* 仅支持包年包月实例随机器购买的数据盘。* 目前只支持扩容一块数据盘询价。 func (c *Client) InquiryPriceResizeInstanceDisks(request *InquiryPriceResizeInstanceDisksRequest) (response *InquiryPriceResizeInstanceDisksResponse, err error) { if request == nil { @@ -1277,6 +1280,7 @@ func NewModifyInstancesAttributeResponse() (response *ModifyInstancesAttributeRe // * “实例名称”仅为方便用户自己管理之用,腾讯云并不以此名称作为提交工单或是进行实例管理操作的依据。 // * 支持批量操作。每次请求批量实例的上限为100。 // * 修改关联安全组时,子机原来关联的安全组会被解绑。 +// * 实例操作结果可以通过调用 [DescribeInstances](https://cloud.tencent.com/document/api/213/15728#.E7.A4.BA.E4.BE.8B3-.E6.9F.A5.E8.AF.A2.E5.AE.9E.E4.BE.8B.E7.9A.84.E6.9C.80.E6.96.B0.E6.93.8D.E4.BD.9C.E6.83.85.E5.86.B5) 接口查询,如果实例的最新操作状态(LatestOperationState)为“SUCCESS”,则代表操作成功。 func (c *Client) ModifyInstancesAttribute(request *ModifyInstancesAttributeRequest) (response *ModifyInstancesAttributeResponse, err error) { if request == nil { request = NewModifyInstancesAttributeRequest() @@ -1305,6 +1309,7 @@ func NewModifyInstancesChargeTypeResponse() (response *ModifyInstancesChargeType // // * 只支持从 `POSTPAID_BY_HOUR` 计费模式切换为`PREPAID`计费模式。 // * 关机不收费的实例、`BC1`和`BS1`机型族的实例、设置定时销毁的实例不支持该操作。 +// * 实例操作结果可以通过调用 [DescribeInstances](https://cloud.tencent.com/document/api/213/15728#.E7.A4.BA.E4.BE.8B3-.E6.9F.A5.E8.AF.A2.E5.AE.9E.E4.BE.8B.E7.9A.84.E6.9C.80.E6.96.B0.E6.93.8D.E4.BD.9C.E6.83.85.E5.86.B5) 接口查询,如果实例的最新操作状态(LatestOperationState)为“SUCCESS”,则代表操作成功。 func (c *Client) ModifyInstancesChargeType(request *ModifyInstancesChargeTypeRequest) (response *ModifyInstancesChargeTypeResponse, err error) { if request == nil { request = NewModifyInstancesChargeTypeRequest() @@ -1335,6 +1340,7 @@ func NewModifyInstancesProjectResponse() (response *ModifyInstancesProjectRespon // * 绑定负载均衡的实例不支持修改实例所属项目,请先使用[`DeregisterInstancesFromLoadBalancer`](https://cloud.tencent.com/document/api/214/1258)接口解绑负载均衡。 // * 修改实例所属项目会自动解关联实例原来关联的安全组,修改完成后可能使用[`ModifySecurityGroupsOfInstance`](https://cloud.tencent.com/document/api/213/1367)接口关联安全组。 // * 支持批量操作。每次请求批量实例的上限为100。 +// * 实例操作结果可以通过调用 [DescribeInstances](https://cloud.tencent.com/document/api/213/15728#.E7.A4.BA.E4.BE.8B3-.E6.9F.A5.E8.AF.A2.E5.AE.9E.E4.BE.8B.E7.9A.84.E6.9C.80.E6.96.B0.E6.93.8D.E4.BD.9C.E6.83.85.E5.86.B5) 接口查询,如果实例的最新操作状态(LatestOperationState)为“SUCCESS”,则代表操作成功。 func (c *Client) ModifyInstancesProject(request *ModifyInstancesProjectRequest) (response *ModifyInstancesProjectResponse, err error) { if request == nil { request = NewModifyInstancesProjectRequest() @@ -1363,6 +1369,7 @@ func NewModifyInstancesRenewFlagResponse() (response *ModifyInstancesRenewFlagRe // // * 实例被标识为自动续费后,每次在实例到期时,会自动续费一个月。 // * 支持批量操作。每次请求批量实例的上限为100。 +// * 实例操作结果可以通过调用 [DescribeInstances](https://cloud.tencent.com/document/api/213/15728#.E7.A4.BA.E4.BE.8B3-.E6.9F.A5.E8.AF.A2.E5.AE.9E.E4.BE.8B.E7.9A.84.E6.9C.80.E6.96.B0.E6.93.8D.E4.BD.9C.E6.83.85.E5.86.B5) 接口查询,如果实例的最新操作状态(LatestOperationState)为“SUCCESS”,则代表操作成功。 func (c *Client) ModifyInstancesRenewFlag(request *ModifyInstancesRenewFlagRequest) (response *ModifyInstancesRenewFlagResponse, err error) { if request == nil { request = NewModifyInstancesRenewFlagRequest() @@ -1390,6 +1397,7 @@ func NewModifyInstancesVpcAttributeResponse() (response *ModifyInstancesVpcAttri // 本接口(ModifyInstancesVpcAttribute)用于修改实例vpc属性,如私有网络ip。 // * 此操作默认会关闭实例,完成后再启动。 // * 当指定私有网络ID和子网ID(子网必须在实例所在的可用区)与指定实例所在私有网络不一致时,会将实例迁移至指定的私有网络的子网下。执行此操作前请确保指定的实例上没有绑定[弹性网卡](https://cloud.tencent.com/document/product/576)和[负载均衡](https://cloud.tencent.com/document/product/214)。 +// * 实例操作结果可以通过调用 [DescribeInstances](https://cloud.tencent.com/document/api/213/15728#.E7.A4.BA.E4.BE.8B3-.E6.9F.A5.E8.AF.A2.E5.AE.9E.E4.BE.8B.E7.9A.84.E6.9C.80.E6.96.B0.E6.93.8D.E4.BD.9C.E6.83.85.E5.86.B5) 接口查询,如果实例的最新操作状态(LatestOperationState)为“SUCCESS”,则代表操作成功。 func (c *Client) ModifyInstancesVpcAttribute(request *ModifyInstancesVpcAttributeRequest) (response *ModifyInstancesVpcAttributeResponse, err error) { if request == nil { request = NewModifyInstancesVpcAttributeRequest() @@ -1474,6 +1482,7 @@ func NewRebootInstancesResponse() (response *RebootInstancesResponse) { // * 接口调用成功时,实例会进入`REBOOTING`状态;重启实例成功时,实例会进入`RUNNING`状态。 // * 支持强制重启。强制重启的效果等同于关闭物理计算机的电源开关再重新启动。强制重启可能会导致数据丢失或文件系统损坏,请仅在服务器不能正常重启时使用。 // * 支持批量操作,每次请求批量实例的上限为100。 +// * 实例操作结果可以通过调用 [DescribeInstances](https://cloud.tencent.com/document/api/213/15728#.E7.A4.BA.E4.BE.8B3-.E6.9F.A5.E8.AF.A2.E5.AE.9E.E4.BE.8B.E7.9A.84.E6.9C.80.E6.96.B0.E6.93.8D.E4.BD.9C.E6.83.85.E5.86.B5) 接口查询,如果实例的最新操作状态(LatestOperationState)为“SUCCESS”,则代表操作成功。 func (c *Client) RebootInstances(request *RebootInstancesRequest) (response *RebootInstancesResponse, err error) { if request == nil { request = NewRebootInstancesRequest() @@ -1501,7 +1510,7 @@ func NewRenewHostsResponse() (response *RenewHostsResponse) { // 本接口 (RenewHosts) 用于续费包年包月CDH实例。 // // * 只支持操作包年包月实例,否则操作会以特定[错误码](#4.-.E9.94.99.E8.AF.AF.E7.A0.81)返回。 -// * 续费时请确保账户余额充足。可通过[`DescribeAccountBalance`](https://cloud.tencent.com/document/product/378/4397)接口查询账户余额。 +// * 续费时请确保账户余额充足。可通过[`DescribeAccountBalance`](https://cloud.tencent.com/document/product/555/20253)接口查询账户余额。 func (c *Client) RenewHosts(request *RenewHostsRequest) (response *RenewHostsResponse, err error) { if request == nil { request = NewRenewHostsRequest() @@ -1529,7 +1538,8 @@ func NewRenewInstancesResponse() (response *RenewInstancesResponse) { // 本接口 (RenewInstances) 用于续费包年包月实例。 // // * 只支持操作包年包月实例。 -// * 续费时请确保账户余额充足。可通过[`DescribeAccountBalance`](https://cloud.tencent.com/document/product/378/4397)接口查询账户余额。 +// * 续费时请确保账户余额充足。可通过[`DescribeAccountBalance`](https://cloud.tencent.com/document/product/555/20253)接口查询账户余额。 +// * 实例操作结果可以通过调用 [DescribeInstances](https://cloud.tencent.com/document/api/213/15728#.E7.A4.BA.E4.BE.8B3-.E6.9F.A5.E8.AF.A2.E5.AE.9E.E4.BE.8B.E7.9A.84.E6.9C.80.E6.96.B0.E6.93.8D.E4.BD.9C.E6.83.85.E5.86.B5) 接口查询,如果实例的最新操作状态(LatestOperationState)为“SUCCESS”,则代表操作成功。 func (c *Client) RenewInstances(request *RenewInstancesRequest) (response *RenewInstancesResponse, err error) { if request == nil { request = NewRenewInstancesRequest() @@ -1560,8 +1570,9 @@ func NewResetInstanceResponse() (response *ResetInstanceResponse) { // * 系统盘将会被格式化,并重置;请确保系统盘中无重要文件。 // * `Linux`和`Windows`系统互相切换时,该实例系统盘`ID`将发生变化,系统盘关联快照将无法回滚、恢复数据。 // * 密码不指定将会通过站内信下发随机密码。 -// * 目前只支持[系统盘类型](https://cloud.tencent.com/document/api/213/9452#block_device)是`CLOUD_BASIC`、`CLOUD_PREMIUM`、`CLOUD_SSD`类型的实例使用该接口实现`Linux`和`Windows`操作系统切换。 -// * 目前不支持海外地域的实例使用该接口实现`Linux`和`Windows`操作系统切换。 +// * 目前只支持[系统盘类型](https://cloud.tencent.com/document/api/213/9452#SystemDisk)是`CLOUD_BASIC`、`CLOUD_PREMIUM`、`CLOUD_SSD`类型的实例使用该接口实现`Linux`和`Windows`操作系统切换。 +// * 目前不支持境外地域的实例使用该接口实现`Linux`和`Windows`操作系统切换。 +// * 实例操作结果可以通过调用 [DescribeInstances](https://cloud.tencent.com/document/api/213/15728#.E7.A4.BA.E4.BE.8B3-.E6.9F.A5.E8.AF.A2.E5.AE.9E.E4.BE.8B.E7.9A.84.E6.9C.80.E6.96.B0.E6.93.8D.E4.BD.9C.E6.83.85.E5.86.B5) 接口查询,如果实例的最新操作状态(LatestOperationState)为“SUCCESS”,则代表操作成功。 func (c *Client) ResetInstance(request *ResetInstanceRequest) (response *ResetInstanceResponse, err error) { if request == nil { request = NewResetInstanceRequest() @@ -1588,12 +1599,13 @@ func NewResetInstancesInternetMaxBandwidthResponse() (response *ResetInstancesIn // 本接口 (ResetInstancesInternetMaxBandwidth) 用于调整实例公网带宽上限。 // -// * 不同机型带宽上限范围不一致,具体限制详见[购买网络带宽](https://cloud.tencent.com/document/product/213/509)。 -// * 对于 `BANDWIDTH_PREPAID` 计费方式的带宽,需要输入参数 `StartTime` 和 `EndTime` ,指定调整后的带宽的生效时间段。在这种场景下目前不支持调小带宽,会涉及扣费,请确保账户余额充足。可通过 [`DescribeAccountBalance`](https://cloud.tencent.com/document/product/378/4397) 接口查询账户余额。 +// * 不同机型带宽上限范围不一致,具体限制详见[公网带宽上限](https://cloud.tencent.com/document/product/213/12523)。 +// * 对于 `BANDWIDTH_PREPAID` 计费方式的带宽,需要输入参数 `StartTime` 和 `EndTime` ,指定调整后的带宽的生效时间段。在这种场景下目前不支持调小带宽,会涉及扣费,请确保账户余额充足。可通过 [`DescribeAccountBalance`](https://cloud.tencent.com/document/product/555/20253) 接口查询账户余额。 // * 对于 `TRAFFIC_POSTPAID_BY_HOUR` 、 `BANDWIDTH_POSTPAID_BY_HOUR` 和 `BANDWIDTH_PACKAGE` 计费方式的带宽,使用该接口调整带宽上限是实时生效的,可以在带宽允许的范围内调大或者调小带宽,不支持输入参数 `StartTime` 和 `EndTime` 。 // * 接口不支持调整 `BANDWIDTH_POSTPAID_BY_MONTH` 计费方式的带宽。 // * 接口不支持批量调整 `BANDWIDTH_PREPAID` 和 `BANDWIDTH_POSTPAID_BY_HOUR` 计费方式的带宽。 // * 接口不支持批量调整混合计费方式的带宽。例如不支持同时调整 `TRAFFIC_POSTPAID_BY_HOUR` 和 `BANDWIDTH_PACKAGE` 计费方式的带宽。 +// * 实例操作结果可以通过调用 [DescribeInstances](https://cloud.tencent.com/document/api/213/15728#.E7.A4.BA.E4.BE.8B3-.E6.9F.A5.E8.AF.A2.E5.AE.9E.E4.BE.8B.E7.9A.84.E6.9C.80.E6.96.B0.E6.93.8D.E4.BD.9C.E6.83.85.E5.86.B5) 接口查询,如果实例的最新操作状态(LatestOperationState)为“SUCCESS”,则代表操作成功。 func (c *Client) ResetInstancesInternetMaxBandwidth(request *ResetInstancesInternetMaxBandwidthRequest) (response *ResetInstancesInternetMaxBandwidthResponse, err error) { if request == nil { request = NewResetInstancesInternetMaxBandwidthRequest() @@ -1623,6 +1635,7 @@ func NewResetInstancesPasswordResponse() (response *ResetInstancesPasswordRespon // * 只修改管理员帐号的密码。实例的操作系统不同,管理员帐号也会不一样(`Windows`为`Administrator`,`Ubuntu`为`ubuntu`,其它系统为`root`)。 // * 重置处于运行中状态的实例,需要显式指定强制关机参数`ForceStop`。如果没有显式指定强制关机参数,则只有处于关机状态的实例才允许执行重置密码操作。 // * 支持批量操作。将多个实例操作系统的密码重置为相同的密码。每次请求批量实例的上限为100。 +// * 实例操作结果可以通过调用 [DescribeInstances](https://cloud.tencent.com/document/api/213/15728#.E7.A4.BA.E4.BE.8B3-.E6.9F.A5.E8.AF.A2.E5.AE.9E.E4.BE.8B.E7.9A.84.E6.9C.80.E6.96.B0.E6.93.8D.E4.BD.9C.E6.83.85.E5.86.B5) 接口查询,如果实例的最新操作状态(LatestOperationState)为“SUCCESS”,则代表操作成功。 func (c *Client) ResetInstancesPassword(request *ResetInstancesPasswordRequest) (response *ResetInstancesPasswordResponse, err error) { if request == nil { request = NewResetInstancesPasswordRequest() @@ -1649,7 +1662,8 @@ func NewResetInstancesTypeResponse() (response *ResetInstancesTypeResponse) { // 本接口 (ResetInstancesType) 用于调整实例的机型。 // * 目前只支持[系统盘类型](/document/api/213/9452#block_device)是`CLOUD_BASIC`、`CLOUD_PREMIUM`、`CLOUD_SSD`类型的实例使用该接口进行机型调整。 -// * 目前不支持[CDH](https://cloud.tencent.com/document/product/416)实例使用该接口调整机型。对于包年包月实例,使用该接口会涉及扣费,请确保账户余额充足。可通过[`DescribeAccountBalance`](https://cloud.tencent.com/document/product/378/4397)接口查询账户余额。 +// * 目前不支持[CDH](https://cloud.tencent.com/document/product/416)实例使用该接口调整机型。对于包年包月实例,使用该接口会涉及扣费,请确保账户余额充足。可通过[`DescribeAccountBalance`](https://cloud.tencent.com/document/product/555/20253)接口查询账户余额。 +// * 本接口为异步接口,调整实例配置请求发送成功后会返回一个RequestId,此时操作并未立即完成。实例操作结果可以通过调用 [DescribeInstances](https://cloud.tencent.com/document/api/213/15728#.E7.A4.BA.E4.BE.8B3-.E6.9F.A5.E8.AF.A2.E5.AE.9E.E4.BE.8B.E7.9A.84.E6.9C.80.E6.96.B0.E6.93.8D.E4.BD.9C.E6.83.85.E5.86.B5) 接口查询,如果实例的最新操作状态(LatestOperationState)为“SUCCESS”,则代表调整实例配置操作成功。 func (c *Client) ResetInstancesType(request *ResetInstancesTypeRequest) (response *ResetInstancesTypeResponse, err error) { if request == nil { request = NewResetInstancesTypeRequest() @@ -1676,10 +1690,11 @@ func NewResizeInstanceDisksResponse() (response *ResizeInstanceDisksResponse) { // 本接口 (ResizeInstanceDisks) 用于扩容实例的数据盘。 // -// * 目前只支持扩容非弹性数据盘([`DescribeDisks`](https://cloud.tencent.com/document/api/362/16315)接口返回值中的`Portable`为`false`表示非弹性),且[数据盘类型](/document/api/213/9452#block_device)为:`CLOUD_BASIC`、`CLOUD_PREMIUM`、`CLOUD_SSD`。 +// * 目前只支持扩容非弹性数据盘([`DescribeDisks`](https://cloud.tencent.com/document/api/362/16315)接口返回值中的`Portable`为`false`表示非弹性),且[数据盘类型](https://cloud.tencent.com/document/api/213/15753#DataDisk)为:`CLOUD_BASIC`、`CLOUD_PREMIUM`、`CLOUD_SSD`。 // * 目前不支持[CDH](https://cloud.tencent.com/document/product/416)实例使用该接口扩容数据盘。 -// * 对于包年包月实例,使用该接口会涉及扣费,请确保账户余额充足。可通过[`DescribeAccountBalance`](https://cloud.tencent.com/document/product/378/4397)接口查询账户余额。 +// * 对于包年包月实例,使用该接口会涉及扣费,请确保账户余额充足。可通过[`DescribeAccountBalance`](https://cloud.tencent.com/document/product/555/20253)接口查询账户余额。 // * 目前只支持扩容一块数据盘。 +// * 实例操作结果可以通过调用 [DescribeInstances](https://cloud.tencent.com/document/api/213/15728#.E7.A4.BA.E4.BE.8B3-.E6.9F.A5.E8.AF.A2.E5.AE.9E.E4.BE.8B.E7.9A.84.E6.9C.80.E6.96.B0.E6.93.8D.E4.BD.9C.E6.83.85.E5.86.B5) 接口查询,如果实例的最新操作状态(LatestOperationState)为“SUCCESS”,则代表操作成功。 func (c *Client) ResizeInstanceDisks(request *ResizeInstanceDisksRequest) (response *ResizeInstanceDisksResponse, err error) { if request == nil { request = NewResizeInstanceDisksRequest() @@ -1706,10 +1721,10 @@ func NewRunInstancesResponse() (response *RunInstancesResponse) { // 本接口 (RunInstances) 用于创建一个或多个指定配置的实例。 // -// * 实例创建成功后将自动开机启动,[实例状态](/document/api/213/9452#instance_state)变为“运行中”。 +// * 实例创建成功后将自动开机启动,[实例状态](https://cloud.tencent.com/document/product/213/15753#InstanceStatus)变为“运行中”。 // * 预付费实例的购买会预先扣除本次实例购买所需金额,按小时后付费实例购买会预先冻结本次实例购买一小时内所需金额,在调用本接口前请确保账户余额充足。 // * 本接口允许购买的实例数量遵循[CVM实例购买限制](https://cloud.tencent.com/document/product/213/2664),所创建的实例和官网入口创建的实例共用配额。 -// * 本接口为异步接口,当创建请求下发成功后会返回一个实例`ID`列表,此时实例的创建并立即未完成。在此期间实例的状态将会处于“准备中”,可以通过调用 [DescribeInstances](https://cloud.tencent.com/document/api/213/15728) 接口查询对应实例的状态,来判断创建有没有最终成功。如果实例的状态由“准备中”变为“运行中”,则为创建成功。 +// * 本接口为异步接口,当创建实例请求下发成功后会返回一个实例`ID`列表和一个`RequestId`,此时创建实例操作并未立即完成。在此期间实例的状态将会处于“PENDING”,实例创建结果可以通过调用 [DescribeInstances](https://cloud.tencent.com/document/api/213/15728) 接口查询,如果实例状态(InstanceState)由“PENDING”变为“RUNNING”,则代表实例创建成功,“LAUNCH_FAILED”代表实例创建失败。 func (c *Client) RunInstances(request *RunInstancesRequest) (response *RunInstancesResponse, err error) { if request == nil { request = NewRunInstancesRequest() @@ -1739,6 +1754,7 @@ func NewStartInstancesResponse() (response *StartInstancesResponse) { // * 只有状态为`STOPPED`的实例才可以进行此操作。 // * 接口调用成功时,实例会进入`STARTING`状态;启动实例成功时,实例会进入`RUNNING`状态。 // * 支持批量操作。每次请求批量实例的上限为100。 +// * 本接口为异步接口,启动实例请求发送成功后会返回一个RequestId,此时操作并未立即完成。实例操作结果可以通过调用 [DescribeInstances](https://cloud.tencent.com/document/api/213/15728#.E7.A4.BA.E4.BE.8B3-.E6.9F.A5.E8.AF.A2.E5.AE.9E.E4.BE.8B.E7.9A.84.E6.9C.80.E6.96.B0.E6.93.8D.E4.BD.9C.E6.83.85.E5.86.B5) 接口查询,如果实例的最新操作状态(LatestOperationState)为“SUCCESS”,则代表启动实例操作成功。 func (c *Client) StartInstances(request *StartInstancesRequest) (response *StartInstancesResponse, err error) { if request == nil { request = NewStartInstancesRequest() @@ -1769,6 +1785,7 @@ func NewStopInstancesResponse() (response *StopInstancesResponse) { // * 接口调用成功时,实例会进入`STOPPING`状态;关闭实例成功时,实例会进入`STOPPED`状态。 // * 支持强制关闭。强制关机的效果等同于关闭物理计算机的电源开关。强制关机可能会导致数据丢失或文件系统损坏,请仅在服务器不能正常关机时使用。 // * 支持批量操作。每次请求批量实例的上限为100。 +// * 本接口为异步接口,关闭实例请求发送成功后会返回一个RequestId,此时操作并未立即完成。实例操作结果可以通过调用 [DescribeInstances](https://cloud.tencent.com/document/api/213/15728#.E7.A4.BA.E4.BE.8B3-.E6.9F.A5.E8.AF.A2.E5.AE.9E.E4.BE.8B.E7.9A.84.E6.9C.80.E6.96.B0.E6.93.8D.E4.BD.9C.E6.83.85.E5.86.B5) 接口查询,如果实例的最新操作状态(LatestOperationState)为“SUCCESS”,则代表关闭实例操作成功。 func (c *Client) StopInstances(request *StopInstancesRequest) (response *StopInstancesResponse, err error) { if request == nil { request = NewStopInstancesRequest() @@ -1826,6 +1843,7 @@ func NewTerminateInstancesResponse() (response *TerminateInstancesResponse) { // // * 不再使用的实例,可通过本接口主动退还。 // * 按量计费的实例通过本接口可直接退还;包年包月实例如符合[退还规则](https://cloud.tencent.com/document/product/213/9711),也可通过本接口主动退还。 +// * 首次调用本接口,实例将被移至回收站,再次调用本接口,实例将被销毁,且不可恢复。 // * 支持批量操作,每次请求批量实例的上限为100。 func (c *Client) TerminateInstances(request *TerminateInstancesRequest) (response *TerminateInstancesResponse, err error) { if request == nil { diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312/models.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312/models.go index d159bc4e2..24847ec30 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312/models.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312/models.go @@ -208,10 +208,10 @@ type CreateDisasterRecoverGroupResponse struct { // 分散置放群组名称,长度1-60个字符,支持中、英文。 Name *string `json:"Name,omitempty" name:"Name"` - // 置放群组内可容纳的云主机数量。 + // 置放群组内可容纳的云服务器数量。 CvmQuotaTotal *int64 `json:"CvmQuotaTotal,omitempty" name:"CvmQuotaTotal"` - // 置放群组内已有的云主机数量。 + // 置放群组内已有的云服务器数量。 CurrentNum *int64 `json:"CurrentNum,omitempty" name:"CurrentNum"` // 置放群组创建时间。 @@ -273,6 +273,10 @@ type CreateImageResponse struct { *tchttp.BaseResponse Response *struct { + // 镜像ID + // 注意:此字段可能返回 null,表示取不到有效值。 + ImageId *string `json:"ImageId,omitempty" name:"ImageId"` + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitempty" name:"RequestId"` } `json:"Response"` @@ -332,10 +336,10 @@ func (r *CreateKeyPairResponse) FromJsonString(s string) error { type DataDisk struct { - // 数据盘大小,单位:GB。最小调整步长为10G,不同数据盘类型取值范围不同,具体限制详见:[CVM实例配置](/document/product/213/2177)。默认值为0,表示不购买数据盘。更多限制详见产品文档。 + // 数据盘大小,单位:GB。最小调整步长为10G,不同数据盘类型取值范围不同,具体限制详见:[实例规格](/document/product/213/2177)。默认值为0,表示不购买数据盘。更多限制详见产品文档。 DiskSize *int64 `json:"DiskSize,omitempty" name:"DiskSize"` - // 数据盘类型。数据盘类型限制详见[CVM实例配置](/document/product/213/2177)。取值范围:
  • LOCAL_BASIC:本地硬盘
  • LOCAL_SSD:本地SSD硬盘
  • CLOUD_BASIC:普通云硬盘
  • CLOUD_PREMIUM:高性能云硬盘
  • CLOUD_SSD:SSD云硬盘

    默认取值:LOCAL_BASIC。

    该参数对`ResizeInstanceDisk`接口无效。 + // 数据盘类型。数据盘类型限制详见[实例规格](/document/product/213/2177)。取值范围:
  • LOCAL_BASIC:本地硬盘
  • LOCAL_SSD:本地SSD硬盘
  • CLOUD_BASIC:普通云硬盘
  • CLOUD_PREMIUM:高性能云硬盘
  • CLOUD_SSD:SSD云硬盘

    默认取值:LOCAL_BASIC。

    该参数对`ResizeInstanceDisk`接口无效。 DiskType *string `json:"DiskType,omitempty" name:"DiskType"` // 数据盘ID。LOCAL_BASIC 和 LOCAL_SSD 类型没有ID。暂时不支持该参数。 @@ -352,6 +356,14 @@ type DataDisk struct { // 数据盘快照ID。选择的数据盘快照大小需小于数据盘大小。 // 注意:此字段可能返回 null,表示取不到有效值。 SnapshotId *string `json:"SnapshotId,omitempty" name:"SnapshotId"` + + // 数据盘是否随子机销毁。取值范围: + //
  • TRUE:加密 + //
  • FALSE:不加密
    + // 默认取值:FALSE
    + // 该参数目前仅用于 `RunInstances` 接口。 + // 注意:此字段可能返回 null,表示取不到有效值。 + Encrypt *bool `json:"Encrypt,omitempty" name:"Encrypt"` } type DeleteDisasterRecoverGroupsRequest struct { @@ -682,10 +694,9 @@ type DescribeImagesRequest struct { // 过滤条件,每次请求的`Filters`的上限为0,`Filters.Values`的上限为5。参数不可以同时指定`ImageIds`和`Filters`。详细的过滤条件如下: //
  • image-id - String - 是否必填: 否 - (过滤条件)按照镜像ID进行过滤
  • //
  • image-type - String - 是否必填: 否 - (过滤条件)按照镜像类型进行过滤。取值范围: - // PRIVATE_IMAGE: 私有镜像 (本帐户创建的镜像) + // PRIVATE_IMAGE: 私有镜像 (本账户创建的镜像) // PUBLIC_IMAGE: 公共镜像 (腾讯云官方镜像) - // MARKET_IMAGE: 服务市场 (服务市场提供的镜像) - // SHARED_IMAGE: 共享镜像(其他账户共享给本帐户的镜像) 。
  • + // SHARED_IMAGE: 共享镜像(其他账户共享给本账户的镜像) 。 Filters []*Filter `json:"Filters,omitempty" name:"Filters" list` // 偏移量,默认为0。关于Offset详见[API简介](/document/api/213/568#.E8.BE.93.E5.85.A5.E5.8F.82.E6.95.B0.E4.B8.8E.E8.BF.94.E5.9B.9E.E5.8F.82.E6.95.B0.E9.87.8A.E4.B9.89)。 @@ -843,7 +854,7 @@ type DescribeInstanceTypeConfigsRequest struct { *tchttp.BaseRequest // 过滤条件。 - //
  • zone - String - 是否必填:否 -(过滤条件)按照[可用区](https://cloud.tencent.com/document/api/213/9452#zone)过滤。
  • + //
  • zone - String - 是否必填:否 -(过滤条件)按照[可用区](https://cloud.tencent.com/document/product/213/15753#ZoneInfo)过滤。
  • //
  • instance-family - String - 是否必填:否 -(过滤条件)按照实例机型系列过滤。实例机型系列形如:S1、I1、M1等。
  • // 每次请求的`Filters`的上限为10,`Filter.Values`的上限为1。 Filters []*Filter `json:"Filters,omitempty" name:"Filters" list` @@ -1493,13 +1504,13 @@ type DisasterRecoverGroup struct { // 分散置放群组类型,取值范围:
  • HOST:物理机
  • SW:交换机
  • RACK:机架 Type *string `json:"Type,omitempty" name:"Type"` - // 分散置放群组内最大容纳云主机数量。 + // 分散置放群组内最大容纳云服务器数量。 CvmQuotaTotal *int64 `json:"CvmQuotaTotal,omitempty" name:"CvmQuotaTotal"` - // 分散置放群组内云主机当前数量。 + // 分散置放群组内云服务器当前数量。 CurrentNum *int64 `json:"CurrentNum,omitempty" name:"CurrentNum"` - // 分散置放群组内,云主机id列表。 + // 分散置放群组内,云服务器id列表。 // 注意:此字段可能返回 null,表示取不到有效值。 InstanceIds []*string `json:"InstanceIds,omitempty" name:"InstanceIds" list` @@ -1603,6 +1614,9 @@ type HostResource struct { // cdh实例可用磁盘大小(单位为:GiB) DiskAvailable *uint64 `json:"DiskAvailable,omitempty" name:"DiskAvailable"` + + // cdh实例磁盘类型 + DiskType *string `json:"DiskType,omitempty" name:"DiskType"` } type Image struct { @@ -1631,7 +1645,14 @@ type Image struct { // 镜像架构 Architecture *string `json:"Architecture,omitempty" name:"Architecture"` - // 镜像状态 + // 镜像状态: + // CREATING-创建中 + // NORMAL-正常 + // CREATEFAILED-创建失败 + // USING-使用中 + // SYNCING-同步中 + // IMPORTING-导入中 + // IMPORTFAILED-导入失败 ImageState *string `json:"ImageState,omitempty" name:"ImageState"` // 镜像来源平台 @@ -1728,7 +1749,7 @@ type ImportKeyPairRequest struct { // 密钥对名称,可由数字,字母和下划线组成,长度不超过25个字符。 KeyName *string `json:"KeyName,omitempty" name:"KeyName"` - // 密钥对创建后所属的[项目](/document/product/378/10863)ID。

    可以通过以下方式获取项目ID:
  • 通过[项目列表](https://console.cloud.tencent.com/project)查询项目ID。
  • 通过调用接口 [DescribeProject](https://cloud.tencent.com/document/api/378/4400),取返回信息中的 `projectId ` 获取项目ID。 + // 密钥对创建后所属的[项目](https://cloud.tencent.com/document/product/378/10861)ID。

    可以通过以下方式获取项目ID:
  • 通过[项目列表](https://console.cloud.tencent.com/project)查询项目ID。
  • 通过调用接口 [DescribeProject](https://cloud.tencent.com/document/api/378/4400),取返回信息中的 `projectId ` 获取项目ID。 // // 如果是默认项目,直接填0就可以。 ProjectId *int64 `json:"ProjectId,omitempty" name:"ProjectId"` @@ -1997,7 +2018,7 @@ type InquiryPriceResizeInstanceDisksRequest struct { // 待操作的实例ID。可通过[`DescribeInstances`](https://cloud.tencent.com/document/api/213/15728)接口返回值中的`InstanceId`获取。 InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` - // 待扩容的数据盘配置信息。只支持扩容非弹性数据盘([`DescribeDisks`](https://cloud.tencent.com/document/api/362/16315)接口返回值中的`Portable`为`false`表示非弹性),且[数据盘类型](/document/api/213/9452#block_device)为:`CLOUD_BASIC`、`CLOUD_PREMIUM`、`CLOUD_SSD`。数据盘容量单位:GB。最小扩容步长:10G。关于数据盘类型的选择请参考硬盘产品简介。可选数据盘类型受到实例类型`InstanceType`限制。另外允许扩容的最大容量也因数据盘类型的不同而有所差异。 + // 待扩容的数据盘配置信息。只支持扩容非弹性数据盘([`DescribeDisks`](https://cloud.tencent.com/document/api/362/16315)接口返回值中的`Portable`为`false`表示非弹性),且[数据盘类型](https://cloud.tencent.com/document/product/213/15753#DataDisk)为:`CLOUD_BASIC`、`CLOUD_PREMIUM`、`CLOUD_SSD`。数据盘容量单位:GB。最小扩容步长:10G。关于数据盘类型的选择请参考硬盘产品简介。可选数据盘类型受到实例类型`InstanceType`限制。另外允许扩容的最大容量也因数据盘类型的不同而有所差异。 DataDisks []*DataDisk `json:"DataDisks,omitempty" name:"DataDisks" list` // 是否对运行中的实例选择强制关机。建议对运行中的实例先手动关机,然后再重置用户密码。取值范围:
  • TRUE:表示在正常关机失败后进行强制关机
  • FALSE:表示在正常关机失败后不进行强制关机

    默认取值:FALSE。

    强制关机的效果等同于关闭物理计算机的电源开关。强制关机可能会导致数据丢失或文件系统损坏,请仅在服务器不能正常关机时使用。 @@ -2043,22 +2064,22 @@ type InquiryPriceRunInstancesRequest struct { // 指定有效的[镜像](https://cloud.tencent.com/document/product/213/4940)ID,格式形如`img-xxx`。镜像类型分为四种:
  • 公共镜像
  • 自定义镜像
  • 共享镜像
  • 服务市场镜像

  • 可通过以下方式获取可用的镜像ID:
  • `公共镜像`、`自定义镜像`、`共享镜像`的镜像ID可通过登录[控制台](https://console.cloud.tencent.com/cvm/image?rid=1&imageType=PUBLIC_IMAGE)查询;`服务镜像市场`的镜像ID可通过[云市场](https://market.cloud.tencent.com/list)查询。
  • 通过调用接口 [DescribeImages](https://cloud.tencent.com/document/api/213/15715) ,取返回信息中的`ImageId`字段。
  • ImageId *string `json:"ImageId,omitempty" name:"ImageId"` - // 实例[计费类型](https://cloud.tencent.com/document/product/213/2180)。
  • PREPAID:预付费,即包年包月
  • POSTPAID_BY_HOUR:按小时后付费
    默认值:POSTPAID_BY_HOUR。 + // 实例[计费类型](https://cloud.tencent.com/document/product/213/2180)。
  • PREPAID:预付费,即包年包月
  • POSTPAID_BY_HOUR:按小时后付费
  • SPOTPAID:竞价付费
    默认值:POSTPAID_BY_HOUR。 InstanceChargeType *string `json:"InstanceChargeType,omitempty" name:"InstanceChargeType"` // 预付费模式,即包年包月相关参数设置。通过该参数可以指定包年包月实例的购买时长、是否设置自动续费等属性。若指定实例的付费模式为预付费则该参数必传。 InstanceChargePrepaid *InstanceChargePrepaid `json:"InstanceChargePrepaid,omitempty" name:"InstanceChargePrepaid"` - // 实例机型。不同实例机型指定了不同的资源规格,具体取值可通过调用接口[DescribeInstanceTypeConfigs](https://cloud.tencent.com/document/api/213/15749)来获得最新的规格表或参见[CVM实例配置](https://cloud.tencent.com/document/product/213/2177)描述。若不指定该参数,则默认机型为S1.SMALL1。 + // 实例机型。不同实例机型指定了不同的资源规格,具体取值可通过调用接口[DescribeInstanceTypeConfigs](https://cloud.tencent.com/document/api/213/15749)来获得最新的规格表或参见[实例规格](https://cloud.tencent.com/document/product/213/11518)描述。若不指定该参数,则默认机型为S1.SMALL1。 InstanceType *string `json:"InstanceType,omitempty" name:"InstanceType"` // 实例系统盘配置信息。若不指定该参数,则按照系统默认值进行分配。 SystemDisk *SystemDisk `json:"SystemDisk,omitempty" name:"SystemDisk"` - // 实例数据盘配置信息。若不指定该参数,则默认不购买数据盘。支持购买的时候指定11块数据盘,其中最多包含1块LOCAL_BASIC数据盘或者LOCAL_SSD数据盘,最多包含10块CLOUD_BASIC数据盘、CLOUD_PREMIUM数据盘或者CLOUD_SSD数据盘。 + // 实例数据盘配置信息。若不指定该参数,则默认不购买数据盘。支持购买的时候指定21块数据盘,其中最多包含1块LOCAL_BASIC数据盘或者LOCAL_SSD数据盘,最多包含20块CLOUD_BASIC数据盘、CLOUD_PREMIUM数据盘或者CLOUD_SSD数据盘。 DataDisks []*DataDisk `json:"DataDisks,omitempty" name:"DataDisks" list` - // 私有网络相关信息配置。通过该参数可以指定私有网络的ID,子网ID等信息。若不指定该参数,则默认使用基础网络。若在此参数中指定了私有网络ip,那么InstanceCount参数只能为1。 + // 私有网络相关信息配置。通过该参数可以指定私有网络的ID,子网ID等信息。若不指定该参数,则默认使用基础网络。若在此参数中指定了私有网络IP,那么InstanceCount参数只能为1。 VirtualPrivateCloud *VirtualPrivateCloud `json:"VirtualPrivateCloud,omitempty" name:"VirtualPrivateCloud"` // 公网带宽相关信息设置。若不指定该参数,则默认公网带宽为0Mbps。 @@ -2085,7 +2106,7 @@ type InquiryPriceRunInstancesRequest struct { // 云服务器的主机名。
  • 点号(.)和短横线(-)不能作为 HostName 的首尾字符,不能连续使用。
  • Windows 实例:名字符长度为[2, 15],允许字母(不限制大小写)、数字和短横线(-)组成,不支持点号(.),不能全是数字。
  • 其他类型(Linux 等)实例:字符长度为[2, 30],允许支持多个点号,点之间为一段,每段允许字母(不限制大小写)、数字和短横线(-)组成。 HostName *string `json:"HostName,omitempty" name:"HostName"` - // 标签描述列表。通过指定该参数可以同时绑定标签到相应的资源实例,当前仅支持绑定标签到云主机实例。 + // 标签描述列表。通过指定该参数可以同时绑定标签到相应的资源实例,当前仅支持绑定标签到云服务器实例。 TagSpecification []*TagSpecification `json:"TagSpecification,omitempty" name:"TagSpecification" list` // 实例的市场相关选项,如竞价实例相关参数 @@ -2205,10 +2226,7 @@ type Instance struct { // 注意:此字段可能返回 null,表示取不到有效值。 LatestOperation *string `json:"LatestOperation,omitempty" name:"LatestOperation"` - // 实例的最新操作状态。取值范围:
    - //
  • SUCCESS:表示操作成功
    - //
  • OPERATING:表示操作执行中
    - //
  • FAILED:表示操作失败 + // 实例的最新操作状态。取值范围:
  • SUCCESS:表示操作成功
  • OPERATING:表示操作执行中
  • FAILED:表示操作失败 // 注意:此字段可能返回 null,表示取不到有效值。 LatestOperationState *string `json:"LatestOperationState,omitempty" name:"LatestOperationState"` @@ -2259,7 +2277,7 @@ type InstanceStatus struct { // 实例`ID`。 InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` - // [实例状态](/document/api/213/9452#INSTANCE_STATE)。 + // 实例状态。取值范围:
  • PENDING:表示创建中
  • LAUNCH_FAILED:表示创建失败
  • RUNNING:表示运行中
  • STOPPED:表示关机
  • STARTING:表示开机中
  • STOPPING:表示关机中
  • REBOOTING:表示重启中
  • SHUTDOWN:表示停止待销毁
  • TERMINATING:表示销毁中。
  • InstanceState *string `json:"InstanceState,omitempty" name:"InstanceState"` } @@ -2329,7 +2347,7 @@ type InternetAccessible struct { // 网络计费类型。取值范围:
  • BANDWIDTH_PREPAID:预付费按带宽结算
  • TRAFFIC_POSTPAID_BY_HOUR:流量按小时后付费
  • BANDWIDTH_POSTPAID_BY_HOUR:带宽按小时后付费
  • BANDWIDTH_PACKAGE:带宽包用户
    默认取值:非带宽包用户默认与子机付费类型保持一致。 InternetChargeType *string `json:"InternetChargeType,omitempty" name:"InternetChargeType"` - // 公网出带宽上限,单位:Mbps。默认值:0Mbps。不同机型带宽上限范围不一致,具体限制详见[购买网络带宽](/document/product/213/509)。 + // 公网出带宽上限,单位:Mbps。默认值:0Mbps。不同机型带宽上限范围不一致,具体限制详见[购买网络带宽](https://cloud.tencent.com/document/product/213/12523)。 InternetMaxBandwidthOut *int64 `json:"InternetMaxBandwidthOut,omitempty" name:"InternetMaxBandwidthOut"` // 是否分配公网IP。取值范围:
  • TRUE:表示分配公网IP
  • FALSE:表示不分配公网IP

    当公网带宽大于0Mbps时,可自由选择开通与否,默认开通公网IP;当公网带宽为0,则不允许分配公网IP。该参数仅在RunInstances接口中作为入参使用。 @@ -2419,6 +2437,9 @@ type LocalDiskType struct { // 本地磁盘最大值。 MaxSize *int64 `json:"MaxSize,omitempty" name:"MaxSize"` + + // 购买时本地盘是否为必选。取值范围:
  • REQUIRED:表示必选
  • OPTIONAL:表示可选。 + Required *string `json:"Required,omitempty" name:"Required"` } type LoginSettings struct { @@ -2556,7 +2577,7 @@ func (r *ModifyImageAttributeResponse) FromJsonString(s string) error { type ModifyImageSharePermissionRequest struct { *tchttp.BaseRequest - // 镜像ID,形如`img-gvbnzy6f`。镜像Id可以通过如下方式获取:
  • 通过[DescribeImages](https://cloud.tencent.com/document/api/213/15715)接口返回的`ImageId`获取。
  • 通过[镜像控制台](https://console.cloud.tencent.com/cvm/image)获取。
    镜像ID必须指定为状态为`NORMAL`的镜像。镜像状态请参考[镜像数据表](/document/api/213/9452#image_state)。 + // 镜像ID,形如`img-gvbnzy6f`。镜像Id可以通过如下方式获取:
  • 通过[DescribeImages](https://cloud.tencent.com/document/api/213/15715)接口返回的`ImageId`获取。
  • 通过[镜像控制台](https://console.cloud.tencent.com/cvm/image)获取。
    镜像ID必须指定为状态为`NORMAL`的镜像。镜像状态请参考[镜像数据表](https://cloud.tencent.com/document/product/213/15753#Image)。 ImageId *string `json:"ImageId,omitempty" name:"ImageId"` // 接收分享镜像的账号Id列表,array型参数的格式可以参考[API简介](/document/api/213/568)。帐号ID不同于QQ号,查询用户帐号ID请查看[帐号信息](https://console.cloud.tencent.com/developer)中的帐号ID栏。 @@ -2865,11 +2886,14 @@ type Placement struct { // 实例所属项目ID。该参数可以通过调用 [DescribeProject](/document/api/378/4400) 的返回值中的 projectId 字段来获取。不填为默认项目。 ProjectId *int64 `json:"ProjectId,omitempty" name:"ProjectId"` - // 实例所属的专用宿主机ID列表。如果您有购买专用宿主机并且指定了该参数,则您购买的实例就会随机的部署在这些专用宿主机上。 + // 实例所属的专用宿主机ID列表,仅用于入参。如果您有购买专用宿主机并且指定了该参数,则您购买的实例就会随机的部署在这些专用宿主机上。 HostIds []*string `json:"HostIds,omitempty" name:"HostIds" list` // 指定母机ip生产子机 HostIps []*string `json:"HostIps,omitempty" name:"HostIps" list` + + // 实例所属的专用宿主机ID,仅用于出参。 + HostId *string `json:"HostId,omitempty" name:"HostId"` } type Price struct { @@ -3362,7 +3386,7 @@ type RunInstancesRequest struct { // 实例所在的位置。通过该参数可以指定实例所属可用区,所属项目,所属宿主机(在专用宿主机上创建子机时指定)等属性。 Placement *Placement `json:"Placement,omitempty" name:"Placement"` - // 指定有效的[镜像](https://cloud.tencent.com/document/product/213/4940)ID,格式形如`img-xxx`。镜像类型分为四种:
  • 公共镜像
  • 自定义镜像
  • 共享镜像
  • 服务市场镜像

  • 可通过以下方式获取可用的镜像ID:
  • `公共镜像`、`自定义镜像`、`共享镜像`的镜像ID可通过登录[控制台](https://console.cloud.tencent.com/cvm/image?rid=1&imageType=PUBLIC_IMAGE)查询;`服务镜像市场`的镜像ID可通过[云市场](https://market.cloud.tencent.com/list)查询。
  • 通过调用接口 [DescribeImages](https://cloud.tencent.com/document/api/213/15715) ,取返回信息中的`ImageId`字段。
  • + // 指定有效的[镜像](https://cloud.tencent.com/document/product/213/4940)ID,格式形如`img-xxx`。镜像类型分为四种:
  • 公共镜像
  • 自定义镜像
  • 共享镜像
  • 服务市场镜像

  • 可通过以下方式获取可用的镜像ID:
  • `公共镜像`、`自定义镜像`、`共享镜像`的镜像ID可通过登录[控制台](https://console.cloud.tencent.com/cvm/image?rid=1&imageType=PUBLIC_IMAGE)查询;`服务镜像市场`的镜像ID可通过[云市场](https://market.cloud.tencent.com/list)查询。
  • 通过调用接口 [DescribeImages](https://cloud.tencent.com/document/api/213/15715) ,传入InstanceType获取当前机型支持的镜像列表,取返回信息中的`ImageId`字段。
  • ImageId *string `json:"ImageId,omitempty" name:"ImageId"` // 实例[计费类型](https://cloud.tencent.com/document/product/213/2180)。
  • PREPAID:预付费,即包年包月
  • POSTPAID_BY_HOUR:按小时后付费
  • CDHPAID:独享子机(基于专用宿主机创建,宿主机部分的资源不收费)
  • SPOTPAID:竞价付费
    默认值:POSTPAID_BY_HOUR。 @@ -3372,16 +3396,16 @@ type RunInstancesRequest struct { InstanceChargePrepaid *InstanceChargePrepaid `json:"InstanceChargePrepaid,omitempty" name:"InstanceChargePrepaid"` // 实例机型。不同实例机型指定了不同的资源规格。 - //
  • 对于付费模式为PREPAID或POSTPAID\_BY\_HOUR的实例创建,具体取值可通过调用接口[DescribeInstanceTypeConfigs](https://cloud.tencent.com/document/api/213/15749)来获得最新的规格表或参见[实例类型](https://cloud.tencent.com/document/product/213/11518)描述。若不指定该参数,则默认机型为S1.SMALL1。
  • 对于付费模式为CDHPAID的实例创建,该参数以"CDH_"为前缀,根据cpu和内存配置生成,具体形式为:CDH_XCXG,例如对于创建cpu为1核,内存为1G大小的专用宿主机的实例,该参数应该为CDH_1C1G。 + //
  • 对于付费模式为PREPAID或POSTPAID\_BY\_HOUR的实例创建,具体取值可通过调用接口[DescribeInstanceTypeConfigs](https://cloud.tencent.com/document/api/213/15749)来获得最新的规格表或参见[实例规格](https://cloud.tencent.com/document/product/213/11518)描述。若不指定该参数,则默认机型为S1.SMALL1。
  • 对于付费模式为CDHPAID的实例创建,该参数以"CDH_"为前缀,根据CPU和内存配置生成,具体形式为:CDH_XCXG,例如对于创建CPU为1核,内存为1G大小的专用宿主机的实例,该参数应该为CDH_1C1G。 InstanceType *string `json:"InstanceType,omitempty" name:"InstanceType"` // 实例系统盘配置信息。若不指定该参数,则按照系统默认值进行分配。 SystemDisk *SystemDisk `json:"SystemDisk,omitempty" name:"SystemDisk"` - // 实例数据盘配置信息。若不指定该参数,则默认不购买数据盘。支持购买的时候指定11块数据盘,其中最多包含1块LOCAL_BASIC数据盘或者LOCAL_SSD数据盘,最多包含10块CLOUD_BASIC数据盘、CLOUD_PREMIUM数据盘或者CLOUD_SSD数据盘。 + // 实例数据盘配置信息。若不指定该参数,则默认不购买数据盘。支持购买的时候指定21块数据盘,其中最多包含1块LOCAL_BASIC数据盘或者LOCAL_SSD数据盘,最多包含20块CLOUD_BASIC数据盘、CLOUD_PREMIUM数据盘或者CLOUD_SSD数据盘。 DataDisks []*DataDisk `json:"DataDisks,omitempty" name:"DataDisks" list` - // 私有网络相关信息配置。通过该参数可以指定私有网络的ID,子网ID等信息。若不指定该参数,则默认使用基础网络。若在此参数中指定了私有网络ip,表示每个实例的主网卡ip,而且InstanceCount参数必须与私有网络ip的个数一致。 + // 私有网络相关信息配置。通过该参数可以指定私有网络的ID,子网ID等信息。若不指定该参数,则默认使用基础网络。若在此参数中指定了私有网络IP,表示每个实例的主网卡IP,而且InstanceCount参数必须与私有网络IP的个数一致。 VirtualPrivateCloud *VirtualPrivateCloud `json:"VirtualPrivateCloud,omitempty" name:"VirtualPrivateCloud"` // 公网带宽相关信息设置。若不指定该参数,则默认公网带宽为0Mbps。 @@ -3402,7 +3426,7 @@ type RunInstancesRequest struct { // 增强服务。通过该参数可以指定是否开启云安全、云监控等服务。若不指定该参数,则默认开启云监控、云安全服务。 EnhancedService *EnhancedService `json:"EnhancedService,omitempty" name:"EnhancedService"` - // 用于保证请求幂等性的字符串。该字符串由客户生成,需保证不同请求之间唯一,最大值不超过64个ASCII字符。若不指定该参数,则无法保证请求的幂等性。
    更多详细信息请参阅:如何保证幂等性。 + // 用于保证请求幂等性的字符串。该字符串由客户生成,需保证不同请求之间唯一,最大值不超过64个ASCII字符。若不指定该参数,则无法保证请求的幂等性。 ClientToken *string `json:"ClientToken,omitempty" name:"ClientToken"` // 云服务器的主机名。
  • 点号(.)和短横线(-)不能作为 HostName 的首尾字符,不能连续使用。
  • Windows 实例:名字符长度为[2, 15],允许字母(不限制大小写)、数字和短横线(-)组成,不支持点号(.),不能全是数字。
  • 其他类型(Linux 等)实例:字符长度为[2, 60],允许支持多个点号,点之间为一段,每段允许字母(不限制大小写)、数字和短横线(-)组成。 @@ -3414,7 +3438,7 @@ type RunInstancesRequest struct { // 置放群组id,仅支持指定一个。 DisasterRecoverGroupIds []*string `json:"DisasterRecoverGroupIds,omitempty" name:"DisasterRecoverGroupIds" list` - // 标签描述列表。通过指定该参数可以同时绑定标签到相应的资源实例,当前仅支持绑定标签到云主机实例。 + // 标签描述列表。通过指定该参数可以同时绑定标签到相应的资源实例,当前仅支持绑定标签到云服务器实例。 TagSpecification []*TagSpecification `json:"TagSpecification,omitempty" name:"TagSpecification" list` // 实例的市场相关选项,如竞价实例相关参数,若指定实例的付费模式为竞价付费则该参数必传。 @@ -3602,7 +3626,7 @@ type StorageBlock struct { type SyncImagesRequest struct { *tchttp.BaseRequest - // 镜像ID列表 ,镜像ID可以通过如下方式获取:
  • 通过[DescribeImages](https://cloud.tencent.com/document/api/213/15715)接口返回的`ImageId`获取。
  • 通过[镜像控制台](https://console.cloud.tencent.com/cvm/image)获取。
    镜像ID必须满足限制:
  • 镜像ID对应的镜像状态必须为`NORMAL`。
  • 镜像大小小于50GB。
    镜像状态请参考[镜像数据表](/document/api/213/9452#image_state)。 + // 镜像ID列表 ,镜像ID可以通过如下方式获取:
  • 通过[DescribeImages](https://cloud.tencent.com/document/api/213/15715)接口返回的`ImageId`获取。
  • 通过[镜像控制台](https://console.cloud.tencent.com/cvm/image)获取。
    镜像ID必须满足限制:
  • 镜像ID对应的镜像状态必须为`NORMAL`。
  • 镜像大小小于50GB。
    镜像状态请参考[镜像数据表](https://cloud.tencent.com/document/product/213/15753#Image)。 ImageIds []*string `json:"ImageIds,omitempty" name:"ImageIds" list` // 目的同步地域列表;必须满足限制:
  • 不能为源地域,
  • 必须是一个合法的Region。
  • 暂不支持部分地域同步。
    具体地域参数请参考[Region](https://cloud.tencent.com/document/product/213/6091)。 @@ -3638,7 +3662,7 @@ func (r *SyncImagesResponse) FromJsonString(s string) error { type SystemDisk struct { - // 系统盘类型。系统盘类型限制详见[CVM实例配置](/document/product/213/2177)。取值范围:
  • LOCAL_BASIC:本地硬盘
  • LOCAL_SSD:本地SSD硬盘
  • CLOUD_BASIC:普通云硬盘
  • CLOUD_SSD:SSD云硬盘
  • CLOUD_PREMIUM:高性能云硬盘

    默认取值:CLOUD_BASIC。 + // 系统盘类型。系统盘类型限制详见[实例规格](/document/product/213/2177)。取值范围:
  • LOCAL_BASIC:本地硬盘
  • LOCAL_SSD:本地SSD硬盘
  • CLOUD_BASIC:普通云硬盘
  • CLOUD_SSD:SSD云硬盘
  • CLOUD_PREMIUM:高性能云硬盘

    默认取值:CLOUD_BASIC。 DiskType *string `json:"DiskType,omitempty" name:"DiskType"` // 系统盘ID。LOCAL_BASIC 和 LOCAL_SSD 类型没有ID。暂时不支持该参数。 @@ -3713,6 +3737,9 @@ type VirtualPrivateCloud struct { // 私有网络子网 IP 数组,在创建实例、修改实例vpc属性操作中可使用此参数。当前仅批量创建多台实例时支持传入相同子网的多个 IP。 PrivateIpAddresses []*string `json:"PrivateIpAddresses,omitempty" name:"PrivateIpAddresses" list` + + // 为弹性网卡指定随机生成的 IPv6 地址数量。 + Ipv6AddressCount *uint64 `json:"Ipv6AddressCount,omitempty" name:"Ipv6AddressCount"` } type ZoneInfo struct { diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312/client.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312/client.go index 150abf265..5285508b2 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312/client.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312/client.go @@ -148,6 +148,31 @@ func (c *Client) AllocateAddresses(request *AllocateAddressesRequest) (response return } +func NewAllocateIp6AddressesBandwidthRequest() (request *AllocateIp6AddressesBandwidthRequest) { + request = &AllocateIp6AddressesBandwidthRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("vpc", APIVersion, "AllocateIp6AddressesBandwidth") + return +} + +func NewAllocateIp6AddressesBandwidthResponse() (response *AllocateIp6AddressesBandwidthResponse) { + response = &AllocateIp6AddressesBandwidthResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 该接口用于给IPv6地址初次分配公网带宽 +func (c *Client) AllocateIp6AddressesBandwidth(request *AllocateIp6AddressesBandwidthRequest) (response *AllocateIp6AddressesBandwidthResponse, err error) { + if request == nil { + request = NewAllocateIp6AddressesBandwidthRequest() + } + response = NewAllocateIp6AddressesBandwidthResponse() + err = c.Send(request, response) + return +} + func NewAssignIpv6AddressesRequest() (request *AssignIpv6AddressesRequest) { request = &AssignIpv6AddressesRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -194,7 +219,7 @@ func NewAssignIpv6CidrBlockResponse() (response *AssignIpv6CidrBlockResponse) { } // 本接口(AssignIpv6CidrBlock)用于分配IPv6网段。 -// * 使用本接口前,你需要已有VPC实例,如果没有可通过接口CreateVpc创建。 +// * 使用本接口前,您需要已有VPC实例,如果没有可通过接口CreateVpc创建。 // * 每个VPC只能申请一个IPv6网段 func (c *Client) AssignIpv6CidrBlock(request *AssignIpv6CidrBlockRequest) (response *AssignIpv6CidrBlockResponse, err error) { if request == nil { @@ -359,7 +384,7 @@ func NewAttachClassicLinkVpcResponse() (response *AttachClassicLinkVpcResponse) // 本接口(AttachClassicLinkVpc)用于创建私有网络和基础网络设备互通。 // * 私有网络和基础网络设备必须在同一个地域。 -// * 私有网络和基础网络的区别详见vpc产品文档-私有网络与基础网络。 +// * 私有网络和基础网络的区别详见vpc产品文档-私有网络与基础网络。 func (c *Client) AttachClassicLinkVpc(request *AttachClassicLinkVpcRequest) (response *AttachClassicLinkVpcResponse, err error) { if request == nil { request = NewAttachClassicLinkVpcRequest() @@ -385,9 +410,9 @@ func NewAttachNetworkInterfaceResponse() (response *AttachNetworkInterfaceRespon } // 本接口(AttachNetworkInterface)用于弹性网卡绑定云主机。 -// * 一个云主机可以绑定多个弹性网卡,但只能绑定一个主网卡。更多限制信息详见弹性网卡使用限制。 +// * 一个云主机可以绑定多个弹性网卡,但只能绑定一个主网卡。更多限制信息详见弹性网卡使用限制。 // * 一个弹性网卡只能同时绑定一个云主机。 -// * 只有运行中或者已关机状态的云主机才能绑定弹性网卡,查看云主机状态详见腾讯云主机信息。 +// * 只有运行中或者已关机状态的云主机才能绑定弹性网卡,查看云主机状态详见腾讯云主机信息。 // * 弹性网卡绑定的云主机必须是私有网络的,而且云主机所在可用区必须和弹性网卡子网的可用区相同。 func (c *Client) AttachNetworkInterface(request *AttachNetworkInterfaceRequest) (response *AttachNetworkInterfaceResponse, err error) { if request == nil { @@ -566,13 +591,13 @@ func NewCreateDefaultVpcResponse() (response *CreateDefaultVpcResponse) { // 本接口(CreateDefaultVpc)用于创建默认私有网络(VPC)。 // -// 默认VPC适用于快速入门和启动公共实例,您可以像使用任何其他VPC一样使用默认VPC。如果你想创建标准VPC,即指定VPC名称、VPC网段、子网网段、子网可用区,请使用常规创建VPC接口(CreateVpc) +// 默认VPC适用于快速入门和启动公共实例,您可以像使用任何其他VPC一样使用默认VPC。如果您想创建标准VPC,即指定VPC名称、VPC网段、子网网段、子网可用区,请使用常规创建VPC接口(CreateVpc) // // 正常情况,本接口并不一定生产默认VPC,而是根据用户账号的网络属性(DescribeAccountAttributes)来决定的 // * 支持基础网络、VPC,返回VpcId为0 // * 只支持VPC,返回默认VPC信息 // -// 你也可以通过 Force 参数,强制返回默认VPC +// 您也可以通过 Force 参数,强制返回默认VPC func (c *Client) CreateDefaultVpc(request *CreateDefaultVpcRequest) (response *CreateDefaultVpcResponse, err error) { if request == nil { request = NewCreateDefaultVpcRequest() @@ -698,7 +723,7 @@ func NewCreateIp6TranslatorsResponse() (response *CreateIp6TranslatorsResponse) } // 1. 该接口用于创建IPV6转换IPV4实例,支持批量 -// 2. 同一个账户在在一个地域最多允许创建10个转换实例 +// 2. 同一个账户在一个地域最多允许创建10个转换实例 func (c *Client) CreateIp6Translators(request *CreateIp6TranslatorsRequest) (response *CreateIp6TranslatorsResponse, err error) { if request == nil { request = NewCreateIp6TranslatorsRequest() @@ -803,6 +828,7 @@ func NewCreateNetworkInterfaceResponse() (response *CreateNetworkInterfaceRespon // * 创建弹性网卡时可以指定需要申请的内网IP数量,系统会随机生成内网IP地址。 // * 一个弹性网卡支持绑定的IP地址是有限制的,更多资源限制信息详见弹性网卡使用限制。 // * 创建弹性网卡同时可以绑定已有安全组。 +// * 创建弹性网卡同时可以绑定标签, 应答里的标签列表代表添加成功的标签。 func (c *Client) CreateNetworkInterface(request *CreateNetworkInterfaceRequest) (response *CreateNetworkInterfaceResponse, err error) { if request == nil { request = NewCreateNetworkInterfaceRequest() @@ -880,7 +906,7 @@ func NewCreateSecurityGroupResponse() (response *CreateSecurityGroupResponse) { } // 本接口(CreateSecurityGroup)用于创建新的安全组(SecurityGroup)。 -// * 每个账户下每个地域的每个项目的安全组数量限制。 +// * 每个账户下每个地域的每个项目的安全组数量限制。 // * 新建的安全组的入站和出站规则默认都是全部拒绝,在创建后通常您需要再调用CreateSecurityGroupPolicies将安全组的规则设置为需要的规则。 func (c *Client) CreateSecurityGroup(request *CreateSecurityGroupRequest) (response *CreateSecurityGroupResponse, err error) { if request == nil { @@ -908,13 +934,14 @@ func NewCreateSecurityGroupPoliciesResponse() (response *CreateSecurityGroupPoli // 本接口(CreateSecurityGroupPolicies)用于创建安全组规则(SecurityGroupPolicy)。 // -// * Version安全组规则版本号,用户每次更新安全规则版本会自动加1,防止你更新的路由规则已过期,不填不考虑冲突。 -// * Protocol字段支持输入TCP, UDP, ICMP, GRE, ALL。 +// * Version安全组规则版本号,用户每次更新安全规则版本会自动加1,防止您更新的路由规则已过期,不填不考虑冲突。 +// * Protocol字段支持输入TCP, UDP, ICMP, ICMPV6, GRE, ALL。 // * CidrBlock字段允许输入符合cidr格式标准的任意字符串。(展开)在基础网络中,如果CidrBlock包含您的账户内的云服务器之外的设备在腾讯云的内网IP,并不代表此规则允许您访问这些设备,租户之间网络隔离规则优先于安全组中的内网规则。 +// * Ipv6CidrBlock字段允许输入符合IPv6 cidr格式标准的任意字符串。(展开)在基础网络中,如果Ipv6CidrBlock包含您的账户内的云服务器之外的设备在腾讯云的内网IPv6,并不代表此规则允许您访问这些设备,租户之间网络隔离规则优先于安全组中的内网规则。 // * SecurityGroupId字段允许输入与待修改的安全组位于相同项目中的安全组ID,包括这个安全组ID本身,代表安全组下所有云服务器的内网IP。使用这个字段时,这条规则用来匹配网络报文的过程中会随着被使用的这个ID所关联的云服务器变化而变化,不需要重新修改。 // * Port字段允许输入一个单独端口号,或者用减号分隔的两个端口号代表端口范围,例如80或8000-8010。只有当Protocol字段是TCP或UDP时,Port字段才被接受,即Protocol字段不是TCP或UDP时,Protocol和Port排他关系,不允许同时输入,否则会接口报错。 // * Action字段只允许输入ACCEPT或DROP。 -// * CidrBlock, SecurityGroupId, AddressTemplate三者是排他关系,不允许同时输入,Protocol + Port和ServiceTemplate二者是排他关系,不允许同时输入。 +// * CidrBlock, Ipv6CidrBlock, SecurityGroupId, AddressTemplate四者是排他关系,不允许同时输入,Protocol + Port和ServiceTemplate二者是排他关系,不允许同时输入。 // * 一次请求中只能创建单个方向的规则, 如果需要指定索引(PolicyIndex)参数, 多条规则的索引必须一致。 func (c *Client) CreateSecurityGroupPolicies(request *CreateSecurityGroupPoliciesRequest) (response *CreateSecurityGroupPoliciesResponse, err error) { if request == nil { @@ -993,7 +1020,7 @@ func NewCreateSubnetResponse() (response *CreateSubnetResponse) { // 本接口(CreateSubnet)用于创建子网。 // * 创建子网前必须创建好 VPC。 // * 子网创建成功后,子网网段不能修改。子网网段必须在VPC网段内,可以和VPC网段相同(VPC有且只有一个子网时),建议子网网段在VPC网段内,预留网段给其他子网使用。 -// * 你可以创建的最小网段子网掩码为28(有16个IP地址),最大网段子网掩码为16(65,536个IP地址)。 +// * 您可以创建的最小网段子网掩码为28(有16个IP地址),最大网段子网掩码为16(65,536个IP地址)。 // * 同一个VPC内,多个子网的网段不能重叠。 // * 子网创建后会自动关联到默认路由表。 func (c *Client) CreateSubnet(request *CreateSubnetRequest) (response *CreateSubnetResponse, err error) { @@ -1023,7 +1050,7 @@ func NewCreateSubnetsResponse() (response *CreateSubnetsResponse) { // 本接口(CreateSubnets)用于批量创建子网。 // * 创建子网前必须创建好 VPC。 // * 子网创建成功后,子网网段不能修改。子网网段必须在VPC网段内,可以和VPC网段相同(VPC有且只有一个子网时),建议子网网段在VPC网段内,预留网段给其他子网使用。 -// * 你可以创建的最小网段子网掩码为28(有16个IP地址),最大网段子网掩码为16(65,536个IP地址)。 +// * 您可以创建的最小网段子网掩码为28(有16个IP地址),最大网段子网掩码为16(65,536个IP地址)。 // * 同一个VPC内,多个子网的网段不能重叠。 // * 子网创建后会自动关联到默认路由表。 func (c *Client) CreateSubnets(request *CreateSubnetsRequest) (response *CreateSubnetsResponse, err error) { @@ -1461,7 +1488,7 @@ func NewDeleteNetworkInterfaceResponse() (response *DeleteNetworkInterfaceRespon } // 本接口(DeleteNetworkInterface)用于删除弹性网卡。 -// * 弹性网卡上绑定了云主机时,不能被删除。 +// * 弹性网卡上绑定了云服务器时,不能被删除。 // * 删除指定弹性网卡,弹性网卡必须先和子机解绑才能删除。删除之后弹性网卡上所有内网IP都将被退还。 func (c *Client) DeleteNetworkInterface(request *DeleteNetworkInterfaceRequest) (response *DeleteNetworkInterfaceResponse, err error) { if request == nil { @@ -1642,7 +1669,7 @@ func NewDeleteSubnetResponse() (response *DeleteSubnetResponse) { } // 本接口(DeleteSubnet)用于用于删除子网(Subnet)。 -// * 删除子网前,请清理该子网下所有资源,包括云主机、负载均衡、云数据、noSql、弹性网卡等资源。 +// * 删除子网前,请清理该子网下所有资源,包括云服务器、负载均衡、云数据、noSql、弹性网卡等资源。 func (c *Client) DeleteSubnet(request *DeleteSubnetRequest) (response *DeleteSubnetResponse, err error) { if request == nil { request = NewDeleteSubnetRequest() @@ -1668,7 +1695,7 @@ func NewDeleteVpcResponse() (response *DeleteVpcResponse) { } // 本接口(DeleteVpc)用于删除私有网络。 -// * 删除前请确保 VPC 内已经没有相关资源,例如云主机、云数据库、NoSQL、VPN网关、专线网关、负载均衡、对等连接、与之互通的基础网络设备等。 +// * 删除前请确保 VPC 内已经没有相关资源,例如云服务器、云数据库、NoSQL、VPN网关、专线网关、负载均衡、对等连接、与之互通的基础网络设备等。 // * 删除私有网络是不可逆的操作,请谨慎处理。 func (c *Client) DeleteVpc(request *DeleteVpcRequest) (response *DeleteVpcResponse, err error) { if request == nil { @@ -2232,6 +2259,31 @@ func (c *Client) DescribeHaVips(request *DescribeHaVipsRequest) (response *Descr return } +func NewDescribeIp6AddressesRequest() (request *DescribeIp6AddressesRequest) { + request = &DescribeIp6AddressesRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("vpc", APIVersion, "DescribeIp6Addresses") + return +} + +func NewDescribeIp6AddressesResponse() (response *DescribeIp6AddressesResponse) { + response = &DescribeIp6AddressesResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 该接口用于查询IPV6地址信息 +func (c *Client) DescribeIp6Addresses(request *DescribeIp6AddressesRequest) (response *DescribeIp6AddressesResponse, err error) { + if request == nil { + request = NewDescribeIp6AddressesRequest() + } + response = NewDescribeIp6AddressesResponse() + err = c.Send(request, response) + return +} + func NewDescribeIp6TranslatorQuotaRequest() (request *DescribeIp6TranslatorQuotaRequest) { request = &DescribeIp6TranslatorQuotaRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -2398,7 +2450,7 @@ func NewDescribeNetworkInterfaceLimitResponse() (response *DescribeNetworkInterf return } -// 本接口(DescribeNetworkInterfaceLimit)根据CVM实例ID查询弹性网卡配额,返回该CVM实例能绑定的弹性网卡配额,以及每个弹性网卡可以分配的ip配额 +// 本接口(DescribeNetworkInterfaceLimit)根据CVM实例ID查询弹性网卡配额,返回该CVM实例能绑定的弹性网卡配额,以及每个弹性网卡可以分配的IP配额 func (c *Client) DescribeNetworkInterfaceLimit(request *DescribeNetworkInterfaceLimitRequest) (response *DescribeNetworkInterfaceLimitResponse, err error) { if request == nil { request = NewDescribeNetworkInterfaceLimitRequest() @@ -3372,6 +3424,31 @@ func (c *Client) ModifyCcnAttribute(request *ModifyCcnAttributeRequest) (respons return } +func NewModifyCcnRegionBandwidthLimitsTypeRequest() (request *ModifyCcnRegionBandwidthLimitsTypeRequest) { + request = &ModifyCcnRegionBandwidthLimitsTypeRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("vpc", APIVersion, "ModifyCcnRegionBandwidthLimitsType") + return +} + +func NewModifyCcnRegionBandwidthLimitsTypeResponse() (response *ModifyCcnRegionBandwidthLimitsTypeResponse) { + response = &ModifyCcnRegionBandwidthLimitsTypeResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 本接口(ModifyCcnRegionBandwidthLimitsType)用于修改后付费云联网实例修改带宽限速策略。 +func (c *Client) ModifyCcnRegionBandwidthLimitsType(request *ModifyCcnRegionBandwidthLimitsTypeRequest) (response *ModifyCcnRegionBandwidthLimitsTypeResponse, err error) { + if request == nil { + request = NewModifyCcnRegionBandwidthLimitsTypeRequest() + } + response = NewModifyCcnRegionBandwidthLimitsTypeResponse() + err = c.Send(request, response) + return +} + func NewModifyCustomerGatewayAttributeRequest() (request *ModifyCustomerGatewayAttributeRequest) { request = &ModifyCustomerGatewayAttributeRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -3472,6 +3549,31 @@ func (c *Client) ModifyHaVipAttribute(request *ModifyHaVipAttributeRequest) (res return } +func NewModifyIp6AddressesBandwidthRequest() (request *ModifyIp6AddressesBandwidthRequest) { + request = &ModifyIp6AddressesBandwidthRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("vpc", APIVersion, "ModifyIp6AddressesBandwidth") + return +} + +func NewModifyIp6AddressesBandwidthResponse() (response *ModifyIp6AddressesBandwidthResponse) { + response = &ModifyIp6AddressesBandwidthResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 该接口用于修改IPV6地址访问internet的带宽 +func (c *Client) ModifyIp6AddressesBandwidth(request *ModifyIp6AddressesBandwidthRequest) (response *ModifyIp6AddressesBandwidthResponse, err error) { + if request == nil { + request = NewModifyIp6AddressesBandwidthRequest() + } + response = NewModifyIp6AddressesBandwidthResponse() + err = c.Send(request, response) + return +} + func NewModifyIp6RuleRequest() (request *ModifyIp6RuleRequest) { request = &ModifyIp6RuleRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -3741,12 +3843,13 @@ func NewModifySecurityGroupPoliciesResponse() (response *ModifySecurityGroupPoli // // * 接口是先删除当前所有的出入站规则,然后再添加 Egress 和 Ingress 规则,不支持自定义索引 PolicyIndex 。 // * 如果指定 SecurityGroupPolicySet.Version 为0, 表示清空所有规则,并忽略Egress和Ingress。 -// * Protocol字段支持输入TCP, UDP, ICMP, GRE, ALL。 +// * Protocol字段支持输入TCP, UDP, ICMP, ICMPV6, GRE, ALL。 // * CidrBlock字段允许输入符合cidr格式标准的任意字符串。(展开)在基础网络中,如果CidrBlock包含您的账户内的云服务器之外的设备在腾讯云的内网IP,并不代表此规则允许您访问这些设备,租户之间网络隔离规则优先于安全组中的内网规则。 +// * Ipv6CidrBlock字段允许输入符合IPv6 cidr格式标准的任意字符串。(展开)在基础网络中,如果Ipv6CidrBlock包含您的账户内的云服务器之外的设备在腾讯云的内网IPv6,并不代表此规则允许您访问这些设备,租户之间网络隔离规则优先于安全组中的内网规则。 // * SecurityGroupId字段允许输入与待修改的安全组位于相同项目中的安全组ID,包括这个安全组ID本身,代表安全组下所有云服务器的内网IP。使用这个字段时,这条规则用来匹配网络报文的过程中会随着被使用的这个ID所关联的云服务器变化而变化,不需要重新修改。 // * Port字段允许输入一个单独端口号,或者用减号分隔的两个端口号代表端口范围,例如80或8000-8010。只有当Protocol字段是TCP或UDP时,Port字段才被接受。 // * Action字段只允许输入ACCEPT或DROP。 -// * CidrBlock, SecurityGroupId, AddressTemplate三者是排他关系,不允许同时输入,Protocol + Port和ServiceTemplate二者是排他关系,不允许同时输入。 +// * CidrBlock, Ipv6CidrBlock, SecurityGroupId, AddressTemplate四者是排他关系,不允许同时输入,Protocol + Port和ServiceTemplate二者是排他关系,不允许同时输入。 func (c *Client) ModifySecurityGroupPolicies(request *ModifySecurityGroupPoliciesRequest) (response *ModifySecurityGroupPoliciesResponse, err error) { if request == nil { request = NewModifySecurityGroupPoliciesRequest() @@ -3958,6 +4061,31 @@ func (c *Client) ReleaseAddresses(request *ReleaseAddressesRequest) (response *R return } +func NewReleaseIp6AddressesBandwidthRequest() (request *ReleaseIp6AddressesBandwidthRequest) { + request = &ReleaseIp6AddressesBandwidthRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + request.Init().WithApiInfo("vpc", APIVersion, "ReleaseIp6AddressesBandwidth") + return +} + +func NewReleaseIp6AddressesBandwidthResponse() (response *ReleaseIp6AddressesBandwidthResponse) { + response = &ReleaseIp6AddressesBandwidthResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return +} + +// 该接口用于给弹性公网IPv6地址释放带宽。 +func (c *Client) ReleaseIp6AddressesBandwidth(request *ReleaseIp6AddressesBandwidthRequest) (response *ReleaseIp6AddressesBandwidthResponse, err error) { + if request == nil { + request = NewReleaseIp6AddressesBandwidthRequest() + } + response = NewReleaseIp6AddressesBandwidthResponse() + err = c.Send(request, response) + return +} + func NewRemoveBandwidthPackageResourcesRequest() (request *RemoveBandwidthPackageResourcesRequest) { request = &RemoveBandwidthPackageResourcesRequest{ BaseRequest: &tchttp.BaseRequest{}, diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312/models.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312/models.go index 0786fcd41..7aece657c 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312/models.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312/models.go @@ -69,17 +69,20 @@ type AccountAttribute struct { type AddBandwidthPackageResourcesRequest struct { *tchttp.BaseRequest - // 资源Id,形如'eip-xxxx', 'lb-xxxx' + // 资源唯一ID,当前支持EIP资源和LB资源,形如'eip-xxxx', 'lb-xxxx' ResourceIds []*string `json:"ResourceIds,omitempty" name:"ResourceIds" list` // 带宽包唯一标识ID,形如'bwp-xxxx' BandwidthPackageId *string `json:"BandwidthPackageId,omitempty" name:"BandwidthPackageId"` - // 带宽包类型,包括'BGP', 'SINGLEISP', 'ANYCAST' + // 带宽包类型,当前支持'BGP'类型,表示内部资源是BGP IP。 NetworkType *string `json:"NetworkType,omitempty" name:"NetworkType"` // 资源类型,包括'Address', 'LoadBalance' ResourceType *string `json:"ResourceType,omitempty" name:"ResourceType"` + + // 带宽包协议类型。当前支持'ipv4'和'ipv6'协议类型。 + Protocol *string `json:"Protocol,omitempty" name:"Protocol"` } func (r *AddBandwidthPackageResourcesRequest) ToJsonString() string { @@ -264,9 +267,10 @@ type AllocateAddressesRequest struct { AddressType *string `json:"AddressType,omitempty" name:"AddressType"` // Anycast发布域。 - //
    • 已开通Anycast公网加速白名单的用户,可选值:
      • ANYCAST_ZONE_GLOBAL:全球发布域(需要额外开通Anycast全球加速白名单)
      • ANYCAST_ZONE_OVERSEAS:境外发布域
      默认值:ANYCAST_ZONE_OVERSEAS。
    + //
    • 已开通Anycast公网加速白名单的用户,可选值:
      • ANYCAST_ZONE_GLOBAL:全球发布域(需要额外开通Anycast全球加速白名单)
      • ANYCAST_ZONE_OVERSEAS:境外发布域
      • [已废弃] ANYCAST_ZONE_A:发布域A(已更新为全球发布域)
      • [已废弃] ANYCAST_ZONE_B:发布域B(已更新为全球发布域)
      默认值:ANYCAST_ZONE_OVERSEAS。
    AnycastZone *string `json:"AnycastZone,omitempty" name:"AnycastZone"` + // [已废弃] AnycastEIP不再区分是否负载均衡。原参数说明如下: // AnycastEIP是否用于绑定负载均衡。 //
    • 已开通Anycast公网加速白名单的用户,可选值:
      • TRUE:AnycastEIP可绑定对象为负载均衡
      • //
      • FALSE:AnycastEIP可绑定对象为云服务器、NAT网关、高可用虚拟IP等
      默认值:FALSE。
    @@ -306,6 +310,52 @@ func (r *AllocateAddressesResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +type AllocateIp6AddressesBandwidthRequest struct { + *tchttp.BaseRequest + + // 需要开通公网访问能力的IPV6地址 + Ip6Addresses []*string `json:"Ip6Addresses,omitempty" name:"Ip6Addresses" list` + + // 带宽,单位Mbps。默认是1Mbps + InternetMaxBandwidthOut *int64 `json:"InternetMaxBandwidthOut,omitempty" name:"InternetMaxBandwidthOut"` + + // 网络计费模式。IPV6当前支持"TRAFFIC_POSTPAID_BY_HOUR",默认是"TRAFFIC_POSTPAID_BY_HOUR"。 + InternetChargeType *string `json:"InternetChargeType,omitempty" name:"InternetChargeType"` +} + +func (r *AllocateIp6AddressesBandwidthRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *AllocateIp6AddressesBandwidthRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type AllocateIp6AddressesBandwidthResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 弹性公网 IPV6 的唯一 ID 列表。 + AddressSet []*string `json:"AddressSet,omitempty" name:"AddressSet" list` + + // 异步任务TaskId。可以使用[DescribeTaskResult](https://cloud.tencent.com/document/api/215/36271)接口查询任务状态。 + TaskId *string `json:"TaskId,omitempty" name:"TaskId"` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *AllocateIp6AddressesBandwidthResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *AllocateIp6AddressesBandwidthResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type AssignIpv6AddressesRequest struct { *tchttp.BaseRequest @@ -867,7 +917,7 @@ type CheckNetDetectStateRequest struct { // DIRECTCONNECT:专线网关; // PEERCONNECTION:对等连接; // NAT:NAT网关; - // NORMAL_CVM:普通云主机; + // NORMAL_CVM:普通云服务器; NextHopType *string `json:"NextHopType,omitempty" name:"NextHopType"` // 下一跳目的网关,取值与“下一跳类型”相关: @@ -875,7 +925,7 @@ type CheckNetDetectStateRequest struct { // 下一跳类型为DIRECTCONNECT,取值专线网关ID,形如:dcg-12345678; // 下一跳类型为PEERCONNECTION,取值对等连接ID,形如:pcx-12345678; // 下一跳类型为NAT,取值Nat网关,形如:nat-12345678; - // 下一跳类型为NORMAL_CVM,取值云主机IPv4地址,形如:10.0.0.12; + // 下一跳类型为NORMAL_CVM,取值云服务器IPv4地址,形如:10.0.0.12; NextHopDestination *string `json:"NextHopDestination,omitempty" name:"NextHopDestination"` // 网络探测实例ID。形如:netd-12345678。 @@ -1027,6 +1077,12 @@ type CreateBandwidthPackageRequest struct { // 带宽包限速大小。单位:Mbps,-1表示不限速。 InternetMaxBandwidth *int64 `json:"InternetMaxBandwidth,omitempty" name:"InternetMaxBandwidth"` + + // 需要关联的标签列表。 + Tags []*Tag `json:"Tags,omitempty" name:"Tags" list` + + // 带宽包协议类型。当前支持'ipv4'和'ipv6'协议带宽包,默认值是'ipv4'。 + Protocol *string `json:"Protocol,omitempty" name:"Protocol"` } func (r *CreateBandwidthPackageRequest) ToJsonString() string { @@ -1042,10 +1098,10 @@ type CreateBandwidthPackageResponse struct { *tchttp.BaseResponse Response *struct { - // 带宽包Id + // 带宽包唯一ID BandwidthPackageId *string `json:"BandwidthPackageId,omitempty" name:"BandwidthPackageId"` - // 带宽包Ids(申请数量大于1时有效) + // 带宽包唯一ID列表(申请数量大于1时有效) BandwidthPackageIds []*string `json:"BandwidthPackageIds,omitempty" name:"BandwidthPackageIds" list` // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -1538,7 +1594,7 @@ type CreateNetDetectRequest struct { // DIRECTCONNECT:专线网关; // PEERCONNECTION:对等连接; // NAT:NAT网关; - // NORMAL_CVM:普通云主机; + // NORMAL_CVM:普通云服务器; NextHopType *string `json:"NextHopType,omitempty" name:"NextHopType"` // 下一跳目的网关,取值与“下一跳类型”相关: @@ -1546,7 +1602,7 @@ type CreateNetDetectRequest struct { // 下一跳类型为DIRECTCONNECT,取值专线网关ID,形如:dcg-12345678; // 下一跳类型为PEERCONNECTION,取值对等连接ID,形如:pcx-12345678; // 下一跳类型为NAT,取值Nat网关,形如:nat-12345678; - // 下一跳类型为NORMAL_CVM,取值云主机IPv4地址,形如:10.0.0.12; + // 下一跳类型为NORMAL_CVM,取值云服务器IPv4地址,形如:10.0.0.12; NextHopDestination *string `json:"NextHopDestination,omitempty" name:"NextHopDestination"` // 网络探测描述。 @@ -1606,6 +1662,9 @@ type CreateNetworkInterfaceRequest struct { // 指定的内网IP信息,单次最多指定10个。 PrivateIpAddresses []*PrivateIpAddressSpecification `json:"PrivateIpAddresses,omitempty" name:"PrivateIpAddresses" list` + + // 指定绑定的标签列表,例如:[{"Key": "city", "Value": "shanghai"}] + Tags []*Tag `json:"Tags,omitempty" name:"Tags" list` } func (r *CreateNetworkInterfaceRequest) ToJsonString() string { @@ -1767,7 +1826,7 @@ type CreateSecurityGroupRequest struct { // 安全组备注,最多100个字符。 GroupDescription *string `json:"GroupDescription,omitempty" name:"GroupDescription"` - // 项目id,默认0。可在qcloud控制台项目管理页面查询到。 + // 项目ID,默认0。可在qcloud控制台项目管理页面查询到。 ProjectId *string `json:"ProjectId,omitempty" name:"ProjectId"` } @@ -2233,7 +2292,7 @@ func (r *DeleteAddressTemplateResponse) FromJsonString(s string) error { type DeleteBandwidthPackageRequest struct { *tchttp.BaseRequest - // 待删除带宽包bwpId + // 待删除带宽包唯一ID BandwidthPackageId *string `json:"BandwidthPackageId,omitempty" name:"BandwidthPackageId"` } @@ -3234,7 +3293,7 @@ type DescribeBandwidthPackageQuotaResponse struct { *tchttp.BaseResponse Response *struct { - // 带宽包配额数据结构 + // 带宽包配额详细信息 QuotaSet []*Quota `json:"QuotaSet,omitempty" name:"QuotaSet" list` // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -3254,7 +3313,7 @@ func (r *DescribeBandwidthPackageQuotaResponse) FromJsonString(s string) error { type DescribeBandwidthPackagesRequest struct { *tchttp.BaseRequest - // 带宽包Id,支持批量 + // 带宽包唯一ID列表 BandwidthPackageIds []*string `json:"BandwidthPackageIds,omitempty" name:"BandwidthPackageIds" list` // 每次请求的`Filters`的上限为10。参数不支持同时指定`BandwidthPackageIds`和`Filters`。详细的过滤条件如下: @@ -3526,7 +3585,7 @@ type DescribeClassicLinkInstancesRequest struct { // 过滤条件。 //
  • vpc-id - String - (过滤条件)VPC实例ID。
  • - //
  • vm-ip - String - (过滤条件)基础网络云主机IP。
  • + //
  • vm-ip - String - (过滤条件)基础网络云服务器IP。
  • Filters []*FilterObject `json:"Filters,omitempty" name:"Filters" list` // 偏移量 @@ -3840,6 +3899,11 @@ type DescribeFlowLogsRequest struct { // 每页行数,默认为10 Limit *uint64 `json:"Limit,omitempty" name:"Limit"` + + // 过滤条件,参数不支持同时指定FlowLogIds和Filters。 + //
  • tag-key - String -是否必填:否- (过滤条件)按照标签键进行过滤。
  • + //
  • tag:tag-key - String - 是否必填:否 - (过滤条件)按照标签键值对进行过滤。 tag-key使用具体的标签键进行替换。
  • + Filters *Filter `json:"Filters,omitempty" name:"Filters"` } func (r *DescribeFlowLogsRequest) ToJsonString() string { @@ -3993,6 +4057,57 @@ func (r *DescribeHaVipsResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +type DescribeIp6AddressesRequest struct { + *tchttp.BaseRequest + + // 标识 IPV6 的唯一 ID 列表。IPV6 唯一 ID 形如:`eip-11112222`。参数不支持同时指定`Ip6AddressIds`和`Filters`。 + Ip6AddressIds []*string `json:"Ip6AddressIds,omitempty" name:"Ip6AddressIds" list` + + // 每次请求的`Filters`的上限为10,`Filter.Values`的上限为5。参数不支持同时指定`AddressIds`和`Filters`。详细的过滤条件如下: + //
  • address-ip - String - 是否必填:否 - (过滤条件)按照 EIP 的 IP 地址过滤。
  • + //
  • network-interface-id - String - 是否必填:否 - (过滤条件)按照弹性网卡的唯一ID过滤。
  • + Filters []*Filter `json:"Filters,omitempty" name:"Filters" list` + + // 偏移量,默认为0。关于`Offset`的更进一步介绍请参考 API [简介](https://cloud.tencent.com/document/api/213/11646)中的相关小节。 + Offset *int64 `json:"Offset,omitempty" name:"Offset"` + + // 返回数量,默认为20,最大值为100。关于`Limit`的更进一步介绍请参考 API [简介](https://cloud.tencent.com/document/api/213/11646)中的相关小节。 + Limit *int64 `json:"Limit,omitempty" name:"Limit"` +} + +func (r *DescribeIp6AddressesRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DescribeIp6AddressesRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DescribeIp6AddressesResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 符合条件的 IPV6 数量。 + TotalCount *int64 `json:"TotalCount,omitempty" name:"TotalCount"` + + // IPV6 详细信息列表。 + AddressSet []*Address `json:"AddressSet,omitempty" name:"AddressSet" list` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *DescribeIp6AddressesResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *DescribeIp6AddressesResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type DescribeIp6TranslatorQuotaRequest struct { *tchttp.BaseRequest @@ -4014,7 +4129,7 @@ type DescribeIp6TranslatorQuotaResponse struct { Response *struct { // 账户在指定地域的IPV6转换实例及规则配额信息 - // QUOTAID属性是TOTAL_TRANSLATOR_QUOTA,表示账户在指定地域的IPV6转换实例配额信息;QUOTAID属性是IPV6转转换实例唯一ID(形如ip6-xxxxxxxx),表示账户在该转换实例允许创建的转换规则配额 + // QUOTAID属性是TOTAL_TRANSLATOR_QUOTA,表示账户在指定地域的IPV6转换实例配额信息;QUOTAID属性是IPV6转换实例唯一ID(形如ip6-xxxxxxxx),表示账户在该转换实例允许创建的转换规则配额 QuotaSet []*Quota `json:"QuotaSet,omitempty" name:"QuotaSet" list` // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -4323,7 +4438,7 @@ type DescribeNetworkInterfaceLimitResponse struct { // 弹性网卡配额 EniQuantity *int64 `json:"EniQuantity,omitempty" name:"EniQuantity"` - // 每个弹性网卡可以分配的ip配额 + // 每个弹性网卡可以分配的IP配额 EniPrivateIpAddressQuantity *int64 `json:"EniPrivateIpAddressQuantity,omitempty" name:"EniPrivateIpAddressQuantity"` // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -4357,6 +4472,7 @@ type DescribeNetworkInterfacesRequest struct { //
  • address-ip - String - (过滤条件)内网IPv4地址。
  • //
  • tag-key - String -是否必填:否- (过滤条件)按照标签键进行过滤。使用请参考示例2
  • //
  • tag:tag-key - String - 是否必填:否 - (过滤条件)按照标签键值对进行过滤。 tag-key使用具体的标签键进行替换。使用请参考示例3。
  • + //
  • is-primary - Boolean - 是否必填:否 - (过滤条件)按照是否主网卡进行过滤。值为true时,仅过滤主网卡;值为false时,仅过滤辅助网卡;次过滤参数为提供时,同时过滤主网卡和辅助网卡。
  • Filters []*Filter `json:"Filters,omitempty" name:"Filters" list` // 偏移量,默认为0。 @@ -4576,7 +4692,7 @@ type DescribeSecurityGroupsRequest struct { // 过滤条件,参数不支持同时指定SecurityGroupIds和Filters。 //
  • security-group-id - String - (过滤条件)安全组ID。
  • - //
  • project-id - Integer - (过滤条件)项目id。
  • + //
  • project-id - Integer - (过滤条件)项目ID。
  • //
  • security-group-name - String - (过滤条件)安全组名称。
  • //
  • tag-key - String -是否必填:否- (过滤条件)按照标签键进行过滤。使用请参考示例2。
  • //
  • tag:tag-key - String - 是否必填:否 - (过滤条件)按照标签键值对进行过滤。 tag-key使用具体的标签键进行替换。使用请参考示例3。
  • @@ -5638,6 +5754,9 @@ type HaVip struct { // 创建时间。 CreatedTime *string `json:"CreatedTime,omitempty" name:"CreatedTime"` + + // 使用havip的业务标识。 + Business *string `json:"Business,omitempty" name:"Business"` } type HaVipAssociateAddressIpRequest struct { @@ -6233,7 +6352,7 @@ func (r *ModifyAddressTemplateGroupAttributeResponse) FromJsonString(s string) e type ModifyAddressesBandwidthRequest struct { *tchttp.BaseRequest - // EIP唯一标识id,形如'eip-xxxx' + // EIP唯一标识ID,形如'eip-xxxx' AddressIds []*string `json:"AddressIds,omitempty" name:"AddressIds" list` // 调整带宽目标值 @@ -6284,6 +6403,9 @@ type ModifyBandwidthPackageAttributeRequest struct { // 带宽包名称 BandwidthPackageName *string `json:"BandwidthPackageName,omitempty" name:"BandwidthPackageName"` + + // 带宽包计费模式 + ChargeType *string `json:"ChargeType,omitempty" name:"ChargeType"` } func (r *ModifyBandwidthPackageAttributeRequest) ToJsonString() string { @@ -6353,6 +6475,43 @@ func (r *ModifyCcnAttributeResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +type ModifyCcnRegionBandwidthLimitsTypeRequest struct { + *tchttp.BaseRequest + + // 云联网实例ID。 + CcnId *string `json:"CcnId,omitempty" name:"CcnId"` + + // 云联网限速类型,INTER_REGION_LIMIT:地域间限速,OUTER_REGION_LIMIT:地域出口限速。 + BandwidthLimitType *string `json:"BandwidthLimitType,omitempty" name:"BandwidthLimitType"` +} + +func (r *ModifyCcnRegionBandwidthLimitsTypeRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *ModifyCcnRegionBandwidthLimitsTypeRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type ModifyCcnRegionBandwidthLimitsTypeResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *ModifyCcnRegionBandwidthLimitsTypeResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *ModifyCcnRegionBandwidthLimitsTypeResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type ModifyCustomerGatewayAttributeRequest struct { *tchttp.BaseRequest @@ -6510,6 +6669,46 @@ func (r *ModifyHaVipAttributeResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +type ModifyIp6AddressesBandwidthRequest struct { + *tchttp.BaseRequest + + // 修改的目标带宽,单位Mbps + InternetMaxBandwidthOut *int64 `json:"InternetMaxBandwidthOut,omitempty" name:"InternetMaxBandwidthOut"` + + // IPV6地址。Ip6Addresses和Ip6AddressId必须且只能传一个 + Ip6Addresses []*string `json:"Ip6Addresses,omitempty" name:"Ip6Addresses" list` + + // IPV6地址对应的唯一ID,形如eip-xxxxxxxx。Ip6Addresses和Ip6AddressId必须且只能传一个 + Ip6AddressIds []*string `json:"Ip6AddressIds,omitempty" name:"Ip6AddressIds" list` +} + +func (r *ModifyIp6AddressesBandwidthRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *ModifyIp6AddressesBandwidthRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type ModifyIp6AddressesBandwidthResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *ModifyIp6AddressesBandwidthResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *ModifyIp6AddressesBandwidthResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type ModifyIp6RuleRequest struct { *tchttp.BaseRequest @@ -6727,7 +6926,7 @@ type ModifyNetDetectRequest struct { // DIRECTCONNECT:专线网关; // PEERCONNECTION:对等连接; // NAT:NAT网关; - // NORMAL_CVM:普通云主机; + // NORMAL_CVM:普通云服务器; NextHopType *string `json:"NextHopType,omitempty" name:"NextHopType"` // 下一跳目的网关,取值与“下一跳类型”相关: @@ -6735,7 +6934,7 @@ type ModifyNetDetectRequest struct { // 下一跳类型为DIRECTCONNECT,取值专线网关ID,形如:dcg-12345678; // 下一跳类型为PEERCONNECTION,取值对等连接ID,形如:pcx-12345678; // 下一跳类型为NAT,取值Nat网关,形如:nat-12345678; - // 下一跳类型为NORMAL_CVM,取值云主机IPv4地址,形如:10.0.0.12; + // 下一跳类型为NORMAL_CVM,取值云服务器IPv4地址,形如:10.0.0.12; NextHopDestination *string `json:"NextHopDestination,omitempty" name:"NextHopDestination"` // 网络探测描述。 @@ -6934,6 +7133,9 @@ type ModifySecurityGroupPoliciesRequest struct { // 安全组规则集合。 SecurityGroupPolicySet对象必须同时指定新的出(Egress)入(Ingress)站规则。 SecurityGroupPolicy对象不支持自定义索引(PolicyIndex)。 SecurityGroupPolicySet *SecurityGroupPolicySet `json:"SecurityGroupPolicySet,omitempty" name:"SecurityGroupPolicySet"` + + // 排序安全组标识。值为True时,支持安全组排序;SortPolicys不存在或SortPolicys为False时,为修改安全组规则。 + SortPolicys *bool `json:"SortPolicys,omitempty" name:"SortPolicys"` } func (r *ModifySecurityGroupPoliciesRequest) ToJsonString() string { @@ -7332,7 +7534,7 @@ type NetDetect struct { // DIRECTCONNECT:专线网关; // PEERCONNECTION:对等连接; // NAT:NAT网关; - // NORMAL_CVM:普通云主机; + // NORMAL_CVM:普通云服务器; NextHopType *string `json:"NextHopType,omitempty" name:"NextHopType"` // 下一跳目的网关,取值与“下一跳类型”相关: @@ -7340,7 +7542,7 @@ type NetDetect struct { // 下一跳类型为DIRECTCONNECT,取值专线网关ID,形如:dcg-12345678; // 下一跳类型为PEERCONNECTION,取值对等连接ID,形如:pcx-12345678; // 下一跳类型为NAT,取值Nat网关,形如:nat-12345678; - // 下一跳类型为NORMAL_CVM,取值云主机IPv4地址,形如:10.0.0.12; + // 下一跳类型为NORMAL_CVM,取值云服务器IPv4地址,形如:10.0.0.12; NextHopDestination *string `json:"NextHopDestination,omitempty" name:"NextHopDestination"` // 下一跳网关名称。 @@ -7437,6 +7639,9 @@ type NetworkInterface struct { // 标签键值对。 TagSet []*Tag `json:"TagSet,omitempty" name:"TagSet" list` + + // 网卡类型。0 - 弹性网卡;1 - evm弹性网卡。 + EniType *uint64 `json:"EniType,omitempty" name:"EniType"` } type NetworkInterfaceAttachment struct { @@ -7577,6 +7782,46 @@ func (r *ReleaseAddressesResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +type ReleaseIp6AddressesBandwidthRequest struct { + *tchttp.BaseRequest + + // IPV6地址。Ip6Addresses和Ip6AddressIds必须且只能传一个 + Ip6Addresses []*string `json:"Ip6Addresses,omitempty" name:"Ip6Addresses" list` + + // IPV6地址对应的唯一ID,形如eip-xxxxxxxx。Ip6Addresses和Ip6AddressIds必须且只能传一个。 + Ip6AddressIds []*string `json:"Ip6AddressIds,omitempty" name:"Ip6AddressIds" list` +} + +func (r *ReleaseIp6AddressesBandwidthRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *ReleaseIp6AddressesBandwidthRequest) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type ReleaseIp6AddressesBandwidthResponse struct { + *tchttp.BaseResponse + Response *struct { + + // 异步任务TaskId。可以使用[DescribeTaskResult](https://cloud.tencent.com/document/api/215/36271)接口查询任务状态。 + TaskId *string `json:"TaskId,omitempty" name:"TaskId"` + + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + } `json:"Response"` +} + +func (r *ReleaseIp6AddressesBandwidthResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +func (r *ReleaseIp6AddressesBandwidthResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + type RemoveBandwidthPackageResourcesRequest struct { *tchttp.BaseRequest @@ -7586,7 +7831,7 @@ type RemoveBandwidthPackageResourcesRequest struct { // 资源类型,包括‘Address’, ‘LoadBalance’ ResourceType *string `json:"ResourceType,omitempty" name:"ResourceType"` - // 资源Id,形如'eip-xxxx', 'lb-xxxx' + // 资源ID,可支持资源形如'eip-xxxx', 'lb-xxxx' ResourceIds []*string `json:"ResourceIds,omitempty" name:"ResourceIds" list` } @@ -8048,14 +8293,14 @@ type Route struct { DestinationCidrBlock *string `json:"DestinationCidrBlock,omitempty" name:"DestinationCidrBlock"` // 下一跳类型,目前我们支持的类型有: - // CVM:公网网关类型的云主机; + // CVM:公网网关类型的云服务器; // VPN:VPN网关; // DIRECTCONNECT:专线网关; // PEERCONNECTION:对等连接; // SSLVPN:sslvpn网关; // NAT:NAT网关; - // NORMAL_CVM:普通云主机; - // EIP:云主机的公网IP; + // NORMAL_CVM:普通云服务器; + // EIP:云服务器的公网IP; // CCN:云联网。 GatewayType *string `json:"GatewayType,omitempty" name:"GatewayType"` @@ -8144,6 +8389,9 @@ type SecurityGroup struct { // 安全组创建时间。 CreatedTime *string `json:"CreatedTime,omitempty" name:"CreatedTime"` + + // 标签键值对。 + TagSet []*Tag `json:"TagSet,omitempty" name:"TagSet" list` } type SecurityGroupAssociationStatistics struct { @@ -8151,7 +8399,7 @@ type SecurityGroupAssociationStatistics struct { // 安全组实例ID。 SecurityGroupId *string `json:"SecurityGroupId,omitempty" name:"SecurityGroupId"` - // 云主机实例数。 + // 云服务器实例数。 CVM *uint64 `json:"CVM,omitempty" name:"CVM"` // 数据库实例数。 @@ -8720,4 +8968,22 @@ type VpnGateway struct { // 可用区,如:ap-guangzhou-2 Zone *string `json:"Zone,omitempty" name:"Zone"` + + // 网关带宽配额信息 + VpnGatewayQuotaSet []*VpnGatewayQuota `json:"VpnGatewayQuotaSet,omitempty" name:"VpnGatewayQuotaSet" list` + + // 网关实例版本信息 + Version *string `json:"Version,omitempty" name:"Version"` +} + +type VpnGatewayQuota struct { + + // 带宽配额 + Bandwidth *uint64 `json:"Bandwidth,omitempty" name:"Bandwidth"` + + // 配额中文名称 + Cname *string `json:"Cname,omitempty" name:"Cname"` + + // 配额英文名称 + Name *string `json:"Name,omitempty" name:"Name"` } diff --git a/vendor/modules.txt b/vendor/modules.txt index 4576e350f..8c6a868dd 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -531,7 +531,7 @@ github.com/stretchr/testify/assert github.com/stretchr/testify/require # github.com/temoto/robotstxt v1.1.1 github.com/temoto/robotstxt -# github.com/tencentcloud/tencentcloud-sdk-go v3.0.97+incompatible +# github.com/tencentcloud/tencentcloud-sdk-go v3.0.121+incompatible github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http