From d050bb848c73344d5dfad1deda227987ec773d86 Mon Sep 17 00:00:00 2001 From: SevenEarth <391613297@qq.com> Date: Mon, 28 Apr 2025 15:26:37 +0800 Subject: [PATCH 1/4] add --- go.mod | 4 +- go.sum | 8 +- .../services/cbs/resource_tc_cbs_storage.go | 27 +- .../services/cbs/resource_tc_cbs_storage.md | 41 +- .../tencentcloud/cbs/v20170312/client.go | 588 +++-- .../tencentcloud/cbs/v20170312/errors.go | 3 + .../tencentcloud/cbs/v20170312/models.go | 2107 ++++++++++------- .../tencentcloud/common/client.go | 128 +- .../tencentcloud/common/credentials.go | 21 +- .../tencentcloud/common/http/request.go | 2 +- .../common/profile/client_profile.go | 39 +- .../common/profile/http_profile.go | 43 +- .../tencentcloud/common/rewindable_body.go | 44 +- .../tencentcloud/common/types.go | 16 + vendor/modules.txt | 4 +- 15 files changed, 1996 insertions(+), 1079 deletions(-) diff --git a/go.mod b/go.mod index 355c74cf45..dc30c7a97b 100644 --- a/go.mod +++ b/go.mod @@ -34,7 +34,7 @@ require ( github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/bi v1.0.824 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cam v1.0.1071 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cat v1.0.825 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.591 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.1153 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.944 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.1010 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdwch v1.0.1129 @@ -46,7 +46,7 @@ require ( github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1107 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.1033 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1135 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1149 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1153 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.1128 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.1111 diff --git a/go.sum b/go.sum index 169118a52b..d8809bee3e 100644 --- a/go.sum +++ b/go.sum @@ -837,6 +837,10 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cat v1.0.825 h1:TgO9L1y github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cat v1.0.825/go.mod h1:1yCKeIioX4D0bcIDHs3JCS5lbyzndXh1E8wHyHaCjxY= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.591 h1:TPGLjH6wqkA5Iirl6xCxFkWwrtCZ8ZmeF7ASzqUbsZA= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.591/go.mod h1:nCAGfVTXZkVnurkbjF3b0FM6RwGztE9t8D9Ms1unaKo= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.1148 h1:AUppERhfYCUu5ZAN8gbGYfHwPy1uaT7nPmhYGY5JvSY= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.1148/go.mod h1:cfP+nV0uB7FF86XyKF31edBoSJO36WFUsTc0KC80B4I= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.1153 h1:jRsdk2F5QZusPAV5+C/cwmgXoxxomOXH3o9ofeb4dFo= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.1153/go.mod h1:M83IuCDKXMqmpeOMkVtu9cloiJZsylESDjCvF0hzWQg= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.944 h1:+PGoNHlZE/WY6KWWNOByL0sYVv1ZJtSx7yXMUJNYV1Y= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.944/go.mod h1:+VHcZ4Cnzpt6vtCvNROz8xWfNWUkoAZ9UPSonbA3NWM= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdc v1.0.970 h1:0A6PwOaUeLtm4U5TR1uD91ETBgDcnfqFnsG9mwCNvlY= @@ -945,14 +949,14 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1136/go.mod github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1142/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1145 h1:DETyir/MtG+GLOD0OatzjrQTTXRguFSJo1ZtPXtbIQw= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1145/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1148 h1:+2jHvXzO0ljzTtqdnZ6ug0wMLYSaMwyr1zJa0z/DqyE= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1148/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1147 h1:6v559jM1v6A4KJinNZ28RqVZs+ipKMzCWtYWcWy+zZ4= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1147/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1148 h1:+2jHvXzO0ljzTtqdnZ6ug0wMLYSaMwyr1zJa0z/DqyE= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1148/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1149 h1:a2N8e9YHftVvJmI6PIVJBLfPuy2dn+jZ92atTsmtJuc= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1149/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1153 h1:g/aw2nrrMfO/+sdBPCFsiq+sgSFNiUK/sAci6PT4O4E= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1153/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993 h1:WlPgXldQCxt7qi5Xrc6j6zTrsXWzN5BcOGs7Irq7fwQ= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993/go.mod h1:Z9U8zNtyuyKhjS0698wqsrG/kLx1TQ5CEixXBwVe7xY= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860 h1:F3esKBIT3HW9+7Gt8cVgf8X06VdGIczpgLBUECzSEzU= diff --git a/tencentcloud/services/cbs/resource_tc_cbs_storage.go b/tencentcloud/services/cbs/resource_tc_cbs_storage.go index efd78db42c..1165759388 100644 --- a/tencentcloud/services/cbs/resource_tc_cbs_storage.go +++ b/tencentcloud/services/cbs/resource_tc_cbs_storage.go @@ -95,11 +95,18 @@ func ResourceTencentCloudCbsStorage() *schema.Resource { Default: 0, Description: "ID of the project to which the instance belongs.", }, + "kms_key_id": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + Computed: true, + Description: "Optional parameters. When purchasing an encryption disk, customize the key. When this parameter is passed in, the `encrypt` parameter need be set.", + }, "encrypt": { Type: schema.TypeBool, Optional: true, ForceNew: true, - Description: "Indicates whether CBS is encrypted.", + Description: "Pass in this parameter to create an encrypted cloud disk.", }, "tags": { Type: schema.TypeMap, @@ -156,7 +163,7 @@ func resourceTencentCloudCbsStorageCreate(d *schema.ResourceData, meta interface Zone: helper.String(d.Get("availability_zone").(string)), } - if v, ok := d.GetOk("project_id"); ok { + if v, ok := d.GetOkExists("project_id"); ok { request.Placement.ProjectId = helper.IntUint64(v.(int)) } @@ -168,11 +175,15 @@ func resourceTencentCloudCbsStorageCreate(d *schema.ResourceData, meta interface request.SnapshotId = helper.String(v.(string)) } + if v, ok := d.GetOk("kms_key_id"); ok { + request.KmsKeyId = helper.String(v.(string)) + } + if _, ok := d.GetOk("encrypt"); ok { request.Encrypt = helper.String("ENCRYPT") } - if v, ok := d.GetOk("throughput_performance"); ok { + if v, ok := d.GetOkExists("throughput_performance"); ok { request.ThroughputPerformance = helper.IntUint64(v.(int)) } @@ -182,7 +193,7 @@ func resourceTencentCloudCbsStorageCreate(d *schema.ResourceData, meta interface if chargeType == CBS_CHARGE_TYPE_PREPAID { request.DiskChargePrepaid = &cbs.DiskChargePrepaid{} - if period, ok := d.GetOk("prepaid_period"); ok { + if period, ok := d.GetOkExists("prepaid_period"); ok { periodInt64 := uint64(period.(int)) request.DiskChargePrepaid.Period = &periodInt64 } else { @@ -215,6 +226,10 @@ func resourceTencentCloudCbsStorageCreate(d *schema.ResourceData, meta interface return tccommon.RetryError(e, tccommon.InternalError) } + if response == nil || response.Response == nil { + return resource.NonRetryableError(fmt.Errorf("Create cbs failed, Response is nil.")) + } + if len(response.Response.DiskIdSet) < 1 { return resource.NonRetryableError(fmt.Errorf("storage id is nil")) } @@ -310,6 +325,10 @@ func resourceTencentCloudCbsStorageRead(d *schema.ResourceData, meta interface{} _ = d.Set("prepaid_renew_flag", storage.RenewFlag) _ = d.Set("throughput_performance", storage.ThroughputPerformance) + if storage.KmsKeyId != nil { + _ = d.Set("kms_key_id", storage.KmsKeyId) + } + if *storage.DiskChargeType == CBS_CHARGE_TYPE_PREPAID { _ = d.Set("prepaid_renew_flag", storage.RenewFlag) } diff --git a/tencentcloud/services/cbs/resource_tc_cbs_storage.md b/tencentcloud/services/cbs/resource_tc_cbs_storage.md index be1731cfbe..fbfbc836ad 100644 --- a/tencentcloud/services/cbs/resource_tc_cbs_storage.md +++ b/tencentcloud/services/cbs/resource_tc_cbs_storage.md @@ -1,5 +1,7 @@ Provides a resource to create a CBS storage. +-> **NOTE:** When creating an encrypted disk, if `kms_key_id` is not entered, the product side will generate a key by default. + Example Usage Create a standard CBS storage @@ -14,7 +16,42 @@ resource "tencentcloud_cbs_storage" "example" { encrypt = false tags = { - createBy = "terraform" + createBy = "Terraform" + } +} +``` + +Create an encrypted CBS storage with customize kms_key_id + +```hcl +resource "tencentcloud_cbs_storage" "example" { + storage_name = "tf-example" + storage_type = "CLOUD_SSD" + storage_size = 100 + availability_zone = "ap-guangzhou-3" + project_id = 0 + kms_key_id = "2e860789-7ef0-11ef-8d1c-5254001955d1" + encrypt = true + + tags = { + createBy = "Terraform" + } +} +``` + +Create an encrypted CBS storage with default generated kms_key_id + +```hcl +resource "tencentcloud_cbs_storage" "example" { + storage_name = "tf-example" + storage_type = "CLOUD_SSD" + storage_size = 100 + availability_zone = "ap-guangzhou-3" + project_id = 0 + encrypt = true + + tags = { + createBy = "Terraform" } } ``` @@ -33,7 +70,7 @@ resource "tencentcloud_cbs_storage" "example" { encrypt = false tags = { - createBy = "terraform" + createBy = "Terraform" } } ``` diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs/v20170312/client.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs/v20170312/client.go index 4942df07aa..d59594b8c2 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs/v20170312/client.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs/v20170312/client.go @@ -59,8 +59,9 @@ func NewApplyDiskBackupRequest() (request *ApplyDiskBackupRequest) { func NewApplyDiskBackupResponse() (response *ApplyDiskBackupResponse) { response = &ApplyDiskBackupResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // ApplyDiskBackup @@ -141,8 +142,9 @@ func NewApplySnapshotRequest() (request *ApplySnapshotRequest) { func NewApplySnapshotResponse() (response *ApplySnapshotResponse) { response = &ApplySnapshotResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // ApplySnapshot @@ -227,6 +229,73 @@ func (c *Client) ApplySnapshotWithContext(ctx context.Context, request *ApplySna return } +func NewApplySnapshotGroupRequest() (request *ApplySnapshotGroupRequest) { + request = &ApplySnapshotGroupRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("cbs", APIVersion, "ApplySnapshotGroup") + + + return +} + +func NewApplySnapshotGroupResponse() (response *ApplySnapshotGroupResponse) { + response = &ApplySnapshotGroupResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// ApplySnapshotGroup +// 本接口(ApplySnapshotGroup)用于回滚快照组,将实例恢复到创建快照组时刻的状态。 +// +// * 1.可选择快照组全部或部分盘进行回滚; +// +// * 2.如果回滚的盘中包含已挂载的盘,要求这些盘必须挂载在同一实例上,且要求该实例已关机才能回滚; +// +// * 3.回滚为异步操作,接口返回成功不代表回滚成功,可通过调DescribeSnapshotGroups接口查询快照组的状态。 +// +// 可能返回的错误码: +// INVALIDPARAMETER = "InvalidParameter" +// MISSINGPARAMETER = "MissingParameter" +// UNSUPPORTEDOPERATION_SNAPSHOTGROUPDISKATTACHMULTIINSTANCE = "UnsupportedOperation.SnapshotGroupDiskAttachMultiInstance" +// UNSUPPORTEDOPERATION_STATEERROR = "UnsupportedOperation.StateError" +func (c *Client) ApplySnapshotGroup(request *ApplySnapshotGroupRequest) (response *ApplySnapshotGroupResponse, err error) { + return c.ApplySnapshotGroupWithContext(context.Background(), request) +} + +// ApplySnapshotGroup +// 本接口(ApplySnapshotGroup)用于回滚快照组,将实例恢复到创建快照组时刻的状态。 +// +// * 1.可选择快照组全部或部分盘进行回滚; +// +// * 2.如果回滚的盘中包含已挂载的盘,要求这些盘必须挂载在同一实例上,且要求该实例已关机才能回滚; +// +// * 3.回滚为异步操作,接口返回成功不代表回滚成功,可通过调DescribeSnapshotGroups接口查询快照组的状态。 +// +// 可能返回的错误码: +// INVALIDPARAMETER = "InvalidParameter" +// MISSINGPARAMETER = "MissingParameter" +// UNSUPPORTEDOPERATION_SNAPSHOTGROUPDISKATTACHMULTIINSTANCE = "UnsupportedOperation.SnapshotGroupDiskAttachMultiInstance" +// UNSUPPORTEDOPERATION_STATEERROR = "UnsupportedOperation.StateError" +func (c *Client) ApplySnapshotGroupWithContext(ctx context.Context, request *ApplySnapshotGroupRequest) (response *ApplySnapshotGroupResponse, err error) { + if request == nil { + request = NewApplySnapshotGroupRequest() + } + + if c.GetCredential() == nil { + return nil, errors.New("ApplySnapshotGroup require credential") + } + + request.SetContext(ctx) + + response = NewApplySnapshotGroupResponse() + err = c.Send(request, response) + return +} + func NewAttachDisksRequest() (request *AttachDisksRequest) { request = &AttachDisksRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -241,8 +310,9 @@ func NewAttachDisksRequest() (request *AttachDisksRequest) { func NewAttachDisksResponse() (response *AttachDisksResponse) { response = &AttachDisksResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // AttachDisks @@ -255,6 +325,7 @@ func NewAttachDisksResponse() (response *AttachDisksResponse) { // * 本接口为异步接口,当挂载云盘的请求成功返回时,表示后台已发起挂载云盘的操作,可通过接口[DescribeDisks](/document/product/362/16315)来查询对应云盘的状态,如果云盘的状态由“ATTACHING”变为“ATTACHED”,则为挂载成功。 // // 可能返回的错误码: +// INTERNALERROR_COMPONENTERROR = "InternalError.ComponentError" // INTERNALERROR_RESOURCEOPFAILED = "InternalError.ResourceOpFailed" // INVALIDDISK_NOTPORTABLE = "InvalidDisk.NotPortable" // INVALIDDISK_NOTSUPPORTED = "InvalidDisk.NotSupported" @@ -288,6 +359,7 @@ func (c *Client) AttachDisks(request *AttachDisksRequest) (response *AttachDisks // * 本接口为异步接口,当挂载云盘的请求成功返回时,表示后台已发起挂载云盘的操作,可通过接口[DescribeDisks](/document/product/362/16315)来查询对应云盘的状态,如果云盘的状态由“ATTACHING”变为“ATTACHED”,则为挂载成功。 // // 可能返回的错误码: +// INTERNALERROR_COMPONENTERROR = "InternalError.ComponentError" // INTERNALERROR_RESOURCEOPFAILED = "InternalError.ResourceOpFailed" // INVALIDDISK_NOTPORTABLE = "InvalidDisk.NotPortable" // INVALIDDISK_NOTSUPPORTED = "InvalidDisk.NotSupported" @@ -337,8 +409,9 @@ func NewBindAutoSnapshotPolicyRequest() (request *BindAutoSnapshotPolicyRequest) func NewBindAutoSnapshotPolicyResponse() (response *BindAutoSnapshotPolicyResponse) { response = &BindAutoSnapshotPolicyResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // BindAutoSnapshotPolicy @@ -415,8 +488,9 @@ func NewCopySnapshotCrossRegionsRequest() (request *CopySnapshotCrossRegionsRequ func NewCopySnapshotCrossRegionsResponse() (response *CopySnapshotCrossRegionsResponse) { response = &CopySnapshotCrossRegionsResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // CopySnapshotCrossRegions @@ -491,8 +565,9 @@ func NewCreateAutoSnapshotPolicyRequest() (request *CreateAutoSnapshotPolicyRequ func NewCreateAutoSnapshotPolicyResponse() (response *CreateAutoSnapshotPolicyResponse) { response = &CreateAutoSnapshotPolicyResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // CreateAutoSnapshotPolicy @@ -559,8 +634,9 @@ func NewCreateDiskBackupRequest() (request *CreateDiskBackupRequest) { func NewCreateDiskBackupResponse() (response *CreateDiskBackupResponse) { response = &CreateDiskBackupResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // CreateDiskBackup @@ -570,7 +646,9 @@ func NewCreateDiskBackupResponse() (response *CreateDiskBackupResponse) { // INVALIDDISK_BUSY = "InvalidDisk.Busy" // INVALIDDISKID_NOTFOUND = "InvalidDiskId.NotFound" // INVALIDPARAMETER = "InvalidParameter" +// RESOURCEBUSY = "ResourceBusy" // RESOURCEINUSE = "ResourceInUse" +// RESOURCEINUSE_DISKROLLBACKING = "ResourceInUse.DiskRollbacking" // RESOURCEINSUFFICIENT_OVERQUOTA = "ResourceInsufficient.OverQuota" // RESOURCENOTFOUND_NOTFOUND = "ResourceNotFound.NotFound" // RESOURCEUNAVAILABLE_NOTSUPPORTED = "ResourceUnavailable.NotSupported" @@ -586,7 +664,9 @@ func (c *Client) CreateDiskBackup(request *CreateDiskBackupRequest) (response *C // INVALIDDISK_BUSY = "InvalidDisk.Busy" // INVALIDDISKID_NOTFOUND = "InvalidDiskId.NotFound" // INVALIDPARAMETER = "InvalidParameter" +// RESOURCEBUSY = "ResourceBusy" // RESOURCEINUSE = "ResourceInUse" +// RESOURCEINUSE_DISKROLLBACKING = "ResourceInUse.DiskRollbacking" // RESOURCEINSUFFICIENT_OVERQUOTA = "ResourceInsufficient.OverQuota" // RESOURCENOTFOUND_NOTFOUND = "ResourceNotFound.NotFound" // RESOURCEUNAVAILABLE_NOTSUPPORTED = "ResourceUnavailable.NotSupported" @@ -621,8 +701,9 @@ func NewCreateDisksRequest() (request *CreateDisksRequest) { func NewCreateDisksResponse() (response *CreateDisksResponse) { response = &CreateDisksResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // CreateDisks @@ -639,11 +720,13 @@ func NewCreateDisksResponse() (response *CreateDisksResponse) { // 可能返回的错误码: // INTERNALERROR_COMPONENTERROR = "InternalError.ComponentError" // INVALIDACCOUNT_INSUFFICIENTBALANCE = "InvalidAccount.InsufficientBalance" +// INVALIDINSTANCEID_NOTFOUND = "InvalidInstanceId.NotFound" // INVALIDPARAMETER_DISKCONFIGNOTSUPPORTED = "InvalidParameter.DiskConfigNotSupported" // INVALIDPARAMETER_PROJECTIDNOTEXIST = "InvalidParameter.ProjectIdNotExist" // INVALIDPARAMETERVALUE = "InvalidParameterValue" // INVALIDPARAMETERVALUE_LIMITEXCEEDED = "InvalidParameterValue.LimitExceeded" // INVALIDSNAPSHOTID_NOTFOUND = "InvalidSnapshotId.NotFound" +// LIMITEXCEEDED_INSTANCEATTACHEDDISK = "LimitExceeded.InstanceAttachedDisk" // MISSINGPARAMETER = "MissingParameter" // RESOURCEBUSY = "ResourceBusy" // RESOURCEINSUFFICIENT = "ResourceInsufficient" @@ -670,11 +753,13 @@ func (c *Client) CreateDisks(request *CreateDisksRequest) (response *CreateDisks // 可能返回的错误码: // INTERNALERROR_COMPONENTERROR = "InternalError.ComponentError" // INVALIDACCOUNT_INSUFFICIENTBALANCE = "InvalidAccount.InsufficientBalance" +// INVALIDINSTANCEID_NOTFOUND = "InvalidInstanceId.NotFound" // INVALIDPARAMETER_DISKCONFIGNOTSUPPORTED = "InvalidParameter.DiskConfigNotSupported" // INVALIDPARAMETER_PROJECTIDNOTEXIST = "InvalidParameter.ProjectIdNotExist" // INVALIDPARAMETERVALUE = "InvalidParameterValue" // INVALIDPARAMETERVALUE_LIMITEXCEEDED = "InvalidParameterValue.LimitExceeded" // INVALIDSNAPSHOTID_NOTFOUND = "InvalidSnapshotId.NotFound" +// LIMITEXCEEDED_INSTANCEATTACHEDDISK = "LimitExceeded.InstanceAttachedDisk" // MISSINGPARAMETER = "MissingParameter" // RESOURCEBUSY = "ResourceBusy" // RESOURCEINSUFFICIENT = "ResourceInsufficient" @@ -713,8 +798,9 @@ func NewCreateSnapshotRequest() (request *CreateSnapshotRequest) { func NewCreateSnapshotResponse() (response *CreateSnapshotResponse) { response = &CreateSnapshotResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // CreateSnapshot @@ -744,6 +830,7 @@ func NewCreateSnapshotResponse() (response *CreateSnapshotResponse) { // MISSINGPARAMETER = "MissingParameter" // RESOURCEBUSY = "ResourceBusy" // RESOURCEINUSE = "ResourceInUse" +// RESOURCEINUSE_DISKMIGRATING = "ResourceInUse.DiskMigrating" // RESOURCEINUSE_DISKROLLBACKING = "ResourceInUse.DiskRollbacking" // RESOURCEINSUFFICIENT_OVERQUOTA = "ResourceInsufficient.OverQuota" // RESOURCENOTFOUND_NOTFOUND = "ResourceNotFound.NotFound" @@ -783,6 +870,7 @@ func (c *Client) CreateSnapshot(request *CreateSnapshotRequest) (response *Creat // MISSINGPARAMETER = "MissingParameter" // RESOURCEBUSY = "ResourceBusy" // RESOURCEINUSE = "ResourceInUse" +// RESOURCEINUSE_DISKMIGRATING = "ResourceInUse.DiskMigrating" // RESOURCEINUSE_DISKROLLBACKING = "ResourceInUse.DiskRollbacking" // RESOURCEINSUFFICIENT_OVERQUOTA = "ResourceInsufficient.OverQuota" // RESOURCENOTFOUND_NOTFOUND = "ResourceNotFound.NotFound" @@ -807,6 +895,91 @@ func (c *Client) CreateSnapshotWithContext(ctx context.Context, request *CreateS return } +func NewCreateSnapshotGroupRequest() (request *CreateSnapshotGroupRequest) { + request = &CreateSnapshotGroupRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("cbs", APIVersion, "CreateSnapshotGroup") + + + return +} + +func NewCreateSnapshotGroupResponse() (response *CreateSnapshotGroupResponse) { + response = &CreateSnapshotGroupResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// CreateSnapshotGroup +// 本接口(CreateSnapshotGroup)用于创建快照组。 +// +// * 创建快照组的云硬盘列表必须挂载在同一实例上; +// +// * 可选择挂载在实例上的全部或部分盘创建快照组。 +// +// 可能返回的错误码: +// INSUFFICIENTSNAPSHOTQUOTA = "InsufficientSnapshotQuota" +// INTERNALERROR_COMPONENTERROR = "InternalError.ComponentError" +// INVALIDACCOUNT_INSUFFICIENTBALANCE = "InvalidAccount.InsufficientBalance" +// INVALIDDISK_NOTSUPPORTED = "InvalidDisk.NotSupported" +// INVALIDDISK_SNAPSHOTCREATING = "InvalidDisk.SnapshotCreating" +// INVALIDDISKID_NOTFOUND = "InvalidDiskId.NotFound" +// INVALIDPARAMETER = "InvalidParameter" +// INVALIDPARAMETERVALUE = "InvalidParameterValue" +// MISSINGPARAMETER = "MissingParameter" +// RESOURCEINUSE = "ResourceInUse" +// RESOURCEINUSE_DISKMIGRATING = "ResourceInUse.DiskMigrating" +// RESOURCEINUSE_DISKROLLBACKING = "ResourceInUse.DiskRollbacking" +// RESOURCENOTFOUND_NOTFOUND = "ResourceNotFound.NotFound" +// RESOURCEUNAVAILABLE_NOTSUPPORTED = "ResourceUnavailable.NotSupported" +// RESOURCEUNAVAILABLE_SNAPSHOTCREATING = "ResourceUnavailable.SnapshotCreating" +func (c *Client) CreateSnapshotGroup(request *CreateSnapshotGroupRequest) (response *CreateSnapshotGroupResponse, err error) { + return c.CreateSnapshotGroupWithContext(context.Background(), request) +} + +// CreateSnapshotGroup +// 本接口(CreateSnapshotGroup)用于创建快照组。 +// +// * 创建快照组的云硬盘列表必须挂载在同一实例上; +// +// * 可选择挂载在实例上的全部或部分盘创建快照组。 +// +// 可能返回的错误码: +// INSUFFICIENTSNAPSHOTQUOTA = "InsufficientSnapshotQuota" +// INTERNALERROR_COMPONENTERROR = "InternalError.ComponentError" +// INVALIDACCOUNT_INSUFFICIENTBALANCE = "InvalidAccount.InsufficientBalance" +// INVALIDDISK_NOTSUPPORTED = "InvalidDisk.NotSupported" +// INVALIDDISK_SNAPSHOTCREATING = "InvalidDisk.SnapshotCreating" +// INVALIDDISKID_NOTFOUND = "InvalidDiskId.NotFound" +// INVALIDPARAMETER = "InvalidParameter" +// INVALIDPARAMETERVALUE = "InvalidParameterValue" +// MISSINGPARAMETER = "MissingParameter" +// RESOURCEINUSE = "ResourceInUse" +// RESOURCEINUSE_DISKMIGRATING = "ResourceInUse.DiskMigrating" +// RESOURCEINUSE_DISKROLLBACKING = "ResourceInUse.DiskRollbacking" +// RESOURCENOTFOUND_NOTFOUND = "ResourceNotFound.NotFound" +// RESOURCEUNAVAILABLE_NOTSUPPORTED = "ResourceUnavailable.NotSupported" +// RESOURCEUNAVAILABLE_SNAPSHOTCREATING = "ResourceUnavailable.SnapshotCreating" +func (c *Client) CreateSnapshotGroupWithContext(ctx context.Context, request *CreateSnapshotGroupRequest) (response *CreateSnapshotGroupResponse, err error) { + if request == nil { + request = NewCreateSnapshotGroupRequest() + } + + if c.GetCredential() == nil { + return nil, errors.New("CreateSnapshotGroup require credential") + } + + request.SetContext(ctx) + + response = NewCreateSnapshotGroupResponse() + err = c.Send(request, response) + return +} + func NewDeleteAutoSnapshotPoliciesRequest() (request *DeleteAutoSnapshotPoliciesRequest) { request = &DeleteAutoSnapshotPoliciesRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -821,8 +994,9 @@ func NewDeleteAutoSnapshotPoliciesRequest() (request *DeleteAutoSnapshotPolicies func NewDeleteAutoSnapshotPoliciesResponse() (response *DeleteAutoSnapshotPoliciesResponse) { response = &DeleteAutoSnapshotPoliciesResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // DeleteAutoSnapshotPolicies @@ -833,6 +1007,8 @@ func NewDeleteAutoSnapshotPoliciesResponse() (response *DeleteAutoSnapshotPolici // * 支持批量操作。如果多个定期快照策略存在无法删除的,则操作不执行,以特定错误码返回。 // // 可能返回的错误码: +// AUTHFAILURE = "AuthFailure" +// INTERNALERROR = "InternalError" // INVALIDAUTOSNAPSHOTPOLICYID_NOTFOUND = "InvalidAutoSnapshotPolicyId.NotFound" // INVALIDPARAMETERVALUE = "InvalidParameterValue" // INVALIDPARAMETERVALUE_LIMITEXCEEDED = "InvalidParameterValue.LimitExceeded" @@ -849,6 +1025,8 @@ func (c *Client) DeleteAutoSnapshotPolicies(request *DeleteAutoSnapshotPoliciesR // * 支持批量操作。如果多个定期快照策略存在无法删除的,则操作不执行,以特定错误码返回。 // // 可能返回的错误码: +// AUTHFAILURE = "AuthFailure" +// INTERNALERROR = "InternalError" // INVALIDAUTOSNAPSHOTPOLICYID_NOTFOUND = "InvalidAutoSnapshotPolicyId.NotFound" // INVALIDPARAMETERVALUE = "InvalidParameterValue" // INVALIDPARAMETERVALUE_LIMITEXCEEDED = "InvalidParameterValue.LimitExceeded" @@ -883,8 +1061,9 @@ func NewDeleteDiskBackupsRequest() (request *DeleteDiskBackupsRequest) { func NewDeleteDiskBackupsResponse() (response *DeleteDiskBackupsResponse) { response = &DeleteDiskBackupsResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // DeleteDiskBackups @@ -892,6 +1071,7 @@ func NewDeleteDiskBackupsResponse() (response *DeleteDiskBackupsResponse) { // // 可能返回的错误码: // INVALIDPARAMETER = "InvalidParameter" +// RESOURCEBUSY = "ResourceBusy" // RESOURCENOTFOUND = "ResourceNotFound" // RESOURCENOTFOUND_NOTFOUND = "ResourceNotFound.NotFound" func (c *Client) DeleteDiskBackups(request *DeleteDiskBackupsRequest) (response *DeleteDiskBackupsResponse, err error) { @@ -903,6 +1083,7 @@ func (c *Client) DeleteDiskBackups(request *DeleteDiskBackupsRequest) (response // // 可能返回的错误码: // INVALIDPARAMETER = "InvalidParameter" +// RESOURCEBUSY = "ResourceBusy" // RESOURCENOTFOUND = "ResourceNotFound" // RESOURCENOTFOUND_NOTFOUND = "ResourceNotFound.NotFound" func (c *Client) DeleteDiskBackupsWithContext(ctx context.Context, request *DeleteDiskBackupsRequest) (response *DeleteDiskBackupsResponse, err error) { @@ -921,6 +1102,71 @@ func (c *Client) DeleteDiskBackupsWithContext(ctx context.Context, request *Dele return } +func NewDeleteSnapshotGroupRequest() (request *DeleteSnapshotGroupRequest) { + request = &DeleteSnapshotGroupRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("cbs", APIVersion, "DeleteSnapshotGroup") + + + return +} + +func NewDeleteSnapshotGroupResponse() (response *DeleteSnapshotGroupResponse) { + response = &DeleteSnapshotGroupResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// DeleteSnapshotGroup +// 本接口(DeleteSnapshotGroup)用于删除快照组,一次调用仅支持删除一个快照组。 +// +// * 默认会删除快照组内的所有快照; +// +// * 如果快照组内的快照有关联镜像,则删除失败,所有快照均不会删除;如果需要同时删除快照绑定的镜像,可传入参数DeleteBindImages等于true。 +// +// 可能返回的错误码: +// INVALIDPARAMETER = "InvalidParameter" +// INVALIDSNAPSHOTID_NOTFOUND = "InvalidSnapshotId.NotFound" +// MISSINGPARAMETER = "MissingParameter" +// UNSUPPORTEDOPERATION_SNAPSHOTHASBINDEDIMAGE = "UnsupportedOperation.SnapshotHasBindedImage" +// UNSUPPORTEDOPERATION_STATEERROR = "UnsupportedOperation.StateError" +func (c *Client) DeleteSnapshotGroup(request *DeleteSnapshotGroupRequest) (response *DeleteSnapshotGroupResponse, err error) { + return c.DeleteSnapshotGroupWithContext(context.Background(), request) +} + +// DeleteSnapshotGroup +// 本接口(DeleteSnapshotGroup)用于删除快照组,一次调用仅支持删除一个快照组。 +// +// * 默认会删除快照组内的所有快照; +// +// * 如果快照组内的快照有关联镜像,则删除失败,所有快照均不会删除;如果需要同时删除快照绑定的镜像,可传入参数DeleteBindImages等于true。 +// +// 可能返回的错误码: +// INVALIDPARAMETER = "InvalidParameter" +// INVALIDSNAPSHOTID_NOTFOUND = "InvalidSnapshotId.NotFound" +// MISSINGPARAMETER = "MissingParameter" +// UNSUPPORTEDOPERATION_SNAPSHOTHASBINDEDIMAGE = "UnsupportedOperation.SnapshotHasBindedImage" +// UNSUPPORTEDOPERATION_STATEERROR = "UnsupportedOperation.StateError" +func (c *Client) DeleteSnapshotGroupWithContext(ctx context.Context, request *DeleteSnapshotGroupRequest) (response *DeleteSnapshotGroupResponse, err error) { + if request == nil { + request = NewDeleteSnapshotGroupRequest() + } + + if c.GetCredential() == nil { + return nil, errors.New("DeleteSnapshotGroup require credential") + } + + request.SetContext(ctx) + + response = NewDeleteSnapshotGroupResponse() + err = c.Send(request, response) + return +} + func NewDeleteSnapshotsRequest() (request *DeleteSnapshotsRequest) { request = &DeleteSnapshotsRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -935,8 +1181,9 @@ func NewDeleteSnapshotsRequest() (request *DeleteSnapshotsRequest) { func NewDeleteSnapshotsResponse() (response *DeleteSnapshotsResponse) { response = &DeleteSnapshotsResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // DeleteSnapshots @@ -1013,8 +1260,9 @@ func NewDescribeAutoSnapshotPoliciesRequest() (request *DescribeAutoSnapshotPoli func NewDescribeAutoSnapshotPoliciesResponse() (response *DescribeAutoSnapshotPoliciesResponse) { response = &DescribeAutoSnapshotPoliciesResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // DescribeAutoSnapshotPolicies @@ -1079,8 +1327,9 @@ func NewDescribeDiskAssociatedAutoSnapshotPolicyRequest() (request *DescribeDisk func NewDescribeDiskAssociatedAutoSnapshotPolicyResponse() (response *DescribeDiskAssociatedAutoSnapshotPolicyResponse) { response = &DescribeDiskAssociatedAutoSnapshotPolicyResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // DescribeDiskAssociatedAutoSnapshotPolicy @@ -1131,8 +1380,9 @@ func NewDescribeDiskBackupsRequest() (request *DescribeDiskBackupsRequest) { func NewDescribeDiskBackupsResponse() (response *DescribeDiskBackupsResponse) { response = &DescribeDiskBackupsResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // DescribeDiskBackups @@ -1193,8 +1443,9 @@ func NewDescribeDiskConfigQuotaRequest() (request *DescribeDiskConfigQuotaReques func NewDescribeDiskConfigQuotaResponse() (response *DescribeDiskConfigQuotaResponse) { response = &DescribeDiskConfigQuotaResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // DescribeDiskConfigQuota @@ -1231,64 +1482,6 @@ func (c *Client) DescribeDiskConfigQuotaWithContext(ctx context.Context, request return } -func NewDescribeDiskOperationLogsRequest() (request *DescribeDiskOperationLogsRequest) { - request = &DescribeDiskOperationLogsRequest{ - BaseRequest: &tchttp.BaseRequest{}, - } - - request.Init().WithApiInfo("cbs", APIVersion, "DescribeDiskOperationLogs") - - - return -} - -func NewDescribeDiskOperationLogsResponse() (response *DescribeDiskOperationLogsResponse) { - response = &DescribeDiskOperationLogsResponse{ - BaseResponse: &tchttp.BaseResponse{}, - } - return -} - -// DescribeDiskOperationLogs -// 查询云盘操作日志功能已迁移至LookUpEvents接口(https://cloud.tencent.com/document/product/629/12359),本接口(DescribeDiskOperationLogs)即将下线,后续不再提供调用,请知悉。 -// -// 可能返回的错误码: -// INTERNALERROR_COMPONENTERROR = "InternalError.ComponentError" -// INVALIDDISKID_NOTFOUND = "InvalidDiskId.NotFound" -// INVALIDPARAMETER = "InvalidParameter" -// INVALIDPARAMETERVALUE = "InvalidParameterValue" -// INVALIDPARAMETERVALUE_LIMITEXCEEDED = "InvalidParameterValue.LimitExceeded" -// MISSINGPARAMETER = "MissingParameter" -func (c *Client) DescribeDiskOperationLogs(request *DescribeDiskOperationLogsRequest) (response *DescribeDiskOperationLogsResponse, err error) { - return c.DescribeDiskOperationLogsWithContext(context.Background(), request) -} - -// DescribeDiskOperationLogs -// 查询云盘操作日志功能已迁移至LookUpEvents接口(https://cloud.tencent.com/document/product/629/12359),本接口(DescribeDiskOperationLogs)即将下线,后续不再提供调用,请知悉。 -// -// 可能返回的错误码: -// INTERNALERROR_COMPONENTERROR = "InternalError.ComponentError" -// INVALIDDISKID_NOTFOUND = "InvalidDiskId.NotFound" -// INVALIDPARAMETER = "InvalidParameter" -// INVALIDPARAMETERVALUE = "InvalidParameterValue" -// INVALIDPARAMETERVALUE_LIMITEXCEEDED = "InvalidParameterValue.LimitExceeded" -// MISSINGPARAMETER = "MissingParameter" -func (c *Client) DescribeDiskOperationLogsWithContext(ctx context.Context, request *DescribeDiskOperationLogsRequest) (response *DescribeDiskOperationLogsResponse, err error) { - if request == nil { - request = NewDescribeDiskOperationLogsRequest() - } - - if c.GetCredential() == nil { - return nil, errors.New("DescribeDiskOperationLogs require credential") - } - - request.SetContext(ctx) - - response = NewDescribeDiskOperationLogsResponse() - err = c.Send(request, response) - return -} - func NewDescribeDiskStoragePoolRequest() (request *DescribeDiskStoragePoolRequest) { request = &DescribeDiskStoragePoolRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -1303,8 +1496,9 @@ func NewDescribeDiskStoragePoolRequest() (request *DescribeDiskStoragePoolReques func NewDescribeDiskStoragePoolResponse() (response *DescribeDiskStoragePoolResponse) { response = &DescribeDiskStoragePoolResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // DescribeDiskStoragePool @@ -1367,8 +1561,9 @@ func NewDescribeDisksRequest() (request *DescribeDisksRequest) { func NewDescribeDisksResponse() (response *DescribeDisksResponse) { response = &DescribeDisksResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // DescribeDisks @@ -1433,8 +1628,9 @@ func NewDescribeInstancesDiskNumRequest() (request *DescribeInstancesDiskNumRequ func NewDescribeInstancesDiskNumResponse() (response *DescribeInstancesDiskNumResponse) { response = &DescribeInstancesDiskNumResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // DescribeInstancesDiskNum @@ -1481,60 +1677,112 @@ func (c *Client) DescribeInstancesDiskNumWithContext(ctx context.Context, reques return } -func NewDescribeSnapshotOperationLogsRequest() (request *DescribeSnapshotOperationLogsRequest) { - request = &DescribeSnapshotOperationLogsRequest{ +func NewDescribeSnapshotGroupsRequest() (request *DescribeSnapshotGroupsRequest) { + request = &DescribeSnapshotGroupsRequest{ BaseRequest: &tchttp.BaseRequest{}, } - request.Init().WithApiInfo("cbs", APIVersion, "DescribeSnapshotOperationLogs") + request.Init().WithApiInfo("cbs", APIVersion, "DescribeSnapshotGroups") return } -func NewDescribeSnapshotOperationLogsResponse() (response *DescribeSnapshotOperationLogsResponse) { - response = &DescribeSnapshotOperationLogsResponse{ +func NewDescribeSnapshotGroupsResponse() (response *DescribeSnapshotGroupsResponse) { + response = &DescribeSnapshotGroupsResponse{ BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// DescribeSnapshotGroups +// 本接口(DescribeSnapshotGroups)用于查询快照组列表。 +// +// * 可以根据快照组ID、快照组状态、快照组关联的快照ID等来查询快照组列表,不同条件之间为与(AND)的关系,过滤信息详细请见过滤器`Filter`。 +// +// * 如果参数为空,返回当前用户一定数量(`Limit`所指定的数量,默认为20)的快照组列表。 +// +// 可能返回的错误码: +// INVALIDFILTER = "InvalidFilter" +// INVALIDPARAMETER = "InvalidParameter" +func (c *Client) DescribeSnapshotGroups(request *DescribeSnapshotGroupsRequest) (response *DescribeSnapshotGroupsResponse, err error) { + return c.DescribeSnapshotGroupsWithContext(context.Background(), request) +} + +// DescribeSnapshotGroups +// 本接口(DescribeSnapshotGroups)用于查询快照组列表。 +// +// * 可以根据快照组ID、快照组状态、快照组关联的快照ID等来查询快照组列表,不同条件之间为与(AND)的关系,过滤信息详细请见过滤器`Filter`。 +// +// * 如果参数为空,返回当前用户一定数量(`Limit`所指定的数量,默认为20)的快照组列表。 +// +// 可能返回的错误码: +// INVALIDFILTER = "InvalidFilter" +// INVALIDPARAMETER = "InvalidParameter" +func (c *Client) DescribeSnapshotGroupsWithContext(ctx context.Context, request *DescribeSnapshotGroupsRequest) (response *DescribeSnapshotGroupsResponse, err error) { + if request == nil { + request = NewDescribeSnapshotGroupsRequest() + } + + if c.GetCredential() == nil { + return nil, errors.New("DescribeSnapshotGroups require credential") + } + + request.SetContext(ctx) + + response = NewDescribeSnapshotGroupsResponse() + err = c.Send(request, response) + return +} + +func NewDescribeSnapshotOverviewRequest() (request *DescribeSnapshotOverviewRequest) { + request = &DescribeSnapshotOverviewRequest{ + BaseRequest: &tchttp.BaseRequest{}, } + + request.Init().WithApiInfo("cbs", APIVersion, "DescribeSnapshotOverview") + + return } -// DescribeSnapshotOperationLogs -// 查询快照操作日志功能已迁移至LookUpEvents接口(https://cloud.tencent.com/document/product/629/12359),本接口(DescribeSnapshotOperationLogs)即将下线,后续不再提供调用,请知悉。 +func NewDescribeSnapshotOverviewResponse() (response *DescribeSnapshotOverviewResponse) { + response = &DescribeSnapshotOverviewResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// DescribeSnapshotOverview +// 该接口用于查询用户快照使用概览,包括快照总容量、计费容量等信息。 // // 可能返回的错误码: -// INTERNALERROR_COMPONENTERROR = "InternalError.ComponentError" +// INVALIDFILTER = "InvalidFilter" // INVALIDPARAMETER = "InvalidParameter" -// INVALIDPARAMETERVALUE = "InvalidParameterValue" -// INVALIDPARAMETERVALUE_LIMITEXCEEDED = "InvalidParameterValue.LimitExceeded" -// INVALIDSNAPSHOTID_NOTFOUND = "InvalidSnapshotId.NotFound" -// MISSINGPARAMETER = "MissingParameter" -func (c *Client) DescribeSnapshotOperationLogs(request *DescribeSnapshotOperationLogsRequest) (response *DescribeSnapshotOperationLogsResponse, err error) { - return c.DescribeSnapshotOperationLogsWithContext(context.Background(), request) +func (c *Client) DescribeSnapshotOverview(request *DescribeSnapshotOverviewRequest) (response *DescribeSnapshotOverviewResponse, err error) { + return c.DescribeSnapshotOverviewWithContext(context.Background(), request) } -// DescribeSnapshotOperationLogs -// 查询快照操作日志功能已迁移至LookUpEvents接口(https://cloud.tencent.com/document/product/629/12359),本接口(DescribeSnapshotOperationLogs)即将下线,后续不再提供调用,请知悉。 +// DescribeSnapshotOverview +// 该接口用于查询用户快照使用概览,包括快照总容量、计费容量等信息。 // // 可能返回的错误码: -// INTERNALERROR_COMPONENTERROR = "InternalError.ComponentError" +// INVALIDFILTER = "InvalidFilter" // INVALIDPARAMETER = "InvalidParameter" -// INVALIDPARAMETERVALUE = "InvalidParameterValue" -// INVALIDPARAMETERVALUE_LIMITEXCEEDED = "InvalidParameterValue.LimitExceeded" -// INVALIDSNAPSHOTID_NOTFOUND = "InvalidSnapshotId.NotFound" -// MISSINGPARAMETER = "MissingParameter" -func (c *Client) DescribeSnapshotOperationLogsWithContext(ctx context.Context, request *DescribeSnapshotOperationLogsRequest) (response *DescribeSnapshotOperationLogsResponse, err error) { +func (c *Client) DescribeSnapshotOverviewWithContext(ctx context.Context, request *DescribeSnapshotOverviewRequest) (response *DescribeSnapshotOverviewResponse, err error) { if request == nil { - request = NewDescribeSnapshotOperationLogsRequest() + request = NewDescribeSnapshotOverviewRequest() } if c.GetCredential() == nil { - return nil, errors.New("DescribeSnapshotOperationLogs require credential") + return nil, errors.New("DescribeSnapshotOverview require credential") } request.SetContext(ctx) - response = NewDescribeSnapshotOperationLogsResponse() + response = NewDescribeSnapshotOverviewResponse() err = c.Send(request, response) return } @@ -1553,8 +1801,9 @@ func NewDescribeSnapshotSharePermissionRequest() (request *DescribeSnapshotShare func NewDescribeSnapshotSharePermissionResponse() (response *DescribeSnapshotSharePermissionResponse) { response = &DescribeSnapshotSharePermissionResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // DescribeSnapshotSharePermission @@ -1605,8 +1854,9 @@ func NewDescribeSnapshotsRequest() (request *DescribeSnapshotsRequest) { func NewDescribeSnapshotsResponse() (response *DescribeSnapshotsResponse) { response = &DescribeSnapshotsResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // DescribeSnapshots @@ -1671,8 +1921,9 @@ func NewDetachDisksRequest() (request *DetachDisksRequest) { func NewDetachDisksResponse() (response *DetachDisksResponse) { response = &DetachDisksResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // DetachDisks @@ -1685,6 +1936,7 @@ func NewDetachDisksResponse() (response *DetachDisksResponse) { // * 本接口为异步接口,当请求成功返回时,云盘并未立即从主机卸载,可通过接口[DescribeDisks](/document/product/362/16315)来查询对应云盘的状态,如果云盘的状态由“ATTACHED”变为“UNATTACHED”,则为卸载成功。 // // 可能返回的错误码: +// INTERNALERROR_COMPONENTERROR = "InternalError.ComponentError" // INTERNALERROR_RESOURCEOPFAILED = "InternalError.ResourceOpFailed" // INVALIDDISK_NOTPORTABLE = "InvalidDisk.NotPortable" // INVALIDDISK_NOTSUPPORTED = "InvalidDisk.NotSupported" @@ -1718,6 +1970,7 @@ func (c *Client) DetachDisks(request *DetachDisksRequest) (response *DetachDisks // * 本接口为异步接口,当请求成功返回时,云盘并未立即从主机卸载,可通过接口[DescribeDisks](/document/product/362/16315)来查询对应云盘的状态,如果云盘的状态由“ATTACHED”变为“UNATTACHED”,则为卸载成功。 // // 可能返回的错误码: +// INTERNALERROR_COMPONENTERROR = "InternalError.ComponentError" // INTERNALERROR_RESOURCEOPFAILED = "InternalError.ResourceOpFailed" // INVALIDDISK_NOTPORTABLE = "InvalidDisk.NotPortable" // INVALIDDISK_NOTSUPPORTED = "InvalidDisk.NotSupported" @@ -1767,11 +2020,16 @@ func NewGetSnapOverviewRequest() (request *GetSnapOverviewRequest) { func NewGetSnapOverviewResponse() (response *GetSnapOverviewResponse) { response = &GetSnapOverviewResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // GetSnapOverview +// 为进一步规范化API命名,该接口决定预下线,新接口命名为:DescribeSnapshotOverview +// +// +// // 获取快照概览信息 // // 可能返回的错误码: @@ -1782,6 +2040,10 @@ func (c *Client) GetSnapOverview(request *GetSnapOverviewRequest) (response *Get } // GetSnapOverview +// 为进一步规范化API命名,该接口决定预下线,新接口命名为:DescribeSnapshotOverview +// +// +// // 获取快照概览信息 // // 可能返回的错误码: @@ -1817,8 +2079,9 @@ func NewInitializeDisksRequest() (request *InitializeDisksRequest) { func NewInitializeDisksResponse() (response *InitializeDisksResponse) { response = &InitializeDisksResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // InitializeDisks @@ -1883,8 +2146,9 @@ func NewInquirePriceModifyDiskBackupQuotaRequest() (request *InquirePriceModifyD func NewInquirePriceModifyDiskBackupQuotaResponse() (response *InquirePriceModifyDiskBackupQuotaResponse) { response = &InquirePriceModifyDiskBackupQuotaResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // InquirePriceModifyDiskBackupQuota @@ -1937,8 +2201,9 @@ func NewInquirePriceModifyDiskExtraPerformanceRequest() (request *InquirePriceMo func NewInquirePriceModifyDiskExtraPerformanceResponse() (response *InquirePriceModifyDiskExtraPerformanceResponse) { response = &InquirePriceModifyDiskExtraPerformanceResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // InquirePriceModifyDiskExtraPerformance @@ -1993,8 +2258,9 @@ func NewInquiryPriceCreateDisksRequest() (request *InquiryPriceCreateDisksReques func NewInquiryPriceCreateDisksResponse() (response *InquiryPriceCreateDisksResponse) { response = &InquiryPriceCreateDisksResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // InquiryPriceCreateDisks @@ -2051,8 +2317,9 @@ func NewInquiryPriceRenewDisksRequest() (request *InquiryPriceRenewDisksRequest) func NewInquiryPriceRenewDisksResponse() (response *InquiryPriceRenewDisksResponse) { response = &InquiryPriceRenewDisksResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // InquiryPriceRenewDisks @@ -2129,17 +2396,14 @@ func NewInquiryPriceResizeDiskRequest() (request *InquiryPriceResizeDiskRequest) func NewInquiryPriceResizeDiskResponse() (response *InquiryPriceResizeDiskResponse) { response = &InquiryPriceResizeDiskResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // InquiryPriceResizeDisk // 本接口(InquiryPriceResizeDisk)用于扩容云硬盘询价。 // -// -// -// * 只支持预付费模式的云硬盘扩容询价。 -// // 可能返回的错误码: // INVALIDDISK_EXPIRE = "InvalidDisk.Expire" // INVALIDDISK_NOTPORTABLE = "InvalidDisk.NotPortable" @@ -2154,10 +2418,6 @@ func (c *Client) InquiryPriceResizeDisk(request *InquiryPriceResizeDiskRequest) // InquiryPriceResizeDisk // 本接口(InquiryPriceResizeDisk)用于扩容云硬盘询价。 // -// -// -// * 只支持预付费模式的云硬盘扩容询价。 -// // 可能返回的错误码: // INVALIDDISK_EXPIRE = "InvalidDisk.Expire" // INVALIDDISK_NOTPORTABLE = "InvalidDisk.NotPortable" @@ -2195,8 +2455,9 @@ func NewModifyAutoSnapshotPolicyAttributeRequest() (request *ModifyAutoSnapshotP func NewModifyAutoSnapshotPolicyAttributeResponse() (response *ModifyAutoSnapshotPolicyAttributeResponse) { response = &ModifyAutoSnapshotPolicyAttributeResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // ModifyAutoSnapshotPolicyAttribute @@ -2263,12 +2524,13 @@ func NewModifyDiskAttributesRequest() (request *ModifyDiskAttributesRequest) { func NewModifyDiskAttributesResponse() (response *ModifyDiskAttributesResponse) { response = &ModifyDiskAttributesResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // ModifyDiskAttributes -// * 只支持修改弹性云盘的项目ID。随云主机创建的云硬盘项目ID与云主机联动。可以通过[DescribeDisks](/document/product/362/16315)接口查询,见输出参数中Portable字段解释。 +// * 只支持修改弹性云盘的项目ID。随云主机创建的云硬盘项目ID与云主机联动。是否是弹性云盘可以通过[DescribeDisks](/document/product/362/16315)接口查询,见输出参数中Portable字段解释。 // // * “云硬盘名称”仅为方便用户自己管理之用,腾讯云并不以此名称作为提交工单或是进行云盘管理操作的依据。 // @@ -2279,6 +2541,7 @@ func NewModifyDiskAttributesResponse() (response *ModifyDiskAttributesResponse) // INVALIDACCOUNT_INSUFFICIENTBALANCE = "InvalidAccount.InsufficientBalance" // INVALIDDISK_NOTSUPPORTED = "InvalidDisk.NotSupported" // INVALIDDISKID_NOTFOUND = "InvalidDiskId.NotFound" +// INVALIDINSTANCEID_NOTFOUND = "InvalidInstanceId.NotFound" // INVALIDPARAMETER_DISKCONFIGNOTSUPPORTED = "InvalidParameter.DiskConfigNotSupported" // INVALIDPARAMETERVALUE = "InvalidParameterValue" // INVALIDPARAMETERVALUE_LIMITEXCEEDED = "InvalidParameterValue.LimitExceeded" @@ -2287,12 +2550,13 @@ func NewModifyDiskAttributesResponse() (response *ModifyDiskAttributesResponse) // RESOURCEINSUFFICIENT = "ResourceInsufficient" // RESOURCENOTFOUND_NOTFOUND = "ResourceNotFound.NotFound" // RESOURCEUNAVAILABLE_NOTSUPPORTED = "ResourceUnavailable.NotSupported" +// TRADEDEALCONFLICT = "TradeDealConflict" func (c *Client) ModifyDiskAttributes(request *ModifyDiskAttributesRequest) (response *ModifyDiskAttributesResponse, err error) { return c.ModifyDiskAttributesWithContext(context.Background(), request) } // ModifyDiskAttributes -// * 只支持修改弹性云盘的项目ID。随云主机创建的云硬盘项目ID与云主机联动。可以通过[DescribeDisks](/document/product/362/16315)接口查询,见输出参数中Portable字段解释。 +// * 只支持修改弹性云盘的项目ID。随云主机创建的云硬盘项目ID与云主机联动。是否是弹性云盘可以通过[DescribeDisks](/document/product/362/16315)接口查询,见输出参数中Portable字段解释。 // // * “云硬盘名称”仅为方便用户自己管理之用,腾讯云并不以此名称作为提交工单或是进行云盘管理操作的依据。 // @@ -2303,6 +2567,7 @@ func (c *Client) ModifyDiskAttributes(request *ModifyDiskAttributesRequest) (res // INVALIDACCOUNT_INSUFFICIENTBALANCE = "InvalidAccount.InsufficientBalance" // INVALIDDISK_NOTSUPPORTED = "InvalidDisk.NotSupported" // INVALIDDISKID_NOTFOUND = "InvalidDiskId.NotFound" +// INVALIDINSTANCEID_NOTFOUND = "InvalidInstanceId.NotFound" // INVALIDPARAMETER_DISKCONFIGNOTSUPPORTED = "InvalidParameter.DiskConfigNotSupported" // INVALIDPARAMETERVALUE = "InvalidParameterValue" // INVALIDPARAMETERVALUE_LIMITEXCEEDED = "InvalidParameterValue.LimitExceeded" @@ -2311,6 +2576,7 @@ func (c *Client) ModifyDiskAttributes(request *ModifyDiskAttributesRequest) (res // RESOURCEINSUFFICIENT = "ResourceInsufficient" // RESOURCENOTFOUND_NOTFOUND = "ResourceNotFound.NotFound" // RESOURCEUNAVAILABLE_NOTSUPPORTED = "ResourceUnavailable.NotSupported" +// TRADEDEALCONFLICT = "TradeDealConflict" func (c *Client) ModifyDiskAttributesWithContext(ctx context.Context, request *ModifyDiskAttributesRequest) (response *ModifyDiskAttributesResponse, err error) { if request == nil { request = NewModifyDiskAttributesRequest() @@ -2341,16 +2607,20 @@ func NewModifyDiskBackupQuotaRequest() (request *ModifyDiskBackupQuotaRequest) { func NewModifyDiskBackupQuotaResponse() (response *ModifyDiskBackupQuotaResponse) { response = &ModifyDiskBackupQuotaResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // ModifyDiskBackupQuota // 此接口 (ModifyDiskBackupQuota) 用于修改云硬盘备份点配额。 // // 可能返回的错误码: +// INTERNALERROR_COMPONENTERROR = "InternalError.ComponentError" // INVALIDACCOUNT_INSUFFICIENTBALANCE = "InvalidAccount.InsufficientBalance" // INVALIDPARAMETER = "InvalidParameter" +// RESOURCENOTFOUND_NOTFOUND = "ResourceNotFound.NotFound" +// RESOURCEUNAVAILABLE_ATTACHED = "ResourceUnavailable.Attached" // RESOURCEUNAVAILABLE_NOTSUPPORTED = "ResourceUnavailable.NotSupported" // TRADEDEALCONFLICT = "TradeDealConflict" // UNAUTHORIZEDOPERATION_NOTHAVEPAYMENTRIGHT = "UnauthorizedOperation.NotHavePaymentRight" @@ -2362,8 +2632,11 @@ func (c *Client) ModifyDiskBackupQuota(request *ModifyDiskBackupQuotaRequest) (r // 此接口 (ModifyDiskBackupQuota) 用于修改云硬盘备份点配额。 // // 可能返回的错误码: +// INTERNALERROR_COMPONENTERROR = "InternalError.ComponentError" // INVALIDACCOUNT_INSUFFICIENTBALANCE = "InvalidAccount.InsufficientBalance" // INVALIDPARAMETER = "InvalidParameter" +// RESOURCENOTFOUND_NOTFOUND = "ResourceNotFound.NotFound" +// RESOURCEUNAVAILABLE_ATTACHED = "ResourceUnavailable.Attached" // RESOURCEUNAVAILABLE_NOTSUPPORTED = "ResourceUnavailable.NotSupported" // TRADEDEALCONFLICT = "TradeDealConflict" // UNAUTHORIZEDOPERATION_NOTHAVEPAYMENTRIGHT = "UnauthorizedOperation.NotHavePaymentRight" @@ -2397,8 +2670,9 @@ func NewModifyDiskExtraPerformanceRequest() (request *ModifyDiskExtraPerformance func NewModifyDiskExtraPerformanceResponse() (response *ModifyDiskExtraPerformanceResponse) { response = &ModifyDiskExtraPerformanceResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // ModifyDiskExtraPerformance @@ -2406,7 +2680,7 @@ func NewModifyDiskExtraPerformanceResponse() (response *ModifyDiskExtraPerforman // // // -// * 目前仅支持极速型SSD云硬盘(CLOUD_TSSD)和高性能SSD云硬盘(CLOUD_HSSD)。 +// * 目前仅支持增强型SSD云硬盘(CLOUD_HSSD)和极速型SSD云硬盘(CLOUD_TSSD)。 // // 可能返回的错误码: // INVALIDACCOUNT_INSUFFICIENTBALANCE = "InvalidAccount.InsufficientBalance" @@ -2426,7 +2700,7 @@ func (c *Client) ModifyDiskExtraPerformance(request *ModifyDiskExtraPerformanceR // // // -// * 目前仅支持极速型SSD云硬盘(CLOUD_TSSD)和高性能SSD云硬盘(CLOUD_HSSD)。 +// * 目前仅支持增强型SSD云硬盘(CLOUD_HSSD)和极速型SSD云硬盘(CLOUD_TSSD)。 // // 可能返回的错误码: // INVALIDACCOUNT_INSUFFICIENTBALANCE = "InvalidAccount.InsufficientBalance" @@ -2467,20 +2741,17 @@ func NewModifyDisksChargeTypeRequest() (request *ModifyDisksChargeTypeRequest) { func NewModifyDisksChargeTypeResponse() (response *ModifyDisksChargeTypeResponse) { response = &ModifyDisksChargeTypeResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // ModifyDisksChargeType -// 接口请求域名: cbs.tencentcloudapi.com 。 -// -// -// -// 本接口 (ModifyDisksChargeType) 用于切换云盘的计费模式。 +// 本接口 (ModifyDisksChargeType) 用于切换云硬盘的计费模式。 // // // -// 非弹性云盘不支持此接口,请通过修改实例计费模式接口将实例连同非弹性云盘一起转换。 +// 非弹性云硬盘不支持此接口,请通过修改实例计费模式接口将实例连同非弹性云硬盘一起转换。 // // 默认接口请求频率限制:10次/秒。 // @@ -2503,15 +2774,11 @@ func (c *Client) ModifyDisksChargeType(request *ModifyDisksChargeTypeRequest) (r } // ModifyDisksChargeType -// 接口请求域名: cbs.tencentcloudapi.com 。 +// 本接口 (ModifyDisksChargeType) 用于切换云硬盘的计费模式。 // // // -// 本接口 (ModifyDisksChargeType) 用于切换云盘的计费模式。 -// -// -// -// 非弹性云盘不支持此接口,请通过修改实例计费模式接口将实例连同非弹性云盘一起转换。 +// 非弹性云硬盘不支持此接口,请通过修改实例计费模式接口将实例连同非弹性云硬盘一起转换。 // // 默认接口请求频率限制:10次/秒。 // @@ -2559,8 +2826,9 @@ func NewModifyDisksRenewFlagRequest() (request *ModifyDisksRenewFlagRequest) { func NewModifyDisksRenewFlagResponse() (response *ModifyDisksRenewFlagResponse) { response = &ModifyDisksRenewFlagResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // ModifyDisksRenewFlag @@ -2569,6 +2837,7 @@ func NewModifyDisksRenewFlagResponse() (response *ModifyDisksRenewFlagResponse) // 可能返回的错误码: // INVALIDDISKID_NOTFOUND = "InvalidDiskId.NotFound" // INVALIDPARAMETERVALUE = "InvalidParameterValue" +// INVALIDPARAMETERVALUE_LIMITEXCEEDED = "InvalidParameterValue.LimitExceeded" // MISSINGPARAMETER = "MissingParameter" // RESOURCENOTFOUND_NOTFOUND = "ResourceNotFound.NotFound" // UNAUTHORIZEDOPERATION_MFAEXPIRED = "UnauthorizedOperation.MFAExpired" @@ -2582,6 +2851,7 @@ func (c *Client) ModifyDisksRenewFlag(request *ModifyDisksRenewFlagRequest) (res // 可能返回的错误码: // INVALIDDISKID_NOTFOUND = "InvalidDiskId.NotFound" // INVALIDPARAMETERVALUE = "InvalidParameterValue" +// INVALIDPARAMETERVALUE_LIMITEXCEEDED = "InvalidParameterValue.LimitExceeded" // MISSINGPARAMETER = "MissingParameter" // RESOURCENOTFOUND_NOTFOUND = "ResourceNotFound.NotFound" // UNAUTHORIZEDOPERATION_MFAEXPIRED = "UnauthorizedOperation.MFAExpired" @@ -2615,8 +2885,9 @@ func NewModifySnapshotAttributeRequest() (request *ModifySnapshotAttributeReques func NewModifySnapshotAttributeResponse() (response *ModifySnapshotAttributeResponse) { response = &ModifySnapshotAttributeResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // ModifySnapshotAttribute @@ -2624,9 +2895,9 @@ func NewModifySnapshotAttributeResponse() (response *ModifySnapshotAttributeResp // // // -// * 当前仅支持修改快照名称及将非永久快照修改为永久快照。 +// * 本接口支持修改快照名称及到期时间,以及将非永久快照修改为永久快照。 // -// * “快照名称”仅为方便用户自己管理之用,腾讯云并不以此名称作为提交工单或是进行快照管理操作的依据。 +// * “快照名称”仅为方便用户管理之用,腾讯云并不以此名称作为提交工单或是进行快照管理操作的依据。 // // 可能返回的错误码: // INVALIDPARAMETERVALUE = "InvalidParameterValue" @@ -2644,9 +2915,9 @@ func (c *Client) ModifySnapshotAttribute(request *ModifySnapshotAttributeRequest // // // -// * 当前仅支持修改快照名称及将非永久快照修改为永久快照。 +// * 本接口支持修改快照名称及到期时间,以及将非永久快照修改为永久快照。 // -// * “快照名称”仅为方便用户自己管理之用,腾讯云并不以此名称作为提交工单或是进行快照管理操作的依据。 +// * “快照名称”仅为方便用户管理之用,腾讯云并不以此名称作为提交工单或是进行快照管理操作的依据。 // // 可能返回的错误码: // INVALIDPARAMETERVALUE = "InvalidParameterValue" @@ -2685,8 +2956,9 @@ func NewModifySnapshotsSharePermissionRequest() (request *ModifySnapshotsSharePe func NewModifySnapshotsSharePermissionResponse() (response *ModifySnapshotsSharePermissionResponse) { response = &ModifySnapshotsSharePermissionResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // ModifySnapshotsSharePermission @@ -2765,8 +3037,9 @@ func NewRenewDiskRequest() (request *RenewDiskRequest) { func NewRenewDiskResponse() (response *RenewDiskResponse) { response = &RenewDiskResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // RenewDisk @@ -2851,8 +3124,9 @@ func NewResizeDiskRequest() (request *ResizeDiskRequest) { func NewResizeDiskResponse() (response *ResizeDiskResponse) { response = &ResizeDiskResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // ResizeDisk @@ -2862,7 +3136,7 @@ func NewResizeDiskResponse() (response *ResizeDiskResponse) { // // * 只支持扩容弹性云盘。云硬盘类型可以通过[DescribeDisks](/document/product/362/16315)接口查询,见输出参数中Portable字段解释。非弹性云硬盘需通过[ResizeInstanceDisks](/document/product/213/15731)接口扩容。 // -// * 本接口为异步接口,接口成功返回时,云盘并未立即扩容到指定大小,可通过接口[DescribeDisks](/document/product/362/16315)来查询对应云盘的状态,如果云盘的状态为“EXPANDING”,表示正在扩容中。 +// * 本接口为异步接口,接口成功返回时,云盘并未立即扩容到指定大小,可通过接口[DescribeDisks](/document/product/362/16315)来查询对应云盘的状态,如果云盘的状态为“EXPANDING”,表示正在扩容中。 // // 可能返回的错误码: // INTERNALERROR_COMPONENTERROR = "InternalError.ComponentError" @@ -2878,6 +3152,7 @@ func NewResizeDiskResponse() (response *ResizeDiskResponse) { // RESOURCENOTFOUND_NOTFOUND = "ResourceNotFound.NotFound" // RESOURCEUNAVAILABLE_EXPIRE = "ResourceUnavailable.Expire" // RESOURCEUNAVAILABLE_NOTSUPPORTED = "ResourceUnavailable.NotSupported" +// RESOURCEUNAVAILABLE_SNAPSHOTCREATING = "ResourceUnavailable.SnapshotCreating" // TRADEDEALCONFLICT = "TradeDealConflict" // UNAUTHORIZEDOPERATION_NOTHAVEPAYMENTRIGHT = "UnauthorizedOperation.NotHavePaymentRight" // UNSUPPORTEDOPERATION_INSTANCENOTSTOPPED = "UnsupportedOperation.InstanceNotStopped" @@ -2892,7 +3167,7 @@ func (c *Client) ResizeDisk(request *ResizeDiskRequest) (response *ResizeDiskRes // // * 只支持扩容弹性云盘。云硬盘类型可以通过[DescribeDisks](/document/product/362/16315)接口查询,见输出参数中Portable字段解释。非弹性云硬盘需通过[ResizeInstanceDisks](/document/product/213/15731)接口扩容。 // -// * 本接口为异步接口,接口成功返回时,云盘并未立即扩容到指定大小,可通过接口[DescribeDisks](/document/product/362/16315)来查询对应云盘的状态,如果云盘的状态为“EXPANDING”,表示正在扩容中。 +// * 本接口为异步接口,接口成功返回时,云盘并未立即扩容到指定大小,可通过接口[DescribeDisks](/document/product/362/16315)来查询对应云盘的状态,如果云盘的状态为“EXPANDING”,表示正在扩容中。 // // 可能返回的错误码: // INTERNALERROR_COMPONENTERROR = "InternalError.ComponentError" @@ -2908,6 +3183,7 @@ func (c *Client) ResizeDisk(request *ResizeDiskRequest) (response *ResizeDiskRes // RESOURCENOTFOUND_NOTFOUND = "ResourceNotFound.NotFound" // RESOURCEUNAVAILABLE_EXPIRE = "ResourceUnavailable.Expire" // RESOURCEUNAVAILABLE_NOTSUPPORTED = "ResourceUnavailable.NotSupported" +// RESOURCEUNAVAILABLE_SNAPSHOTCREATING = "ResourceUnavailable.SnapshotCreating" // TRADEDEALCONFLICT = "TradeDealConflict" // UNAUTHORIZEDOPERATION_NOTHAVEPAYMENTRIGHT = "UnauthorizedOperation.NotHavePaymentRight" // UNSUPPORTEDOPERATION_INSTANCENOTSTOPPED = "UnsupportedOperation.InstanceNotStopped" @@ -2941,8 +3217,9 @@ func NewTerminateDisksRequest() (request *TerminateDisksRequest) { func NewTerminateDisksResponse() (response *TerminateDisksResponse) { response = &TerminateDisksResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // TerminateDisks @@ -2961,6 +3238,7 @@ func NewTerminateDisksResponse() (response *TerminateDisksResponse) { // INTERNALERROR_FAILQUERYRESOURCE = "InternalError.FailQueryResource" // INVALIDDISK_EXPIRE = "InvalidDisk.Expire" // INVALIDPARAMETERVALUE = "InvalidParameterValue" +// INVALIDPARAMETERVALUE_LIMITEXCEEDED = "InvalidParameterValue.LimitExceeded" // MISSINGPARAMETER = "MissingParameter" // RESOURCEBUSY = "ResourceBusy" // RESOURCEINSUFFICIENT_OVERREFUNDQUOTA = "ResourceInsufficient.OverRefundQuota" @@ -2990,6 +3268,7 @@ func (c *Client) TerminateDisks(request *TerminateDisksRequest) (response *Termi // INTERNALERROR_FAILQUERYRESOURCE = "InternalError.FailQueryResource" // INVALIDDISK_EXPIRE = "InvalidDisk.Expire" // INVALIDPARAMETERVALUE = "InvalidParameterValue" +// INVALIDPARAMETERVALUE_LIMITEXCEEDED = "InvalidParameterValue.LimitExceeded" // MISSINGPARAMETER = "MissingParameter" // RESOURCEBUSY = "ResourceBusy" // RESOURCEINSUFFICIENT_OVERREFUNDQUOTA = "ResourceInsufficient.OverRefundQuota" @@ -3029,8 +3308,9 @@ func NewUnbindAutoSnapshotPolicyRequest() (request *UnbindAutoSnapshotPolicyRequ func NewUnbindAutoSnapshotPolicyResponse() (response *UnbindAutoSnapshotPolicyResponse) { response = &UnbindAutoSnapshotPolicyResponse{ BaseResponse: &tchttp.BaseResponse{}, - } + } return + } // UnbindAutoSnapshotPolicy diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs/v20170312/errors.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs/v20170312/errors.go index 06c76099f1..222a08028c 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs/v20170312/errors.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs/v20170312/errors.go @@ -218,6 +218,9 @@ const ( // 该快照已经共享,请先解除共享。 UNSUPPORTEDOPERATION_SNAPHASSHARED = "UnsupportedOperation.SnapHasShared" + // 快照组关联快照的原云硬盘未挂载在同一实例上。 + UNSUPPORTEDOPERATION_SNAPSHOTGROUPDISKATTACHMULTIINSTANCE = "UnsupportedOperation.SnapshotGroupDiskAttachMultiInstance" + // 该快照创建了自定义快照,请先删除对应镜像。 UNSUPPORTEDOPERATION_SNAPSHOTHASBINDEDIMAGE = "UnsupportedOperation.SnapshotHasBindedImage" diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs/v20170312/models.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs/v20170312/models.go index b6b493f02e..328719733a 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs/v20170312/models.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs/v20170312/models.go @@ -15,28 +15,62 @@ package v20170312 import ( - "encoding/json" tcerr "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors" tchttp "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http" + "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/json" ) +type AdvancedRetentionPolicy struct { + // 保留最新快照Days天内的每天最新的一个快照,取值范围:[0, 100] + Days *uint64 `json:"Days,omitnil,omitempty" name:"Days"` + + // 保留最新快照Weeks周内的每周最新的一个快照,取值范围:[0, 100] + Weeks *uint64 `json:"Weeks,omitnil,omitempty" name:"Weeks"` + + // 保留最新快照Months月内的每月最新的一个快照, 取值范围:[0, 100] + Months *uint64 `json:"Months,omitnil,omitempty" name:"Months"` + + // 保留最新快照Years年内的每年最新的一个快照,取值范围:[0, 100] + Years *uint64 `json:"Years,omitnil,omitempty" name:"Years"` +} + +type ApplyDisk struct { + // 快照组关联的快照ID。 + SnapshotId *string `json:"SnapshotId,omitnil,omitempty" name:"SnapshotId"` + + // 快照组关联快照对应的原云硬盘ID。 + DiskId *string `json:"DiskId,omitnil,omitempty" name:"DiskId"` +} + // Predefined struct for user type ApplyDiskBackupRequestParams struct { // 云硬盘备份点ID,可通过 DescribeDiskBackups 查询。 - DiskBackupId *string `json:"DiskBackupId,omitempty" name:"DiskBackupId"` + DiskBackupId *string `json:"DiskBackupId,omitnil,omitempty" name:"DiskBackupId"` // 云硬盘备份点原云硬盘ID,可通过DescribeDisks接口查询。 - DiskId *string `json:"DiskId,omitempty" name:"DiskId"` + DiskId *string `json:"DiskId,omitnil,omitempty" name:"DiskId"` + + // 回滚云硬盘备份点前是否自动关机,默认为FALSE,表示不自动关机 + AutoStopInstance *bool `json:"AutoStopInstance,omitnil,omitempty" name:"AutoStopInstance"` + + // 回滚云硬盘备份点完成后是否自动开机,默认为FALSE,表示不自动开机 + AutoStartInstance *bool `json:"AutoStartInstance,omitnil,omitempty" name:"AutoStartInstance"` } type ApplyDiskBackupRequest struct { *tchttp.BaseRequest // 云硬盘备份点ID,可通过 DescribeDiskBackups 查询。 - DiskBackupId *string `json:"DiskBackupId,omitempty" name:"DiskBackupId"` + DiskBackupId *string `json:"DiskBackupId,omitnil,omitempty" name:"DiskBackupId"` // 云硬盘备份点原云硬盘ID,可通过DescribeDisks接口查询。 - DiskId *string `json:"DiskId,omitempty" name:"DiskId"` + DiskId *string `json:"DiskId,omitnil,omitempty" name:"DiskId"` + + // 回滚云硬盘备份点前是否自动关机,默认为FALSE,表示不自动关机 + AutoStopInstance *bool `json:"AutoStopInstance,omitnil,omitempty" name:"AutoStopInstance"` + + // 回滚云硬盘备份点完成后是否自动开机,默认为FALSE,表示不自动开机 + AutoStartInstance *bool `json:"AutoStartInstance,omitnil,omitempty" name:"AutoStartInstance"` } func (r *ApplyDiskBackupRequest) ToJsonString() string { @@ -53,6 +87,8 @@ func (r *ApplyDiskBackupRequest) FromJsonString(s string) error { } delete(f, "DiskBackupId") delete(f, "DiskId") + delete(f, "AutoStopInstance") + delete(f, "AutoStartInstance") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ApplyDiskBackupRequest has unknown keys!", "") } @@ -61,8 +97,8 @@ func (r *ApplyDiskBackupRequest) FromJsonString(s string) error { // Predefined struct for user type ApplyDiskBackupResponseParams struct { - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type ApplyDiskBackupResponse struct { @@ -81,35 +117,110 @@ func (r *ApplyDiskBackupResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +// Predefined struct for user +type ApplySnapshotGroupRequestParams struct { + // 回滚的快照组ID。 + SnapshotGroupId *string `json:"SnapshotGroupId,omitnil,omitempty" name:"SnapshotGroupId"` + + // 回滚的快照组关联的快照ID,及快照对应的原云硬盘ID列表。 + ApplyDisks []*ApplyDisk `json:"ApplyDisks,omitnil,omitempty" name:"ApplyDisks"` + + // 回滚前是否执行自动关机。 + AutoStopInstance *bool `json:"AutoStopInstance,omitnil,omitempty" name:"AutoStopInstance"` + + // 回滚完成后是否自动开机。 + AutoStartInstance *bool `json:"AutoStartInstance,omitnil,omitempty" name:"AutoStartInstance"` +} + +type ApplySnapshotGroupRequest struct { + *tchttp.BaseRequest + + // 回滚的快照组ID。 + SnapshotGroupId *string `json:"SnapshotGroupId,omitnil,omitempty" name:"SnapshotGroupId"` + + // 回滚的快照组关联的快照ID,及快照对应的原云硬盘ID列表。 + ApplyDisks []*ApplyDisk `json:"ApplyDisks,omitnil,omitempty" name:"ApplyDisks"` + + // 回滚前是否执行自动关机。 + AutoStopInstance *bool `json:"AutoStopInstance,omitnil,omitempty" name:"AutoStopInstance"` + + // 回滚完成后是否自动开机。 + AutoStartInstance *bool `json:"AutoStartInstance,omitnil,omitempty" name:"AutoStartInstance"` +} + +func (r *ApplySnapshotGroupRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *ApplySnapshotGroupRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "SnapshotGroupId") + delete(f, "ApplyDisks") + delete(f, "AutoStopInstance") + delete(f, "AutoStartInstance") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ApplySnapshotGroupRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type ApplySnapshotGroupResponseParams struct { + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type ApplySnapshotGroupResponse struct { + *tchttp.BaseResponse + Response *ApplySnapshotGroupResponseParams `json:"Response"` +} + +func (r *ApplySnapshotGroupResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *ApplySnapshotGroupResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + // Predefined struct for user type ApplySnapshotRequestParams struct { // 快照ID, 可通过[DescribeSnapshots](/document/product/362/15647)查询。 - SnapshotId *string `json:"SnapshotId,omitempty" name:"SnapshotId"` + SnapshotId *string `json:"SnapshotId,omitnil,omitempty" name:"SnapshotId"` // 快照原云硬盘ID,可通过[DescribeDisks](/document/product/362/16315)接口查询。 - DiskId *string `json:"DiskId,omitempty" name:"DiskId"` + DiskId *string `json:"DiskId,omitnil,omitempty" name:"DiskId"` // 回滚前是否执行自动关机 - AutoStopInstance *bool `json:"AutoStopInstance,omitempty" name:"AutoStopInstance"` + AutoStopInstance *bool `json:"AutoStopInstance,omitnil,omitempty" name:"AutoStopInstance"` // 回滚完成后是否自动开机 - AutoStartInstance *bool `json:"AutoStartInstance,omitempty" name:"AutoStartInstance"` + AutoStartInstance *bool `json:"AutoStartInstance,omitnil,omitempty" name:"AutoStartInstance"` } type ApplySnapshotRequest struct { *tchttp.BaseRequest // 快照ID, 可通过[DescribeSnapshots](/document/product/362/15647)查询。 - SnapshotId *string `json:"SnapshotId,omitempty" name:"SnapshotId"` + SnapshotId *string `json:"SnapshotId,omitnil,omitempty" name:"SnapshotId"` // 快照原云硬盘ID,可通过[DescribeDisks](/document/product/362/16315)接口查询。 - DiskId *string `json:"DiskId,omitempty" name:"DiskId"` + DiskId *string `json:"DiskId,omitnil,omitempty" name:"DiskId"` // 回滚前是否执行自动关机 - AutoStopInstance *bool `json:"AutoStopInstance,omitempty" name:"AutoStopInstance"` + AutoStopInstance *bool `json:"AutoStopInstance,omitnil,omitempty" name:"AutoStopInstance"` // 回滚完成后是否自动开机 - AutoStartInstance *bool `json:"AutoStartInstance,omitempty" name:"AutoStartInstance"` + AutoStartInstance *bool `json:"AutoStartInstance,omitnil,omitempty" name:"AutoStartInstance"` } func (r *ApplySnapshotRequest) ToJsonString() string { @@ -136,8 +247,8 @@ func (r *ApplySnapshotRequest) FromJsonString(s string) error { // Predefined struct for user type ApplySnapshotResponseParams struct { - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type ApplySnapshotResponse struct { @@ -158,44 +269,44 @@ func (r *ApplySnapshotResponse) FromJsonString(s string) error { type AttachDetail struct { // 实例ID。 - InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` // 实例已挂载数据盘的数量。 - AttachedDiskCount *uint64 `json:"AttachedDiskCount,omitempty" name:"AttachedDiskCount"` + AttachedDiskCount *uint64 `json:"AttachedDiskCount,omitnil,omitempty" name:"AttachedDiskCount"` // 实例最大可挂载数据盘的数量。 - MaxAttachCount *uint64 `json:"MaxAttachCount,omitempty" name:"MaxAttachCount"` + MaxAttachCount *uint64 `json:"MaxAttachCount,omitnil,omitempty" name:"MaxAttachCount"` } // Predefined struct for user type AttachDisksRequestParams struct { // 云服务器实例ID。云盘将被挂载到此云服务器上,通过[DescribeInstances](/document/product/213/15728)接口查询。 - InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` // 将要被挂载的弹性云盘ID。通过[DescribeDisks](/document/product/362/16315)接口查询。单次最多可挂载10块弹性云盘。 - DiskIds []*string `json:"DiskIds,omitempty" name:"DiskIds"` + DiskIds []*string `json:"DiskIds,omitnil,omitempty" name:"DiskIds"` // 可选参数,不传该参数则仅执行挂载操作。传入`True`时,会在挂载成功后将云硬盘设置为随云主机销毁模式,仅对按量计费云硬盘有效。 - DeleteWithInstance *bool `json:"DeleteWithInstance,omitempty" name:"DeleteWithInstance"` + DeleteWithInstance *bool `json:"DeleteWithInstance,omitnil,omitempty" name:"DeleteWithInstance"` - // 可选参数,用于控制云盘挂载时使用的挂载模式,目前仅对黑石裸金属机型有效。取值范围:
  • PF
  • VF - AttachMode *string `json:"AttachMode,omitempty" name:"AttachMode"` + // 可选参数,用于控制云盘挂载时使用的挂载模式,目前仅对黑石裸金属机型有效。取值范围:
  • PF

  • VF
  • + AttachMode *string `json:"AttachMode,omitnil,omitempty" name:"AttachMode"` } type AttachDisksRequest struct { *tchttp.BaseRequest // 云服务器实例ID。云盘将被挂载到此云服务器上,通过[DescribeInstances](/document/product/213/15728)接口查询。 - InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` // 将要被挂载的弹性云盘ID。通过[DescribeDisks](/document/product/362/16315)接口查询。单次最多可挂载10块弹性云盘。 - DiskIds []*string `json:"DiskIds,omitempty" name:"DiskIds"` + DiskIds []*string `json:"DiskIds,omitnil,omitempty" name:"DiskIds"` // 可选参数,不传该参数则仅执行挂载操作。传入`True`时,会在挂载成功后将云硬盘设置为随云主机销毁模式,仅对按量计费云硬盘有效。 - DeleteWithInstance *bool `json:"DeleteWithInstance,omitempty" name:"DeleteWithInstance"` + DeleteWithInstance *bool `json:"DeleteWithInstance,omitnil,omitempty" name:"DeleteWithInstance"` - // 可选参数,用于控制云盘挂载时使用的挂载模式,目前仅对黑石裸金属机型有效。取值范围:
  • PF
  • VF - AttachMode *string `json:"AttachMode,omitempty" name:"AttachMode"` + // 可选参数,用于控制云盘挂载时使用的挂载模式,目前仅对黑石裸金属机型有效。取值范围:
  • PF

  • VF
  • + AttachMode *string `json:"AttachMode,omitnil,omitempty" name:"AttachMode"` } func (r *AttachDisksRequest) ToJsonString() string { @@ -222,8 +333,8 @@ func (r *AttachDisksRequest) FromJsonString(s string) error { // Predefined struct for user type AttachDisksResponseParams struct { - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type AttachDisksResponse struct { @@ -244,76 +355,95 @@ func (r *AttachDisksResponse) FromJsonString(s string) error { type AutoMountConfiguration struct { // 要挂载到的实例ID。 - InstanceId []*string `json:"InstanceId,omitempty" name:"InstanceId"` + InstanceId []*string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` // 子机内的挂载点。 - MountPoint []*string `json:"MountPoint,omitempty" name:"MountPoint"` + MountPoint []*string `json:"MountPoint,omitnil,omitempty" name:"MountPoint"` // 文件系统类型,支持的有 ext4、xfs。 - FileSystemType *string `json:"FileSystemType,omitempty" name:"FileSystemType"` + FileSystemType *string `json:"FileSystemType,omitnil,omitempty" name:"FileSystemType"` } type AutoSnapshotPolicy struct { // 已绑定当前定期快照策略的云盘ID列表。 - DiskIdSet []*string `json:"DiskIdSet,omitempty" name:"DiskIdSet"` + DiskIdSet []*string `json:"DiskIdSet,omitnil,omitempty" name:"DiskIdSet"` // 定期快照策略是否激活。 - IsActivated *bool `json:"IsActivated,omitempty" name:"IsActivated"` + IsActivated *bool `json:"IsActivated,omitnil,omitempty" name:"IsActivated"` - // 定期快照策略的状态。取值范围:
  • NORMAL:正常
  • ISOLATED:已隔离。 - AutoSnapshotPolicyState *string `json:"AutoSnapshotPolicyState,omitempty" name:"AutoSnapshotPolicyState"` + // 定期快照策略的状态。取值范围: + // + AutoSnapshotPolicyState *string `json:"AutoSnapshotPolicyState,omitnil,omitempty" name:"AutoSnapshotPolicyState"` // 是否是跨账号复制快照快照, 1:是, 0: 不是 - // 注意:此字段可能返回 null,表示取不到有效值。 - IsCopyToRemote *uint64 `json:"IsCopyToRemote,omitempty" name:"IsCopyToRemote"` + IsCopyToRemote *uint64 `json:"IsCopyToRemote,omitnil,omitempty" name:"IsCopyToRemote"` // 使用该定期快照策略创建出来的快照是否永久保留。 - IsPermanent *bool `json:"IsPermanent,omitempty" name:"IsPermanent"` + IsPermanent *bool `json:"IsPermanent,omitnil,omitempty" name:"IsPermanent"` // 定期快照下次触发的时间。 - NextTriggerTime *string `json:"NextTriggerTime,omitempty" name:"NextTriggerTime"` + NextTriggerTime *string `json:"NextTriggerTime,omitnil,omitempty" name:"NextTriggerTime"` // 定期快照策略名称。 - AutoSnapshotPolicyName *string `json:"AutoSnapshotPolicyName,omitempty" name:"AutoSnapshotPolicyName"` + AutoSnapshotPolicyName *string `json:"AutoSnapshotPolicyName,omitnil,omitempty" name:"AutoSnapshotPolicyName"` // 定期快照策略ID。 - AutoSnapshotPolicyId *string `json:"AutoSnapshotPolicyId,omitempty" name:"AutoSnapshotPolicyId"` + AutoSnapshotPolicyId *string `json:"AutoSnapshotPolicyId,omitnil,omitempty" name:"AutoSnapshotPolicyId"` // 定期快照的执行策略。 - Policy []*Policy `json:"Policy,omitempty" name:"Policy"` + Policy []*Policy `json:"Policy,omitnil,omitempty" name:"Policy"` // 定期快照策略的创建时间。 - CreateTime *string `json:"CreateTime,omitempty" name:"CreateTime"` + CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"` // 使用该定期快照策略创建出来的快照保留天数。 - RetentionDays *uint64 `json:"RetentionDays,omitempty" name:"RetentionDays"` + RetentionDays *uint64 `json:"RetentionDays,omitnil,omitempty" name:"RetentionDays"` // 复制的目标账户ID // 注意:此字段可能返回 null,表示取不到有效值。 - CopyToAccountUin *string `json:"CopyToAccountUin,omitempty" name:"CopyToAccountUin"` + CopyToAccountUin *string `json:"CopyToAccountUin,omitnil,omitempty" name:"CopyToAccountUin"` // 已绑定当前定期快照策略的实例ID列表。 + InstanceIdSet []*string `json:"InstanceIdSet,omitnil,omitempty" name:"InstanceIdSet"` + + // 该定期快照创建的快照可以保留的月数。 + RetentionMonths *uint64 `json:"RetentionMonths,omitnil,omitempty" name:"RetentionMonths"` + + // 该定期快照创建的快照最大保留数量。 + RetentionAmount *uint64 `json:"RetentionAmount,omitnil,omitempty" name:"RetentionAmount"` + + // 定期快照高级保留策略。 // 注意:此字段可能返回 null,表示取不到有效值。 - InstanceIdSet []*string `json:"InstanceIdSet,omitempty" name:"InstanceIdSet"` + AdvancedRetentionPolicy *AdvancedRetentionPolicy `json:"AdvancedRetentionPolicy,omitnil,omitempty" name:"AdvancedRetentionPolicy"` + + // 该复制快照策略的源端账户ID + // 注意:此字段可能返回 null,表示取不到有效值。 + CopyFromAccountUin *string `json:"CopyFromAccountUin,omitnil,omitempty" name:"CopyFromAccountUin"` + + // 标签。 + Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"` } // Predefined struct for user type BindAutoSnapshotPolicyRequestParams struct { // 要绑定的定期快照策略ID。 - AutoSnapshotPolicyId *string `json:"AutoSnapshotPolicyId,omitempty" name:"AutoSnapshotPolicyId"` + AutoSnapshotPolicyId *string `json:"AutoSnapshotPolicyId,omitnil,omitempty" name:"AutoSnapshotPolicyId"` // 要绑定的云硬盘ID列表,一次请求最多绑定80块云盘。 - DiskIds []*string `json:"DiskIds,omitempty" name:"DiskIds"` + DiskIds []*string `json:"DiskIds,omitnil,omitempty" name:"DiskIds"` } type BindAutoSnapshotPolicyRequest struct { *tchttp.BaseRequest // 要绑定的定期快照策略ID。 - AutoSnapshotPolicyId *string `json:"AutoSnapshotPolicyId,omitempty" name:"AutoSnapshotPolicyId"` + AutoSnapshotPolicyId *string `json:"AutoSnapshotPolicyId,omitnil,omitempty" name:"AutoSnapshotPolicyId"` // 要绑定的云硬盘ID列表,一次请求最多绑定80块云盘。 - DiskIds []*string `json:"DiskIds,omitempty" name:"DiskIds"` + DiskIds []*string `json:"DiskIds,omitnil,omitempty" name:"DiskIds"` } func (r *BindAutoSnapshotPolicyRequest) ToJsonString() string { @@ -338,8 +468,8 @@ func (r *BindAutoSnapshotPolicyRequest) FromJsonString(s string) error { // Predefined struct for user type BindAutoSnapshotPolicyResponseParams struct { - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type BindAutoSnapshotPolicyResponse struct { @@ -361,63 +491,67 @@ func (r *BindAutoSnapshotPolicyResponse) FromJsonString(s string) error { type Cdc struct { // 独享集群围笼ID。 // 注意:此字段可能返回 null,表示取不到有效值。 - CageId *string `json:"CageId,omitempty" name:"CageId"` + CageId *string `json:"CageId,omitnil,omitempty" name:"CageId"` - // 独享集群状态。取值范围:
  • NORMAL:正常;
  • CLOSED:关闭,此时将不可使用该独享集群创建新的云硬盘;
  • FAULT:独享集群状态异常,此时独享集群将不可操作,腾讯云运维团队将会及时修复该集群;
  • ISOLATED:因未及时续费导致独享集群被隔离,此时将不可使用该独享集群创建新的云硬盘,对应的云硬盘也将不可操作。 - CdcState *string `json:"CdcState,omitempty" name:"CdcState"` + // 独享集群状态。取值范围:
  • NORMAL:正常;

  • CLOSED:关闭,此时将不可使用该独享集群创建新的云硬盘;

  • FAULT:独享集群状态异常,此时独享集群将不可操作,腾讯云运维团队将会及时修复该集群;

  • ISOLATED:因未及时续费导致独享集群被隔离,此时将不可使用该独享集群创建新的云硬盘,对应的云硬盘也将不可操作。
  • + CdcState *string `json:"CdcState,omitnil,omitempty" name:"CdcState"` // 独享集群所属的[可用区](/document/product/213/15753#ZoneInfo)ID。 - // 注意:此字段可能返回 null,表示取不到有效值。 - Zone *string `json:"Zone,omitempty" name:"Zone"` + Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"` // 独享集群实例名称。 - CdcName *string `json:"CdcName,omitempty" name:"CdcName"` + CdcName *string `json:"CdcName,omitnil,omitempty" name:"CdcName"` // 独享集群的资源容量大小。 - // 注意:此字段可能返回 null,表示取不到有效值。 - CdcResource *CdcSize `json:"CdcResource,omitempty" name:"CdcResource"` + CdcResource *CdcSize `json:"CdcResource,omitnil,omitempty" name:"CdcResource"` // 独享集群实例id。 - CdcId *string `json:"CdcId,omitempty" name:"CdcId"` + CdcId *string `json:"CdcId,omitnil,omitempty" name:"CdcId"` - // 独享集群类型。取值范围:
  • CLOUD_BASIC:表示普通云硬盘集群
  • CLOUD_PREMIUM:表示高性能云硬盘集群
  • CLOUD_SSD:SSD表示SSD云硬盘集群。 - DiskType *string `json:"DiskType,omitempty" name:"DiskType"` + // 独享集群类型。取值范围:
  • CLOUD_BASIC:表示普通云硬盘集群

  • CLOUD_PREMIUM:表示高性能云硬盘集群

  • CLOUD_SSD:SSD表示SSD云硬盘集群。
  • + DiskType *string `json:"DiskType,omitnil,omitempty" name:"DiskType"` // 独享集群到期时间。 - ExpiredTime *string `json:"ExpiredTime,omitempty" name:"ExpiredTime"` + ExpiredTime *string `json:"ExpiredTime,omitnil,omitempty" name:"ExpiredTime"` + + // 存储池创建时间。 + CreatedTime *string `json:"CreatedTime,omitnil,omitempty" name:"CreatedTime"` + + // 当前集群中已创建的云盘数量。 + DiskNumber *uint64 `json:"DiskNumber,omitnil,omitempty" name:"DiskNumber"` } type CdcSize struct { - // 独享集群的可用容量大小,单位GiB - DiskAavilable *uint64 `json:"DiskAavilable,omitempty" name:"DiskAavilable"` - // 独享集群的总容量大小,单位GiB - DiskTotal *uint64 `json:"DiskTotal,omitempty" name:"DiskTotal"` + DiskTotal *uint64 `json:"DiskTotal,omitnil,omitempty" name:"DiskTotal"` + + // 独享集群的可用容量大小,单位GiB + DiskAvailable *uint64 `json:"DiskAvailable,omitnil,omitempty" name:"DiskAvailable"` } // Predefined struct for user type CopySnapshotCrossRegionsRequestParams struct { // 快照需要复制到的目标地域,各地域的标准取值可通过接口[DescribeRegions](https://cloud.tencent.com/document/product/213/9456)查询,且只能传入支持快照的地域。 - DestinationRegions []*string `json:"DestinationRegions,omitempty" name:"DestinationRegions"` + DestinationRegions []*string `json:"DestinationRegions,omitnil,omitempty" name:"DestinationRegions"` // 需要跨地域复制的源快照ID,可通过[DescribeSnapshots](/document/product/362/15647)查询。 - SnapshotId *string `json:"SnapshotId,omitempty" name:"SnapshotId"` + SnapshotId *string `json:"SnapshotId,omitnil,omitempty" name:"SnapshotId"` // 新复制快照的名称,如果不传,则默认取值为“Copied 源快照ID from 地域名”。 - SnapshotName *string `json:"SnapshotName,omitempty" name:"SnapshotName"` + SnapshotName *string `json:"SnapshotName,omitnil,omitempty" name:"SnapshotName"` } type CopySnapshotCrossRegionsRequest struct { *tchttp.BaseRequest // 快照需要复制到的目标地域,各地域的标准取值可通过接口[DescribeRegions](https://cloud.tencent.com/document/product/213/9456)查询,且只能传入支持快照的地域。 - DestinationRegions []*string `json:"DestinationRegions,omitempty" name:"DestinationRegions"` + DestinationRegions []*string `json:"DestinationRegions,omitnil,omitempty" name:"DestinationRegions"` // 需要跨地域复制的源快照ID,可通过[DescribeSnapshots](/document/product/362/15647)查询。 - SnapshotId *string `json:"SnapshotId,omitempty" name:"SnapshotId"` + SnapshotId *string `json:"SnapshotId,omitnil,omitempty" name:"SnapshotId"` // 新复制快照的名称,如果不传,则默认取值为“Copied 源快照ID from 地域名”。 - SnapshotName *string `json:"SnapshotName,omitempty" name:"SnapshotName"` + SnapshotName *string `json:"SnapshotName,omitnil,omitempty" name:"SnapshotName"` } func (r *CopySnapshotCrossRegionsRequest) ToJsonString() string { @@ -444,10 +578,10 @@ func (r *CopySnapshotCrossRegionsRequest) FromJsonString(s string) error { // Predefined struct for user type CopySnapshotCrossRegionsResponseParams struct { // 快照跨地域复制的结果,如果请求下发成功,则返回相应地地域的新快照ID,否则返回Error。 - SnapshotCopyResultSet []*SnapshotCopyResult `json:"SnapshotCopyResultSet,omitempty" name:"SnapshotCopyResultSet"` + SnapshotCopyResultSet []*SnapshotCopyResult `json:"SnapshotCopyResultSet,omitnil,omitempty" name:"SnapshotCopyResultSet"` - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type CopySnapshotCrossRegionsResponse struct { @@ -469,44 +603,44 @@ func (r *CopySnapshotCrossRegionsResponse) FromJsonString(s string) error { // Predefined struct for user type CreateAutoSnapshotPolicyRequestParams struct { // 定期快照的执行策略。 - Policy []*Policy `json:"Policy,omitempty" name:"Policy"` + Policy []*Policy `json:"Policy,omitnil,omitempty" name:"Policy"` // 是否创建定期快照的执行策略。TRUE表示只需获取首次开始备份的时间,不实际创建定期快照策略,FALSE表示创建,默认为FALSE。 - DryRun *bool `json:"DryRun,omitempty" name:"DryRun"` + DryRun *bool `json:"DryRun,omitnil,omitempty" name:"DryRun"` // 是否激活定期快照策略,FALSE表示未激活,TRUE表示激活,默认为TRUE。 - IsActivated *bool `json:"IsActivated,omitempty" name:"IsActivated"` + IsActivated *bool `json:"IsActivated,omitnil,omitempty" name:"IsActivated"` // 要创建的定期快照策略名。不传则默认为“未命名”。最大长度不能超60个字节。 - AutoSnapshotPolicyName *string `json:"AutoSnapshotPolicyName,omitempty" name:"AutoSnapshotPolicyName"` + AutoSnapshotPolicyName *string `json:"AutoSnapshotPolicyName,omitnil,omitempty" name:"AutoSnapshotPolicyName"` // 通过该定期快照策略创建的快照是否永久保留。FALSE表示非永久保留,TRUE表示永久保留,默认为FALSE。 - IsPermanent *bool `json:"IsPermanent,omitempty" name:"IsPermanent"` + IsPermanent *bool `json:"IsPermanent,omitnil,omitempty" name:"IsPermanent"` // 通过该定期快照策略创建的快照保留天数,默认保留7天。如果指定本参数,则IsPermanent入参不可指定为TRUE,否则会产生冲突。 - RetentionDays *uint64 `json:"RetentionDays,omitempty" name:"RetentionDays"` + RetentionDays *uint64 `json:"RetentionDays,omitnil,omitempty" name:"RetentionDays"` } type CreateAutoSnapshotPolicyRequest struct { *tchttp.BaseRequest // 定期快照的执行策略。 - Policy []*Policy `json:"Policy,omitempty" name:"Policy"` + Policy []*Policy `json:"Policy,omitnil,omitempty" name:"Policy"` // 是否创建定期快照的执行策略。TRUE表示只需获取首次开始备份的时间,不实际创建定期快照策略,FALSE表示创建,默认为FALSE。 - DryRun *bool `json:"DryRun,omitempty" name:"DryRun"` + DryRun *bool `json:"DryRun,omitnil,omitempty" name:"DryRun"` // 是否激活定期快照策略,FALSE表示未激活,TRUE表示激活,默认为TRUE。 - IsActivated *bool `json:"IsActivated,omitempty" name:"IsActivated"` + IsActivated *bool `json:"IsActivated,omitnil,omitempty" name:"IsActivated"` // 要创建的定期快照策略名。不传则默认为“未命名”。最大长度不能超60个字节。 - AutoSnapshotPolicyName *string `json:"AutoSnapshotPolicyName,omitempty" name:"AutoSnapshotPolicyName"` + AutoSnapshotPolicyName *string `json:"AutoSnapshotPolicyName,omitnil,omitempty" name:"AutoSnapshotPolicyName"` // 通过该定期快照策略创建的快照是否永久保留。FALSE表示非永久保留,TRUE表示永久保留,默认为FALSE。 - IsPermanent *bool `json:"IsPermanent,omitempty" name:"IsPermanent"` + IsPermanent *bool `json:"IsPermanent,omitnil,omitempty" name:"IsPermanent"` // 通过该定期快照策略创建的快照保留天数,默认保留7天。如果指定本参数,则IsPermanent入参不可指定为TRUE,否则会产生冲突。 - RetentionDays *uint64 `json:"RetentionDays,omitempty" name:"RetentionDays"` + RetentionDays *uint64 `json:"RetentionDays,omitnil,omitempty" name:"RetentionDays"` } func (r *CreateAutoSnapshotPolicyRequest) ToJsonString() string { @@ -536,13 +670,13 @@ func (r *CreateAutoSnapshotPolicyRequest) FromJsonString(s string) error { // Predefined struct for user type CreateAutoSnapshotPolicyResponseParams struct { // 新创建的定期快照策略ID。 - AutoSnapshotPolicyId *string `json:"AutoSnapshotPolicyId,omitempty" name:"AutoSnapshotPolicyId"` + AutoSnapshotPolicyId *string `json:"AutoSnapshotPolicyId,omitnil,omitempty" name:"AutoSnapshotPolicyId"` // 首次开始备份的时间。 - NextTriggerTime *string `json:"NextTriggerTime,omitempty" name:"NextTriggerTime"` + NextTriggerTime *string `json:"NextTriggerTime,omitnil,omitempty" name:"NextTriggerTime"` - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type CreateAutoSnapshotPolicyResponse struct { @@ -564,20 +698,20 @@ func (r *CreateAutoSnapshotPolicyResponse) FromJsonString(s string) error { // Predefined struct for user type CreateDiskBackupRequestParams struct { // 要创建备份点的云硬盘名称。 - DiskId *string `json:"DiskId,omitempty" name:"DiskId"` + DiskId *string `json:"DiskId,omitnil,omitempty" name:"DiskId"` // 云硬盘备份点名称。长度不能超过100个字符。 - DiskBackupName *string `json:"DiskBackupName,omitempty" name:"DiskBackupName"` + DiskBackupName *string `json:"DiskBackupName,omitnil,omitempty" name:"DiskBackupName"` } type CreateDiskBackupRequest struct { *tchttp.BaseRequest // 要创建备份点的云硬盘名称。 - DiskId *string `json:"DiskId,omitempty" name:"DiskId"` + DiskId *string `json:"DiskId,omitnil,omitempty" name:"DiskId"` // 云硬盘备份点名称。长度不能超过100个字符。 - DiskBackupName *string `json:"DiskBackupName,omitempty" name:"DiskBackupName"` + DiskBackupName *string `json:"DiskBackupName,omitnil,omitempty" name:"DiskBackupName"` } func (r *CreateDiskBackupRequest) ToJsonString() string { @@ -603,10 +737,10 @@ func (r *CreateDiskBackupRequest) FromJsonString(s string) error { // Predefined struct for user type CreateDiskBackupResponseParams struct { // 云硬盘备份点的ID。 - DiskBackupId *string `json:"DiskBackupId,omitempty" name:"DiskBackupId"` + DiskBackupId *string `json:"DiskBackupId,omitnil,omitempty" name:"DiskBackupId"` - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type CreateDiskBackupResponse struct { @@ -628,104 +762,122 @@ func (r *CreateDiskBackupResponse) FromJsonString(s string) error { // Predefined struct for user type CreateDisksRequestParams struct { // 实例所在的位置。通过该参数可以指定实例所属可用区,所属项目。若不指定项目,将在默认项目下进行创建。 - Placement *Placement `json:"Placement,omitempty" name:"Placement"` + Placement *Placement `json:"Placement,omitnil,omitempty" name:"Placement"` - // 云硬盘计费类型。
  • PREPAID:预付费,即包年包月
  • POSTPAID_BY_HOUR:按小时后付费
  • CDCPAID:独享集群付费
    各类型价格请参考云硬盘[价格总览](/document/product/362/2413)。 - DiskChargeType *string `json:"DiskChargeType,omitempty" name:"DiskChargeType"` + // 云硬盘计费类型。
  • PREPAID:预付费,即包年包月

  • POSTPAID_BY_HOUR:按小时后付费

  • CDCPAID:独享集群付费
    各类型价格请参考云硬盘[价格总览](/document/product/362/2413)。
  • + DiskChargeType *string `json:"DiskChargeType,omitnil,omitempty" name:"DiskChargeType"` - // 硬盘介质类型。取值范围:
  • CLOUD_BASIC:表示普通云硬盘
  • CLOUD_PREMIUM:表示高性能云硬盘
  • CLOUD_BSSD:表示通用型SSD云硬盘
  • CLOUD_SSD:表示SSD云硬盘
  • CLOUD_HSSD:表示增强型SSD云硬盘
  • CLOUD_TSSD:表示极速型SSD云硬盘。 - DiskType *string `json:"DiskType,omitempty" name:"DiskType"` + // 硬盘介质类型。取值范围:
  • CLOUD_BASIC:表示普通云硬盘

  • CLOUD_PREMIUM:表示高性能云硬盘

  • CLOUD_BSSD:表示通用型SSD云硬盘

  • CLOUD_SSD:表示SSD云硬盘

  • CLOUD_HSSD:表示增强型SSD云硬盘

  • CLOUD_TSSD:表示极速型SSD云硬盘。
  • + DiskType *string `json:"DiskType,omitnil,omitempty" name:"DiskType"` // 云盘显示名称。不传则默认为“未命名”。最大长度不能超60个字节。 - DiskName *string `json:"DiskName,omitempty" name:"DiskName"` + DiskName *string `json:"DiskName,omitnil,omitempty" name:"DiskName"` // 云盘绑定的标签。 - Tags []*Tag `json:"Tags,omitempty" name:"Tags"` + Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"` // 快照ID,如果传入则根据此快照创建云硬盘,快照类型必须为数据盘快照,可通过[DescribeSnapshots](/document/product/362/15647)接口查询快照,见输出参数DiskUsage解释。 - SnapshotId *string `json:"SnapshotId,omitempty" name:"SnapshotId"` + SnapshotId *string `json:"SnapshotId,omitnil,omitempty" name:"SnapshotId"` // 创建云硬盘数量,不传则默认为1。单次请求最多可创建的云盘数有限制,具体参见[云硬盘使用限制](https://cloud.tencent.com/doc/product/362/5145)。 - DiskCount *uint64 `json:"DiskCount,omitempty" name:"DiskCount"` + DiskCount *uint64 `json:"DiskCount,omitnil,omitempty" name:"DiskCount"` // 可选参数。使用此参数可给云硬盘购买额外的性能。
    当前仅支持极速型云盘(CLOUD_TSSD)和增强型SSD云硬盘(CLOUD_HSSD) - ThroughputPerformance *uint64 `json:"ThroughputPerformance,omitempty" name:"ThroughputPerformance"` + ThroughputPerformance *uint64 `json:"ThroughputPerformance,omitnil,omitempty" name:"ThroughputPerformance"` + + // 可选参数。购买加密盘时自定义密钥, 当传入该参数时, Encrypt入参不为空 + KmsKeyId *string `json:"KmsKeyId,omitnil,omitempty" name:"KmsKeyId"` - // 云硬盘大小,单位为GB。
  • 如果传入`SnapshotId`则可不传`DiskSize`,此时新建云盘的大小为快照大小
  • 如果传入`SnapshotId`同时传入`DiskSize`,则云盘大小必须大于或等于快照大小
  • 云盘大小取值范围参见云硬盘[产品分类](/document/product/362/2353)的说明。 - DiskSize *uint64 `json:"DiskSize,omitempty" name:"DiskSize"` + // 云硬盘大小,单位为GiB。
  • 如果传入`SnapshotId`则可不传`DiskSize`,此时新建云盘的大小为快照大小

  • 如果传入`SnapshotId`同时传入`DiskSize`,则云盘大小必须大于或等于快照大小

  • 云盘大小取值范围参见云硬盘[产品分类](/document/product/362/2353)的说明。
  • + DiskSize *uint64 `json:"DiskSize,omitnil,omitempty" name:"DiskSize"` // 可选参数,默认为False。传入True时,云盘将创建为共享型云盘。 - Shareable *bool `json:"Shareable,omitempty" name:"Shareable"` + Shareable *bool `json:"Shareable,omitnil,omitempty" name:"Shareable"` // 用于保证请求幂等性的字符串。该字符串由客户生成,需保证不同请求之间唯一,最大值不超过64个ASCII字符。若不指定该参数,则无法保证请求的幂等性。 - ClientToken *string `json:"ClientToken,omitempty" name:"ClientToken"` + ClientToken *string `json:"ClientToken,omitnil,omitempty" name:"ClientToken"` // 传入该参数用于创建加密云盘,取值固定为ENCRYPT。 - Encrypt *string `json:"Encrypt,omitempty" name:"Encrypt"` + Encrypt *string `json:"Encrypt,omitnil,omitempty" name:"Encrypt"` // 预付费模式,即包年包月相关参数设置。通过该参数指定包年包月云盘的购买时长、是否设置自动续费等属性。
    创建预付费云盘该参数必传,创建按小时后付费云盘无需传该参数。 - DiskChargePrepaid *DiskChargePrepaid `json:"DiskChargePrepaid,omitempty" name:"DiskChargePrepaid"` + DiskChargePrepaid *DiskChargePrepaid `json:"DiskChargePrepaid,omitnil,omitempty" name:"DiskChargePrepaid"` // 销毁云盘时删除关联的非永久保留快照。0 表示非永久快照不随云盘销毁而销毁,1表示非永久快照随云盘销毁而销毁,默认取0。快照是否永久保留可以通过DescribeSnapshots接口返回的快照详情的IsPermanent字段来判断,true表示永久快照,false表示非永久快照。 - DeleteSnapshot *int64 `json:"DeleteSnapshot,omitempty" name:"DeleteSnapshot"` + DeleteSnapshot *int64 `json:"DeleteSnapshot,omitnil,omitempty" name:"DeleteSnapshot"` // 创建云盘时指定自动挂载并初始化该数据盘。 - AutoMountConfiguration *AutoMountConfiguration `json:"AutoMountConfiguration,omitempty" name:"AutoMountConfiguration"` + AutoMountConfiguration *AutoMountConfiguration `json:"AutoMountConfiguration,omitnil,omitempty" name:"AutoMountConfiguration"` // 指定云硬盘备份点配额。 - DiskBackupQuota *uint64 `json:"DiskBackupQuota,omitempty" name:"DiskBackupQuota"` + DiskBackupQuota *uint64 `json:"DiskBackupQuota,omitnil,omitempty" name:"DiskBackupQuota"` + + // 创建云盘时是否开启性能突发 + BurstPerformance *bool `json:"BurstPerformance,omitnil,omitempty" name:"BurstPerformance"` + + // 指定云硬盘加密类型,取值为ENCRYPT_V1和ENCRYPT_V2,分别表示第一代和第二代加密技术,两种加密技术互不兼容。推荐优先使用第二代加密技术ENCRYPT_V2,第一代加密技术仅支持在部分老旧机型使用。该参数仅当创建加密云硬盘时有效。 + EncryptType *string `json:"EncryptType,omitnil,omitempty" name:"EncryptType"` } type CreateDisksRequest struct { *tchttp.BaseRequest // 实例所在的位置。通过该参数可以指定实例所属可用区,所属项目。若不指定项目,将在默认项目下进行创建。 - Placement *Placement `json:"Placement,omitempty" name:"Placement"` + Placement *Placement `json:"Placement,omitnil,omitempty" name:"Placement"` - // 云硬盘计费类型。
  • PREPAID:预付费,即包年包月
  • POSTPAID_BY_HOUR:按小时后付费
  • CDCPAID:独享集群付费
    各类型价格请参考云硬盘[价格总览](/document/product/362/2413)。 - DiskChargeType *string `json:"DiskChargeType,omitempty" name:"DiskChargeType"` + // 云硬盘计费类型。
  • PREPAID:预付费,即包年包月

  • POSTPAID_BY_HOUR:按小时后付费

  • CDCPAID:独享集群付费
    各类型价格请参考云硬盘[价格总览](/document/product/362/2413)。
  • + DiskChargeType *string `json:"DiskChargeType,omitnil,omitempty" name:"DiskChargeType"` - // 硬盘介质类型。取值范围:
  • CLOUD_BASIC:表示普通云硬盘
  • CLOUD_PREMIUM:表示高性能云硬盘
  • CLOUD_BSSD:表示通用型SSD云硬盘
  • CLOUD_SSD:表示SSD云硬盘
  • CLOUD_HSSD:表示增强型SSD云硬盘
  • CLOUD_TSSD:表示极速型SSD云硬盘。 - DiskType *string `json:"DiskType,omitempty" name:"DiskType"` + // 硬盘介质类型。取值范围:
  • CLOUD_BASIC:表示普通云硬盘

  • CLOUD_PREMIUM:表示高性能云硬盘

  • CLOUD_BSSD:表示通用型SSD云硬盘

  • CLOUD_SSD:表示SSD云硬盘

  • CLOUD_HSSD:表示增强型SSD云硬盘

  • CLOUD_TSSD:表示极速型SSD云硬盘。
  • + DiskType *string `json:"DiskType,omitnil,omitempty" name:"DiskType"` // 云盘显示名称。不传则默认为“未命名”。最大长度不能超60个字节。 - DiskName *string `json:"DiskName,omitempty" name:"DiskName"` + DiskName *string `json:"DiskName,omitnil,omitempty" name:"DiskName"` // 云盘绑定的标签。 - Tags []*Tag `json:"Tags,omitempty" name:"Tags"` + Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"` // 快照ID,如果传入则根据此快照创建云硬盘,快照类型必须为数据盘快照,可通过[DescribeSnapshots](/document/product/362/15647)接口查询快照,见输出参数DiskUsage解释。 - SnapshotId *string `json:"SnapshotId,omitempty" name:"SnapshotId"` + SnapshotId *string `json:"SnapshotId,omitnil,omitempty" name:"SnapshotId"` // 创建云硬盘数量,不传则默认为1。单次请求最多可创建的云盘数有限制,具体参见[云硬盘使用限制](https://cloud.tencent.com/doc/product/362/5145)。 - DiskCount *uint64 `json:"DiskCount,omitempty" name:"DiskCount"` + DiskCount *uint64 `json:"DiskCount,omitnil,omitempty" name:"DiskCount"` // 可选参数。使用此参数可给云硬盘购买额外的性能。
    当前仅支持极速型云盘(CLOUD_TSSD)和增强型SSD云硬盘(CLOUD_HSSD) - ThroughputPerformance *uint64 `json:"ThroughputPerformance,omitempty" name:"ThroughputPerformance"` + ThroughputPerformance *uint64 `json:"ThroughputPerformance,omitnil,omitempty" name:"ThroughputPerformance"` - // 云硬盘大小,单位为GB。
  • 如果传入`SnapshotId`则可不传`DiskSize`,此时新建云盘的大小为快照大小
  • 如果传入`SnapshotId`同时传入`DiskSize`,则云盘大小必须大于或等于快照大小
  • 云盘大小取值范围参见云硬盘[产品分类](/document/product/362/2353)的说明。 - DiskSize *uint64 `json:"DiskSize,omitempty" name:"DiskSize"` + // 可选参数。购买加密盘时自定义密钥, 当传入该参数时, Encrypt入参不为空 + KmsKeyId *string `json:"KmsKeyId,omitnil,omitempty" name:"KmsKeyId"` + + // 云硬盘大小,单位为GiB。
  • 如果传入`SnapshotId`则可不传`DiskSize`,此时新建云盘的大小为快照大小

  • 如果传入`SnapshotId`同时传入`DiskSize`,则云盘大小必须大于或等于快照大小

  • 云盘大小取值范围参见云硬盘[产品分类](/document/product/362/2353)的说明。
  • + DiskSize *uint64 `json:"DiskSize,omitnil,omitempty" name:"DiskSize"` // 可选参数,默认为False。传入True时,云盘将创建为共享型云盘。 - Shareable *bool `json:"Shareable,omitempty" name:"Shareable"` + Shareable *bool `json:"Shareable,omitnil,omitempty" name:"Shareable"` // 用于保证请求幂等性的字符串。该字符串由客户生成,需保证不同请求之间唯一,最大值不超过64个ASCII字符。若不指定该参数,则无法保证请求的幂等性。 - ClientToken *string `json:"ClientToken,omitempty" name:"ClientToken"` + ClientToken *string `json:"ClientToken,omitnil,omitempty" name:"ClientToken"` // 传入该参数用于创建加密云盘,取值固定为ENCRYPT。 - Encrypt *string `json:"Encrypt,omitempty" name:"Encrypt"` + Encrypt *string `json:"Encrypt,omitnil,omitempty" name:"Encrypt"` // 预付费模式,即包年包月相关参数设置。通过该参数指定包年包月云盘的购买时长、是否设置自动续费等属性。
    创建预付费云盘该参数必传,创建按小时后付费云盘无需传该参数。 - DiskChargePrepaid *DiskChargePrepaid `json:"DiskChargePrepaid,omitempty" name:"DiskChargePrepaid"` + DiskChargePrepaid *DiskChargePrepaid `json:"DiskChargePrepaid,omitnil,omitempty" name:"DiskChargePrepaid"` // 销毁云盘时删除关联的非永久保留快照。0 表示非永久快照不随云盘销毁而销毁,1表示非永久快照随云盘销毁而销毁,默认取0。快照是否永久保留可以通过DescribeSnapshots接口返回的快照详情的IsPermanent字段来判断,true表示永久快照,false表示非永久快照。 - DeleteSnapshot *int64 `json:"DeleteSnapshot,omitempty" name:"DeleteSnapshot"` + DeleteSnapshot *int64 `json:"DeleteSnapshot,omitnil,omitempty" name:"DeleteSnapshot"` // 创建云盘时指定自动挂载并初始化该数据盘。 - AutoMountConfiguration *AutoMountConfiguration `json:"AutoMountConfiguration,omitempty" name:"AutoMountConfiguration"` + AutoMountConfiguration *AutoMountConfiguration `json:"AutoMountConfiguration,omitnil,omitempty" name:"AutoMountConfiguration"` // 指定云硬盘备份点配额。 - DiskBackupQuota *uint64 `json:"DiskBackupQuota,omitempty" name:"DiskBackupQuota"` + DiskBackupQuota *uint64 `json:"DiskBackupQuota,omitnil,omitempty" name:"DiskBackupQuota"` + + // 创建云盘时是否开启性能突发 + BurstPerformance *bool `json:"BurstPerformance,omitnil,omitempty" name:"BurstPerformance"` + + // 指定云硬盘加密类型,取值为ENCRYPT_V1和ENCRYPT_V2,分别表示第一代和第二代加密技术,两种加密技术互不兼容。推荐优先使用第二代加密技术ENCRYPT_V2,第一代加密技术仅支持在部分老旧机型使用。该参数仅当创建加密云硬盘时有效。 + EncryptType *string `json:"EncryptType,omitnil,omitempty" name:"EncryptType"` } func (r *CreateDisksRequest) ToJsonString() string { @@ -748,6 +900,7 @@ func (r *CreateDisksRequest) FromJsonString(s string) error { delete(f, "SnapshotId") delete(f, "DiskCount") delete(f, "ThroughputPerformance") + delete(f, "KmsKeyId") delete(f, "DiskSize") delete(f, "Shareable") delete(f, "ClientToken") @@ -756,6 +909,8 @@ func (r *CreateDisksRequest) FromJsonString(s string) error { delete(f, "DeleteSnapshot") delete(f, "AutoMountConfiguration") delete(f, "DiskBackupQuota") + delete(f, "BurstPerformance") + delete(f, "EncryptType") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateDisksRequest has unknown keys!", "") } @@ -765,10 +920,11 @@ func (r *CreateDisksRequest) FromJsonString(s string) error { // Predefined struct for user type CreateDisksResponseParams struct { // 创建的云硬盘ID列表。 - DiskIdSet []*string `json:"DiskIdSet,omitempty" name:"DiskIdSet"` + // 注意:此字段可能返回 null,表示取不到有效值。 + DiskIdSet []*string `json:"DiskIdSet,omitnil,omitempty" name:"DiskIdSet"` - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type CreateDisksResponse struct { @@ -787,41 +943,112 @@ func (r *CreateDisksResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +// Predefined struct for user +type CreateSnapshotGroupRequestParams struct { + // 需要创建快照组的云硬盘ID列表,必须选择挂载在同一实例上的盘列表。 + DiskIds []*string `json:"DiskIds,omitnil,omitempty" name:"DiskIds"` + + // 快照组名称,快照组关联的快照也会继承快照组的名称。例如:快照组名称为testSnapshotGroup,快照组关联两个快照,则两个快照的名称分别为testSnapshotGroup_0,testSnapshotGroup_1。 + SnapshotGroupName *string `json:"SnapshotGroupName,omitnil,omitempty" name:"SnapshotGroupName"` + + // 快照组需要绑定的标签列表。 + Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"` +} + +type CreateSnapshotGroupRequest struct { + *tchttp.BaseRequest + + // 需要创建快照组的云硬盘ID列表,必须选择挂载在同一实例上的盘列表。 + DiskIds []*string `json:"DiskIds,omitnil,omitempty" name:"DiskIds"` + + // 快照组名称,快照组关联的快照也会继承快照组的名称。例如:快照组名称为testSnapshotGroup,快照组关联两个快照,则两个快照的名称分别为testSnapshotGroup_0,testSnapshotGroup_1。 + SnapshotGroupName *string `json:"SnapshotGroupName,omitnil,omitempty" name:"SnapshotGroupName"` + + // 快照组需要绑定的标签列表。 + Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"` +} + +func (r *CreateSnapshotGroupRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *CreateSnapshotGroupRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "DiskIds") + delete(f, "SnapshotGroupName") + delete(f, "Tags") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateSnapshotGroupRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type CreateSnapshotGroupResponseParams struct { + // 创建成功的快照组ID。 + SnapshotGroupId *string `json:"SnapshotGroupId,omitnil,omitempty" name:"SnapshotGroupId"` + + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type CreateSnapshotGroupResponse struct { + *tchttp.BaseResponse + Response *CreateSnapshotGroupResponseParams `json:"Response"` +} + +func (r *CreateSnapshotGroupResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *CreateSnapshotGroupResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + // Predefined struct for user type CreateSnapshotRequestParams struct { // 需要创建快照的云硬盘ID,可通过[DescribeDisks](/document/product/362/16315)接口查询。 - DiskId *string `json:"DiskId,omitempty" name:"DiskId"` + DiskId *string `json:"DiskId,omitnil,omitempty" name:"DiskId"` // 快照名称,不传则新快照名称默认为“未命名”。 - SnapshotName *string `json:"SnapshotName,omitempty" name:"SnapshotName"` + SnapshotName *string `json:"SnapshotName,omitnil,omitempty" name:"SnapshotName"` - // 快照的到期时间,到期后该快照将会自动删除,需要传入UTC时间下的ISO-8601标准时间格式,例如:2022-01-08T09:47:55+00:00 - Deadline *string `json:"Deadline,omitempty" name:"Deadline"` + // 快照的到期时间,到期后该快照将会自动删除,需要传入UTC时间下的ISO-8601标准时间格式,例如:2022-01-08T09:47:55+00:00,。到期时间最小可设置为一天后的当前时间。 + Deadline *string `json:"Deadline,omitnil,omitempty" name:"Deadline"` // 云硬盘备份点ID。传入此参数时,将通过备份点创建快照。 - DiskBackupId *string `json:"DiskBackupId,omitempty" name:"DiskBackupId"` + DiskBackupId *string `json:"DiskBackupId,omitnil,omitempty" name:"DiskBackupId"` // 快照绑定的标签。 - Tags []*Tag `json:"Tags,omitempty" name:"Tags"` + Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"` } type CreateSnapshotRequest struct { *tchttp.BaseRequest // 需要创建快照的云硬盘ID,可通过[DescribeDisks](/document/product/362/16315)接口查询。 - DiskId *string `json:"DiskId,omitempty" name:"DiskId"` + DiskId *string `json:"DiskId,omitnil,omitempty" name:"DiskId"` // 快照名称,不传则新快照名称默认为“未命名”。 - SnapshotName *string `json:"SnapshotName,omitempty" name:"SnapshotName"` + SnapshotName *string `json:"SnapshotName,omitnil,omitempty" name:"SnapshotName"` - // 快照的到期时间,到期后该快照将会自动删除,需要传入UTC时间下的ISO-8601标准时间格式,例如:2022-01-08T09:47:55+00:00 - Deadline *string `json:"Deadline,omitempty" name:"Deadline"` + // 快照的到期时间,到期后该快照将会自动删除,需要传入UTC时间下的ISO-8601标准时间格式,例如:2022-01-08T09:47:55+00:00,。到期时间最小可设置为一天后的当前时间。 + Deadline *string `json:"Deadline,omitnil,omitempty" name:"Deadline"` // 云硬盘备份点ID。传入此参数时,将通过备份点创建快照。 - DiskBackupId *string `json:"DiskBackupId,omitempty" name:"DiskBackupId"` + DiskBackupId *string `json:"DiskBackupId,omitnil,omitempty" name:"DiskBackupId"` // 快照绑定的标签。 - Tags []*Tag `json:"Tags,omitempty" name:"Tags"` + Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"` } func (r *CreateSnapshotRequest) ToJsonString() string { @@ -850,10 +1077,11 @@ func (r *CreateSnapshotRequest) FromJsonString(s string) error { // Predefined struct for user type CreateSnapshotResponseParams struct { // 新创建的快照ID。 - SnapshotId *string `json:"SnapshotId,omitempty" name:"SnapshotId"` + // 注意:此字段可能返回 null,表示取不到有效值。 + SnapshotId *string `json:"SnapshotId,omitnil,omitempty" name:"SnapshotId"` - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type CreateSnapshotResponse struct { @@ -875,14 +1103,14 @@ func (r *CreateSnapshotResponse) FromJsonString(s string) error { // Predefined struct for user type DeleteAutoSnapshotPoliciesRequestParams struct { // 要删除的定期快照策略ID列表。 - AutoSnapshotPolicyIds []*string `json:"AutoSnapshotPolicyIds,omitempty" name:"AutoSnapshotPolicyIds"` + AutoSnapshotPolicyIds []*string `json:"AutoSnapshotPolicyIds,omitnil,omitempty" name:"AutoSnapshotPolicyIds"` } type DeleteAutoSnapshotPoliciesRequest struct { *tchttp.BaseRequest // 要删除的定期快照策略ID列表。 - AutoSnapshotPolicyIds []*string `json:"AutoSnapshotPolicyIds,omitempty" name:"AutoSnapshotPolicyIds"` + AutoSnapshotPolicyIds []*string `json:"AutoSnapshotPolicyIds,omitnil,omitempty" name:"AutoSnapshotPolicyIds"` } func (r *DeleteAutoSnapshotPoliciesRequest) ToJsonString() string { @@ -906,8 +1134,8 @@ func (r *DeleteAutoSnapshotPoliciesRequest) FromJsonString(s string) error { // Predefined struct for user type DeleteAutoSnapshotPoliciesResponseParams struct { - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type DeleteAutoSnapshotPoliciesResponse struct { @@ -929,14 +1157,14 @@ func (r *DeleteAutoSnapshotPoliciesResponse) FromJsonString(s string) error { // Predefined struct for user type DeleteDiskBackupsRequestParams struct { // 待删除的云硬盘备份点ID。 - DiskBackupIds []*string `json:"DiskBackupIds,omitempty" name:"DiskBackupIds"` + DiskBackupIds []*string `json:"DiskBackupIds,omitnil,omitempty" name:"DiskBackupIds"` } type DeleteDiskBackupsRequest struct { *tchttp.BaseRequest // 待删除的云硬盘备份点ID。 - DiskBackupIds []*string `json:"DiskBackupIds,omitempty" name:"DiskBackupIds"` + DiskBackupIds []*string `json:"DiskBackupIds,omitnil,omitempty" name:"DiskBackupIds"` } func (r *DeleteDiskBackupsRequest) ToJsonString() string { @@ -960,8 +1188,8 @@ func (r *DeleteDiskBackupsRequest) FromJsonString(s string) error { // Predefined struct for user type DeleteDiskBackupsResponseParams struct { - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type DeleteDiskBackupsResponse struct { @@ -980,23 +1208,91 @@ func (r *DeleteDiskBackupsResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +// Predefined struct for user +type DeleteSnapshotGroupRequestParams struct { + // 快照组ID。 + SnapshotGroupId *string `json:"SnapshotGroupId,omitnil,omitempty" name:"SnapshotGroupId"` + + // 快照组ID 列表。此参数与快照组 ID 至少传 1 个,同时传会与快照组 ID 合并。 + SnapshotGroupIds []*string `json:"SnapshotGroupIds,omitnil,omitempty" name:"SnapshotGroupIds"` + + // 是否同时删除快照组关联的镜像;取值为false,表示不删除快照组绑定的镜像,此时,如果快照组有绑定的镜像,删除会失败;取值为true,表示同时删除快照组绑定的镜像;默认值为false。 + DeleteBindImages *bool `json:"DeleteBindImages,omitnil,omitempty" name:"DeleteBindImages"` +} + +type DeleteSnapshotGroupRequest struct { + *tchttp.BaseRequest + + // 快照组ID。 + SnapshotGroupId *string `json:"SnapshotGroupId,omitnil,omitempty" name:"SnapshotGroupId"` + + // 快照组ID 列表。此参数与快照组 ID 至少传 1 个,同时传会与快照组 ID 合并。 + SnapshotGroupIds []*string `json:"SnapshotGroupIds,omitnil,omitempty" name:"SnapshotGroupIds"` + + // 是否同时删除快照组关联的镜像;取值为false,表示不删除快照组绑定的镜像,此时,如果快照组有绑定的镜像,删除会失败;取值为true,表示同时删除快照组绑定的镜像;默认值为false。 + DeleteBindImages *bool `json:"DeleteBindImages,omitnil,omitempty" name:"DeleteBindImages"` +} + +func (r *DeleteSnapshotGroupRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DeleteSnapshotGroupRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "SnapshotGroupId") + delete(f, "SnapshotGroupIds") + delete(f, "DeleteBindImages") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteSnapshotGroupRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DeleteSnapshotGroupResponseParams struct { + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type DeleteSnapshotGroupResponse struct { + *tchttp.BaseResponse + Response *DeleteSnapshotGroupResponseParams `json:"Response"` +} + +func (r *DeleteSnapshotGroupResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DeleteSnapshotGroupResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + // Predefined struct for user type DeleteSnapshotsRequestParams struct { // 要删除的快照ID列表,可通过[DescribeSnapshots](/document/product/362/15647)查询。 - SnapshotIds []*string `json:"SnapshotIds,omitempty" name:"SnapshotIds"` + SnapshotIds []*string `json:"SnapshotIds,omitnil,omitempty" name:"SnapshotIds"` // 是否强制删除快照关联的镜像 - DeleteBindImages *bool `json:"DeleteBindImages,omitempty" name:"DeleteBindImages"` + DeleteBindImages *bool `json:"DeleteBindImages,omitnil,omitempty" name:"DeleteBindImages"` } type DeleteSnapshotsRequest struct { *tchttp.BaseRequest // 要删除的快照ID列表,可通过[DescribeSnapshots](/document/product/362/15647)查询。 - SnapshotIds []*string `json:"SnapshotIds,omitempty" name:"SnapshotIds"` + SnapshotIds []*string `json:"SnapshotIds,omitnil,omitempty" name:"SnapshotIds"` // 是否强制删除快照关联的镜像 - DeleteBindImages *bool `json:"DeleteBindImages,omitempty" name:"DeleteBindImages"` + DeleteBindImages *bool `json:"DeleteBindImages,omitnil,omitempty" name:"DeleteBindImages"` } func (r *DeleteSnapshotsRequest) ToJsonString() string { @@ -1021,8 +1317,8 @@ func (r *DeleteSnapshotsRequest) FromJsonString(s string) error { // Predefined struct for user type DeleteSnapshotsResponseParams struct { - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type DeleteSnapshotsResponse struct { @@ -1044,44 +1340,44 @@ func (r *DeleteSnapshotsResponse) FromJsonString(s string) error { // Predefined struct for user type DescribeAutoSnapshotPoliciesRequestParams struct { // 要查询的定期快照策略ID列表。参数不支持同时指定`AutoSnapshotPolicyIds`和`Filters`。 - AutoSnapshotPolicyIds []*string `json:"AutoSnapshotPolicyIds,omitempty" name:"AutoSnapshotPolicyIds"` + AutoSnapshotPolicyIds []*string `json:"AutoSnapshotPolicyIds,omitnil,omitempty" name:"AutoSnapshotPolicyIds"` // 过滤条件。参数不支持同时指定`AutoSnapshotPolicyIds`和`Filters`。
  • auto-snapshot-policy-id - Array of String - 是否必填:否 -(过滤条件)按定期快照策略ID进行过滤。定期快照策略ID形如:`asp-11112222`。
  • auto-snapshot-policy-state - Array of String - 是否必填:否 -(过滤条件)按定期快照策略的状态进行过滤。定期快照策略ID形如:`asp-11112222`。(NORMAL:正常 | ISOLATED:已隔离。)
  • auto-snapshot-policy-name - Array of String - 是否必填:否 -(过滤条件)按定期快照策略名称进行过滤。 - Filters []*Filter `json:"Filters,omitempty" name:"Filters"` + Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` // 返回数量,默认为20,最大值为100。关于`Limit`的更进一步介绍请参考 API [简介](/document/product/362/15633)中的相关小节。 - Limit *uint64 `json:"Limit,omitempty" name:"Limit"` + Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` // 偏移量,默认为0。关于`Offset`的更进一步介绍请参考API[简介](/document/product/362/15633)中的相关小节。 - Offset *uint64 `json:"Offset,omitempty" name:"Offset"` + Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"` // 输出定期快照列表的排列顺序。取值范围:
  • ASC:升序排列
  • DESC:降序排列。 - Order *string `json:"Order,omitempty" name:"Order"` + Order *string `json:"Order,omitnil,omitempty" name:"Order"` // 定期快照列表排序的依据字段。取值范围:
  • CREATETIME:依据定期快照的创建时间排序
    默认按创建时间排序。 - OrderField *string `json:"OrderField,omitempty" name:"OrderField"` + OrderField *string `json:"OrderField,omitnil,omitempty" name:"OrderField"` } type DescribeAutoSnapshotPoliciesRequest struct { *tchttp.BaseRequest // 要查询的定期快照策略ID列表。参数不支持同时指定`AutoSnapshotPolicyIds`和`Filters`。 - AutoSnapshotPolicyIds []*string `json:"AutoSnapshotPolicyIds,omitempty" name:"AutoSnapshotPolicyIds"` + AutoSnapshotPolicyIds []*string `json:"AutoSnapshotPolicyIds,omitnil,omitempty" name:"AutoSnapshotPolicyIds"` // 过滤条件。参数不支持同时指定`AutoSnapshotPolicyIds`和`Filters`。
  • auto-snapshot-policy-id - Array of String - 是否必填:否 -(过滤条件)按定期快照策略ID进行过滤。定期快照策略ID形如:`asp-11112222`。
  • auto-snapshot-policy-state - Array of String - 是否必填:否 -(过滤条件)按定期快照策略的状态进行过滤。定期快照策略ID形如:`asp-11112222`。(NORMAL:正常 | ISOLATED:已隔离。)
  • auto-snapshot-policy-name - Array of String - 是否必填:否 -(过滤条件)按定期快照策略名称进行过滤。 - Filters []*Filter `json:"Filters,omitempty" name:"Filters"` + Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` // 返回数量,默认为20,最大值为100。关于`Limit`的更进一步介绍请参考 API [简介](/document/product/362/15633)中的相关小节。 - Limit *uint64 `json:"Limit,omitempty" name:"Limit"` + Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` // 偏移量,默认为0。关于`Offset`的更进一步介绍请参考API[简介](/document/product/362/15633)中的相关小节。 - Offset *uint64 `json:"Offset,omitempty" name:"Offset"` + Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"` // 输出定期快照列表的排列顺序。取值范围:
  • ASC:升序排列
  • DESC:降序排列。 - Order *string `json:"Order,omitempty" name:"Order"` + Order *string `json:"Order,omitnil,omitempty" name:"Order"` // 定期快照列表排序的依据字段。取值范围:
  • CREATETIME:依据定期快照的创建时间排序
    默认按创建时间排序。 - OrderField *string `json:"OrderField,omitempty" name:"OrderField"` + OrderField *string `json:"OrderField,omitnil,omitempty" name:"OrderField"` } func (r *DescribeAutoSnapshotPoliciesRequest) ToJsonString() string { @@ -1111,13 +1407,13 @@ func (r *DescribeAutoSnapshotPoliciesRequest) FromJsonString(s string) error { // Predefined struct for user type DescribeAutoSnapshotPoliciesResponseParams struct { // 有效的定期快照策略数量。 - TotalCount *uint64 `json:"TotalCount,omitempty" name:"TotalCount"` + TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"` // 定期快照策略列表。 - AutoSnapshotPolicySet []*AutoSnapshotPolicy `json:"AutoSnapshotPolicySet,omitempty" name:"AutoSnapshotPolicySet"` + AutoSnapshotPolicySet []*AutoSnapshotPolicy `json:"AutoSnapshotPolicySet,omitnil,omitempty" name:"AutoSnapshotPolicySet"` - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type DescribeAutoSnapshotPoliciesResponse struct { @@ -1139,14 +1435,14 @@ func (r *DescribeAutoSnapshotPoliciesResponse) FromJsonString(s string) error { // Predefined struct for user type DescribeDiskAssociatedAutoSnapshotPolicyRequestParams struct { // 要查询的云硬盘ID。 - DiskId *string `json:"DiskId,omitempty" name:"DiskId"` + DiskId *string `json:"DiskId,omitnil,omitempty" name:"DiskId"` } type DescribeDiskAssociatedAutoSnapshotPolicyRequest struct { *tchttp.BaseRequest // 要查询的云硬盘ID。 - DiskId *string `json:"DiskId,omitempty" name:"DiskId"` + DiskId *string `json:"DiskId,omitnil,omitempty" name:"DiskId"` } func (r *DescribeDiskAssociatedAutoSnapshotPolicyRequest) ToJsonString() string { @@ -1171,13 +1467,13 @@ func (r *DescribeDiskAssociatedAutoSnapshotPolicyRequest) FromJsonString(s strin // Predefined struct for user type DescribeDiskAssociatedAutoSnapshotPolicyResponseParams struct { // 云盘绑定的定期快照数量。 - TotalCount *uint64 `json:"TotalCount,omitempty" name:"TotalCount"` + TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"` // 云盘绑定的定期快照列表。 - AutoSnapshotPolicySet []*AutoSnapshotPolicy `json:"AutoSnapshotPolicySet,omitempty" name:"AutoSnapshotPolicySet"` + AutoSnapshotPolicySet []*AutoSnapshotPolicy `json:"AutoSnapshotPolicySet,omitnil,omitempty" name:"AutoSnapshotPolicySet"` - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type DescribeDiskAssociatedAutoSnapshotPolicyResponse struct { @@ -1199,48 +1495,44 @@ func (r *DescribeDiskAssociatedAutoSnapshotPolicyResponse) FromJsonString(s stri // Predefined struct for user type DescribeDiskBackupsRequestParams struct { // 要查询备份点的ID列表。参数不支持同时指定 DiskBackupIds 和 Filters。 - DiskBackupIds []*string `json:"DiskBackupIds,omitempty" name:"DiskBackupIds"` + DiskBackupIds []*string `json:"DiskBackupIds,omitnil,omitempty" name:"DiskBackupIds"` - // 过滤条件,参数不支持同时指定 DiskBackupIds 和 Filters。过滤条件:
  • disk-backup-id - Array of String - 是否必填:否 -(过滤条件)按照备份点的ID过滤。备份点ID形如:dbp-11112222。 - //
  • disk-id - Array of String - 是否必填:否 -(过滤条件)按照创建备份点的云硬盘ID过滤。 - //
  • disk-usage - Array of String - 是否必填:否 -(过滤条件)按创建备份点的云硬盘类型过滤。 (SYSTEM_DISK:代表系统盘 | DATA_DISK:代表数据盘。) - Filters []*Filter `json:"Filters,omitempty" name:"Filters"` + // 过滤条件,参数不支持同时指定 DiskBackupIds 和 Filters。过滤条件:
  • disk-backup-id - Array of String - 是否必填:否 -(过滤条件)按照备份点的ID过滤。备份点ID形如:dbp-11112222。

  • disk-id - Array of String - 是否必填:否 -(过滤条件)按照创建备份点的云硬盘ID过滤。

  • disk-usage - Array of String - 是否必填:否 -(过滤条件)按创建备份点的云硬盘类型过滤。 (SYSTEM_DISK:代表系统盘 | DATA_DISK:代表数据盘。)
  • + Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` // 偏移量,默认为0。关于`Offset`的更进一步介绍请参考API[简介](/document/product/362/15633)中的相关小节。 - Offset *uint64 `json:"Offset,omitempty" name:"Offset"` + Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"` // 返回数量,默认为20,最大值为100。关于`Limit`的更进一步介绍请参考 API [简介](/document/product/362/15633)中的相关小节。 - Limit *uint64 `json:"Limit,omitempty" name:"Limit"` + Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` - // 输出云硬盘备份点列表的排列顺序。取值范围:
  • ASC:升序排列
  • DESC:降序排列。 - Order *string `json:"Order,omitempty" name:"Order"` + // 输出云硬盘备份点列表的排列顺序。取值范围:
  • ASC:升序排列

  • DESC:降序排列。
  • + Order *string `json:"Order,omitnil,omitempty" name:"Order"` - // 云硬盘备份点列表排序的依据字段。取值范围:
  • CREATE_TIME:依据云硬盘备份点的创建时间排序
    默认按创建时间排序。 - OrderField *string `json:"OrderField,omitempty" name:"OrderField"` + // 云硬盘备份点列表排序的依据字段。取值范围:
  • CREATE_TIME:依据云硬盘备份点的创建时间排序

  • 默认按创建时间排序。 + OrderField *string `json:"OrderField,omitnil,omitempty" name:"OrderField"` } type DescribeDiskBackupsRequest struct { *tchttp.BaseRequest // 要查询备份点的ID列表。参数不支持同时指定 DiskBackupIds 和 Filters。 - DiskBackupIds []*string `json:"DiskBackupIds,omitempty" name:"DiskBackupIds"` + DiskBackupIds []*string `json:"DiskBackupIds,omitnil,omitempty" name:"DiskBackupIds"` - // 过滤条件,参数不支持同时指定 DiskBackupIds 和 Filters。过滤条件:
  • disk-backup-id - Array of String - 是否必填:否 -(过滤条件)按照备份点的ID过滤。备份点ID形如:dbp-11112222。 - //
  • disk-id - Array of String - 是否必填:否 -(过滤条件)按照创建备份点的云硬盘ID过滤。 - //
  • disk-usage - Array of String - 是否必填:否 -(过滤条件)按创建备份点的云硬盘类型过滤。 (SYSTEM_DISK:代表系统盘 | DATA_DISK:代表数据盘。) - Filters []*Filter `json:"Filters,omitempty" name:"Filters"` + // 过滤条件,参数不支持同时指定 DiskBackupIds 和 Filters。过滤条件:
  • disk-backup-id - Array of String - 是否必填:否 -(过滤条件)按照备份点的ID过滤。备份点ID形如:dbp-11112222。

  • disk-id - Array of String - 是否必填:否 -(过滤条件)按照创建备份点的云硬盘ID过滤。

  • disk-usage - Array of String - 是否必填:否 -(过滤条件)按创建备份点的云硬盘类型过滤。 (SYSTEM_DISK:代表系统盘 | DATA_DISK:代表数据盘。)
  • + Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` // 偏移量,默认为0。关于`Offset`的更进一步介绍请参考API[简介](/document/product/362/15633)中的相关小节。 - Offset *uint64 `json:"Offset,omitempty" name:"Offset"` + Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"` // 返回数量,默认为20,最大值为100。关于`Limit`的更进一步介绍请参考 API [简介](/document/product/362/15633)中的相关小节。 - Limit *uint64 `json:"Limit,omitempty" name:"Limit"` + Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` - // 输出云硬盘备份点列表的排列顺序。取值范围:
  • ASC:升序排列
  • DESC:降序排列。 - Order *string `json:"Order,omitempty" name:"Order"` + // 输出云硬盘备份点列表的排列顺序。取值范围:
  • ASC:升序排列

  • DESC:降序排列。
  • + Order *string `json:"Order,omitnil,omitempty" name:"Order"` - // 云硬盘备份点列表排序的依据字段。取值范围:
  • CREATE_TIME:依据云硬盘备份点的创建时间排序
    默认按创建时间排序。 - OrderField *string `json:"OrderField,omitempty" name:"OrderField"` + // 云硬盘备份点列表排序的依据字段。取值范围:
  • CREATE_TIME:依据云硬盘备份点的创建时间排序

  • 默认按创建时间排序。 + OrderField *string `json:"OrderField,omitnil,omitempty" name:"OrderField"` } func (r *DescribeDiskBackupsRequest) ToJsonString() string { @@ -1270,13 +1562,13 @@ func (r *DescribeDiskBackupsRequest) FromJsonString(s string) error { // Predefined struct for user type DescribeDiskBackupsResponseParams struct { // 符合条件的云硬盘备份点数量。 - TotalCount *uint64 `json:"TotalCount,omitempty" name:"TotalCount"` + TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"` // 云硬盘备份点的详细信息列表。 - DiskBackupSet []*DiskBackup `json:"DiskBackupSet,omitempty" name:"DiskBackupSet"` + DiskBackupSet []*DiskBackup `json:"DiskBackupSet,omitnil,omitempty" name:"DiskBackupSet"` - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type DescribeDiskBackupsResponse struct { @@ -1298,56 +1590,62 @@ func (r *DescribeDiskBackupsResponse) FromJsonString(s string) error { // Predefined struct for user type DescribeDiskConfigQuotaRequestParams struct { // 查询类别,取值范围。
  • INQUIRY_CBS_CONFIG:查询云盘配置列表
  • INQUIRY_CVM_CONFIG:查询云盘与实例搭配的配置列表。 - InquiryType *string `json:"InquiryType,omitempty" name:"InquiryType"` + InquiryType *string `json:"InquiryType,omitnil,omitempty" name:"InquiryType"` // 付费模式。取值范围:
  • PREPAID:预付费
  • POSTPAID_BY_HOUR:后付费。 - DiskChargeType *string `json:"DiskChargeType,omitempty" name:"DiskChargeType"` + DiskChargeType *string `json:"DiskChargeType,omitnil,omitempty" name:"DiskChargeType"` // 按照实例机型系列过滤。实例机型系列形如:S1、I1、M1等。详见[实例类型](https://cloud.tencent.com/document/product/213/11518) - InstanceFamilies []*string `json:"InstanceFamilies,omitempty" name:"InstanceFamilies"` + InstanceFamilies []*string `json:"InstanceFamilies,omitnil,omitempty" name:"InstanceFamilies"` // 硬盘介质类型。取值范围:
  • CLOUD_BASIC:表示普通云硬盘
  • CLOUD_PREMIUM:表示高性能云硬盘
  • CLOUD_SSD:表示SSD云硬盘
  • CLOUD_HSSD:表示增强型SSD云硬盘。 - DiskTypes []*string `json:"DiskTypes,omitempty" name:"DiskTypes"` + DiskTypes []*string `json:"DiskTypes,omitnil,omitempty" name:"DiskTypes"` // 查询一个或多个[可用区](/document/product/213/15753#ZoneInfo)下的配置。 - Zones []*string `json:"Zones,omitempty" name:"Zones"` + Zones []*string `json:"Zones,omitnil,omitempty" name:"Zones"` // 实例内存大小。 - Memory *uint64 `json:"Memory,omitempty" name:"Memory"` + Memory *uint64 `json:"Memory,omitnil,omitempty" name:"Memory"` // 系统盘或数据盘。取值范围:
  • SYSTEM_DISK:表示系统盘
  • DATA_DISK:表示数据盘。 - DiskUsage *string `json:"DiskUsage,omitempty" name:"DiskUsage"` + DiskUsage *string `json:"DiskUsage,omitnil,omitempty" name:"DiskUsage"` // 实例CPU核数。 - CPU *uint64 `json:"CPU,omitempty" name:"CPU"` + CPU *uint64 `json:"CPU,omitnil,omitempty" name:"CPU"` + + // 专用集群ID。 + DedicatedClusterId *string `json:"DedicatedClusterId,omitnil,omitempty" name:"DedicatedClusterId"` } type DescribeDiskConfigQuotaRequest struct { *tchttp.BaseRequest // 查询类别,取值范围。
  • INQUIRY_CBS_CONFIG:查询云盘配置列表
  • INQUIRY_CVM_CONFIG:查询云盘与实例搭配的配置列表。 - InquiryType *string `json:"InquiryType,omitempty" name:"InquiryType"` + InquiryType *string `json:"InquiryType,omitnil,omitempty" name:"InquiryType"` // 付费模式。取值范围:
  • PREPAID:预付费
  • POSTPAID_BY_HOUR:后付费。 - DiskChargeType *string `json:"DiskChargeType,omitempty" name:"DiskChargeType"` + DiskChargeType *string `json:"DiskChargeType,omitnil,omitempty" name:"DiskChargeType"` // 按照实例机型系列过滤。实例机型系列形如:S1、I1、M1等。详见[实例类型](https://cloud.tencent.com/document/product/213/11518) - InstanceFamilies []*string `json:"InstanceFamilies,omitempty" name:"InstanceFamilies"` + InstanceFamilies []*string `json:"InstanceFamilies,omitnil,omitempty" name:"InstanceFamilies"` // 硬盘介质类型。取值范围:
  • CLOUD_BASIC:表示普通云硬盘
  • CLOUD_PREMIUM:表示高性能云硬盘
  • CLOUD_SSD:表示SSD云硬盘
  • CLOUD_HSSD:表示增强型SSD云硬盘。 - DiskTypes []*string `json:"DiskTypes,omitempty" name:"DiskTypes"` + DiskTypes []*string `json:"DiskTypes,omitnil,omitempty" name:"DiskTypes"` // 查询一个或多个[可用区](/document/product/213/15753#ZoneInfo)下的配置。 - Zones []*string `json:"Zones,omitempty" name:"Zones"` + Zones []*string `json:"Zones,omitnil,omitempty" name:"Zones"` // 实例内存大小。 - Memory *uint64 `json:"Memory,omitempty" name:"Memory"` + Memory *uint64 `json:"Memory,omitnil,omitempty" name:"Memory"` // 系统盘或数据盘。取值范围:
  • SYSTEM_DISK:表示系统盘
  • DATA_DISK:表示数据盘。 - DiskUsage *string `json:"DiskUsage,omitempty" name:"DiskUsage"` + DiskUsage *string `json:"DiskUsage,omitnil,omitempty" name:"DiskUsage"` // 实例CPU核数。 - CPU *uint64 `json:"CPU,omitempty" name:"CPU"` + CPU *uint64 `json:"CPU,omitnil,omitempty" name:"CPU"` + + // 专用集群ID。 + DedicatedClusterId *string `json:"DedicatedClusterId,omitnil,omitempty" name:"DedicatedClusterId"` } func (r *DescribeDiskConfigQuotaRequest) ToJsonString() string { @@ -1370,6 +1668,7 @@ func (r *DescribeDiskConfigQuotaRequest) FromJsonString(s string) error { delete(f, "Memory") delete(f, "DiskUsage") delete(f, "CPU") + delete(f, "DedicatedClusterId") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeDiskConfigQuotaRequest has unknown keys!", "") } @@ -1379,10 +1678,10 @@ func (r *DescribeDiskConfigQuotaRequest) FromJsonString(s string) error { // Predefined struct for user type DescribeDiskConfigQuotaResponseParams struct { // 云盘配置列表。 - DiskConfigSet []*DiskConfig `json:"DiskConfigSet,omitempty" name:"DiskConfigSet"` + DiskConfigSet []*DiskConfig `json:"DiskConfigSet,omitnil,omitempty" name:"DiskConfigSet"` - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type DescribeDiskConfigQuotaResponse struct { @@ -1401,108 +1700,35 @@ func (r *DescribeDiskConfigQuotaResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -// Predefined struct for user -type DescribeDiskOperationLogsRequestParams struct { - // 过滤条件。支持以下条件: - //
  • disk-id - Array of String - 是否必填:是 - 按云盘ID过滤,每个请求最多可指定10个云盘ID。 - Filters []*Filter `json:"Filters,omitempty" name:"Filters"` - - // 要查询的操作日志的截止时间,例如:“2019-11-22 23:59:59" - EndTime *string `json:"EndTime,omitempty" name:"EndTime"` - - // 要查询的操作日志的起始时间,例如:“2019-11-22 00:00:00" - BeginTime *string `json:"BeginTime,omitempty" name:"BeginTime"` -} - -type DescribeDiskOperationLogsRequest struct { - *tchttp.BaseRequest - - // 过滤条件。支持以下条件: - //
  • disk-id - Array of String - 是否必填:是 - 按云盘ID过滤,每个请求最多可指定10个云盘ID。 - Filters []*Filter `json:"Filters,omitempty" name:"Filters"` - - // 要查询的操作日志的截止时间,例如:“2019-11-22 23:59:59" - EndTime *string `json:"EndTime,omitempty" name:"EndTime"` - - // 要查询的操作日志的起始时间,例如:“2019-11-22 00:00:00" - BeginTime *string `json:"BeginTime,omitempty" name:"BeginTime"` -} - -func (r *DescribeDiskOperationLogsRequest) ToJsonString() string { - b, _ := json.Marshal(r) - return string(b) -} - -// FromJsonString It is highly **NOT** recommended to use this function -// because it has no param check, nor strict type check -func (r *DescribeDiskOperationLogsRequest) FromJsonString(s string) error { - f := make(map[string]interface{}) - if err := json.Unmarshal([]byte(s), &f); err != nil { - return err - } - delete(f, "Filters") - delete(f, "EndTime") - delete(f, "BeginTime") - if len(f) > 0 { - return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeDiskOperationLogsRequest has unknown keys!", "") - } - return json.Unmarshal([]byte(s), &r) -} - -// Predefined struct for user -type DescribeDiskOperationLogsResponseParams struct { - // 云盘的操作日志列表。 - DiskOperationLogSet []*DiskOperationLog `json:"DiskOperationLogSet,omitempty" name:"DiskOperationLogSet"` - - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` -} - -type DescribeDiskOperationLogsResponse struct { - *tchttp.BaseResponse - Response *DescribeDiskOperationLogsResponseParams `json:"Response"` -} - -func (r *DescribeDiskOperationLogsResponse) ToJsonString() string { - b, _ := json.Marshal(r) - return string(b) -} - -// FromJsonString It is highly **NOT** recommended to use this function -// because it has no param check, nor strict type check -func (r *DescribeDiskOperationLogsResponse) FromJsonString(s string) error { - return json.Unmarshal([]byte(s), &r) -} - // Predefined struct for user type DescribeDiskStoragePoolRequestParams struct { // 返回数量,默认为20,最大值为100。关于`Limit`的更进一步介绍请参考 API [简介](/document/product/362/15633)中的相关小节。 - Limit *uint64 `json:"Limit,omitempty" name:"Limit"` + Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` // 指定需要查询的独享集群ID列表,该入参不能与Filters一起使用。 - CdcIds []*string `json:"CdcIds,omitempty" name:"CdcIds"` + CdcIds []*string `json:"CdcIds,omitnil,omitempty" name:"CdcIds"` // 过滤条件。参数不支持同时指定`CdcIds`和`Filters`。
  • cdc-id - Array of String - 是否必填:否 -(过滤条件)按独享集群ID过滤。
  • zone - Array of String - 是否必填:否 -(过滤条件)按独享集群所在[可用区](/document/product/213/15753#ZoneInfo)过滤。
  • cage-id - Array of String - 是否必填:否 -(过滤条件)按独享集群所在围笼的ID过滤。
  • disk-type - Array of String - 是否必填:否 -(过滤条件)按照云盘介质类型过滤。(CLOUD_BASIC:表示普通云硬盘 | CLOUD_PREMIUM:表示高性能云硬盘。| CLOUD_SSD:SSD表示SSD云硬盘。) - Filters []*Filter `json:"Filters,omitempty" name:"Filters"` + Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` // 偏移量,默认为0。关于`Offset`的更进一步介绍请参考API[简介](/document/product/362/15633)中的相关小节。 - Offset *uint64 `json:"Offset,omitempty" name:"Offset"` + Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"` } type DescribeDiskStoragePoolRequest struct { *tchttp.BaseRequest // 返回数量,默认为20,最大值为100。关于`Limit`的更进一步介绍请参考 API [简介](/document/product/362/15633)中的相关小节。 - Limit *uint64 `json:"Limit,omitempty" name:"Limit"` + Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` // 指定需要查询的独享集群ID列表,该入参不能与Filters一起使用。 - CdcIds []*string `json:"CdcIds,omitempty" name:"CdcIds"` + CdcIds []*string `json:"CdcIds,omitnil,omitempty" name:"CdcIds"` // 过滤条件。参数不支持同时指定`CdcIds`和`Filters`。
  • cdc-id - Array of String - 是否必填:否 -(过滤条件)按独享集群ID过滤。
  • zone - Array of String - 是否必填:否 -(过滤条件)按独享集群所在[可用区](/document/product/213/15753#ZoneInfo)过滤。
  • cage-id - Array of String - 是否必填:否 -(过滤条件)按独享集群所在围笼的ID过滤。
  • disk-type - Array of String - 是否必填:否 -(过滤条件)按照云盘介质类型过滤。(CLOUD_BASIC:表示普通云硬盘 | CLOUD_PREMIUM:表示高性能云硬盘。| CLOUD_SSD:SSD表示SSD云硬盘。) - Filters []*Filter `json:"Filters,omitempty" name:"Filters"` + Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` // 偏移量,默认为0。关于`Offset`的更进一步介绍请参考API[简介](/document/product/362/15633)中的相关小节。 - Offset *uint64 `json:"Offset,omitempty" name:"Offset"` + Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"` } func (r *DescribeDiskStoragePoolRequest) ToJsonString() string { @@ -1530,13 +1756,16 @@ func (r *DescribeDiskStoragePoolRequest) FromJsonString(s string) error { // Predefined struct for user type DescribeDiskStoragePoolResponseParams struct { // 符合条件的独享集群的数量 - TotalCount *uint64 `json:"TotalCount,omitempty" name:"TotalCount"` + TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"` + + // 独享集群的详细信息列表 + CdcSet []*Cdc `json:"CdcSet,omitnil,omitempty" name:"CdcSet"` // 独享集群的详细信息列表 - DiskStoragePoolSet []*Cdc `json:"DiskStoragePoolSet,omitempty" name:"DiskStoragePoolSet"` + DiskStoragePoolSet []*Cdc `json:"DiskStoragePoolSet,omitnil,omitempty" name:"DiskStoragePoolSet"` - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type DescribeDiskStoragePoolResponse struct { @@ -1557,51 +1786,51 @@ func (r *DescribeDiskStoragePoolResponse) FromJsonString(s string) error { // Predefined struct for user type DescribeDisksRequestParams struct { - // 过滤条件。参数不支持同时指定`DiskIds`和`Filters`。
  • disk-usage - Array of String - 是否必填:否 -(过滤条件)按云盘类型过滤。 (SYSTEM_DISK:表示系统盘 | DATA_DISK:表示数据盘)
  • disk-charge-type - Array of String - 是否必填:否 -(过滤条件)按照云硬盘计费模式过滤。 (PREPAID:表示预付费,即包年包月 | POSTPAID_BY_HOUR:表示后付费,即按量计费。)
  • portable - Array of String - 是否必填:否 -(过滤条件)按是否为弹性云盘过滤。 (TRUE:表示弹性云盘 | FALSE:表示非弹性云盘。)
  • project-id - Array of Integer - 是否必填:否 -(过滤条件)按云硬盘所属项目ID过滤。
  • disk-id - Array of String - 是否必填:否 -(过滤条件)按照云硬盘ID过滤。云盘ID形如:`disk-11112222`。
  • disk-name - Array of String - 是否必填:否 -(过滤条件)按照云盘名称过滤。
  • disk-type - Array of String - 是否必填:否 -(过滤条件)按照云盘介质类型过滤。(CLOUD_BASIC:表示普通云硬盘 | CLOUD_PREMIUM:表示高性能云硬盘。| CLOUD_SSD:表示SSD云硬盘 | CLOUD_HSSD:表示增强型SSD云硬盘。| CLOUD_TSSD:表示极速型云硬盘。)
  • disk-state - Array of String - 是否必填:否 -(过滤条件)按照云盘状态过滤。(UNATTACHED:未挂载 | ATTACHING:挂载中 | ATTACHED:已挂载 | DETACHING:解挂中 | EXPANDING:扩容中 | ROLLBACKING:回滚中 | TORECYCLE:待回收。)
  • instance-id - Array of String - 是否必填:否 -(过滤条件)按照云盘挂载的云主机实例ID过滤。可根据此参数查询挂载在指定云主机下的云硬盘。
  • zone - Array of String - 是否必填:否 -(过滤条件)按照[可用区](/document/product/213/15753#ZoneInfo)过滤。
  • instance-ip-address - Array of String - 是否必填:否 -(过滤条件)按云盘所挂载云主机的内网或外网IP过滤。
  • instance-name - Array of String - 是否必填:否 -(过滤条件)按云盘所挂载的实例名称过滤。
  • tag-key - Array of String - 是否必填:否 -(过滤条件)按照标签键进行过滤。
  • tag-value - Array of String - 是否必填:否 -(过滤条件)照标签值进行过滤。
  • tag:tag-key - Array of String - 是否必填:否 -(过滤条件)按照标签键值对进行过滤。 tag-key使用具体的标签键进行替换。 - Filters []*Filter `json:"Filters,omitempty" name:"Filters"` + // 过滤条件。参数不支持同时指定`DiskIds`和`Filters`。
  • disk-usage - Array of String - 是否必填:否 -(过滤条件)按云盘类型过滤。 (SYSTEM_DISK:表示系统盘 | DATA_DISK:表示数据盘)
  • disk-charge-type - Array of String - 是否必填:否 -(过滤条件)按照云硬盘计费模式过滤。 (PREPAID:表示预付费,即包年包月 | POSTPAID_BY_HOUR:表示后付费,即按量计费。)
  • portable - Array of String - 是否必填:否 -(过滤条件)按是否为弹性云盘过滤。 (TRUE:表示弹性云盘 | FALSE:表示非弹性云盘。)
  • project-id - Array of String - 是否必填:否 -(过滤条件)按云硬盘所属项目ID过滤。
  • disk-id - Array of String - 是否必填:否 -(过滤条件)按照云硬盘ID过滤。云盘ID形如:`disk-11112222`。
  • disk-name - Array of String - 是否必填:否 -(过滤条件)按照云盘名称过滤。
  • disk-type - Array of String - 是否必填:否 -(过滤条件)按照云盘介质类型过滤。(CLOUD_BASIC:表示普通云硬盘 | CLOUD_PREMIUM:表示高性能云硬盘。| CLOUD_SSD:表示SSD云硬盘 | CLOUD_HSSD:表示增强型SSD云硬盘。| CLOUD_TSSD:表示极速型云硬盘。)
  • disk-state - Array of String - 是否必填:否 -(过滤条件)按照云盘状态过滤。(UNATTACHED:未挂载 | ATTACHING:挂载中 | ATTACHED:已挂载 | DETACHING:解挂中 | EXPANDING:扩容中 | ROLLBACKING:回滚中 | TORECYCLE:待回收 | DUMPING:拷贝硬盘中。)
  • instance-id - Array of String - 是否必填:否 -(过滤条件)按照云盘挂载的云主机实例ID过滤。可根据此参数查询挂载在指定云主机下的云硬盘。
  • zone - Array of String - 是否必填:否 -(过滤条件)按照[可用区](/document/product/213/15753#ZoneInfo)过滤。
  • instance-ip-address - Array of String - 是否必填:否 -(过滤条件)按云盘所挂载云主机的内网或外网IP过滤。
  • instance-name - Array of String - 是否必填:否 -(过滤条件)按云盘所挂载的实例名称过滤。
  • tag-key - Array of String - 是否必填:否 -(过滤条件)按照标签键进行过滤。
  • tag-value - Array of String - 是否必填:否 -(过滤条件)照标签值进行过滤。
  • tag:tag-key - Array of String - 是否必填:否 -(过滤条件)按照标签键值对进行过滤。 tag-key使用具体的标签键进行替换。
  • dedicated-cluster-id - Array of String - 是否必填:否 -(过滤条件)按照 CDC 独享集群 ID 进行过滤。
  • cluster-group-id - String - 是否必填:否 -(过滤条件)按照 集群群组 ID 进行过滤。
  • + Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` // 返回数量,默认为20,最大值为100。关于`Limit`的更进一步介绍请参考 API [简介](/document/product/362/15633)中的相关小节。 - Limit *uint64 `json:"Limit,omitempty" name:"Limit"` + Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` - // 云盘列表排序的依据字段。取值范围:
  • CREATE_TIME:依据云盘的创建时间排序
  • DEADLINE:依据云盘的到期时间排序
    默认按云盘创建时间排序。 - OrderField *string `json:"OrderField,omitempty" name:"OrderField"` + // 云盘列表排序的依据字段。取值范围:
  • CREATE_TIME:依据云盘的创建时间排序
  • DEADLINE:依据云盘的到期时间排序
    默认按云盘创建时间排序。
  • + OrderField *string `json:"OrderField,omitnil,omitempty" name:"OrderField"` // 偏移量,默认为0。关于`Offset`的更进一步介绍请参考API[简介](/document/product/362/15633)中的相关小节。 - Offset *uint64 `json:"Offset,omitempty" name:"Offset"` + Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"` // 云盘详情中是否需要返回云盘绑定的定期快照策略ID,TRUE表示需要返回,FALSE表示不返回。 - ReturnBindAutoSnapshotPolicy *bool `json:"ReturnBindAutoSnapshotPolicy,omitempty" name:"ReturnBindAutoSnapshotPolicy"` + ReturnBindAutoSnapshotPolicy *bool `json:"ReturnBindAutoSnapshotPolicy,omitnil,omitempty" name:"ReturnBindAutoSnapshotPolicy"` // 按照一个或者多个云硬盘ID查询。云硬盘ID形如:`disk-11112222`,此参数的具体格式可参考API[简介](/document/product/362/15633)的ids.N一节)。参数不支持同时指定`DiskIds`和`Filters`。 - DiskIds []*string `json:"DiskIds,omitempty" name:"DiskIds"` + DiskIds []*string `json:"DiskIds,omitnil,omitempty" name:"DiskIds"` - // 输出云盘列表的排列顺序。取值范围:
  • ASC:升序排列
  • DESC:降序排列。 - Order *string `json:"Order,omitempty" name:"Order"` + // 输出云盘列表的排列顺序。取值范围:
  • ASC:升序排列
  • DESC:降序排列。
  • + Order *string `json:"Order,omitnil,omitempty" name:"Order"` } type DescribeDisksRequest struct { *tchttp.BaseRequest - // 过滤条件。参数不支持同时指定`DiskIds`和`Filters`。
  • disk-usage - Array of String - 是否必填:否 -(过滤条件)按云盘类型过滤。 (SYSTEM_DISK:表示系统盘 | DATA_DISK:表示数据盘)
  • disk-charge-type - Array of String - 是否必填:否 -(过滤条件)按照云硬盘计费模式过滤。 (PREPAID:表示预付费,即包年包月 | POSTPAID_BY_HOUR:表示后付费,即按量计费。)
  • portable - Array of String - 是否必填:否 -(过滤条件)按是否为弹性云盘过滤。 (TRUE:表示弹性云盘 | FALSE:表示非弹性云盘。)
  • project-id - Array of Integer - 是否必填:否 -(过滤条件)按云硬盘所属项目ID过滤。
  • disk-id - Array of String - 是否必填:否 -(过滤条件)按照云硬盘ID过滤。云盘ID形如:`disk-11112222`。
  • disk-name - Array of String - 是否必填:否 -(过滤条件)按照云盘名称过滤。
  • disk-type - Array of String - 是否必填:否 -(过滤条件)按照云盘介质类型过滤。(CLOUD_BASIC:表示普通云硬盘 | CLOUD_PREMIUM:表示高性能云硬盘。| CLOUD_SSD:表示SSD云硬盘 | CLOUD_HSSD:表示增强型SSD云硬盘。| CLOUD_TSSD:表示极速型云硬盘。)
  • disk-state - Array of String - 是否必填:否 -(过滤条件)按照云盘状态过滤。(UNATTACHED:未挂载 | ATTACHING:挂载中 | ATTACHED:已挂载 | DETACHING:解挂中 | EXPANDING:扩容中 | ROLLBACKING:回滚中 | TORECYCLE:待回收。)
  • instance-id - Array of String - 是否必填:否 -(过滤条件)按照云盘挂载的云主机实例ID过滤。可根据此参数查询挂载在指定云主机下的云硬盘。
  • zone - Array of String - 是否必填:否 -(过滤条件)按照[可用区](/document/product/213/15753#ZoneInfo)过滤。
  • instance-ip-address - Array of String - 是否必填:否 -(过滤条件)按云盘所挂载云主机的内网或外网IP过滤。
  • instance-name - Array of String - 是否必填:否 -(过滤条件)按云盘所挂载的实例名称过滤。
  • tag-key - Array of String - 是否必填:否 -(过滤条件)按照标签键进行过滤。
  • tag-value - Array of String - 是否必填:否 -(过滤条件)照标签值进行过滤。
  • tag:tag-key - Array of String - 是否必填:否 -(过滤条件)按照标签键值对进行过滤。 tag-key使用具体的标签键进行替换。 - Filters []*Filter `json:"Filters,omitempty" name:"Filters"` + // 过滤条件。参数不支持同时指定`DiskIds`和`Filters`。
  • disk-usage - Array of String - 是否必填:否 -(过滤条件)按云盘类型过滤。 (SYSTEM_DISK:表示系统盘 | DATA_DISK:表示数据盘)
  • disk-charge-type - Array of String - 是否必填:否 -(过滤条件)按照云硬盘计费模式过滤。 (PREPAID:表示预付费,即包年包月 | POSTPAID_BY_HOUR:表示后付费,即按量计费。)
  • portable - Array of String - 是否必填:否 -(过滤条件)按是否为弹性云盘过滤。 (TRUE:表示弹性云盘 | FALSE:表示非弹性云盘。)
  • project-id - Array of String - 是否必填:否 -(过滤条件)按云硬盘所属项目ID过滤。
  • disk-id - Array of String - 是否必填:否 -(过滤条件)按照云硬盘ID过滤。云盘ID形如:`disk-11112222`。
  • disk-name - Array of String - 是否必填:否 -(过滤条件)按照云盘名称过滤。
  • disk-type - Array of String - 是否必填:否 -(过滤条件)按照云盘介质类型过滤。(CLOUD_BASIC:表示普通云硬盘 | CLOUD_PREMIUM:表示高性能云硬盘。| CLOUD_SSD:表示SSD云硬盘 | CLOUD_HSSD:表示增强型SSD云硬盘。| CLOUD_TSSD:表示极速型云硬盘。)
  • disk-state - Array of String - 是否必填:否 -(过滤条件)按照云盘状态过滤。(UNATTACHED:未挂载 | ATTACHING:挂载中 | ATTACHED:已挂载 | DETACHING:解挂中 | EXPANDING:扩容中 | ROLLBACKING:回滚中 | TORECYCLE:待回收 | DUMPING:拷贝硬盘中。)
  • instance-id - Array of String - 是否必填:否 -(过滤条件)按照云盘挂载的云主机实例ID过滤。可根据此参数查询挂载在指定云主机下的云硬盘。
  • zone - Array of String - 是否必填:否 -(过滤条件)按照[可用区](/document/product/213/15753#ZoneInfo)过滤。
  • instance-ip-address - Array of String - 是否必填:否 -(过滤条件)按云盘所挂载云主机的内网或外网IP过滤。
  • instance-name - Array of String - 是否必填:否 -(过滤条件)按云盘所挂载的实例名称过滤。
  • tag-key - Array of String - 是否必填:否 -(过滤条件)按照标签键进行过滤。
  • tag-value - Array of String - 是否必填:否 -(过滤条件)照标签值进行过滤。
  • tag:tag-key - Array of String - 是否必填:否 -(过滤条件)按照标签键值对进行过滤。 tag-key使用具体的标签键进行替换。
  • dedicated-cluster-id - Array of String - 是否必填:否 -(过滤条件)按照 CDC 独享集群 ID 进行过滤。
  • cluster-group-id - String - 是否必填:否 -(过滤条件)按照 集群群组 ID 进行过滤。
  • + Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` // 返回数量,默认为20,最大值为100。关于`Limit`的更进一步介绍请参考 API [简介](/document/product/362/15633)中的相关小节。 - Limit *uint64 `json:"Limit,omitempty" name:"Limit"` + Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` - // 云盘列表排序的依据字段。取值范围:
  • CREATE_TIME:依据云盘的创建时间排序
  • DEADLINE:依据云盘的到期时间排序
    默认按云盘创建时间排序。 - OrderField *string `json:"OrderField,omitempty" name:"OrderField"` + // 云盘列表排序的依据字段。取值范围:
  • CREATE_TIME:依据云盘的创建时间排序
  • DEADLINE:依据云盘的到期时间排序
    默认按云盘创建时间排序。
  • + OrderField *string `json:"OrderField,omitnil,omitempty" name:"OrderField"` // 偏移量,默认为0。关于`Offset`的更进一步介绍请参考API[简介](/document/product/362/15633)中的相关小节。 - Offset *uint64 `json:"Offset,omitempty" name:"Offset"` + Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"` // 云盘详情中是否需要返回云盘绑定的定期快照策略ID,TRUE表示需要返回,FALSE表示不返回。 - ReturnBindAutoSnapshotPolicy *bool `json:"ReturnBindAutoSnapshotPolicy,omitempty" name:"ReturnBindAutoSnapshotPolicy"` + ReturnBindAutoSnapshotPolicy *bool `json:"ReturnBindAutoSnapshotPolicy,omitnil,omitempty" name:"ReturnBindAutoSnapshotPolicy"` // 按照一个或者多个云硬盘ID查询。云硬盘ID形如:`disk-11112222`,此参数的具体格式可参考API[简介](/document/product/362/15633)的ids.N一节)。参数不支持同时指定`DiskIds`和`Filters`。 - DiskIds []*string `json:"DiskIds,omitempty" name:"DiskIds"` + DiskIds []*string `json:"DiskIds,omitnil,omitempty" name:"DiskIds"` - // 输出云盘列表的排列顺序。取值范围:
  • ASC:升序排列
  • DESC:降序排列。 - Order *string `json:"Order,omitempty" name:"Order"` + // 输出云盘列表的排列顺序。取值范围:
  • ASC:升序排列
  • DESC:降序排列。
  • + Order *string `json:"Order,omitnil,omitempty" name:"Order"` } func (r *DescribeDisksRequest) ToJsonString() string { @@ -1632,13 +1861,13 @@ func (r *DescribeDisksRequest) FromJsonString(s string) error { // Predefined struct for user type DescribeDisksResponseParams struct { // 符合条件的云硬盘数量。 - TotalCount *uint64 `json:"TotalCount,omitempty" name:"TotalCount"` + TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"` // 云硬盘的详细信息列表。 - DiskSet []*Disk `json:"DiskSet,omitempty" name:"DiskSet"` + DiskSet []*Disk `json:"DiskSet,omitnil,omitempty" name:"DiskSet"` - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type DescribeDisksResponse struct { @@ -1660,14 +1889,14 @@ func (r *DescribeDisksResponse) FromJsonString(s string) error { // Predefined struct for user type DescribeInstancesDiskNumRequestParams struct { // 云服务器实例ID,通过[DescribeInstances](/document/product/213/15728)接口查询。 - InstanceIds []*string `json:"InstanceIds,omitempty" name:"InstanceIds"` + InstanceIds []*string `json:"InstanceIds,omitnil,omitempty" name:"InstanceIds"` } type DescribeInstancesDiskNumRequest struct { *tchttp.BaseRequest // 云服务器实例ID,通过[DescribeInstances](/document/product/213/15728)接口查询。 - InstanceIds []*string `json:"InstanceIds,omitempty" name:"InstanceIds"` + InstanceIds []*string `json:"InstanceIds,omitnil,omitempty" name:"InstanceIds"` } func (r *DescribeInstancesDiskNumRequest) ToJsonString() string { @@ -1692,10 +1921,10 @@ func (r *DescribeInstancesDiskNumRequest) FromJsonString(s string) error { // Predefined struct for user type DescribeInstancesDiskNumResponseParams struct { // 各个云服务器已挂载和可挂载弹性云盘的数量。 - AttachDetail []*AttachDetail `json:"AttachDetail,omitempty" name:"AttachDetail"` + AttachDetail []*AttachDetail `json:"AttachDetail,omitnil,omitempty" name:"AttachDetail"` - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type DescribeInstancesDiskNumResponse struct { @@ -1715,89 +1944,153 @@ func (r *DescribeInstancesDiskNumResponse) FromJsonString(s string) error { } // Predefined struct for user -type DescribeSnapshotOperationLogsRequestParams struct { - // 过滤条件。支持以下条件: - //
  • snapshot-id - Array of String - 是否必填:是 - 按快照ID过滤,每个请求最多可指定10个快照ID。 - Filters []*Filter `json:"Filters,omitempty" name:"Filters"` +type DescribeSnapshotGroupsRequestParams struct { + // 过滤条件。
  • snapshot-group-id - Array of String - 是否必填:否 -(过滤条件)按快照组ID过滤
  • snapshot-group-state - Array of String - 是否必填:否 -(过滤条件)按快照组状态过滤。(NORMAL: 正常 | CREATING:创建中 | ROLLBACKING:回滚中)
  • snapshot-group-name - Array of String - 是否必填:否 -(过滤条件)按快照组名称过滤
  • snapshot-id - Array of String - 是否必填:否 -(过滤条件)按快照组内的快照ID过滤 + Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` - // 要查询的操作日志的截止时间,例如:“2019-11-22 23:59:59" - EndTime *string `json:"EndTime,omitempty" name:"EndTime"` + // 偏移量,默认为0。 + Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"` - // 要查询的操作日志的起始时间,例如:“2019-11-22 00:00:00" - BeginTime *string `json:"BeginTime,omitempty" name:"BeginTime"` + // 返回数量,默认为20,最大值为100。 + Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` } -type DescribeSnapshotOperationLogsRequest struct { +type DescribeSnapshotGroupsRequest struct { *tchttp.BaseRequest - // 过滤条件。支持以下条件: - //
  • snapshot-id - Array of String - 是否必填:是 - 按快照ID过滤,每个请求最多可指定10个快照ID。 - Filters []*Filter `json:"Filters,omitempty" name:"Filters"` + // 过滤条件。
  • snapshot-group-id - Array of String - 是否必填:否 -(过滤条件)按快照组ID过滤
  • snapshot-group-state - Array of String - 是否必填:否 -(过滤条件)按快照组状态过滤。(NORMAL: 正常 | CREATING:创建中 | ROLLBACKING:回滚中)
  • snapshot-group-name - Array of String - 是否必填:否 -(过滤条件)按快照组名称过滤
  • snapshot-id - Array of String - 是否必填:否 -(过滤条件)按快照组内的快照ID过滤 + Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` - // 要查询的操作日志的截止时间,例如:“2019-11-22 23:59:59" - EndTime *string `json:"EndTime,omitempty" name:"EndTime"` + // 偏移量,默认为0。 + Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"` - // 要查询的操作日志的起始时间,例如:“2019-11-22 00:00:00" - BeginTime *string `json:"BeginTime,omitempty" name:"BeginTime"` + // 返回数量,默认为20,最大值为100。 + Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` } -func (r *DescribeSnapshotOperationLogsRequest) ToJsonString() string { +func (r *DescribeSnapshotGroupsRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DescribeSnapshotOperationLogsRequest) FromJsonString(s string) error { +func (r *DescribeSnapshotGroupsRequest) FromJsonString(s string) error { f := make(map[string]interface{}) if err := json.Unmarshal([]byte(s), &f); err != nil { return err } delete(f, "Filters") - delete(f, "EndTime") - delete(f, "BeginTime") + delete(f, "Offset") + delete(f, "Limit") if len(f) > 0 { - return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeSnapshotOperationLogsRequest has unknown keys!", "") + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeSnapshotGroupsRequest has unknown keys!", "") } return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type DescribeSnapshotOperationLogsResponseParams struct { - // 快照操作日志列表。 - SnapshotOperationLogSet []*SnapshotOperationLog `json:"SnapshotOperationLogSet,omitempty" name:"SnapshotOperationLogSet"` +type DescribeSnapshotGroupsResponseParams struct { + // 符合条件的总数量。 + TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"` + + // 快照组列表详情。 + SnapshotGroupSet []*SnapshotGroup `json:"SnapshotGroupSet,omitnil,omitempty" name:"SnapshotGroupSet"` - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } -type DescribeSnapshotOperationLogsResponse struct { +type DescribeSnapshotGroupsResponse struct { *tchttp.BaseResponse - Response *DescribeSnapshotOperationLogsResponseParams `json:"Response"` + Response *DescribeSnapshotGroupsResponseParams `json:"Response"` +} + +func (r *DescribeSnapshotGroupsResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeSnapshotGroupsResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribeSnapshotOverviewRequestParams struct { + } -func (r *DescribeSnapshotOperationLogsResponse) ToJsonString() string { +type DescribeSnapshotOverviewRequest struct { + *tchttp.BaseRequest + +} + +func (r *DescribeSnapshotOverviewRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DescribeSnapshotOperationLogsResponse) FromJsonString(s string) error { +func (r *DescribeSnapshotOverviewRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeSnapshotOverviewRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribeSnapshotOverviewResponseParams struct { + // 当前总有效快照数量 + TotalNums *uint64 `json:"TotalNums,omitnil,omitempty" name:"TotalNums"` + + // 已使用快照总容量大小,容量单位为GiB + TotalSize *float64 `json:"TotalSize,omitnil,omitempty" name:"TotalSize"` + + // 快照免费额度大小,额度单位为GiB + FreeQuota *float64 `json:"FreeQuota,omitnil,omitempty" name:"FreeQuota"` + + // 快照真实产生计费的总容量大小,单位为GiB + RealTradeSize *float64 `json:"RealTradeSize,omitnil,omitempty" name:"RealTradeSize"` + + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type DescribeSnapshotOverviewResponse struct { + *tchttp.BaseResponse + Response *DescribeSnapshotOverviewResponseParams `json:"Response"` +} + +func (r *DescribeSnapshotOverviewResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeSnapshotOverviewResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } // Predefined struct for user type DescribeSnapshotSharePermissionRequestParams struct { // 要查询快照的ID。可通过[DescribeSnapshots](https://cloud.tencent.com/document/api/362/15647)查询获取。 - SnapshotId *string `json:"SnapshotId,omitempty" name:"SnapshotId"` + SnapshotId *string `json:"SnapshotId,omitnil,omitempty" name:"SnapshotId"` } type DescribeSnapshotSharePermissionRequest struct { *tchttp.BaseRequest // 要查询快照的ID。可通过[DescribeSnapshots](https://cloud.tencent.com/document/api/362/15647)查询获取。 - SnapshotId *string `json:"SnapshotId,omitempty" name:"SnapshotId"` + SnapshotId *string `json:"SnapshotId,omitnil,omitempty" name:"SnapshotId"` } func (r *DescribeSnapshotSharePermissionRequest) ToJsonString() string { @@ -1822,10 +2115,10 @@ func (r *DescribeSnapshotSharePermissionRequest) FromJsonString(s string) error // Predefined struct for user type DescribeSnapshotSharePermissionResponseParams struct { // 快照的分享信息的集合 - SharePermissionSet []*SharePermission `json:"SharePermissionSet,omitempty" name:"SharePermissionSet"` + SharePermissionSet []*SharePermission `json:"SharePermissionSet,omitnil,omitempty" name:"SharePermissionSet"` - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type DescribeSnapshotSharePermissionResponse struct { @@ -1847,48 +2140,60 @@ func (r *DescribeSnapshotSharePermissionResponse) FromJsonString(s string) error // Predefined struct for user type DescribeSnapshotsRequestParams struct { // 要查询快照的ID列表。参数不支持同时指定`SnapshotIds`和`Filters`。 - SnapshotIds []*string `json:"SnapshotIds,omitempty" name:"SnapshotIds"` + SnapshotIds []*string `json:"SnapshotIds,omitnil,omitempty" name:"SnapshotIds"` - // 过滤条件。参数不支持同时指定`SnapshotIds`和`Filters`。
  • snapshot-id - Array of String - 是否必填:否 -(过滤条件)按照快照的ID过滤。快照ID形如:`snap-11112222`。
  • snapshot-name - Array of String - 是否必填:否 -(过滤条件)按照快照名称过滤。
  • snapshot-state - Array of String - 是否必填:否 -(过滤条件)按照快照状态过滤。 (NORMAL:正常 | CREATING:创建中 | ROLLBACKING:回滚中。)
  • disk-usage - Array of String - 是否必填:否 -(过滤条件)按创建快照的云盘类型过滤。 (SYSTEM_DISK:代表系统盘 | DATA_DISK:代表数据盘。)
  • project-id - Array of String - 是否必填:否 -(过滤条件)按云硬盘所属项目ID过滤。
  • disk-id - Array of String - 是否必填:否 -(过滤条件)按照创建快照的云硬盘ID过滤。
  • zone - Array of String - 是否必填:否 -(过滤条件)按照[可用区](/document/product/213/15753#ZoneInfo)过滤。
  • encrypt - Array of String - 是否必填:否 -(过滤条件)按是否加密盘快照过滤。 (TRUE:表示加密盘快照 | FALSE:表示非加密盘快照。) - //
  • snapshot-type- Array of String - 是否必填:否 -(过滤条件)根据snapshot-type指定的快照类型查询对应的快照。 - // (SHARED_SNAPSHOT:表示共享过来的快照 | PRIVATE_SNAPSHOT:表示自己私有快照。) - Filters []*Filter `json:"Filters,omitempty" name:"Filters"` - - // 偏移量,默认为0。关于`Offset`的更进一步介绍请参考API[简介](/document/product/362/15633)中的相关小节。 - Offset *uint64 `json:"Offset,omitempty" name:"Offset"` + // 过滤条件。参数不支持同时指定SnapshotIds和Filters。
    + Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` // 返回数量,默认为20,最大值为100。关于`Limit`的更进一步介绍请参考 API [简介](/document/product/362/15633)中的相关小节。 - Limit *uint64 `json:"Limit,omitempty" name:"Limit"` + Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` + + // 快照列表排序的依据字段。取值范围: + // + OrderField *string `json:"OrderField,omitnil,omitempty" name:"OrderField"` - // 输出云盘列表的排列顺序。取值范围:
  • ASC:升序排列
  • DESC:降序排列。 - Order *string `json:"Order,omitempty" name:"Order"` + // 偏移量,默认为0。关于`Offset`的更进一步介绍请参考API[简介](/document/product/362/15633)中的相关小节。 + Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"` - // 快照列表排序的依据字段。取值范围:
  • CREATE_TIME:依据快照的创建时间排序
    默认按创建时间排序。 - OrderField *string `json:"OrderField,omitempty" name:"OrderField"` + // 输出云盘列表的排列顺序。取值范围: + // + Order *string `json:"Order,omitnil,omitempty" name:"Order"` } type DescribeSnapshotsRequest struct { *tchttp.BaseRequest // 要查询快照的ID列表。参数不支持同时指定`SnapshotIds`和`Filters`。 - SnapshotIds []*string `json:"SnapshotIds,omitempty" name:"SnapshotIds"` + SnapshotIds []*string `json:"SnapshotIds,omitnil,omitempty" name:"SnapshotIds"` - // 过滤条件。参数不支持同时指定`SnapshotIds`和`Filters`。
  • snapshot-id - Array of String - 是否必填:否 -(过滤条件)按照快照的ID过滤。快照ID形如:`snap-11112222`。
  • snapshot-name - Array of String - 是否必填:否 -(过滤条件)按照快照名称过滤。
  • snapshot-state - Array of String - 是否必填:否 -(过滤条件)按照快照状态过滤。 (NORMAL:正常 | CREATING:创建中 | ROLLBACKING:回滚中。)
  • disk-usage - Array of String - 是否必填:否 -(过滤条件)按创建快照的云盘类型过滤。 (SYSTEM_DISK:代表系统盘 | DATA_DISK:代表数据盘。)
  • project-id - Array of String - 是否必填:否 -(过滤条件)按云硬盘所属项目ID过滤。
  • disk-id - Array of String - 是否必填:否 -(过滤条件)按照创建快照的云硬盘ID过滤。
  • zone - Array of String - 是否必填:否 -(过滤条件)按照[可用区](/document/product/213/15753#ZoneInfo)过滤。
  • encrypt - Array of String - 是否必填:否 -(过滤条件)按是否加密盘快照过滤。 (TRUE:表示加密盘快照 | FALSE:表示非加密盘快照。) - //
  • snapshot-type- Array of String - 是否必填:否 -(过滤条件)根据snapshot-type指定的快照类型查询对应的快照。 - // (SHARED_SNAPSHOT:表示共享过来的快照 | PRIVATE_SNAPSHOT:表示自己私有快照。) - Filters []*Filter `json:"Filters,omitempty" name:"Filters"` - - // 偏移量,默认为0。关于`Offset`的更进一步介绍请参考API[简介](/document/product/362/15633)中的相关小节。 - Offset *uint64 `json:"Offset,omitempty" name:"Offset"` + // 过滤条件。参数不支持同时指定SnapshotIds和Filters。
    + Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` // 返回数量,默认为20,最大值为100。关于`Limit`的更进一步介绍请参考 API [简介](/document/product/362/15633)中的相关小节。 - Limit *uint64 `json:"Limit,omitempty" name:"Limit"` + Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` + + // 快照列表排序的依据字段。取值范围: + // + OrderField *string `json:"OrderField,omitnil,omitempty" name:"OrderField"` - // 输出云盘列表的排列顺序。取值范围:
  • ASC:升序排列
  • DESC:降序排列。 - Order *string `json:"Order,omitempty" name:"Order"` + // 偏移量,默认为0。关于`Offset`的更进一步介绍请参考API[简介](/document/product/362/15633)中的相关小节。 + Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"` - // 快照列表排序的依据字段。取值范围:
  • CREATE_TIME:依据快照的创建时间排序
    默认按创建时间排序。 - OrderField *string `json:"OrderField,omitempty" name:"OrderField"` + // 输出云盘列表的排列顺序。取值范围: + // + Order *string `json:"Order,omitnil,omitempty" name:"Order"` } func (r *DescribeSnapshotsRequest) ToJsonString() string { @@ -1905,10 +2210,10 @@ func (r *DescribeSnapshotsRequest) FromJsonString(s string) error { } delete(f, "SnapshotIds") delete(f, "Filters") - delete(f, "Offset") delete(f, "Limit") - delete(f, "Order") delete(f, "OrderField") + delete(f, "Offset") + delete(f, "Order") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeSnapshotsRequest has unknown keys!", "") } @@ -1918,13 +2223,13 @@ func (r *DescribeSnapshotsRequest) FromJsonString(s string) error { // Predefined struct for user type DescribeSnapshotsResponseParams struct { // 快照的数量。 - TotalCount *uint64 `json:"TotalCount,omitempty" name:"TotalCount"` + TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"` // 快照的详情列表。 - SnapshotSet []*Snapshot `json:"SnapshotSet,omitempty" name:"SnapshotSet"` + SnapshotSet []*Snapshot `json:"SnapshotSet,omitnil,omitempty" name:"SnapshotSet"` - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type DescribeSnapshotsResponse struct { @@ -1946,20 +2251,20 @@ func (r *DescribeSnapshotsResponse) FromJsonString(s string) error { // Predefined struct for user type DetachDisksRequestParams struct { // 将要卸载的云硬盘ID, 通过[DescribeDisks](/document/product/362/16315)接口查询,单次请求最多可卸载10块弹性云盘。 - DiskIds []*string `json:"DiskIds,omitempty" name:"DiskIds"` + DiskIds []*string `json:"DiskIds,omitnil,omitempty" name:"DiskIds"` - // 对于非共享型云盘,会忽略该参数;对于共享型云盘,该参数表示要从哪个CVM实例上卸载云盘。 - InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` + // 对于非共享型云盘,会根据该参数校验是否与实际挂载的实例一致;对于共享型云盘,该参数表示要从哪个CVM实例上卸载云盘。 + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` } type DetachDisksRequest struct { *tchttp.BaseRequest // 将要卸载的云硬盘ID, 通过[DescribeDisks](/document/product/362/16315)接口查询,单次请求最多可卸载10块弹性云盘。 - DiskIds []*string `json:"DiskIds,omitempty" name:"DiskIds"` + DiskIds []*string `json:"DiskIds,omitnil,omitempty" name:"DiskIds"` - // 对于非共享型云盘,会忽略该参数;对于共享型云盘,该参数表示要从哪个CVM实例上卸载云盘。 - InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` + // 对于非共享型云盘,会根据该参数校验是否与实际挂载的实例一致;对于共享型云盘,该参数表示要从哪个CVM实例上卸载云盘。 + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` } func (r *DetachDisksRequest) ToJsonString() string { @@ -1984,8 +2289,8 @@ func (r *DetachDisksRequest) FromJsonString(s string) error { // Predefined struct for user type DetachDisksResponseParams struct { - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type DetachDisksResponse struct { @@ -2004,255 +2309,275 @@ func (r *DetachDisksResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -type Disk struct { - // 云盘是否与挂载的实例一起销毁。
  • true:销毁实例时会同时销毁云盘,只支持按小时后付费云盘。
  • false:销毁实例时不销毁云盘。 +type DetailPrice struct { + // 描述计费项目名称。 + PriceTitle *string `json:"PriceTitle,omitnil,omitempty" name:"PriceTitle"` + + // 描述计费项目显示名称,用户控制台展示。 + PriceName *string `json:"PriceName,omitnil,omitempty" name:"PriceName"` + + // 预付费云盘预支费用的原价,单位:元。 + // 注意:此字段可能返回 null,表示取不到有效值。 + OriginalPrice *float64 `json:"OriginalPrice,omitnil,omitempty" name:"OriginalPrice"` + + // 预付费云盘预支费用的折扣价,单位:元。 // 注意:此字段可能返回 null,表示取不到有效值。 - DeleteWithInstance *bool `json:"DeleteWithInstance,omitempty" name:"DeleteWithInstance"` + DiscountPrice *float64 `json:"DiscountPrice,omitnil,omitempty" name:"DiscountPrice"` - // 自动续费标识。取值范围:
  • NOTIFY_AND_AUTO_RENEW:通知过期且自动续费
  • NOTIFY_AND_MANUAL_RENEW:通知过期不自动续费
  • DISABLE_NOTIFY_AND_MANUAL_RENEW:不通知过期不自动续费。 + // 后付费云盘原单价,单位:元。 // 注意:此字段可能返回 null,表示取不到有效值。 - RenewFlag *string `json:"RenewFlag,omitempty" name:"RenewFlag"` + UnitPrice *float64 `json:"UnitPrice,omitnil,omitempty" name:"UnitPrice"` - // 硬盘介质类型。取值范围:
  • CLOUD_BASIC:表示普通云硬盘
  • CLOUD_PREMIUM:表示高性能云硬盘
  • CLOUD_BSSD:表示通用型SSD云硬盘
  • CLOUD_SSD:表示SSD云硬盘
  • CLOUD_HSSD:表示增强型SSD云硬盘
  • CLOUD_TSSD:表示极速型SSD云硬盘。 - DiskType *string `json:"DiskType,omitempty" name:"DiskType"` + // 后付费云盘折扣单价,单位:元。 + // 注意:此字段可能返回 null,表示取不到有效值。 + UnitPriceDiscount *float64 `json:"UnitPriceDiscount,omitnil,omitempty" name:"UnitPriceDiscount"` - // 云盘状态。取值范围:
  • UNATTACHED:未挂载
  • ATTACHING:挂载中
  • ATTACHED:已挂载
  • DETACHING:解挂中
  • EXPANDING:扩容中
  • ROLLBACKING:回滚中
  • TORECYCLE:待回收
  • DUMPING:拷贝硬盘中。 - DiskState *string `json:"DiskState,omitempty" name:"DiskState"` + // 后付费云盘的计价单元,取值范围:HOUR:表示后付费云盘的计价单元是按小时计算。 + // 注意:此字段可能返回 null,表示取不到有效值。 + ChargeUnit *string `json:"ChargeUnit,omitnil,omitempty" name:"ChargeUnit"` - // 云盘拥有的快照总数。 - SnapshotCount *int64 `json:"SnapshotCount,omitempty" name:"SnapshotCount"` + // 高精度预付费云盘预支费用的原价,单位:元。 + // 注意:此字段可能返回 null,表示取不到有效值。 + OriginalPriceHigh *string `json:"OriginalPriceHigh,omitnil,omitempty" name:"OriginalPriceHigh"` - // 云盘已挂载到子机,且子机与云盘都是包年包月。
  • true:子机设置了自动续费标识,但云盘未设置
  • false:云盘自动续费标识正常。 + // 高精度预付费云盘预支费用的折扣价,单位:元。 // 注意:此字段可能返回 null,表示取不到有效值。 - AutoRenewFlagError *bool `json:"AutoRenewFlagError,omitempty" name:"AutoRenewFlagError"` + DiscountPriceHigh *string `json:"DiscountPriceHigh,omitnil,omitempty" name:"DiscountPriceHigh"` + + // 高精度后付费云盘原单价,单位:元。 + // 注意:此字段可能返回 null,表示取不到有效值。 + UnitPriceHigh *string `json:"UnitPriceHigh,omitnil,omitempty" name:"UnitPriceHigh"` + + // 高精度后付费云盘折扣单价,单位:元。 + // 注意:此字段可能返回 null,表示取不到有效值。 + UnitPriceDiscountHigh *string `json:"UnitPriceDiscountHigh,omitnil,omitempty" name:"UnitPriceDiscountHigh"` +} + +type Disk struct { + // 云盘是否与挂载的实例一起销毁。
  • true:销毁实例时会同时销毁云盘,只支持按小时后付费云盘。
  • false:销毁实例时不销毁云盘。
  • + DeleteWithInstance *bool `json:"DeleteWithInstance,omitnil,omitempty" name:"DeleteWithInstance"` + + // 自动续费标识。取值范围:
  • NOTIFY_AND_AUTO_RENEW:通知过期且自动续费
  • NOTIFY_AND_MANUAL_RENEW:通知过期不自动续费
  • DISABLE_NOTIFY_AND_MANUAL_RENEW:不通知过期不自动续费。
  • + RenewFlag *string `json:"RenewFlag,omitnil,omitempty" name:"RenewFlag"` + + // 硬盘介质类型。取值范围:
  • CLOUD_BASIC:表示普通云硬盘
  • CLOUD_PREMIUM:表示高性能云硬盘
  • CLOUD_BSSD:表示通用型SSD云硬盘
  • CLOUD_SSD:表示SSD云硬盘
  • CLOUD_HSSD:表示增强型SSD云硬盘
  • CLOUD_TSSD:表示极速型SSD云硬盘。
  • + DiskType *string `json:"DiskType,omitnil,omitempty" name:"DiskType"` + + // 云盘状态。取值范围:
  • UNATTACHED:未挂载
  • ATTACHING:挂载中
  • ATTACHED:已挂载
  • DETACHING:解挂中
  • EXPANDING:扩容中
  • ROLLBACKING:回滚中
  • TORECYCLE:待回收
  • DUMPING:拷贝硬盘中。
  • + DiskState *string `json:"DiskState,omitnil,omitempty" name:"DiskState"` + + // 云盘拥有的快照总数。 + SnapshotCount *int64 `json:"SnapshotCount,omitnil,omitempty" name:"SnapshotCount"` - // 云盘是否处于快照回滚状态。取值范围:
  • false:表示不处于快照回滚状态
  • true:表示处于快照回滚状态。 - Rollbacking *bool `json:"Rollbacking,omitempty" name:"Rollbacking"` + // 云盘已挂载到子机,且子机与云盘都是包年包月。
  • true:子机设置了自动续费标识,但云盘未设置
  • false:云盘自动续费标识正常。
  • + AutoRenewFlagError *bool `json:"AutoRenewFlagError,omitnil,omitempty" name:"AutoRenewFlagError"` + + // 云盘是否处于快照回滚状态。取值范围:
  • false:表示不处于快照回滚状态
  • true:表示处于快照回滚状态。
  • + Rollbacking *bool `json:"Rollbacking,omitnil,omitempty" name:"Rollbacking"` // 对于非共享型云盘,该参数为空数组。对于共享型云盘,则表示该云盘当前被挂载到的CVM实例InstanceId - InstanceIdList []*string `json:"InstanceIdList,omitempty" name:"InstanceIdList"` + InstanceIdList []*string `json:"InstanceIdList,omitnil,omitempty" name:"InstanceIdList"` - // 云盘是否为加密盘。取值范围:
  • false:表示非加密盘
  • true:表示加密盘。 - Encrypt *bool `json:"Encrypt,omitempty" name:"Encrypt"` + // 云盘是否为加密盘。取值范围:
  • false:表示非加密盘
  • true:表示加密盘。
  • + Encrypt *bool `json:"Encrypt,omitnil,omitempty" name:"Encrypt"` // 云硬盘名称。 - DiskName *string `json:"DiskName,omitempty" name:"DiskName"` + DiskName *string `json:"DiskName,omitnil,omitempty" name:"DiskName"` // 云硬盘因欠费销毁或者到期销毁时, 是否使用快照备份数据的标识。true表示销毁时创建快照进行数据备份。false表示直接销毁,不进行数据备份。 - BackupDisk *bool `json:"BackupDisk,omitempty" name:"BackupDisk"` + BackupDisk *bool `json:"BackupDisk,omitnil,omitempty" name:"BackupDisk"` // 与云盘绑定的标签,云盘未绑定标签则取值为空。 - // 注意:此字段可能返回 null,表示取不到有效值。 - Tags []*Tag `json:"Tags,omitempty" name:"Tags"` + Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"` // 云硬盘挂载的云主机ID。 - InstanceId *string `json:"InstanceId,omitempty" name:"InstanceId"` + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // 云盘的挂载类型。取值范围:
  • PF: PF挂载
  • VF: VF挂载 - // 注意:此字段可能返回 null,表示取不到有效值。 - AttachMode *string `json:"AttachMode,omitempty" name:"AttachMode"` + // 云盘的挂载类型。取值范围:
  • PF: PF挂载
  • VF: VF挂载
  • + AttachMode *string `json:"AttachMode,omitnil,omitempty" name:"AttachMode"` - // 云盘关联的定期快照ID。只有在调用DescribeDisks接口时,入参ReturnBindAutoSnapshotPolicy取值为TRUE才会返回该参数。 + // 云盘关联的定期快照ID。只有在调用[DescribeDisks](/document/product/362/16315)接口时,入参ReturnBindAutoSnapshotPolicy取值为TRUE才会返回该参数。 // 注意:此字段可能返回 null,表示取不到有效值。 - AutoSnapshotPolicyIds []*string `json:"AutoSnapshotPolicyIds,omitempty" name:"AutoSnapshotPolicyIds"` + AutoSnapshotPolicyIds []*string `json:"AutoSnapshotPolicyIds,omitnil,omitempty" name:"AutoSnapshotPolicyIds"` - // 云硬盘额外性能值,单位MB/s。 - // 注意:此字段可能返回 null,表示取不到有效值。 - ThroughputPerformance *uint64 `json:"ThroughputPerformance,omitempty" name:"ThroughputPerformance"` + // 云硬盘额外性能值,单位MiB/s。 + ThroughputPerformance *uint64 `json:"ThroughputPerformance,omitnil,omitempty" name:"ThroughputPerformance"` - // 云盘是否处于类型变更中。取值范围:
  • false:表示云盘不处于类型变更中
  • true:表示云盘已发起类型变更,正处于迁移中。 - // 注意:此字段可能返回 null,表示取不到有效值。 - Migrating *bool `json:"Migrating,omitempty" name:"Migrating"` + // 云盘是否处于类型变更中。取值范围:
  • false:表示云盘不处于类型变更中
  • true:表示云盘已发起类型变更,正处于迁移中。
  • + Migrating *bool `json:"Migrating,omitnil,omitempty" name:"Migrating"` // 云硬盘ID。 - DiskId *string `json:"DiskId,omitempty" name:"DiskId"` + DiskId *string `json:"DiskId,omitnil,omitempty" name:"DiskId"` - // 云盘拥有的快照总容量,单位为MB。 - SnapshotSize *uint64 `json:"SnapshotSize,omitempty" name:"SnapshotSize"` + // 云盘拥有的快照总容量,单位为MiB。 + SnapshotSize *uint64 `json:"SnapshotSize,omitnil,omitempty" name:"SnapshotSize"` // 云硬盘所在的位置。 - Placement *Placement `json:"Placement,omitempty" name:"Placement"` + Placement *Placement `json:"Placement,omitnil,omitempty" name:"Placement"` - // 判断预付费的云盘是否支持主动退还。
  • true:支持主动退还
  • false:不支持主动退还。 + // 判断预付费的云盘是否支持主动退还。
  • true:支持主动退还
  • false:不支持主动退还。
  • // 注意:此字段可能返回 null,表示取不到有效值。 - IsReturnable *bool `json:"IsReturnable,omitempty" name:"IsReturnable"` + IsReturnable *bool `json:"IsReturnable,omitnil,omitempty" name:"IsReturnable"` // 云硬盘的到期时间。 - DeadlineTime *string `json:"DeadlineTime,omitempty" name:"DeadlineTime"` + DeadlineTime *string `json:"DeadlineTime,omitnil,omitempty" name:"DeadlineTime"` - // 云盘是否挂载到云主机上。取值范围:
  • false:表示未挂载
  • true:表示已挂载。 - Attached *bool `json:"Attached,omitempty" name:"Attached"` + // 云盘是否挂载到云主机上。取值范围:
  • false:表示未挂载
  • true:表示已挂载。
  • + Attached *bool `json:"Attached,omitnil,omitempty" name:"Attached"` - // 云硬盘大小,单位GB。 - DiskSize *uint64 `json:"DiskSize,omitempty" name:"DiskSize"` + // 云硬盘大小,单位GiB。 + DiskSize *uint64 `json:"DiskSize,omitnil,omitempty" name:"DiskSize"` // 云盘类型变更的迁移进度,取值0到100。 - // 注意:此字段可能返回 null,表示取不到有效值。 - MigratePercent *uint64 `json:"MigratePercent,omitempty" name:"MigratePercent"` + MigratePercent *uint64 `json:"MigratePercent,omitnil,omitempty" name:"MigratePercent"` - // 云硬盘类型。取值范围:
  • SYSTEM_DISK:系统盘
  • DATA_DISK:数据盘。 - DiskUsage *string `json:"DiskUsage,omitempty" name:"DiskUsage"` + // 云硬盘类型。取值范围:
  • SYSTEM_DISK:系统盘
  • DATA_DISK:数据盘。
  • + DiskUsage *string `json:"DiskUsage,omitnil,omitempty" name:"DiskUsage"` - // 付费模式。取值范围:
  • PREPAID:预付费,即包年包月
  • POSTPAID_BY_HOUR:后付费,即按量计费。 - DiskChargeType *string `json:"DiskChargeType,omitempty" name:"DiskChargeType"` + // 付费模式。取值范围:
  • PREPAID:预付费,即包年包月
  • POSTPAID_BY_HOUR:后付费,即按量计费。
  • + DiskChargeType *string `json:"DiskChargeType,omitnil,omitempty" name:"DiskChargeType"` // 是否为弹性云盘,false表示非弹性云盘,true表示弹性云盘。 - Portable *bool `json:"Portable,omitempty" name:"Portable"` + Portable *bool `json:"Portable,omitnil,omitempty" name:"Portable"` - // 云盘是否具备创建快照的能力。取值范围:
  • false表示不具备
  • true表示具备。 - SnapshotAbility *bool `json:"SnapshotAbility,omitempty" name:"SnapshotAbility"` + // 云盘是否具备创建快照的能力。取值范围:
  • false表示不具备
  • true表示具备。
  • + SnapshotAbility *bool `json:"SnapshotAbility,omitnil,omitempty" name:"SnapshotAbility"` - // 在云盘已挂载到实例,且实例与云盘都是包年包月的条件下,此字段才有意义。
  • true:云盘到期时间早于实例。
  • false:云盘到期时间晚于实例。 - // 注意:此字段可能返回 null,表示取不到有效值。 - DeadlineError *bool `json:"DeadlineError,omitempty" name:"DeadlineError"` + // 在云盘已挂载到实例,且实例与云盘都是包年包月的条件下,此字段才有意义。
  • true:云盘到期时间早于实例。
  • false:云盘到期时间晚于实例。
  • + DeadlineError *bool `json:"DeadlineError,omitnil,omitempty" name:"DeadlineError"` // 云盘快照回滚的进度。 - RollbackPercent *uint64 `json:"RollbackPercent,omitempty" name:"RollbackPercent"` + RollbackPercent *uint64 `json:"RollbackPercent,omitnil,omitempty" name:"RollbackPercent"` - // 当前时间距离盘到期的天数(仅对预付费盘有意义)。 + // 当前时间距离云硬盘到期的天数(仅对预付费云硬盘有意义) // 注意:此字段可能返回 null,表示取不到有效值。 - DifferDaysOfDeadline *int64 `json:"DifferDaysOfDeadline,omitempty" name:"DifferDaysOfDeadline"` + DifferDaysOfDeadline *int64 `json:"DifferDaysOfDeadline,omitnil,omitempty" name:"DifferDaysOfDeadline"` - // 预付费云盘在不支持主动退还的情况下,该参数表明不支持主动退还的具体原因。取值范围:
  • 1:云硬盘已经退还
  • 2:云硬盘已过期
  • 3:云盘不支持退还
  • 8:超过可退还数量的限制。 - // 注意:此字段可能返回 null,表示取不到有效值。 - ReturnFailCode *int64 `json:"ReturnFailCode,omitempty" name:"ReturnFailCode"` + // 预付费云盘在不支持主动退还的情况下,该参数表明不支持主动退还的具体原因。取值范围:
  • 1:云硬盘已经退还
  • 2:云硬盘已过期
  • 3:云盘不支持退还
  • 8:超过可退还数量的限制。
  • 10:非弹性云硬盘、系统盘、后付费云硬盘等不支持退还
  • + ReturnFailCode *int64 `json:"ReturnFailCode,omitnil,omitempty" name:"ReturnFailCode"` // 云盘是否为共享型云盘。 - Shareable *bool `json:"Shareable,omitempty" name:"Shareable"` + Shareable *bool `json:"Shareable,omitnil,omitempty" name:"Shareable"` // 云硬盘的创建时间。 - CreateTime *string `json:"CreateTime,omitempty" name:"CreateTime"` + CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"` // 销毁云盘时删除关联的非永久保留快照。0 表示非永久快照不随云盘销毁而销毁,1表示非永久快照随云盘销毁而销毁,默认取0。快照是否永久保留可以通过DescribeSnapshots接口返回的快照详情的IsPermanent字段来判断,true表示永久快照,false表示非永久快照。 - DeleteSnapshot *int64 `json:"DeleteSnapshot,omitempty" name:"DeleteSnapshot"` + DeleteSnapshot *int64 `json:"DeleteSnapshot,omitnil,omitempty" name:"DeleteSnapshot"` // 云硬盘备份点配额。表示最大可以保留的备份点数量。 - DiskBackupQuota *uint64 `json:"DiskBackupQuota,omitempty" name:"DiskBackupQuota"` + DiskBackupQuota *uint64 `json:"DiskBackupQuota,omitnil,omitempty" name:"DiskBackupQuota"` // 云硬盘备份点已使用的数量。 - DiskBackupCount *uint64 `json:"DiskBackupCount,omitempty" name:"DiskBackupCount"` + DiskBackupCount *uint64 `json:"DiskBackupCount,omitnil,omitempty" name:"DiskBackupCount"` + + // 云硬盘挂载实例的类型。取值范围:
  • CVM
  • EKS
  • + InstanceType *string `json:"InstanceType,omitnil,omitempty" name:"InstanceType"` - // 云硬盘挂载实例的类型。取值范围:
  • CVM
  • EKS - InstanceType *string `json:"InstanceType,omitempty" name:"InstanceType"` + // 云硬盘最后一次挂载的实例ID + // 注意:此字段可能返回 null,表示取不到有效值。 + LastAttachInsId *string `json:"LastAttachInsId,omitnil,omitempty" name:"LastAttachInsId"` + + // 云硬盘最后一次操作错误提示 + ErrorPrompt *string `json:"ErrorPrompt,omitnil,omitempty" name:"ErrorPrompt"` + + // 云盘是否开启性能突发 + BurstPerformance *bool `json:"BurstPerformance,omitnil,omitempty" name:"BurstPerformance"` + + // 云硬盘加密类型,值为ENCRYPT_V1和ENCRYPT_V2,分别表示第一代和第二代加密技术,两种加密技术互不兼容 + EncryptType *string `json:"EncryptType,omitnil,omitempty" name:"EncryptType"` + + // 加密盘密钥ID + KmsKeyId *string `json:"KmsKeyId,omitnil,omitempty" name:"KmsKeyId"` } type DiskBackup struct { // 云硬盘备份点的ID。 - DiskBackupId *string `json:"DiskBackupId,omitempty" name:"DiskBackupId"` + DiskBackupId *string `json:"DiskBackupId,omitnil,omitempty" name:"DiskBackupId"` // 云硬盘备份点关联的云硬盘ID。 - DiskId *string `json:"DiskId,omitempty" name:"DiskId"` + DiskId *string `json:"DiskId,omitnil,omitempty" name:"DiskId"` // 云硬盘大小,单位GB。 - DiskSize *uint64 `json:"DiskSize,omitempty" name:"DiskSize"` + DiskSize *uint64 `json:"DiskSize,omitnil,omitempty" name:"DiskSize"` // 云硬盘类型。取值范围:
  • SYSTEM_DISK:系统盘
  • DATA_DISK:数据盘。 - DiskUsage *string `json:"DiskUsage,omitempty" name:"DiskUsage"` + DiskUsage *string `json:"DiskUsage,omitnil,omitempty" name:"DiskUsage"` // 备份点名称。 - DiskBackupName *string `json:"DiskBackupName,omitempty" name:"DiskBackupName"` + DiskBackupName *string `json:"DiskBackupName,omitnil,omitempty" name:"DiskBackupName"` // 云硬盘备份点状态。取值范围:
  • NORMAL:正常
  • CREATING:创建中
  • ROLLBACKING:回滚中 - DiskBackupState *string `json:"DiskBackupState,omitempty" name:"DiskBackupState"` + DiskBackupState *string `json:"DiskBackupState,omitnil,omitempty" name:"DiskBackupState"` // 云硬盘创建进度百分比。 - Percent *uint64 `json:"Percent,omitempty" name:"Percent"` + Percent *uint64 `json:"Percent,omitnil,omitempty" name:"Percent"` // 云硬盘备份点的创建时间。 - CreateTime *string `json:"CreateTime,omitempty" name:"CreateTime"` + CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"` // 云盘是否为加密盘。取值范围:
  • false:表示非加密盘
  • true:表示加密盘。 - Encrypt *bool `json:"Encrypt,omitempty" name:"Encrypt"` + Encrypt *bool `json:"Encrypt,omitnil,omitempty" name:"Encrypt"` } type DiskChargePrepaid struct { // 购买云盘的时长,默认单位为月,取值范围:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 24, 36。 - Period *uint64 `json:"Period,omitempty" name:"Period"` + Period *uint64 `json:"Period,omitnil,omitempty" name:"Period"` // 自动续费标识。取值范围:
  • NOTIFY_AND_AUTO_RENEW:通知过期且自动续费
  • NOTIFY_AND_MANUAL_RENEW:通知过期不自动续费
  • DISABLE_NOTIFY_AND_MANUAL_RENEW:不通知过期不自动续费

    默认取值:NOTIFY_AND_MANUAL_RENEW:通知过期不自动续费。 - RenewFlag *string `json:"RenewFlag,omitempty" name:"RenewFlag"` + RenewFlag *string `json:"RenewFlag,omitnil,omitempty" name:"RenewFlag"` // 需要将云盘的到期时间与挂载的子机对齐时,可传入该参数。该参数表示子机当前的到期时间,此时Period如果传入,则表示子机需要续费的时长,云盘会自动按对齐到子机续费后的到期时间续费,示例取值:2018-03-30 20:15:03。 - CurInstanceDeadline *string `json:"CurInstanceDeadline,omitempty" name:"CurInstanceDeadline"` + CurInstanceDeadline *string `json:"CurInstanceDeadline,omitnil,omitempty" name:"CurInstanceDeadline"` } type DiskConfig struct { // 配置是否可用。 - Available *bool `json:"Available,omitempty" name:"Available"` + Available *bool `json:"Available,omitnil,omitempty" name:"Available"` - // 付费模式。取值范围:
  • PREPAID:表示预付费,即包年包月
  • POSTPAID_BY_HOUR:表示后付费,即按量计费。 - DiskChargeType *string `json:"DiskChargeType,omitempty" name:"DiskChargeType"` + // 付费模式。取值范围:
  • PREPAID:表示预付费,即包年包月

  • POSTPAID_BY_HOUR:表示后付费,即按量计费。
  • + DiskChargeType *string `json:"DiskChargeType,omitnil,omitempty" name:"DiskChargeType"` // 云硬盘所属的[可用区](/document/product/213/15753#ZoneInfo)。 - Zone *string `json:"Zone,omitempty" name:"Zone"` + Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"` // 实例机型系列。详见[实例类型](https://cloud.tencent.com/document/product/213/11518) // 注意:此字段可能返回 null,表示取不到有效值。 - InstanceFamily *string `json:"InstanceFamily,omitempty" name:"InstanceFamily"` + InstanceFamily *string `json:"InstanceFamily,omitnil,omitempty" name:"InstanceFamily"` - // 云盘介质类型。取值范围:
  • CLOUD_BASIC:表示普通云硬盘
  • CLOUD_PREMIUM:表示高性能云硬盘
  • CLOUD_SSD:SSD表示SSD云硬盘。 - DiskType *string `json:"DiskType,omitempty" name:"DiskType"` + // 云盘介质类型。取值范围:
  • CLOUD_BASIC:表示普通云硬盘

  • CLOUD_PREMIUM:表示高性能云硬盘

  • CLOUD_SSD:SSD表示SSD云硬盘。
  • + DiskType *string `json:"DiskType,omitnil,omitempty" name:"DiskType"` // 云盘大小变化的最小步长,单位GB。 - // 注意:此字段可能返回 null,表示取不到有效值。 - StepSize *uint64 `json:"StepSize,omitempty" name:"StepSize"` + StepSize *uint64 `json:"StepSize,omitnil,omitempty" name:"StepSize"` // 额外的性能区间。 // 注意:此字段可能返回 null,表示取不到有效值。 - ExtraPerformanceRange []*int64 `json:"ExtraPerformanceRange,omitempty" name:"ExtraPerformanceRange"` + ExtraPerformanceRange []*int64 `json:"ExtraPerformanceRange,omitnil,omitempty" name:"ExtraPerformanceRange"` // 实例机型。 // 注意:此字段可能返回 null,表示取不到有效值。 - DeviceClass *string `json:"DeviceClass,omitempty" name:"DeviceClass"` + DeviceClass *string `json:"DeviceClass,omitnil,omitempty" name:"DeviceClass"` - // 云盘类型。取值范围:
  • SYSTEM_DISK:表示系统盘
  • DATA_DISK:表示数据盘。 - DiskUsage *string `json:"DiskUsage,omitempty" name:"DiskUsage"` + // 云盘类型。取值范围:
  • SYSTEM_DISK:表示系统盘

  • DATA_DISK:表示数据盘。
  • + DiskUsage *string `json:"DiskUsage,omitnil,omitempty" name:"DiskUsage"` // 最小可配置云盘大小,单位GB。 - MinDiskSize *uint64 `json:"MinDiskSize,omitempty" name:"MinDiskSize"` + MinDiskSize *uint64 `json:"MinDiskSize,omitnil,omitempty" name:"MinDiskSize"` // 最大可配置云盘大小,单位GB。 - MaxDiskSize *uint64 `json:"MaxDiskSize,omitempty" name:"MaxDiskSize"` -} + MaxDiskSize *uint64 `json:"MaxDiskSize,omitnil,omitempty" name:"MaxDiskSize"` -type DiskOperationLog struct { - // 操作的状态。取值范围: - // SUCCESS :表示操作成功 - // FAILED :表示操作失败 - // PROCESSING :表示操作中。 - OperationState *string `json:"OperationState,omitempty" name:"OperationState"` - - // 开始时间。 - StartTime *string `json:"StartTime,omitempty" name:"StartTime"` - - // 操作者的UIN。 - Operator *string `json:"Operator,omitempty" name:"Operator"` - - // 操作类型。取值范围: - // CBS_OPERATION_ATTACH:挂载云硬盘 - // CBS_OPERATION_DETACH:解挂云硬盘 - // CBS_OPERATION_RENEW:续费 - // CBS_OPERATION_EXPAND:扩容 - // CBS_OPERATION_CREATE:创建 - // CBS_OPERATION_ISOLATE:隔离 - // CBS_OPERATION_MODIFY:修改云硬盘属性 - // ASP_OPERATION_BIND:关联定期快照策略 - // ASP_OPERATION_UNBIND:取消关联定期快照策略 - Operation *string `json:"Operation,omitempty" name:"Operation"` - - // 结束时间。 - EndTime *string `json:"EndTime,omitempty" name:"EndTime"` - - // 操作的云盘ID。 - DiskId *string `json:"DiskId,omitempty" name:"DiskId"` + // 描述预付费或后付费云盘的价格。 + Price *Price `json:"Price,omitnil,omitempty" name:"Price"` } type Filter struct { - // 一个或者多个过滤值。 - Values []*string `json:"Values,omitempty" name:"Values"` + // 过滤键的名称 + Name *string `json:"Name,omitnil,omitempty" name:"Name"` - // 过滤键的名称。 - Name *string `json:"Name,omitempty" name:"Name"` + // 一个或者多个过滤值 + Values []*string `json:"Values,omitnil,omitempty" name:"Values"` } // Predefined struct for user @@ -2287,19 +2612,19 @@ func (r *GetSnapOverviewRequest) FromJsonString(s string) error { // Predefined struct for user type GetSnapOverviewResponseParams struct { // 用户快照总大小 - TotalSize *float64 `json:"TotalSize,omitempty" name:"TotalSize"` + TotalSize *float64 `json:"TotalSize,omitnil,omitempty" name:"TotalSize"` // 用户快照总大小(用于计费) - RealTradeSize *float64 `json:"RealTradeSize,omitempty" name:"RealTradeSize"` + RealTradeSize *float64 `json:"RealTradeSize,omitnil,omitempty" name:"RealTradeSize"` // 快照免费额度 - FreeQuota *float64 `json:"FreeQuota,omitempty" name:"FreeQuota"` + FreeQuota *float64 `json:"FreeQuota,omitnil,omitempty" name:"FreeQuota"` // 快照总个数 - TotalNums *int64 `json:"TotalNums,omitempty" name:"TotalNums"` + TotalNums *int64 `json:"TotalNums,omitnil,omitempty" name:"TotalNums"` - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type GetSnapOverviewResponse struct { @@ -2320,23 +2645,23 @@ func (r *GetSnapOverviewResponse) FromJsonString(s string) error { type Image struct { // 镜像名称。 - ImageName *string `json:"ImageName,omitempty" name:"ImageName"` + ImageName *string `json:"ImageName,omitnil,omitempty" name:"ImageName"` // 镜像实例ID。 - ImageId *string `json:"ImageId,omitempty" name:"ImageId"` + ImageId *string `json:"ImageId,omitnil,omitempty" name:"ImageId"` } // Predefined struct for user type InitializeDisksRequestParams struct { - // 待重新初始化的云硬盘ID列表, 单次初始化限制20块以内 - DiskIds []*string `json:"DiskIds,omitempty" name:"DiskIds"` + // 待重新初始化的云硬盘ID列表,可以通过[DescribeDisks](/document/product/362/16315)接口查询, 单次初始化限制20块以内 + DiskIds []*string `json:"DiskIds,omitnil,omitempty" name:"DiskIds"` } type InitializeDisksRequest struct { *tchttp.BaseRequest - // 待重新初始化的云硬盘ID列表, 单次初始化限制20块以内 - DiskIds []*string `json:"DiskIds,omitempty" name:"DiskIds"` + // 待重新初始化的云硬盘ID列表,可以通过[DescribeDisks](/document/product/362/16315)接口查询, 单次初始化限制20块以内 + DiskIds []*string `json:"DiskIds,omitnil,omitempty" name:"DiskIds"` } func (r *InitializeDisksRequest) ToJsonString() string { @@ -2360,8 +2685,8 @@ func (r *InitializeDisksRequest) FromJsonString(s string) error { // Predefined struct for user type InitializeDisksResponseParams struct { - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type InitializeDisksResponse struct { @@ -2383,20 +2708,20 @@ func (r *InitializeDisksResponse) FromJsonString(s string) error { // Predefined struct for user type InquirePriceModifyDiskBackupQuotaRequestParams struct { // 云硬盘ID, 通过DescribeDisks(查询云硬盘信息)接口查询。 - DiskId *string `json:"DiskId,omitempty" name:"DiskId"` + DiskId *string `json:"DiskId,omitnil,omitempty" name:"DiskId"` // 修改后的云硬盘备份点配额,即云盘可以拥有的备份点数量,单位为个。 - DiskBackupQuota *uint64 `json:"DiskBackupQuota,omitempty" name:"DiskBackupQuota"` + DiskBackupQuota *uint64 `json:"DiskBackupQuota,omitnil,omitempty" name:"DiskBackupQuota"` } type InquirePriceModifyDiskBackupQuotaRequest struct { *tchttp.BaseRequest // 云硬盘ID, 通过DescribeDisks(查询云硬盘信息)接口查询。 - DiskId *string `json:"DiskId,omitempty" name:"DiskId"` + DiskId *string `json:"DiskId,omitnil,omitempty" name:"DiskId"` // 修改后的云硬盘备份点配额,即云盘可以拥有的备份点数量,单位为个。 - DiskBackupQuota *uint64 `json:"DiskBackupQuota,omitempty" name:"DiskBackupQuota"` + DiskBackupQuota *uint64 `json:"DiskBackupQuota,omitnil,omitempty" name:"DiskBackupQuota"` } func (r *InquirePriceModifyDiskBackupQuotaRequest) ToJsonString() string { @@ -2422,10 +2747,10 @@ func (r *InquirePriceModifyDiskBackupQuotaRequest) FromJsonString(s string) erro // Predefined struct for user type InquirePriceModifyDiskBackupQuotaResponseParams struct { // 描述了修改云硬盘备份点之后的云盘价格。 - DiskPrice *Price `json:"DiskPrice,omitempty" name:"DiskPrice"` + DiskPrice *Price `json:"DiskPrice,omitnil,omitempty" name:"DiskPrice"` - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type InquirePriceModifyDiskBackupQuotaResponse struct { @@ -2446,21 +2771,21 @@ func (r *InquirePriceModifyDiskBackupQuotaResponse) FromJsonString(s string) err // Predefined struct for user type InquirePriceModifyDiskExtraPerformanceRequestParams struct { - // 云硬盘ID, 通过[DescribeDisks](/document/product/362/16315)接口查询。 - DiskId *string `json:"DiskId,omitempty" name:"DiskId"` - // 额外购买的云硬盘性能值,单位MB/s。 - ThroughputPerformance *uint64 `json:"ThroughputPerformance,omitempty" name:"ThroughputPerformance"` + ThroughputPerformance *uint64 `json:"ThroughputPerformance,omitnil,omitempty" name:"ThroughputPerformance"` + + // 云硬盘ID, 通过[DescribeDisks](/document/product/362/16315)接口查询。 + DiskId *string `json:"DiskId,omitnil,omitempty" name:"DiskId"` } type InquirePriceModifyDiskExtraPerformanceRequest struct { *tchttp.BaseRequest - // 云硬盘ID, 通过[DescribeDisks](/document/product/362/16315)接口查询。 - DiskId *string `json:"DiskId,omitempty" name:"DiskId"` - // 额外购买的云硬盘性能值,单位MB/s。 - ThroughputPerformance *uint64 `json:"ThroughputPerformance,omitempty" name:"ThroughputPerformance"` + ThroughputPerformance *uint64 `json:"ThroughputPerformance,omitnil,omitempty" name:"ThroughputPerformance"` + + // 云硬盘ID, 通过[DescribeDisks](/document/product/362/16315)接口查询。 + DiskId *string `json:"DiskId,omitnil,omitempty" name:"DiskId"` } func (r *InquirePriceModifyDiskExtraPerformanceRequest) ToJsonString() string { @@ -2475,8 +2800,8 @@ func (r *InquirePriceModifyDiskExtraPerformanceRequest) FromJsonString(s string) if err := json.Unmarshal([]byte(s), &f); err != nil { return err } - delete(f, "DiskId") delete(f, "ThroughputPerformance") + delete(f, "DiskId") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "InquirePriceModifyDiskExtraPerformanceRequest has unknown keys!", "") } @@ -2486,10 +2811,10 @@ func (r *InquirePriceModifyDiskExtraPerformanceRequest) FromJsonString(s string) // Predefined struct for user type InquirePriceModifyDiskExtraPerformanceResponseParams struct { // 描述了调整云盘额外性能时对应的价格。 - DiskPrice *Price `json:"DiskPrice,omitempty" name:"DiskPrice"` + DiskPrice *Price `json:"DiskPrice,omitnil,omitempty" name:"DiskPrice"` - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type InquirePriceModifyDiskExtraPerformanceResponse struct { @@ -2511,56 +2836,56 @@ func (r *InquirePriceModifyDiskExtraPerformanceResponse) FromJsonString(s string // Predefined struct for user type InquiryPriceCreateDisksRequestParams struct { // 云硬盘计费类型。
  • PREPAID:预付费,即包年包月
  • POSTPAID_BY_HOUR:按小时后付费 - DiskChargeType *string `json:"DiskChargeType,omitempty" name:"DiskChargeType"` + DiskChargeType *string `json:"DiskChargeType,omitnil,omitempty" name:"DiskChargeType"` // 硬盘介质类型。取值范围:
  • CLOUD_BASIC:表示普通云硬盘
  • CLOUD_PREMIUM:表示高性能云硬盘
  • CLOUD_SSD:表示SSD云硬盘
  • CLOUD_HSSD:表示增强型SSD云硬盘
  • CLOUD_TSSD:表示极速型SSD云硬盘。 - DiskType *string `json:"DiskType,omitempty" name:"DiskType"` + DiskType *string `json:"DiskType,omitnil,omitempty" name:"DiskType"` // 云硬盘大小,单位为GB。云盘大小取值范围参见云硬盘[产品分类](/document/product/362/2353)的说明。 - DiskSize *uint64 `json:"DiskSize,omitempty" name:"DiskSize"` + DiskSize *uint64 `json:"DiskSize,omitnil,omitempty" name:"DiskSize"` // 云盘所属项目ID。 - ProjectId *uint64 `json:"ProjectId,omitempty" name:"ProjectId"` + ProjectId *uint64 `json:"ProjectId,omitnil,omitempty" name:"ProjectId"` // 购买云盘的数量。不填则默认为1。 - DiskCount *uint64 `json:"DiskCount,omitempty" name:"DiskCount"` + DiskCount *uint64 `json:"DiskCount,omitnil,omitempty" name:"DiskCount"` // 额外购买的云硬盘性能值,单位MB/s。
    目前仅支持增强型SSD云硬盘(CLOUD_HSSD)和极速型SSD云硬盘(CLOUD_TSSD) - ThroughputPerformance *uint64 `json:"ThroughputPerformance,omitempty" name:"ThroughputPerformance"` + ThroughputPerformance *uint64 `json:"ThroughputPerformance,omitnil,omitempty" name:"ThroughputPerformance"` // 预付费模式,即包年包月相关参数设置。通过该参数指定包年包月云盘的购买时长、是否设置自动续费等属性。
    创建预付费云盘该参数必传,创建按小时后付费云盘无需传该参数。 - DiskChargePrepaid *DiskChargePrepaid `json:"DiskChargePrepaid,omitempty" name:"DiskChargePrepaid"` + DiskChargePrepaid *DiskChargePrepaid `json:"DiskChargePrepaid,omitnil,omitempty" name:"DiskChargePrepaid"` // 指定云硬盘备份点配额。 - DiskBackupQuota *uint64 `json:"DiskBackupQuota,omitempty" name:"DiskBackupQuota"` + DiskBackupQuota *uint64 `json:"DiskBackupQuota,omitnil,omitempty" name:"DiskBackupQuota"` } type InquiryPriceCreateDisksRequest struct { *tchttp.BaseRequest // 云硬盘计费类型。
  • PREPAID:预付费,即包年包月
  • POSTPAID_BY_HOUR:按小时后付费 - DiskChargeType *string `json:"DiskChargeType,omitempty" name:"DiskChargeType"` + DiskChargeType *string `json:"DiskChargeType,omitnil,omitempty" name:"DiskChargeType"` // 硬盘介质类型。取值范围:
  • CLOUD_BASIC:表示普通云硬盘
  • CLOUD_PREMIUM:表示高性能云硬盘
  • CLOUD_SSD:表示SSD云硬盘
  • CLOUD_HSSD:表示增强型SSD云硬盘
  • CLOUD_TSSD:表示极速型SSD云硬盘。 - DiskType *string `json:"DiskType,omitempty" name:"DiskType"` + DiskType *string `json:"DiskType,omitnil,omitempty" name:"DiskType"` // 云硬盘大小,单位为GB。云盘大小取值范围参见云硬盘[产品分类](/document/product/362/2353)的说明。 - DiskSize *uint64 `json:"DiskSize,omitempty" name:"DiskSize"` + DiskSize *uint64 `json:"DiskSize,omitnil,omitempty" name:"DiskSize"` // 云盘所属项目ID。 - ProjectId *uint64 `json:"ProjectId,omitempty" name:"ProjectId"` + ProjectId *uint64 `json:"ProjectId,omitnil,omitempty" name:"ProjectId"` // 购买云盘的数量。不填则默认为1。 - DiskCount *uint64 `json:"DiskCount,omitempty" name:"DiskCount"` + DiskCount *uint64 `json:"DiskCount,omitnil,omitempty" name:"DiskCount"` // 额外购买的云硬盘性能值,单位MB/s。
    目前仅支持增强型SSD云硬盘(CLOUD_HSSD)和极速型SSD云硬盘(CLOUD_TSSD) - ThroughputPerformance *uint64 `json:"ThroughputPerformance,omitempty" name:"ThroughputPerformance"` + ThroughputPerformance *uint64 `json:"ThroughputPerformance,omitnil,omitempty" name:"ThroughputPerformance"` // 预付费模式,即包年包月相关参数设置。通过该参数指定包年包月云盘的购买时长、是否设置自动续费等属性。
    创建预付费云盘该参数必传,创建按小时后付费云盘无需传该参数。 - DiskChargePrepaid *DiskChargePrepaid `json:"DiskChargePrepaid,omitempty" name:"DiskChargePrepaid"` + DiskChargePrepaid *DiskChargePrepaid `json:"DiskChargePrepaid,omitnil,omitempty" name:"DiskChargePrepaid"` // 指定云硬盘备份点配额。 - DiskBackupQuota *uint64 `json:"DiskBackupQuota,omitempty" name:"DiskBackupQuota"` + DiskBackupQuota *uint64 `json:"DiskBackupQuota,omitnil,omitempty" name:"DiskBackupQuota"` } func (r *InquiryPriceCreateDisksRequest) ToJsonString() string { @@ -2592,10 +2917,10 @@ func (r *InquiryPriceCreateDisksRequest) FromJsonString(s string) error { // Predefined struct for user type InquiryPriceCreateDisksResponseParams struct { // 描述了新购云盘的价格。 - DiskPrice *Price `json:"DiskPrice,omitempty" name:"DiskPrice"` + DiskPrice *Price `json:"DiskPrice,omitnil,omitempty" name:"DiskPrice"` - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type InquiryPriceCreateDisksResponse struct { @@ -2617,32 +2942,32 @@ func (r *InquiryPriceCreateDisksResponse) FromJsonString(s string) error { // Predefined struct for user type InquiryPriceRenewDisksRequestParams struct { // 云硬盘ID, 通过[DescribeDisks](/document/product/362/16315)接口查询。 - DiskIds []*string `json:"DiskIds,omitempty" name:"DiskIds"` + DiskIds []*string `json:"DiskIds,omitnil,omitempty" name:"DiskIds"` // 预付费模式,即包年包月相关参数设置。通过该参数可以指定包年包月云盘的购买时长。如果在该参数中指定CurInstanceDeadline,则会按对齐到子机到期时间来续费。如果是批量续费询价,该参数与Disks参数一一对应,元素数量需保持一致。 - DiskChargePrepaids []*DiskChargePrepaid `json:"DiskChargePrepaids,omitempty" name:"DiskChargePrepaids"` + DiskChargePrepaids []*DiskChargePrepaid `json:"DiskChargePrepaids,omitnil,omitempty" name:"DiskChargePrepaids"` // 指定云盘新的到期时间,形式如:2017-12-17 00:00:00。参数`NewDeadline`和`DiskChargePrepaids`是两种指定询价时长的方式,两者必传一个。 - NewDeadline *string `json:"NewDeadline,omitempty" name:"NewDeadline"` + NewDeadline *string `json:"NewDeadline,omitnil,omitempty" name:"NewDeadline"` // 云盘所属项目ID。 如传入则仅用于鉴权。 - ProjectId *uint64 `json:"ProjectId,omitempty" name:"ProjectId"` + ProjectId *uint64 `json:"ProjectId,omitnil,omitempty" name:"ProjectId"` } type InquiryPriceRenewDisksRequest struct { *tchttp.BaseRequest // 云硬盘ID, 通过[DescribeDisks](/document/product/362/16315)接口查询。 - DiskIds []*string `json:"DiskIds,omitempty" name:"DiskIds"` + DiskIds []*string `json:"DiskIds,omitnil,omitempty" name:"DiskIds"` // 预付费模式,即包年包月相关参数设置。通过该参数可以指定包年包月云盘的购买时长。如果在该参数中指定CurInstanceDeadline,则会按对齐到子机到期时间来续费。如果是批量续费询价,该参数与Disks参数一一对应,元素数量需保持一致。 - DiskChargePrepaids []*DiskChargePrepaid `json:"DiskChargePrepaids,omitempty" name:"DiskChargePrepaids"` + DiskChargePrepaids []*DiskChargePrepaid `json:"DiskChargePrepaids,omitnil,omitempty" name:"DiskChargePrepaids"` // 指定云盘新的到期时间,形式如:2017-12-17 00:00:00。参数`NewDeadline`和`DiskChargePrepaids`是两种指定询价时长的方式,两者必传一个。 - NewDeadline *string `json:"NewDeadline,omitempty" name:"NewDeadline"` + NewDeadline *string `json:"NewDeadline,omitnil,omitempty" name:"NewDeadline"` // 云盘所属项目ID。 如传入则仅用于鉴权。 - ProjectId *uint64 `json:"ProjectId,omitempty" name:"ProjectId"` + ProjectId *uint64 `json:"ProjectId,omitnil,omitempty" name:"ProjectId"` } func (r *InquiryPriceRenewDisksRequest) ToJsonString() string { @@ -2670,10 +2995,10 @@ func (r *InquiryPriceRenewDisksRequest) FromJsonString(s string) error { // Predefined struct for user type InquiryPriceRenewDisksResponseParams struct { // 描述了续费云盘的价格。 - DiskPrice *PrepayPrice `json:"DiskPrice,omitempty" name:"DiskPrice"` + DiskPrice *PrepayPrice `json:"DiskPrice,omitnil,omitempty" name:"DiskPrice"` - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type InquiryPriceRenewDisksResponse struct { @@ -2694,27 +3019,27 @@ func (r *InquiryPriceRenewDisksResponse) FromJsonString(s string) error { // Predefined struct for user type InquiryPriceResizeDiskRequestParams struct { - // 云硬盘ID, 通过[DescribeDisks](/document/product/362/16315)接口查询。 - DiskId *string `json:"DiskId,omitempty" name:"DiskId"` - // 云硬盘扩容后的大小,单位为GB,不得小于当前云硬盘大小。云盘大小取值范围参见云硬盘[产品分类](/document/product/362/2353)的说明。 - DiskSize *uint64 `json:"DiskSize,omitempty" name:"DiskSize"` + DiskSize *uint64 `json:"DiskSize,omitnil,omitempty" name:"DiskSize"` + + // 云硬盘ID, 通过[DescribeDisks](/document/product/362/16315)接口查询。 + DiskId *string `json:"DiskId,omitnil,omitempty" name:"DiskId"` // 云盘所属项目ID。 如传入则仅用于鉴权。 - ProjectId *uint64 `json:"ProjectId,omitempty" name:"ProjectId"` + ProjectId *uint64 `json:"ProjectId,omitnil,omitempty" name:"ProjectId"` } type InquiryPriceResizeDiskRequest struct { *tchttp.BaseRequest - // 云硬盘ID, 通过[DescribeDisks](/document/product/362/16315)接口查询。 - DiskId *string `json:"DiskId,omitempty" name:"DiskId"` - // 云硬盘扩容后的大小,单位为GB,不得小于当前云硬盘大小。云盘大小取值范围参见云硬盘[产品分类](/document/product/362/2353)的说明。 - DiskSize *uint64 `json:"DiskSize,omitempty" name:"DiskSize"` + DiskSize *uint64 `json:"DiskSize,omitnil,omitempty" name:"DiskSize"` + + // 云硬盘ID, 通过[DescribeDisks](/document/product/362/16315)接口查询。 + DiskId *string `json:"DiskId,omitnil,omitempty" name:"DiskId"` // 云盘所属项目ID。 如传入则仅用于鉴权。 - ProjectId *uint64 `json:"ProjectId,omitempty" name:"ProjectId"` + ProjectId *uint64 `json:"ProjectId,omitnil,omitempty" name:"ProjectId"` } func (r *InquiryPriceResizeDiskRequest) ToJsonString() string { @@ -2729,8 +3054,8 @@ func (r *InquiryPriceResizeDiskRequest) FromJsonString(s string) error { if err := json.Unmarshal([]byte(s), &f); err != nil { return err } - delete(f, "DiskId") delete(f, "DiskSize") + delete(f, "DiskId") delete(f, "ProjectId") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "InquiryPriceResizeDiskRequest has unknown keys!", "") @@ -2741,10 +3066,10 @@ func (r *InquiryPriceResizeDiskRequest) FromJsonString(s string) error { // Predefined struct for user type InquiryPriceResizeDiskResponseParams struct { // 描述了扩容云盘的价格。 - DiskPrice *PrepayPrice `json:"DiskPrice,omitempty" name:"DiskPrice"` + DiskPrice *PrepayPrice `json:"DiskPrice,omitnil,omitempty" name:"DiskPrice"` - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type InquiryPriceResizeDiskResponse struct { @@ -2765,45 +3090,45 @@ func (r *InquiryPriceResizeDiskResponse) FromJsonString(s string) error { // Predefined struct for user type ModifyAutoSnapshotPolicyAttributeRequestParams struct { - // 定期快照策略ID。 - AutoSnapshotPolicyId *string `json:"AutoSnapshotPolicyId,omitempty" name:"AutoSnapshotPolicyId"` + // 定期快照策略ID。可以通过[查询定期快照策略](https://cloud.tencent.com/document/product/362/33556)API查询。 + AutoSnapshotPolicyId *string `json:"AutoSnapshotPolicyId,omitnil,omitempty" name:"AutoSnapshotPolicyId"` // 是否激活定期快照策略,FALSE表示未激活,TRUE表示激活,默认为TRUE。 - IsActivated *bool `json:"IsActivated,omitempty" name:"IsActivated"` + IsActivated *bool `json:"IsActivated,omitnil,omitempty" name:"IsActivated"` // 通过该定期快照策略创建的快照是否永久保留。FALSE表示非永久保留,TRUE表示永久保留,默认为FALSE。 - IsPermanent *bool `json:"IsPermanent,omitempty" name:"IsPermanent"` + IsPermanent *bool `json:"IsPermanent,omitnil,omitempty" name:"IsPermanent"` // 要创建的定期快照策略名。不传则默认为“未命名”。最大长度不能超60个字节。 - AutoSnapshotPolicyName *string `json:"AutoSnapshotPolicyName,omitempty" name:"AutoSnapshotPolicyName"` + AutoSnapshotPolicyName *string `json:"AutoSnapshotPolicyName,omitnil,omitempty" name:"AutoSnapshotPolicyName"` // 定期快照的执行策略。 - Policy []*Policy `json:"Policy,omitempty" name:"Policy"` + Policy []*Policy `json:"Policy,omitnil,omitempty" name:"Policy"` // 通过该定期快照策略创建的快照保留天数。如果指定本参数,则IsPermanent入参不可指定为TRUE,否则会产生冲突。 - RetentionDays *uint64 `json:"RetentionDays,omitempty" name:"RetentionDays"` + RetentionDays *uint64 `json:"RetentionDays,omitnil,omitempty" name:"RetentionDays"` } type ModifyAutoSnapshotPolicyAttributeRequest struct { *tchttp.BaseRequest - // 定期快照策略ID。 - AutoSnapshotPolicyId *string `json:"AutoSnapshotPolicyId,omitempty" name:"AutoSnapshotPolicyId"` + // 定期快照策略ID。可以通过[查询定期快照策略](https://cloud.tencent.com/document/product/362/33556)API查询。 + AutoSnapshotPolicyId *string `json:"AutoSnapshotPolicyId,omitnil,omitempty" name:"AutoSnapshotPolicyId"` // 是否激活定期快照策略,FALSE表示未激活,TRUE表示激活,默认为TRUE。 - IsActivated *bool `json:"IsActivated,omitempty" name:"IsActivated"` + IsActivated *bool `json:"IsActivated,omitnil,omitempty" name:"IsActivated"` // 通过该定期快照策略创建的快照是否永久保留。FALSE表示非永久保留,TRUE表示永久保留,默认为FALSE。 - IsPermanent *bool `json:"IsPermanent,omitempty" name:"IsPermanent"` + IsPermanent *bool `json:"IsPermanent,omitnil,omitempty" name:"IsPermanent"` // 要创建的定期快照策略名。不传则默认为“未命名”。最大长度不能超60个字节。 - AutoSnapshotPolicyName *string `json:"AutoSnapshotPolicyName,omitempty" name:"AutoSnapshotPolicyName"` + AutoSnapshotPolicyName *string `json:"AutoSnapshotPolicyName,omitnil,omitempty" name:"AutoSnapshotPolicyName"` // 定期快照的执行策略。 - Policy []*Policy `json:"Policy,omitempty" name:"Policy"` + Policy []*Policy `json:"Policy,omitnil,omitempty" name:"Policy"` // 通过该定期快照策略创建的快照保留天数。如果指定本参数,则IsPermanent入参不可指定为TRUE,否则会产生冲突。 - RetentionDays *uint64 `json:"RetentionDays,omitempty" name:"RetentionDays"` + RetentionDays *uint64 `json:"RetentionDays,omitnil,omitempty" name:"RetentionDays"` } func (r *ModifyAutoSnapshotPolicyAttributeRequest) ToJsonString() string { @@ -2832,8 +3157,8 @@ func (r *ModifyAutoSnapshotPolicyAttributeRequest) FromJsonString(s string) erro // Predefined struct for user type ModifyAutoSnapshotPolicyAttributeResponseParams struct { - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type ModifyAutoSnapshotPolicyAttributeResponse struct { @@ -2854,45 +3179,57 @@ func (r *ModifyAutoSnapshotPolicyAttributeResponse) FromJsonString(s string) err // Predefined struct for user type ModifyDiskAttributesRequestParams struct { - // 一个或多个待操作的云硬盘ID。如果传入多个云盘ID,仅支持所有云盘修改为同一属性。 - DiskIds []*string `json:"DiskIds,omitempty" name:"DiskIds"` + // 一个或多个待操作的云硬盘ID,可以通过[DescribeDisks](/document/product/362/16315)接口查询。如果传入多个云盘ID,仅支持将所有云盘修改为同一属性。 + DiskIds []*string `json:"DiskIds,omitnil,omitempty" name:"DiskIds"` // 新的云硬盘名称。 - DiskName *string `json:"DiskName,omitempty" name:"DiskName"` + DiskName *string `json:"DiskName,omitnil,omitempty" name:"DiskName"` // 是否为弹性云盘,FALSE表示非弹性云盘,TRUE表示弹性云盘。仅支持非弹性云盘修改为弹性云盘。 - Portable *bool `json:"Portable,omitempty" name:"Portable"` + Portable *bool `json:"Portable,omitnil,omitempty" name:"Portable"` // 新的云硬盘项目ID,只支持修改弹性云盘的项目ID。通过[DescribeProject](/document/api/378/4400)接口查询可用项目及其ID。 - ProjectId *uint64 `json:"ProjectId,omitempty" name:"ProjectId"` + ProjectId *uint64 `json:"ProjectId,omitnil,omitempty" name:"ProjectId"` // 成功挂载到云主机后该云硬盘是否随云主机销毁,TRUE表示随云主机销毁,FALSE表示不随云主机销毁。仅支持按量计费云硬盘数据盘。 - DeleteWithInstance *bool `json:"DeleteWithInstance,omitempty" name:"DeleteWithInstance"` + DeleteWithInstance *bool `json:"DeleteWithInstance,omitnil,omitempty" name:"DeleteWithInstance"` + + // 变更云盘类型时,可传入该参数,表示变更的目标类型,取值范围:
  • CLOUD_PREMIUM:表示高性能云硬盘
  • CLOUD_SSD:表示SSD云硬盘。
  • 当前不支持批量变更类型,即传入DiskType时,DiskIds仅支持传入一块云盘;
    变更云盘类型时不支持同时变更其他属性。 + // 具体说明请参考[调整云硬盘类型](https://cloud.tencent.com/document/product/362/32540) + DiskType *string `json:"DiskType,omitnil,omitempty" name:"DiskType"` - // 变更云盘类型时,可传入该参数,表示变更的目标类型,取值范围:
  • CLOUD_PREMIUM:表示高性能云硬盘
  • CLOUD_SSD:表示SSD云硬盘。
    当前不支持批量变更类型,即传入DiskType时,DiskIds仅支持传入一块云盘;
    变更云盘类型时不支持同时变更其他属性。 - DiskType *string `json:"DiskType,omitempty" name:"DiskType"` + // 开启/关闭云盘性能突发功能,取值范围: + // CREATE:开启 + // CANCEL:关闭 + BurstPerformanceOperation *string `json:"BurstPerformanceOperation,omitnil,omitempty" name:"BurstPerformanceOperation"` } type ModifyDiskAttributesRequest struct { *tchttp.BaseRequest - // 一个或多个待操作的云硬盘ID。如果传入多个云盘ID,仅支持所有云盘修改为同一属性。 - DiskIds []*string `json:"DiskIds,omitempty" name:"DiskIds"` + // 一个或多个待操作的云硬盘ID,可以通过[DescribeDisks](/document/product/362/16315)接口查询。如果传入多个云盘ID,仅支持将所有云盘修改为同一属性。 + DiskIds []*string `json:"DiskIds,omitnil,omitempty" name:"DiskIds"` // 新的云硬盘名称。 - DiskName *string `json:"DiskName,omitempty" name:"DiskName"` + DiskName *string `json:"DiskName,omitnil,omitempty" name:"DiskName"` // 是否为弹性云盘,FALSE表示非弹性云盘,TRUE表示弹性云盘。仅支持非弹性云盘修改为弹性云盘。 - Portable *bool `json:"Portable,omitempty" name:"Portable"` + Portable *bool `json:"Portable,omitnil,omitempty" name:"Portable"` // 新的云硬盘项目ID,只支持修改弹性云盘的项目ID。通过[DescribeProject](/document/api/378/4400)接口查询可用项目及其ID。 - ProjectId *uint64 `json:"ProjectId,omitempty" name:"ProjectId"` + ProjectId *uint64 `json:"ProjectId,omitnil,omitempty" name:"ProjectId"` // 成功挂载到云主机后该云硬盘是否随云主机销毁,TRUE表示随云主机销毁,FALSE表示不随云主机销毁。仅支持按量计费云硬盘数据盘。 - DeleteWithInstance *bool `json:"DeleteWithInstance,omitempty" name:"DeleteWithInstance"` + DeleteWithInstance *bool `json:"DeleteWithInstance,omitnil,omitempty" name:"DeleteWithInstance"` - // 变更云盘类型时,可传入该参数,表示变更的目标类型,取值范围:
  • CLOUD_PREMIUM:表示高性能云硬盘
  • CLOUD_SSD:表示SSD云硬盘。
    当前不支持批量变更类型,即传入DiskType时,DiskIds仅支持传入一块云盘;
    变更云盘类型时不支持同时变更其他属性。 - DiskType *string `json:"DiskType,omitempty" name:"DiskType"` + // 变更云盘类型时,可传入该参数,表示变更的目标类型,取值范围:
  • CLOUD_PREMIUM:表示高性能云硬盘
  • CLOUD_SSD:表示SSD云硬盘。
  • 当前不支持批量变更类型,即传入DiskType时,DiskIds仅支持传入一块云盘;
    变更云盘类型时不支持同时变更其他属性。 + // 具体说明请参考[调整云硬盘类型](https://cloud.tencent.com/document/product/362/32540) + DiskType *string `json:"DiskType,omitnil,omitempty" name:"DiskType"` + + // 开启/关闭云盘性能突发功能,取值范围: + // CREATE:开启 + // CANCEL:关闭 + BurstPerformanceOperation *string `json:"BurstPerformanceOperation,omitnil,omitempty" name:"BurstPerformanceOperation"` } func (r *ModifyDiskAttributesRequest) ToJsonString() string { @@ -2913,6 +3250,7 @@ func (r *ModifyDiskAttributesRequest) FromJsonString(s string) error { delete(f, "ProjectId") delete(f, "DeleteWithInstance") delete(f, "DiskType") + delete(f, "BurstPerformanceOperation") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyDiskAttributesRequest has unknown keys!", "") } @@ -2921,8 +3259,8 @@ func (r *ModifyDiskAttributesRequest) FromJsonString(s string) error { // Predefined struct for user type ModifyDiskAttributesResponseParams struct { - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type ModifyDiskAttributesResponse struct { @@ -2944,20 +3282,20 @@ func (r *ModifyDiskAttributesResponse) FromJsonString(s string) error { // Predefined struct for user type ModifyDiskBackupQuotaRequestParams struct { // 云硬盘ID。 - DiskId *string `json:"DiskId,omitempty" name:"DiskId"` + DiskId *string `json:"DiskId,omitnil,omitempty" name:"DiskId"` // 调整之后的云硬盘备份点配额。 - DiskBackupQuota *uint64 `json:"DiskBackupQuota,omitempty" name:"DiskBackupQuota"` + DiskBackupQuota *uint64 `json:"DiskBackupQuota,omitnil,omitempty" name:"DiskBackupQuota"` } type ModifyDiskBackupQuotaRequest struct { *tchttp.BaseRequest // 云硬盘ID。 - DiskId *string `json:"DiskId,omitempty" name:"DiskId"` + DiskId *string `json:"DiskId,omitnil,omitempty" name:"DiskId"` // 调整之后的云硬盘备份点配额。 - DiskBackupQuota *uint64 `json:"DiskBackupQuota,omitempty" name:"DiskBackupQuota"` + DiskBackupQuota *uint64 `json:"DiskBackupQuota,omitnil,omitempty" name:"DiskBackupQuota"` } func (r *ModifyDiskBackupQuotaRequest) ToJsonString() string { @@ -2982,8 +3320,8 @@ func (r *ModifyDiskBackupQuotaRequest) FromJsonString(s string) error { // Predefined struct for user type ModifyDiskBackupQuotaResponseParams struct { - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type ModifyDiskBackupQuotaResponse struct { @@ -3004,21 +3342,21 @@ func (r *ModifyDiskBackupQuotaResponse) FromJsonString(s string) error { // Predefined struct for user type ModifyDiskExtraPerformanceRequestParams struct { - // 需要创建快照的云硬盘ID,可通过[DescribeDisks](/document/product/362/16315)接口查询。 - DiskId *string `json:"DiskId,omitempty" name:"DiskId"` - // 额外购买的云硬盘性能值,单位MB/s。 - ThroughputPerformance *uint64 `json:"ThroughputPerformance,omitempty" name:"ThroughputPerformance"` + ThroughputPerformance *uint64 `json:"ThroughputPerformance,omitnil,omitempty" name:"ThroughputPerformance"` + + // 需要创建快照的云硬盘ID,可通过[DescribeDisks](/document/product/362/16315)接口查询。 + DiskId *string `json:"DiskId,omitnil,omitempty" name:"DiskId"` } type ModifyDiskExtraPerformanceRequest struct { *tchttp.BaseRequest - // 需要创建快照的云硬盘ID,可通过[DescribeDisks](/document/product/362/16315)接口查询。 - DiskId *string `json:"DiskId,omitempty" name:"DiskId"` - // 额外购买的云硬盘性能值,单位MB/s。 - ThroughputPerformance *uint64 `json:"ThroughputPerformance,omitempty" name:"ThroughputPerformance"` + ThroughputPerformance *uint64 `json:"ThroughputPerformance,omitnil,omitempty" name:"ThroughputPerformance"` + + // 需要创建快照的云硬盘ID,可通过[DescribeDisks](/document/product/362/16315)接口查询。 + DiskId *string `json:"DiskId,omitnil,omitempty" name:"DiskId"` } func (r *ModifyDiskExtraPerformanceRequest) ToJsonString() string { @@ -3033,8 +3371,8 @@ func (r *ModifyDiskExtraPerformanceRequest) FromJsonString(s string) error { if err := json.Unmarshal([]byte(s), &f); err != nil { return err } - delete(f, "DiskId") delete(f, "ThroughputPerformance") + delete(f, "DiskId") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyDiskExtraPerformanceRequest has unknown keys!", "") } @@ -3043,8 +3381,8 @@ func (r *ModifyDiskExtraPerformanceRequest) FromJsonString(s string) error { // Predefined struct for user type ModifyDiskExtraPerformanceResponseParams struct { - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type ModifyDiskExtraPerformanceResponse struct { @@ -3065,27 +3403,27 @@ func (r *ModifyDiskExtraPerformanceResponse) FromJsonString(s string) error { // Predefined struct for user type ModifyDisksChargeTypeRequestParams struct { - // 一个或多个待操作的云硬盘ID。每次请求批量云盘上限为100。 - DiskIds []*string `json:"DiskIds,omitempty" name:"DiskIds"` + // 一个或多个待操作的云硬盘ID。每次请求批量云硬盘上限为100。 + DiskIds []*string `json:"DiskIds,omitnil,omitempty" name:"DiskIds"` // 设置为预付费模式,即包年包月相关参数设置。通过该参数可以指定包年包月实例的购买时长、是否设置自动续费等属性。 - DiskChargePrepaid *DiskChargePrepaid `json:"DiskChargePrepaid,omitempty" name:"DiskChargePrepaid"` + DiskChargePrepaid *DiskChargePrepaid `json:"DiskChargePrepaid,omitnil,omitempty" name:"DiskChargePrepaid"` // 设置为后付费模式 - DiskChargePostpaid *bool `json:"DiskChargePostpaid,omitempty" name:"DiskChargePostpaid"` + DiskChargePostpaid *bool `json:"DiskChargePostpaid,omitnil,omitempty" name:"DiskChargePostpaid"` } type ModifyDisksChargeTypeRequest struct { *tchttp.BaseRequest - // 一个或多个待操作的云硬盘ID。每次请求批量云盘上限为100。 - DiskIds []*string `json:"DiskIds,omitempty" name:"DiskIds"` + // 一个或多个待操作的云硬盘ID。每次请求批量云硬盘上限为100。 + DiskIds []*string `json:"DiskIds,omitnil,omitempty" name:"DiskIds"` // 设置为预付费模式,即包年包月相关参数设置。通过该参数可以指定包年包月实例的购买时长、是否设置自动续费等属性。 - DiskChargePrepaid *DiskChargePrepaid `json:"DiskChargePrepaid,omitempty" name:"DiskChargePrepaid"` + DiskChargePrepaid *DiskChargePrepaid `json:"DiskChargePrepaid,omitnil,omitempty" name:"DiskChargePrepaid"` // 设置为后付费模式 - DiskChargePostpaid *bool `json:"DiskChargePostpaid,omitempty" name:"DiskChargePostpaid"` + DiskChargePostpaid *bool `json:"DiskChargePostpaid,omitnil,omitempty" name:"DiskChargePostpaid"` } func (r *ModifyDisksChargeTypeRequest) ToJsonString() string { @@ -3111,8 +3449,8 @@ func (r *ModifyDisksChargeTypeRequest) FromJsonString(s string) error { // Predefined struct for user type ModifyDisksChargeTypeResponseParams struct { - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type ModifyDisksChargeTypeResponse struct { @@ -3134,20 +3472,26 @@ func (r *ModifyDisksChargeTypeResponse) FromJsonString(s string) error { // Predefined struct for user type ModifyDisksRenewFlagRequestParams struct { // 一个或多个待操作的云硬盘ID。 - DiskIds []*string `json:"DiskIds,omitempty" name:"DiskIds"` + DiskIds []*string `json:"DiskIds,omitnil,omitempty" name:"DiskIds"` + + // 云硬盘的自动续费标识。取值范围: + RenewFlag *string `json:"RenewFlag,omitnil,omitempty" name:"RenewFlag"` - // 云盘的续费标识。取值范围:
  • NOTIFY_AND_AUTO_RENEW:通知过期且自动续费
  • NOTIFY_AND_MANUAL_RENEW:通知过期不自动续费
  • DISABLE_NOTIFY_AND_MANUAL_RENEW:不通知过期不自动续费。 - RenewFlag *string `json:"RenewFlag,omitempty" name:"RenewFlag"` + // 该参数支持设置云硬盘的自动续费周期,单位为月。 + AutoRenewPeriod *uint64 `json:"AutoRenewPeriod,omitnil,omitempty" name:"AutoRenewPeriod"` } type ModifyDisksRenewFlagRequest struct { *tchttp.BaseRequest // 一个或多个待操作的云硬盘ID。 - DiskIds []*string `json:"DiskIds,omitempty" name:"DiskIds"` + DiskIds []*string `json:"DiskIds,omitnil,omitempty" name:"DiskIds"` + + // 云硬盘的自动续费标识。取值范围: + RenewFlag *string `json:"RenewFlag,omitnil,omitempty" name:"RenewFlag"` - // 云盘的续费标识。取值范围:
  • NOTIFY_AND_AUTO_RENEW:通知过期且自动续费
  • NOTIFY_AND_MANUAL_RENEW:通知过期不自动续费
  • DISABLE_NOTIFY_AND_MANUAL_RENEW:不通知过期不自动续费。 - RenewFlag *string `json:"RenewFlag,omitempty" name:"RenewFlag"` + // 该参数支持设置云硬盘的自动续费周期,单位为月。 + AutoRenewPeriod *uint64 `json:"AutoRenewPeriod,omitnil,omitempty" name:"AutoRenewPeriod"` } func (r *ModifyDisksRenewFlagRequest) ToJsonString() string { @@ -3164,6 +3508,7 @@ func (r *ModifyDisksRenewFlagRequest) FromJsonString(s string) error { } delete(f, "DiskIds") delete(f, "RenewFlag") + delete(f, "AutoRenewPeriod") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyDisksRenewFlagRequest has unknown keys!", "") } @@ -3172,8 +3517,8 @@ func (r *ModifyDisksRenewFlagRequest) FromJsonString(s string) error { // Predefined struct for user type ModifyDisksRenewFlagResponseParams struct { - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type ModifyDisksRenewFlagResponse struct { @@ -3195,32 +3540,32 @@ func (r *ModifyDisksRenewFlagResponse) FromJsonString(s string) error { // Predefined struct for user type ModifySnapshotAttributeRequestParams struct { // 快照ID, 可通过[DescribeSnapshots](/document/product/362/15647)查询。 - SnapshotId *string `json:"SnapshotId,omitempty" name:"SnapshotId"` - - // 新的快照名称。最长为60个字符。 - SnapshotName *string `json:"SnapshotName,omitempty" name:"SnapshotName"` + SnapshotId *string `json:"SnapshotId,omitnil,omitempty" name:"SnapshotId"` // 快照的保留方式,FALSE表示非永久保留,TRUE表示永久保留。 - IsPermanent *bool `json:"IsPermanent,omitempty" name:"IsPermanent"` + IsPermanent *bool `json:"IsPermanent,omitnil,omitempty" name:"IsPermanent"` + + // 新的快照名称。最长为60个字符。 + SnapshotName *string `json:"SnapshotName,omitnil,omitempty" name:"SnapshotName"` // 快照的到期时间;设置好快照将会被同时设置为非永久保留方式;超过到期时间后快照将会被自动删除。 - Deadline *string `json:"Deadline,omitempty" name:"Deadline"` + Deadline *string `json:"Deadline,omitnil,omitempty" name:"Deadline"` } type ModifySnapshotAttributeRequest struct { *tchttp.BaseRequest // 快照ID, 可通过[DescribeSnapshots](/document/product/362/15647)查询。 - SnapshotId *string `json:"SnapshotId,omitempty" name:"SnapshotId"` - - // 新的快照名称。最长为60个字符。 - SnapshotName *string `json:"SnapshotName,omitempty" name:"SnapshotName"` + SnapshotId *string `json:"SnapshotId,omitnil,omitempty" name:"SnapshotId"` // 快照的保留方式,FALSE表示非永久保留,TRUE表示永久保留。 - IsPermanent *bool `json:"IsPermanent,omitempty" name:"IsPermanent"` + IsPermanent *bool `json:"IsPermanent,omitnil,omitempty" name:"IsPermanent"` + + // 新的快照名称。最长为60个字符。 + SnapshotName *string `json:"SnapshotName,omitnil,omitempty" name:"SnapshotName"` // 快照的到期时间;设置好快照将会被同时设置为非永久保留方式;超过到期时间后快照将会被自动删除。 - Deadline *string `json:"Deadline,omitempty" name:"Deadline"` + Deadline *string `json:"Deadline,omitnil,omitempty" name:"Deadline"` } func (r *ModifySnapshotAttributeRequest) ToJsonString() string { @@ -3236,8 +3581,8 @@ func (r *ModifySnapshotAttributeRequest) FromJsonString(s string) error { return err } delete(f, "SnapshotId") - delete(f, "SnapshotName") delete(f, "IsPermanent") + delete(f, "SnapshotName") delete(f, "Deadline") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifySnapshotAttributeRequest has unknown keys!", "") @@ -3247,8 +3592,8 @@ func (r *ModifySnapshotAttributeRequest) FromJsonString(s string) error { // Predefined struct for user type ModifySnapshotAttributeResponseParams struct { - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type ModifySnapshotAttributeResponse struct { @@ -3269,27 +3614,27 @@ func (r *ModifySnapshotAttributeResponse) FromJsonString(s string) error { // Predefined struct for user type ModifySnapshotsSharePermissionRequestParams struct { - // 接收分享快照的账号Id列表,array型参数的格式可以参考[API简介](https://cloud.tencent.com/document/api/213/568)。帐号ID不同于QQ号,查询用户帐号ID请查看[帐号信息](https://console.cloud.tencent.com/developer)中的帐号ID栏。 - AccountIds []*string `json:"AccountIds,omitempty" name:"AccountIds"` + // 快照ID, 可通过[DescribeSnapshots](https://cloud.tencent.com/document/api/362/15647)查询获取。 + SnapshotIds []*string `json:"SnapshotIds,omitnil,omitempty" name:"SnapshotIds"` - // 操作,包括 SHARE,CANCEL。其中SHARE代表分享操作,CANCEL代表取消分享操作。 - Permission *string `json:"Permission,omitempty" name:"Permission"` + // 接收分享快照的账号Id列表,array型参数的格式可以参考[API简介](https://cloud.tencent.com/document/api/213/568)。账号ID不同于QQ号,查询用户账号ID请查看[账号信息](https://console.cloud.tencent.com/developer)中的账号ID栏。 + AccountIds []*string `json:"AccountIds,omitnil,omitempty" name:"AccountIds"` - // 快照ID, 可通过[DescribeSnapshots](https://cloud.tencent.com/document/api/362/15647)查询获取。 - SnapshotIds []*string `json:"SnapshotIds,omitempty" name:"SnapshotIds"` + // 操作,包括 SHARE,CANCEL。其中SHARE代表分享操作,CANCEL代表取消分享操作。 + Permission *string `json:"Permission,omitnil,omitempty" name:"Permission"` } type ModifySnapshotsSharePermissionRequest struct { *tchttp.BaseRequest - // 接收分享快照的账号Id列表,array型参数的格式可以参考[API简介](https://cloud.tencent.com/document/api/213/568)。帐号ID不同于QQ号,查询用户帐号ID请查看[帐号信息](https://console.cloud.tencent.com/developer)中的帐号ID栏。 - AccountIds []*string `json:"AccountIds,omitempty" name:"AccountIds"` + // 快照ID, 可通过[DescribeSnapshots](https://cloud.tencent.com/document/api/362/15647)查询获取。 + SnapshotIds []*string `json:"SnapshotIds,omitnil,omitempty" name:"SnapshotIds"` - // 操作,包括 SHARE,CANCEL。其中SHARE代表分享操作,CANCEL代表取消分享操作。 - Permission *string `json:"Permission,omitempty" name:"Permission"` + // 接收分享快照的账号Id列表,array型参数的格式可以参考[API简介](https://cloud.tencent.com/document/api/213/568)。账号ID不同于QQ号,查询用户账号ID请查看[账号信息](https://console.cloud.tencent.com/developer)中的账号ID栏。 + AccountIds []*string `json:"AccountIds,omitnil,omitempty" name:"AccountIds"` - // 快照ID, 可通过[DescribeSnapshots](https://cloud.tencent.com/document/api/362/15647)查询获取。 - SnapshotIds []*string `json:"SnapshotIds,omitempty" name:"SnapshotIds"` + // 操作,包括 SHARE,CANCEL。其中SHARE代表分享操作,CANCEL代表取消分享操作。 + Permission *string `json:"Permission,omitnil,omitempty" name:"Permission"` } func (r *ModifySnapshotsSharePermissionRequest) ToJsonString() string { @@ -3304,9 +3649,9 @@ func (r *ModifySnapshotsSharePermissionRequest) FromJsonString(s string) error { if err := json.Unmarshal([]byte(s), &f); err != nil { return err } + delete(f, "SnapshotIds") delete(f, "AccountIds") delete(f, "Permission") - delete(f, "SnapshotIds") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifySnapshotsSharePermissionRequest has unknown keys!", "") } @@ -3315,8 +3660,8 @@ func (r *ModifySnapshotsSharePermissionRequest) FromJsonString(s string) error { // Predefined struct for user type ModifySnapshotsSharePermissionResponseParams struct { - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type ModifySnapshotsSharePermissionResponse struct { @@ -3337,128 +3682,141 @@ func (r *ModifySnapshotsSharePermissionResponse) FromJsonString(s string) error type Placement struct { // 云硬盘所属的[可用区](/document/product/213/15753#ZoneInfo)。该参数也可以通过调用 [DescribeZones](/document/product/213/15707) 的返回值中的Zone字段来获取。 - Zone *string `json:"Zone,omitempty" name:"Zone"` + Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"` // 围笼Id。作为入参时,表示对指定的CageId的资源进行操作,可为空。 作为出参时,表示资源所属围笼ID,可为空。 // 注意:此字段可能返回 null,表示取不到有效值。 - CageId *string `json:"CageId,omitempty" name:"CageId"` + CageId *string `json:"CageId,omitnil,omitempty" name:"CageId"` + + // 实例所属项目ID。不填为默认项目。 + ProjectId *uint64 `json:"ProjectId,omitnil,omitempty" name:"ProjectId"` - // 实例所属项目ID。该参数可以通过调用 [DescribeProject](/document/api/378/4400) 的返回值中的 projectId 字段来获取。不填为默认项目。 - ProjectId *uint64 `json:"ProjectId,omitempty" name:"ProjectId"` + // 实例所属项目名称。 + // 注意:此字段可能返回 null,表示取不到有效值。 + ProjectName *string `json:"ProjectName,omitnil,omitempty" name:"ProjectName"` // 独享集群名字。作为入参时,忽略。作为出参时,表示云硬盘所属的独享集群名,可为空。 // 注意:此字段可能返回 null,表示取不到有效值。 - CdcName *string `json:"CdcName,omitempty" name:"CdcName"` + CdcName *string `json:"CdcName,omitnil,omitempty" name:"CdcName"` // 实例所属的独享集群ID。作为入参时,表示对指定的CdcId独享集群的资源进行操作,可为空。 作为出参时,表示资源所属的独享集群的ID,可为空。 // 注意:此字段可能返回 null,表示取不到有效值。 - CdcId *string `json:"CdcId,omitempty" name:"CdcId"` + CdcId *string `json:"CdcId,omitnil,omitempty" name:"CdcId"` // 独享集群id。 - DedicatedClusterId *string `json:"DedicatedClusterId,omitempty" name:"DedicatedClusterId"` + DedicatedClusterId *string `json:"DedicatedClusterId,omitnil,omitempty" name:"DedicatedClusterId"` } type Policy struct { // 指定定期快照策略的触发时间。单位为小时,取值范围:[0, 23]。00:00 ~ 23:00 共 24 个时间点可选,1表示 01:00,依此类推。 - Hour []*uint64 `json:"Hour,omitempty" name:"Hour"` + Hour []*uint64 `json:"Hour,omitnil,omitempty" name:"Hour"` // 指定每周从周一到周日需要触发定期快照的日期,取值范围:[0, 6]。0表示周日触发,1-6分别表示周一至周六。 - DayOfWeek []*uint64 `json:"DayOfWeek,omitempty" name:"DayOfWeek"` + DayOfWeek []*uint64 `json:"DayOfWeek,omitnil,omitempty" name:"DayOfWeek"` + + // 指定每月从月初到月底需要触发定期快照的日期,取值范围:[1, 31],1-31分别表示每月的具体日期,比如5表示每月的5号。注:若设置29、30、31等部分月份不存在的日期,则对应不存在日期的月份会跳过不打定期快照。 + DayOfMonth []*uint64 `json:"DayOfMonth,omitnil,omitempty" name:"DayOfMonth"` + + // 指定创建定期快照的间隔天数,取值范围:[1, 365],例如设置为5,则间隔5天即触发定期快照创建。注:当选择按天备份时,理论上第一次备份的时间为备份策略创建当天。如果当天备份策略创建的时间已经晚于设置的备份时间,那么将会等到第二个备份周期再进行第一次备份。 + IntervalDays *uint64 `json:"IntervalDays,omitnil,omitempty" name:"IntervalDays"` } type PrepayPrice struct { // 预付费云盘或快照预支费用的折扣价,单位:元。 // 注意:此字段可能返回 null,表示取不到有效值。 - DiscountPrice *float64 `json:"DiscountPrice,omitempty" name:"DiscountPrice"` + DiscountPrice *float64 `json:"DiscountPrice,omitnil,omitempty" name:"DiscountPrice"` - // 后付费云盘的计价单元,取值范围:
  • HOUR:表示后付费云盘的计价单元是按小时计算。 + // 后付费云盘的计价单元,取值范围:
  • HOUR:表示后付费云盘的计价单元是按小时计算。
  • // 注意:此字段可能返回 null,表示取不到有效值。 - ChargeUnit *string `json:"ChargeUnit,omitempty" name:"ChargeUnit"` + ChargeUnit *string `json:"ChargeUnit,omitnil,omitempty" name:"ChargeUnit"` // 高精度后付费云盘原单价, 单位:元 // 注意:此字段可能返回 null,表示取不到有效值。 - UnitPriceHigh *string `json:"UnitPriceHigh,omitempty" name:"UnitPriceHigh"` + UnitPriceHigh *string `json:"UnitPriceHigh,omitnil,omitempty" name:"UnitPriceHigh"` // 高精度预付费云盘或快照预支费用的原价,单位:元 // 注意:此字段可能返回 null,表示取不到有效值。 - OriginalPriceHigh *string `json:"OriginalPriceHigh,omitempty" name:"OriginalPriceHigh"` + OriginalPriceHigh *string `json:"OriginalPriceHigh,omitnil,omitempty" name:"OriginalPriceHigh"` // 预付费云盘或快照预支费用的原价,单位:元。 // 注意:此字段可能返回 null,表示取不到有效值。 - OriginalPrice *float64 `json:"OriginalPrice,omitempty" name:"OriginalPrice"` + OriginalPrice *float64 `json:"OriginalPrice,omitnil,omitempty" name:"OriginalPrice"` // 后付费云盘折扣单价,单位:元。 // 注意:此字段可能返回 null,表示取不到有效值。 - UnitPriceDiscount *float64 `json:"UnitPriceDiscount,omitempty" name:"UnitPriceDiscount"` + UnitPriceDiscount *float64 `json:"UnitPriceDiscount,omitnil,omitempty" name:"UnitPriceDiscount"` // 高精度后付费云盘折扣单价, 单位:元 // 注意:此字段可能返回 null,表示取不到有效值。 - UnitPriceDiscountHigh *string `json:"UnitPriceDiscountHigh,omitempty" name:"UnitPriceDiscountHigh"` + UnitPriceDiscountHigh *string `json:"UnitPriceDiscountHigh,omitnil,omitempty" name:"UnitPriceDiscountHigh"` // 高精度预付费云盘或快照预支费用的折扣价,单位:元 // 注意:此字段可能返回 null,表示取不到有效值。 - DiscountPriceHigh *string `json:"DiscountPriceHigh,omitempty" name:"DiscountPriceHigh"` + DiscountPriceHigh *string `json:"DiscountPriceHigh,omitnil,omitempty" name:"DiscountPriceHigh"` // 后付费云盘原单价,单位:元。 // 注意:此字段可能返回 null,表示取不到有效值。 - UnitPrice *float64 `json:"UnitPrice,omitempty" name:"UnitPrice"` + UnitPrice *float64 `json:"UnitPrice,omitnil,omitempty" name:"UnitPrice"` + + // 计费项目明细列表。 + DetailPrices []*DetailPrice `json:"DetailPrices,omitnil,omitempty" name:"DetailPrices"` } type Price struct { // 后付费云盘折扣单价,单位:元。 // 注意:此字段可能返回 null,表示取不到有效值。 - UnitPriceDiscount *float64 `json:"UnitPriceDiscount,omitempty" name:"UnitPriceDiscount"` + UnitPriceDiscount *float64 `json:"UnitPriceDiscount,omitnil,omitempty" name:"UnitPriceDiscount"` // 预付费云盘预支费用的折扣价,单位:元。 // 注意:此字段可能返回 null,表示取不到有效值。 - DiscountPrice *float64 `json:"DiscountPrice,omitempty" name:"DiscountPrice"` + DiscountPrice *float64 `json:"DiscountPrice,omitnil,omitempty" name:"DiscountPrice"` // 后付费云盘原单价,单位:元。 // 注意:此字段可能返回 null,表示取不到有效值。 - UnitPrice *float64 `json:"UnitPrice,omitempty" name:"UnitPrice"` + UnitPrice *float64 `json:"UnitPrice,omitnil,omitempty" name:"UnitPrice"` // 高精度后付费云盘原单价, 单位:元 // 注意:此字段可能返回 null,表示取不到有效值。 - UnitPriceHigh *string `json:"UnitPriceHigh,omitempty" name:"UnitPriceHigh"` + UnitPriceHigh *string `json:"UnitPriceHigh,omitnil,omitempty" name:"UnitPriceHigh"` // 高精度预付费云盘预支费用的原价, 单位:元 。 // 注意:此字段可能返回 null,表示取不到有效值。 - OriginalPriceHigh *string `json:"OriginalPriceHigh,omitempty" name:"OriginalPriceHigh"` + OriginalPriceHigh *string `json:"OriginalPriceHigh,omitnil,omitempty" name:"OriginalPriceHigh"` // 预付费云盘预支费用的原价,单位:元。 // 注意:此字段可能返回 null,表示取不到有效值。 - OriginalPrice *float64 `json:"OriginalPrice,omitempty" name:"OriginalPrice"` + OriginalPrice *float64 `json:"OriginalPrice,omitnil,omitempty" name:"OriginalPrice"` // 高精度预付费云盘预支费用的折扣价, 单位:元 // 注意:此字段可能返回 null,表示取不到有效值。 - DiscountPriceHigh *string `json:"DiscountPriceHigh,omitempty" name:"DiscountPriceHigh"` + DiscountPriceHigh *string `json:"DiscountPriceHigh,omitnil,omitempty" name:"DiscountPriceHigh"` // 高精度后付费云盘折扣单价, 单位:元 // 注意:此字段可能返回 null,表示取不到有效值。 - UnitPriceDiscountHigh *string `json:"UnitPriceDiscountHigh,omitempty" name:"UnitPriceDiscountHigh"` + UnitPriceDiscountHigh *string `json:"UnitPriceDiscountHigh,omitnil,omitempty" name:"UnitPriceDiscountHigh"` - // 后付费云盘的计价单元,取值范围:
  • HOUR:表示后付费云盘的计价单元是按小时计算。 + // 后付费云盘的计价单元,取值范围:
  • HOUR:表示后付费云盘的计价单元是按小时计算。
  • // 注意:此字段可能返回 null,表示取不到有效值。 - ChargeUnit *string `json:"ChargeUnit,omitempty" name:"ChargeUnit"` + ChargeUnit *string `json:"ChargeUnit,omitnil,omitempty" name:"ChargeUnit"` } // Predefined struct for user type RenewDiskRequestParams struct { - // 预付费模式,即包年包月相关参数设置。通过该参数可以指定包年包月云盘的续费时长。
    在云盘与挂载的实例一起续费的场景下,可以指定参数CurInstanceDeadline,此时云盘会按对齐到实例续费后的到期时间来续费。 - DiskChargePrepaid *DiskChargePrepaid `json:"DiskChargePrepaid,omitempty" name:"DiskChargePrepaid"` + // 预付费模式,即包年包月相关参数设置。通过该参数可以指定包年包月云硬盘的续费时长。
    在云硬盘与挂载的实例一起续费的场景下,可以指定参数CurInstanceDeadline,此时云硬盘会按对齐到实例续费后的到期时间来续费。 + DiskChargePrepaid *DiskChargePrepaid `json:"DiskChargePrepaid,omitnil,omitempty" name:"DiskChargePrepaid"` // 云硬盘ID, 通过[DescribeDisks](/document/product/362/16315)接口查询。 - DiskId *string `json:"DiskId,omitempty" name:"DiskId"` + DiskId *string `json:"DiskId,omitnil,omitempty" name:"DiskId"` } type RenewDiskRequest struct { *tchttp.BaseRequest - // 预付费模式,即包年包月相关参数设置。通过该参数可以指定包年包月云盘的续费时长。
    在云盘与挂载的实例一起续费的场景下,可以指定参数CurInstanceDeadline,此时云盘会按对齐到实例续费后的到期时间来续费。 - DiskChargePrepaid *DiskChargePrepaid `json:"DiskChargePrepaid,omitempty" name:"DiskChargePrepaid"` + // 预付费模式,即包年包月相关参数设置。通过该参数可以指定包年包月云硬盘的续费时长。
    在云硬盘与挂载的实例一起续费的场景下,可以指定参数CurInstanceDeadline,此时云硬盘会按对齐到实例续费后的到期时间来续费。 + DiskChargePrepaid *DiskChargePrepaid `json:"DiskChargePrepaid,omitnil,omitempty" name:"DiskChargePrepaid"` // 云硬盘ID, 通过[DescribeDisks](/document/product/362/16315)接口查询。 - DiskId *string `json:"DiskId,omitempty" name:"DiskId"` + DiskId *string `json:"DiskId,omitnil,omitempty" name:"DiskId"` } func (r *RenewDiskRequest) ToJsonString() string { @@ -3483,8 +3841,8 @@ func (r *RenewDiskRequest) FromJsonString(s string) error { // Predefined struct for user type RenewDiskResponseParams struct { - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type RenewDiskResponse struct { @@ -3506,20 +3864,20 @@ func (r *RenewDiskResponse) FromJsonString(s string) error { // Predefined struct for user type ResizeDiskRequestParams struct { // 云硬盘扩容后的大小,单位为GB,必须大于当前云硬盘大小。云盘大小取值范围参见云硬盘[产品分类](/document/product/362/2353)的说明。 - DiskSize *uint64 `json:"DiskSize,omitempty" name:"DiskSize"` + DiskSize *uint64 `json:"DiskSize,omitnil,omitempty" name:"DiskSize"` - // 云硬盘ID, 通过[DescribeDisks](/document/product/362/16315)接口查询。 - DiskId *string `json:"DiskId,omitempty" name:"DiskId"` + // 云硬盘ID, 通过[DescribeDisks](/document/product/362/16315)接口查询。该字段仅供单块云硬盘扩容时传入。 + DiskId *string `json:"DiskId,omitnil,omitempty" name:"DiskId"` } type ResizeDiskRequest struct { *tchttp.BaseRequest // 云硬盘扩容后的大小,单位为GB,必须大于当前云硬盘大小。云盘大小取值范围参见云硬盘[产品分类](/document/product/362/2353)的说明。 - DiskSize *uint64 `json:"DiskSize,omitempty" name:"DiskSize"` + DiskSize *uint64 `json:"DiskSize,omitnil,omitempty" name:"DiskSize"` - // 云硬盘ID, 通过[DescribeDisks](/document/product/362/16315)接口查询。 - DiskId *string `json:"DiskId,omitempty" name:"DiskId"` + // 云硬盘ID, 通过[DescribeDisks](/document/product/362/16315)接口查询。该字段仅供单块云硬盘扩容时传入。 + DiskId *string `json:"DiskId,omitnil,omitempty" name:"DiskId"` } func (r *ResizeDiskRequest) ToJsonString() string { @@ -3544,8 +3902,8 @@ func (r *ResizeDiskRequest) FromJsonString(s string) error { // Predefined struct for user type ResizeDiskResponseParams struct { - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type ResizeDiskResponse struct { @@ -3566,144 +3924,179 @@ func (r *ResizeDiskResponse) FromJsonString(s string) error { type SharePermission struct { // 快照分享的时间 - CreatedTime *string `json:"CreatedTime,omitempty" name:"CreatedTime"` + CreatedTime *string `json:"CreatedTime,omitnil,omitempty" name:"CreatedTime"` // 分享的账号Id - AccountId *string `json:"AccountId,omitempty" name:"AccountId"` + AccountId *string `json:"AccountId,omitnil,omitempty" name:"AccountId"` } type Snapshot struct { // 快照所在的位置。 - Placement *Placement `json:"Placement,omitempty" name:"Placement"` - - // 是否为跨地域复制的快照。取值范围:
  • true:表示为跨地域复制的快照。
  • false:本地域的快照。 - CopyFromRemote *bool `json:"CopyFromRemote,omitempty" name:"CopyFromRemote"` - - // 快照的状态。取值范围:
  • NORMAL:正常
  • CREATING:创建中
  • ROLLBACKING:回滚中
  • COPYING_FROM_REMOTE:跨地域复制中
  • CHECKING_COPIED:复制校验中
  • TORECYCLE:待回收。 - SnapshotState *string `json:"SnapshotState,omitempty" name:"SnapshotState"` - - // 是否为永久快照。取值范围:
  • true:永久快照
  • false:非永久快照。 - IsPermanent *bool `json:"IsPermanent,omitempty" name:"IsPermanent"` + Placement *Placement `json:"Placement,omitnil,omitempty" name:"Placement"` + + // 是否为跨地域复制的快照。取值范围: + // + CopyFromRemote *bool `json:"CopyFromRemote,omitnil,omitempty" name:"CopyFromRemote"` + + // 快照的状态。取值范围: + // + SnapshotState *string `json:"SnapshotState,omitnil,omitempty" name:"SnapshotState"` + + // 是否为永久快照。取值范围: + // + IsPermanent *bool `json:"IsPermanent,omitnil,omitempty" name:"IsPermanent"` // 快照名称,用户自定义的快照别名。调用[ModifySnapshotAttribute](/document/product/362/15650)可修改此字段。 - SnapshotName *string `json:"SnapshotName,omitempty" name:"SnapshotName"` + SnapshotName *string `json:"SnapshotName,omitnil,omitempty" name:"SnapshotName"` // 快照到期时间。如果快照为永久保留,此字段为空。 - DeadlineTime *string `json:"DeadlineTime,omitempty" name:"DeadlineTime"` + DeadlineTime *string `json:"DeadlineTime,omitnil,omitempty" name:"DeadlineTime"` // 快照创建进度百分比,快照创建成功后此字段恒为100。 - Percent *uint64 `json:"Percent,omitempty" name:"Percent"` + Percent *uint64 `json:"Percent,omitnil,omitempty" name:"Percent"` // 快照关联的镜像列表。 - Images []*Image `json:"Images,omitempty" name:"Images"` + Images []*Image `json:"Images,omitnil,omitempty" name:"Images"` // 快照当前被共享数。 - ShareReference *uint64 `json:"ShareReference,omitempty" name:"ShareReference"` + ShareReference *uint64 `json:"ShareReference,omitnil,omitempty" name:"ShareReference"` // 快照类型,目前该项取值可以为PRIVATE_SNAPSHOT或者SHARED_SNAPSHOT - SnapshotType *string `json:"SnapshotType,omitempty" name:"SnapshotType"` + SnapshotType *string `json:"SnapshotType,omitnil,omitempty" name:"SnapshotType"` // 创建此快照的云硬盘大小,单位GB。 - DiskSize *uint64 `json:"DiskSize,omitempty" name:"DiskSize"` + DiskSize *uint64 `json:"DiskSize,omitnil,omitempty" name:"DiskSize"` // 创建此快照的云硬盘ID。 - DiskId *string `json:"DiskId,omitempty" name:"DiskId"` + DiskId *string `json:"DiskId,omitnil,omitempty" name:"DiskId"` // 快照正在跨地域复制的目的地域,默认取值为[]。 - CopyingToRegions []*string `json:"CopyingToRegions,omitempty" name:"CopyingToRegions"` + CopyingToRegions []*string `json:"CopyingToRegions,omitnil,omitempty" name:"CopyingToRegions"` - // 是否为加密盘创建的快照。取值范围:
  • true:该快照为加密盘创建的
  • false:非加密盘创建的快照。 - Encrypt *bool `json:"Encrypt,omitempty" name:"Encrypt"` + // 是否为加密盘创建的快照。取值范围: + // + Encrypt *bool `json:"Encrypt,omitnil,omitempty" name:"Encrypt"` // 快照的创建时间。 - CreateTime *string `json:"CreateTime,omitempty" name:"CreateTime"` + CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"` // 快照关联的镜像个数。 - ImageCount *uint64 `json:"ImageCount,omitempty" name:"ImageCount"` + ImageCount *uint64 `json:"ImageCount,omitnil,omitempty" name:"ImageCount"` - // 创建此快照的云硬盘类型。取值范围:
  • SYSTEM_DISK:系统盘
  • DATA_DISK:数据盘。 - DiskUsage *string `json:"DiskUsage,omitempty" name:"DiskUsage"` + // 创建此快照的云硬盘类型。取值范围: + // + DiskUsage *string `json:"DiskUsage,omitnil,omitempty" name:"DiskUsage"` // 快照ID。 - SnapshotId *string `json:"SnapshotId,omitempty" name:"SnapshotId"` + SnapshotId *string `json:"SnapshotId,omitnil,omitempty" name:"SnapshotId"` // 快照开始共享的时间。 - TimeStartShare *string `json:"TimeStartShare,omitempty" name:"TimeStartShare"` + TimeStartShare *string `json:"TimeStartShare,omitnil,omitempty" name:"TimeStartShare"` // 快照绑定的标签列表。 - Tags []*Tag `json:"Tags,omitempty" name:"Tags"` + Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"` } type SnapshotCopyResult struct { // 复制到目标地域的新快照ID。 - SnapshotId *string `json:"SnapshotId,omitempty" name:"SnapshotId"` + SnapshotId *string `json:"SnapshotId,omitnil,omitempty" name:"SnapshotId"` // 指示具体错误信息,成功时为空字符串。 - Message *string `json:"Message,omitempty" name:"Message"` + Message *string `json:"Message,omitnil,omitempty" name:"Message"` // 错误码,成功时取值为“Success”。 - Code *string `json:"Code,omitempty" name:"Code"` + Code *string `json:"Code,omitnil,omitempty" name:"Code"` // 跨地复制的目标地域。 - DestinationRegion *string `json:"DestinationRegion,omitempty" name:"DestinationRegion"` + DestinationRegion *string `json:"DestinationRegion,omitnil,omitempty" name:"DestinationRegion"` } -type SnapshotOperationLog struct { - // 操作的状态。取值范围: - // SUCCESS :表示操作成功 - // FAILED :表示操作失败 - // PROCESSING :表示操作中。 - OperationState *string `json:"OperationState,omitempty" name:"OperationState"` +type SnapshotGroup struct { + // 快照组ID。 + SnapshotGroupId *string `json:"SnapshotGroupId,omitnil,omitempty" name:"SnapshotGroupId"` - // 开始时间。 - StartTime *string `json:"StartTime,omitempty" name:"StartTime"` + // 快照组类型。NORMAL: 普通快照组,非一致性快照。 + SnapshotGroupType *string `json:"SnapshotGroupType,omitnil,omitempty" name:"SnapshotGroupType"` - // 操作者的UIN。 - // 注意:此字段可能返回 null,表示取不到有效值。 - Operator *string `json:"Operator,omitempty" name:"Operator"` + // 快照组是否包含系统盘快照。 + ContainRootSnapshot *bool `json:"ContainRootSnapshot,omitnil,omitempty" name:"ContainRootSnapshot"` + + // 快照组包含的快照ID列表。 + SnapshotIdSet []*string `json:"SnapshotIdSet,omitnil,omitempty" name:"SnapshotIdSet"` + + // 快照组状态。
  • NORMAL: 正常
  • CREATING:创建中
  • ROLLBACKING:回滚中 + SnapshotGroupState *string `json:"SnapshotGroupState,omitnil,omitempty" name:"SnapshotGroupState"` - // 操作的快照ID。 - SnapshotId *string `json:"SnapshotId,omitempty" name:"SnapshotId"` + // 快照组创建进度。 + Percent *uint64 `json:"Percent,omitnil,omitempty" name:"Percent"` - // 操作类型。取值范围: - // SNAP_OPERATION_DELETE:删除快照 - // SNAP_OPERATION_ROLLBACK:回滚快照 - // SNAP_OPERATION_MODIFY:修改快照属性 - // SNAP_OPERATION_CREATE:创建快照 - // SNAP_OPERATION_COPY:跨地域复制快照 - // ASP_OPERATION_CREATE_SNAP:由定期快照策略创建快照 - // ASP_OPERATION_DELETE_SNAP:由定期快照策略删除快照 - Operation *string `json:"Operation,omitempty" name:"Operation"` + // 快照组创建时间。 + CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"` - // 结束时间。 - EndTime *string `json:"EndTime,omitempty" name:"EndTime"` + // 快照组最新修改时间 + ModifyTime *string `json:"ModifyTime,omitnil,omitempty" name:"ModifyTime"` + + // 快照组关联的镜像列表。 + Images []*Image `json:"Images,omitnil,omitempty" name:"Images"` + + // 快照组名称。 + SnapshotGroupName *string `json:"SnapshotGroupName,omitnil,omitempty" name:"SnapshotGroupName"` + + // 快照组关联的镜像数量。 + ImageCount *uint64 `json:"ImageCount,omitnil,omitempty" name:"ImageCount"` + + // 快照组是否永久保留 + IsPermanent *bool `json:"IsPermanent,omitnil,omitempty" name:"IsPermanent"` + + // 快照组到期时间。 + // 注意:此字段可能返回 null,表示取不到有效值。 + DeadlineTime *string `json:"DeadlineTime,omitnil,omitempty" name:"DeadlineTime"` } type Tag struct { // 标签健。 - Key *string `json:"Key,omitempty" name:"Key"` + Key *string `json:"Key,omitnil,omitempty" name:"Key"` // 标签值。 - Value *string `json:"Value,omitempty" name:"Value"` + Value *string `json:"Value,omitnil,omitempty" name:"Value"` } // Predefined struct for user type TerminateDisksRequestParams struct { - // 需退还的云盘ID列表。 - DiskIds []*string `json:"DiskIds,omitempty" name:"DiskIds"` + // 需退还的云盘ID列表,通过[DescribeDisks](/document/product/362/16315)接口查询。 + DiskIds []*string `json:"DiskIds,omitnil,omitempty" name:"DiskIds"` // 销毁云盘时删除关联的非永久保留快照。0 表示非永久快照不随云盘销毁而销毁,1表示非永久快照随云盘销毁而销毁,默认取0。快照是否永久保留可以通过DescribeSnapshots接口返回的快照详情的IsPermanent字段来判断,true表示永久快照,false表示非永久快照。 - DeleteSnapshot *int64 `json:"DeleteSnapshot,omitempty" name:"DeleteSnapshot"` + DeleteSnapshot *int64 `json:"DeleteSnapshot,omitnil,omitempty" name:"DeleteSnapshot"` } type TerminateDisksRequest struct { *tchttp.BaseRequest - // 需退还的云盘ID列表。 - DiskIds []*string `json:"DiskIds,omitempty" name:"DiskIds"` + // 需退还的云盘ID列表,通过[DescribeDisks](/document/product/362/16315)接口查询。 + DiskIds []*string `json:"DiskIds,omitnil,omitempty" name:"DiskIds"` // 销毁云盘时删除关联的非永久保留快照。0 表示非永久快照不随云盘销毁而销毁,1表示非永久快照随云盘销毁而销毁,默认取0。快照是否永久保留可以通过DescribeSnapshots接口返回的快照详情的IsPermanent字段来判断,true表示永久快照,false表示非永久快照。 - DeleteSnapshot *int64 `json:"DeleteSnapshot,omitempty" name:"DeleteSnapshot"` + DeleteSnapshot *int64 `json:"DeleteSnapshot,omitnil,omitempty" name:"DeleteSnapshot"` } func (r *TerminateDisksRequest) ToJsonString() string { @@ -3728,8 +4121,8 @@ func (r *TerminateDisksRequest) FromJsonString(s string) error { // Predefined struct for user type TerminateDisksResponseParams struct { - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type TerminateDisksResponse struct { @@ -3751,20 +4144,20 @@ func (r *TerminateDisksResponse) FromJsonString(s string) error { // Predefined struct for user type UnbindAutoSnapshotPolicyRequestParams struct { // 要解绑的定期快照策略ID。 - AutoSnapshotPolicyId *string `json:"AutoSnapshotPolicyId,omitempty" name:"AutoSnapshotPolicyId"` + AutoSnapshotPolicyId *string `json:"AutoSnapshotPolicyId,omitnil,omitempty" name:"AutoSnapshotPolicyId"` // 要解绑定期快照策略的云盘ID列表。 - DiskIds []*string `json:"DiskIds,omitempty" name:"DiskIds"` + DiskIds []*string `json:"DiskIds,omitnil,omitempty" name:"DiskIds"` } type UnbindAutoSnapshotPolicyRequest struct { *tchttp.BaseRequest // 要解绑的定期快照策略ID。 - AutoSnapshotPolicyId *string `json:"AutoSnapshotPolicyId,omitempty" name:"AutoSnapshotPolicyId"` + AutoSnapshotPolicyId *string `json:"AutoSnapshotPolicyId,omitnil,omitempty" name:"AutoSnapshotPolicyId"` // 要解绑定期快照策略的云盘ID列表。 - DiskIds []*string `json:"DiskIds,omitempty" name:"DiskIds"` + DiskIds []*string `json:"DiskIds,omitnil,omitempty" name:"DiskIds"` } func (r *UnbindAutoSnapshotPolicyRequest) ToJsonString() string { @@ -3789,8 +4182,8 @@ func (r *UnbindAutoSnapshotPolicyRequest) FromJsonString(s string) error { // Predefined struct for user type UnbindAutoSnapshotPolicyResponseParams struct { - // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitempty" name:"RequestId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } type UnbindAutoSnapshotPolicyResponse struct { diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/client.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/client.go index f4b8e19fbf..78456cd7e7 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/client.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/client.go @@ -24,22 +24,48 @@ const ( octetStream = "application/octet-stream" ) +// DefaultHttpClient is the default HTTP client used by the SDK. +// It can be overridden for custom HTTP client configurations. var DefaultHttpClient *http.Client +// Client encapsulates the core functionalities for interacting with Tencent Cloud services. type Client struct { - region string - httpClient *http.Client - httpProfile *profile.HttpProfile - profile *profile.ClientProfile - credential CredentialIface - signMethod string + // The region to which the client is connected. + region string + + // The HTTP client used for making requests. + httpClient *http.Client + + // The HTTP profile containing endpoint and method settings. + httpProfile *profile.HttpProfile + + // The client profile containing retry and sign method settings. + profile *profile.ClientProfile + + // The credential used for authentication. + credential CredentialIface + + // The signature method used for signing requests (e.g., HmacSHA256, HmacSHA1). + signMethod string + + // Indicates whether the payload should be unsigned. unsignedPayload bool - debug bool - rb *circuitBreaker - logger Logger - requestClient string + + // Enables debug logging. + debug bool + + // The circuit breaker for handling service unavailability. + rb *circuitBreaker + + // The logger for logging messages. + logger Logger + + // The client identifier sent in the request header. + requestClient string } +// Send sends the request and parses the response. +// It handles request completion, signature, and circuit breaking. func (c *Client) Send(request tchttp.Request, response tchttp.Response) (err error) { c.completeRequest(request) @@ -51,7 +77,7 @@ func (c *Client) Send(request tchttp.Request, response tchttp.Response) (err err } if request.GetSkipSign() { - // Some APIs can skip signature. + // Some APIs allow skipping the signature process. return c.sendWithoutSignature(request, response) } else if c.profile.DisableRegionBreaker == true || c.rb == nil { return c.sendWithSignature(request, response) @@ -60,6 +86,8 @@ func (c *Client) Send(request tchttp.Request, response tchttp.Response) (err err } } +// completeRequest fills in any missing request parameters with default values +// from the client's configuration. func (c *Client) completeRequest(request tchttp.Request) { if request.GetScheme() == "" { request.SetScheme(c.httpProfile.Scheme) @@ -81,6 +109,7 @@ func (c *Client) completeRequest(request tchttp.Request) { request.SetHttpMethod(c.httpProfile.ReqMethod) } + // Add idempotency key for unsafe retries. if c.profile.UnsafeRetryOnConnectionFailure { header := request.GetHeader() if header == nil { @@ -280,6 +309,8 @@ func (c *Client) sendWithSignatureV1(request tchttp.Request, response tchttp.Res } func (c *Client) sendWithSignatureV3(request tchttp.Request, response tchttp.Response) (err error) { + // Prepare the headers for the request, including essential information + // and the necessary components for Signature Version 3 authentication. headers := map[string]string{ "Host": request.GetDomain(), "X-TC-Action": request.GetAction(), @@ -288,18 +319,26 @@ func (c *Client) sendWithSignatureV3(request tchttp.Request, response tchttp.Res "X-TC-RequestClient": request.GetParams()["RequestClient"], "X-TC-Language": c.profile.Language, } + + // Include the region if specified. if c.region != "" { headers["X-TC-Region"] = c.region } + + // Retrieve the secret ID, secret key, and security token from the credentials. secId, secKey, token := c.credential.GetCredential() if token != "" { headers["X-TC-Token"] = token } + + // Set the Content-Type header based on the HTTP method. if request.GetHttpMethod() == "GET" { headers["Content-Type"] = "application/x-www-form-urlencoded" } else { headers["Content-Type"] = "application/json" } + + // Handle octet-stream (binary data) requests. isOctetStream := false cr := &tchttp.CommonRequest{} ok := false @@ -316,6 +355,8 @@ func (c *Client) sendWithSignatureV3(request tchttp.Request, response tchttp.Res } } + // Merge any additional headers from the request, but skip built-in headers + // to prevent them from being overridden. for k, v := range request.GetHeader() { switch k { case "X-TC-Action", "X-TC-Version", "X-TC-Timestamp", "X-TC-RequestClient", @@ -326,6 +367,8 @@ func (c *Client) sendWithSignatureV3(request tchttp.Request, response tchttp.Res } } + // Handle the case where the request content type is explicitly set to octet-stream, + // but it's not already handled as an OctetStream CommonRequest. if !isOctetStream && request.GetContentType() == octetStream { isOctetStream = true b, _ := json.Marshal(request) @@ -339,11 +382,17 @@ func (c *Client) sendWithSignatureV3(request tchttp.Request, response tchttp.Res headers["Content-Type"] = octetStream octetStreamBody = request.GetBody() } - // start signature v3 process + // --- Begin Signature Version 3 (TC3-HMAC-SHA256) Signing Process --- - // build canonical request string + // 1. Construct the Canonical Request + + // HTTP Method (e.g., "GET", "POST"). httpRequestMethod := request.GetHttpMethod() + + // Canonical URI (always "/"). canonicalURI := "/" + + // Canonical Query String (for GET requests). canonicalQueryString := "" if httpRequestMethod == "GET" { err = tchttp.ConstructParams(request) @@ -354,6 +403,7 @@ func (c *Client) sendWithSignatureV3(request tchttp.Request, response tchttp.Res for key, value := range request.GetParams() { params[key] = value } + // Remove standard parameters that are not part of the canonical query string. delete(params, "Action") delete(params, "Version") delete(params, "Nonce") @@ -362,8 +412,14 @@ func (c *Client) sendWithSignatureV3(request tchttp.Request, response tchttp.Res delete(params, "Timestamp") canonicalQueryString = tchttp.GetUrlQueriesEncoded(params) } + + // Canonical Headers (sorted and formatted). canonicalHeaders := fmt.Sprintf("content-type:%s\nhost:%s\n", headers["Content-Type"], headers["Host"]) + + // Signed Headers (list of headers included in the signature). signedHeaders := "content-type;host" + + // Request Payload (for POST requests). requestPayload := "" if httpRequestMethod == "POST" { if isOctetStream { @@ -377,6 +433,8 @@ func (c *Client) sendWithSignatureV3(request tchttp.Request, response tchttp.Res requestPayload = string(b) } } + + // Hashed Request Payload. hashedRequestPayload := "" if c.unsignedPayload { hashedRequestPayload = sha256hex("UNSIGNED-PAYLOAD") @@ -384,6 +442,8 @@ func (c *Client) sendWithSignatureV3(request tchttp.Request, response tchttp.Res } else { hashedRequestPayload = sha256hex(requestPayload) } + + // Construct the complete Canonical Request String. canonicalRequest := fmt.Sprintf("%s\n%s\n%s\n%s\n%s\n%s", httpRequestMethod, canonicalURI, @@ -393,15 +453,25 @@ func (c *Client) sendWithSignatureV3(request tchttp.Request, response tchttp.Res hashedRequestPayload) //log.Println("canonicalRequest:", canonicalRequest) - // build string to sign + // 2. Construct the String to Sign + + // Algorithm. algorithm := "TC3-HMAC-SHA256" + + // Request Timestamp. requestTimestamp := headers["X-TC-Timestamp"] + + // Credential Scope. timestamp, _ := strconv.ParseInt(requestTimestamp, 10, 64) t := time.Unix(timestamp, 0).UTC() // must be the format 2006-01-02, ref to package time for more info date := t.Format("2006-01-02") credentialScope := fmt.Sprintf("%s/%s/tc3_request", date, request.GetService()) + + // Hashed Canonical Request. hashedCanonicalRequest := sha256hex(canonicalRequest) + + // Construct the String to Sign. string2sign := fmt.Sprintf("%s\n%s\n%s\n%s", algorithm, requestTimestamp, @@ -409,14 +479,24 @@ func (c *Client) sendWithSignatureV3(request tchttp.Request, response tchttp.Res hashedCanonicalRequest) //log.Println("string2sign", string2sign) - // sign string + // 3. Calculate the Signature + + // Secret Date. secretDate := hmacsha256(date, "TC3"+secKey) + + // Secret Service. secretService := hmacsha256(request.GetService(), secretDate) + + // Secret Key. secretKey := hmacsha256("tc3_request", secretService) + + // Signature. signature := hex.EncodeToString([]byte(hmacsha256(string2sign, secretKey))) //log.Println("signature", signature) - // build authorization + // 4. Construct the Authorization Header + + // Authorization Header. authorization := fmt.Sprintf("%s Credential=%s/%s, SignedHeaders=%s, Signature=%s", algorithm, secId, @@ -425,25 +505,37 @@ func (c *Client) sendWithSignatureV3(request tchttp.Request, response tchttp.Res signature) //log.Println("authorization", authorization) + // Add the Authorization header to the request headers. headers["Authorization"] = authorization + + // --- End Signature Version 3 Signing Process --- + + // Construct the full URL. url := request.GetScheme() + "://" + request.GetDomain() + request.GetPath() if canonicalQueryString != "" { url = url + "?" + canonicalQueryString } + + // Create the HTTP request. httpRequest, err := http.NewRequest(httpRequestMethod, url, strings.NewReader(requestPayload)) if err != nil { return err } httpRequest = httpRequest.WithContext(request.GetContext()) + + // Set all the headers on the request. for k, v := range headers { httpRequest.Header[k] = []string{v} } + + // Send the HTTP request with rate limit retry logic. httpResponse, err := c.sendWithRateLimitRetry(httpRequest, isRetryable(request)) if err != nil { return err } - err = tchttp.ParseFromHttpResponse(httpResponse, response) - return err + + // Parse the HTTP response into the specified response object. + return tchttp.ParseFromHttpResponse(httpResponse, response) } // send http request diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/credentials.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/credentials.go index c8fab3ee58..2e6694f19e 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/credentials.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/credentials.go @@ -4,17 +4,28 @@ var creErr = "ClientError.CredentialError" type CredentialIface interface { GetSecretId() string + GetToken() string + GetSecretKey() string + + // GetCredential retrieves all credential components (SecretId, SecretKey, Token) as a tuple. + // This method is designed to fetch all three credential values (SecretId, SecretKey, Token) at once. + // This is beneficial for atomic operations, preventing potential issues that could arise from + // separate calls where one credential element might be updated while others are not, leading to inconsistency. GetCredential() (string, string, string) + // needRefresh() bool // refresh() } +// Credential is a basic implementation of the CredentialIface. +// It stores the SecretId, SecretKey, and Token directly. +// This struct is suitable for simple cases where credentials are known beforehand. type Credential struct { - SecretId string - SecretKey string - Token string + SecretId string // The SecretId for authentication. + SecretKey string // The SecretKey for signing requests. + Token string // The security token (optional). } func (c *Credential) needRefresh() bool { @@ -24,6 +35,8 @@ func (c *Credential) needRefresh() bool { func (c *Credential) refresh() { } +// NewCredential creates a new Credential instance with the given SecretId and SecretKey. +// This constructor is used when you don't have a security token. func NewCredential(secretId, secretKey string) *Credential { return &Credential{ SecretId: secretId, @@ -31,6 +44,8 @@ func NewCredential(secretId, secretKey string) *Credential { } } +// NewTokenCredential creates a new Credential instance with the given SecretId, SecretKey, and Token. +// This constructor is used when you have a security token. func NewTokenCredential(secretId, secretKey, token string) *Credential { return &Credential{ SecretId: secretId, 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 310b73ac5d..68d1ebeb2a 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 @@ -265,7 +265,7 @@ func CompleteCommonParams(request Request, region string, requestClient string) params["Action"] = request.GetAction() params["Timestamp"] = strconv.FormatInt(time.Now().Unix(), 10) params["Nonce"] = strconv.Itoa(rand.Int()) - params["RequestClient"] = "SDK_GO_1.0.1149" + params["RequestClient"] = "SDK_GO_1.0.1153" if requestClient != "" { params["RequestClient"] += ": " + requestClient } diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile/client_profile.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile/client_profile.go index 087244052b..dadea70184 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile/client_profile.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile/client_profile.go @@ -20,25 +20,40 @@ func ExponentialBackoff(index int) time.Duration { type ClientProfile struct { HttpProfile *HttpProfile - // Valid choices: HmacSHA1, HmacSHA256, TC3-HMAC-SHA256. - // Default value is TC3-HMAC-SHA256. - SignMethod string + // SignMethod specifies the signing algorithm used for request signatures. + // Valid options: "HmacSHA1", "HmacSHA256", "TC3-HMAC-SHA256". + // Default value is "TC3-HMAC-SHA256". + SignMethod string + + // UnsignedPayload indicates whether the payload is unsigned. UnsignedPayload bool - // Valid choices: zh-CN, en-US. - // Default value is zh-CN. + + // Language specifies the language of the client profile. + // Valid options: "zh-CN" (Chinese), "en-US" (English). + // Default value is "zh-CN". Language string - Debug bool - // define Whether to enable Regional auto switch + + // Debug enables or disables debug output for client operations. + Debug bool + + // DisableRegionBreaker determines whether to enable the Regional auto switch. + // The SDK uses ap-guangzhou.tencentcloudapi.com as the default backup endpoint. + // You can override this by specifying the BackupEndpoint. DisableRegionBreaker bool - // Deprecated. Use BackupEndpoint instead. + // BackupEndPoint specifies an alternative endpoint to use by region breaker. + // Deprecated: Use BackupEndpoint instead. BackupEndPoint string BackupEndpoint string - // define how to retry request - NetworkFailureMaxRetries int - NetworkFailureRetryDuration DurationFunc - RateLimitExceededMaxRetries int + // NetworkFailureMaxRetries defines the maximum number of retries when a network failure occurs. + NetworkFailureMaxRetries int + // NetworkFailureRetryDuration is a function that determines the retry duration between network failure retries. + NetworkFailureRetryDuration DurationFunc + + // RateLimitExceededMaxRetries defines the maximum number of retries when rate limit is exceeded. + RateLimitExceededMaxRetries int + // RateLimitExceededRetryDuration is a function that determines the retry duration between rate limit exceeded retries. RateLimitExceededRetryDuration DurationFunc // Configure this client to retry or not when a connectivity problem is encountered. diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile/http_profile.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile/http_profile.go index 610abb63ee..f75ec5edc8 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile/http_profile.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile/http_profile.go @@ -1,17 +1,44 @@ package profile +// HttpProfile encapsulates the configuration for HTTP requests. +// It defines settings such as the request method, timeout, scheme, and endpoints. type HttpProfile struct { - ReqMethod string - ReqTimeout int - Scheme string - RootDomain string - Endpoint string - ApigwEndpoint string - // Deprecated, use Scheme instead + // ReqMethod specifies the HTTP request method (e.g., "GET", "POST"). + // Default: "POST". + ReqMethod string + + // ReqTimeout defines the request timeout in seconds. + // This determines how long the client will wait for a response before timing out. + // Default: 60 seconds. + ReqTimeout int + + // Deprecated: Use Scheme instead. Protocol string - Proxy string + // Scheme specifies the protocol scheme to use for the request (e.g., "HTTP", "HTTPS"). + // Default: "HTTPS". + Scheme string + + // RootDomain specifies the root domain for the API request. + // This is often used as a base for constructing the full API endpoint. + // Default: "". + RootDomain string + + // Endpoint specifies the specific API endpoint to which the request is sent. + // This can be a full URL or a domain name, depending on the service. + // Default: "". + Endpoint string + + ApigwEndpoint string + + // Proxy specifies the URL of a proxy server to use for the requests. + // If set, all requests will be routed through this proxy. + // Default: "". + Proxy string } +// NewHttpProfile creates and initializes a new HttpProfile with default values. +// This function provides a convenient way to obtain a HttpProfile instance +// with sensible defaults, which can then be customized as needed. func NewHttpProfile() *HttpProfile { return &HttpProfile{ ReqMethod: "POST", diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/rewindable_body.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/rewindable_body.go index be1c88be62..85aa390303 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/rewindable_body.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/rewindable_body.go @@ -6,62 +6,78 @@ import ( "net/http" ) +// newRequestRetryer creates a function to reset the request body for retries. +// It handles cases where the request body needs to be read multiple times. func newRequestRetryer(r *http.Request) func() error { + // If the request doesn't have a GetBody function, we need to add one. if r.GetBody == nil { + // Wrap the original body in a rewindableBody to allow reading it multiple times. rb := &rewindableBody{body: r.Body} r.Body = rb + // Set GetBody to a function that rewinds the rewindableBody. r.GetBody = func() (io.ReadCloser, error) { - err := rb.Rewind() + err := rb.Rewind() // Prepare the body for reading again. return rb, err } } + // Return a closure that resets the request's Body to a new reader. return func() error { - bodyCopy, err := r.GetBody() + bodyCopy, err := r.GetBody() // Get a new ReadCloser for the body. if err != nil { return err } - r.Body = bodyCopy + r.Body = bodyCopy // Set the request's Body to the new reader. return nil } } +// rewindableBody allows an io.ReadCloser to be read multiple times. +// It buffers the body content to enable rewinding. type rewindableBody struct { - body io.ReadCloser - buf []byte - r bytes.Reader - rewind bool + body io.ReadCloser // The original request body. + buf []byte // Buffer to store the body content. + r bytes.Reader // Reader to read from the buffer. + rewind bool // Flag indicating if the body has been rewound. } +// Read implements the io.Reader interface. +// If rewind is true, it reads from the buffer; otherwise, it reads from the original body +// and buffers the data. func (r *rewindableBody) Read(p []byte) (int, error) { if r.rewind { - return r.r.Read(p) + return r.r.Read(p) // Read from the buffer. } - nr, err := r.body.Read(p) + nr, err := r.body.Read(p) // Read from the original body. if nr > 0 { - r.buf = append(r.buf, p[:nr]...) + r.buf = append(r.buf, p[:nr]...) // Buffer the read data. } return nr, err } +// Close implements the io.Closer interface. +// It closes the original request body. func (r *rewindableBody) Close() error { return r.body.Close() } +// Rewind prepares the body for rereading. +// If the body has not been rewound, it drains and buffers the original body. +// It then resets the buffer reader and sets the rewind flag. func (r *rewindableBody) Rewind() error { if !r.rewind { - // drain body + // Drain and buffer the original body. buf := bytes.NewBuffer(r.buf) _, err := io.Copy(buf, r.body) if err != nil { return err } - r.buf = buf.Bytes() + r.buf = buf.Bytes() // Store the buffered data. } - r.r.Reset(r.buf) - r.rewind = true + r.r.Reset(r.buf) // Reset the buffer reader. + r.rewind = true // Set the rewind flag. return nil } diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/types.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/types.go index 6da779da99..c16b85f7c9 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/types.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/types.go @@ -1,33 +1,42 @@ package common +// IntPtr returns a pointer to the int value passed. func IntPtr(v int) *int { return &v } +// Int64Ptr returns a pointer to the int64 value passed. func Int64Ptr(v int64) *int64 { return &v } +// UintPtr returns a pointer to the uint value passed. func UintPtr(v uint) *uint { return &v } +// Uint64Ptr returns a pointer to the uint64 value passed. func Uint64Ptr(v uint64) *uint64 { return &v } +// Float64Ptr returns a pointer to the float64 value passed. func Float64Ptr(v float64) *float64 { return &v } +// BoolPtr returns a pointer to the bool value passed. func BoolPtr(v bool) *bool { return &v } +// StringPtr returns a pointer to the string value passed. func StringPtr(v string) *string { return &v } +// StringValues converts a slice of string pointers to a slice of strings. +// Nil pointers are converted to empty strings. func StringValues(ptrs []*string) []string { values := make([]string, len(ptrs)) for i := 0; i < len(ptrs); i++ { @@ -38,6 +47,7 @@ func StringValues(ptrs []*string) []string { return values } +// IntPtrs converts a slice of ints to a slice of int pointers. func IntPtrs(vals []int) []*int { ptrs := make([]*int, len(vals)) for i := 0; i < len(vals); i++ { @@ -46,6 +56,7 @@ func IntPtrs(vals []int) []*int { return ptrs } +// Int64Ptrs converts a slice of int64s to a slice of int64 pointers. func Int64Ptrs(vals []int64) []*int64 { ptrs := make([]*int64, len(vals)) for i := 0; i < len(vals); i++ { @@ -54,6 +65,7 @@ func Int64Ptrs(vals []int64) []*int64 { return ptrs } +// UintPtrs converts a slice of uints to a slice of uint pointers. func UintPtrs(vals []uint) []*uint { ptrs := make([]*uint, len(vals)) for i := 0; i < len(vals); i++ { @@ -62,6 +74,7 @@ func UintPtrs(vals []uint) []*uint { return ptrs } +// Uint64Ptrs converts a slice of uint64s to a slice of uint64 pointers. func Uint64Ptrs(vals []uint64) []*uint64 { ptrs := make([]*uint64, len(vals)) for i := 0; i < len(vals); i++ { @@ -70,6 +83,7 @@ func Uint64Ptrs(vals []uint64) []*uint64 { return ptrs } +// Float64Ptrs converts a slice of float64s to a slice of float64 pointers. func Float64Ptrs(vals []float64) []*float64 { ptrs := make([]*float64, len(vals)) for i := 0; i < len(vals); i++ { @@ -78,6 +92,7 @@ func Float64Ptrs(vals []float64) []*float64 { return ptrs } +// BoolPtrs converts a slice of bools to a slice of bool pointers. func BoolPtrs(vals []bool) []*bool { ptrs := make([]*bool, len(vals)) for i := 0; i < len(vals); i++ { @@ -86,6 +101,7 @@ func BoolPtrs(vals []bool) []*bool { return ptrs } +// StringPtrs converts a slice of strings to a slice of string pointers. func StringPtrs(vals []string) []*string { ptrs := make([]*string, len(vals)) for i := 0; i < len(vals); i++ { diff --git a/vendor/modules.txt b/vendor/modules.txt index 42376fb31b..8582e9d7fc 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1121,7 +1121,7 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cam/v20190116 # github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cat v1.0.825 ## explicit; go 1.14 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cat/v20180409 -# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.591 +# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.1153 ## explicit; go 1.14 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs/v20170312 # github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.944 @@ -1166,7 +1166,7 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit/v20190319 # github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1135 ## explicit; go 1.14 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls/v20201016 -# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1149 +# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1153 ## explicit; go 1.11 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors From 34f5fd8a1b59315b12ea3e949c5a28cf846624a4 Mon Sep 17 00:00:00 2001 From: SevenEarth <391613297@qq.com> Date: Mon, 28 Apr 2025 15:28:53 +0800 Subject: [PATCH 2/4] add --- .changelog/3334.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .changelog/3334.txt diff --git a/.changelog/3334.txt b/.changelog/3334.txt new file mode 100644 index 0000000000..f890f25c19 --- /dev/null +++ b/.changelog/3334.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +resource/tencentcloud_cbs_storage: support `kms_key_id` +``` From 338c9f0f4ce5287620b5712892eb6f77df4b65c5 Mon Sep 17 00:00:00 2001 From: SevenEarth <391613297@qq.com> Date: Mon, 28 Apr 2025 15:41:56 +0800 Subject: [PATCH 3/4] add --- .changelog/3334.txt | 12 +++++ .../cbs/data_source_tc_cbs_storages.go | 6 +++ .../cbs/data_source_tc_cbs_storages.md | 4 +- .../cbs/data_source_tc_cbs_storages_set.go | 6 +++ .../cbs/resource_tc_cbs_storage_set.go | 15 +++++++ .../cbs/resource_tc_cbs_storage_set.md | 31 +++++++++++++ website/docs/d/cbs_storages.html.markdown | 3 +- website/docs/d/cbs_storages_set.html.markdown | 1 + website/docs/r/cbs_storage.html.markdown | 44 +++++++++++++++++-- website/docs/r/cbs_storage_set.html.markdown | 32 ++++++++++++++ 10 files changed, 149 insertions(+), 5 deletions(-) diff --git a/.changelog/3334.txt b/.changelog/3334.txt index f890f25c19..0652f8e231 100644 --- a/.changelog/3334.txt +++ b/.changelog/3334.txt @@ -1,3 +1,15 @@ ```release-note:enhancement resource/tencentcloud_cbs_storage: support `kms_key_id` ``` + +```release-note:enhancement +resource/tencentcloud_cbs_storage_set: support `kms_key_id` +``` + +```release-note:enhancement +datasource/tencentcloud_cbs_storages: add return value `kms_key_id` +``` + +```release-note:enhancement +datasource/tencentcloud_cbs_storages_set: add return value `kms_key_id` +``` diff --git a/tencentcloud/services/cbs/data_source_tc_cbs_storages.go b/tencentcloud/services/cbs/data_source_tc_cbs_storages.go index f171261fda..db32fde151 100644 --- a/tencentcloud/services/cbs/data_source_tc_cbs_storages.go +++ b/tencentcloud/services/cbs/data_source_tc_cbs_storages.go @@ -156,6 +156,11 @@ func DataSourceTencentCloudCbsStorages() *schema.Resource { Computed: true, Description: "ID of the CVM instance that be mounted by this CBS.", }, + "kms_key_id": { + Type: schema.TypeString, + Computed: true, + Description: "Kms key ID.", + }, "encrypt": { Type: schema.TypeBool, Computed: true, @@ -288,6 +293,7 @@ func dataSourceTencentCloudCbsStoragesRead(d *schema.ResourceData, meta interfac "storage_size": storage.DiskSize, "attached": storage.Attached, "instance_id": storage.InstanceId, + "kms_key_id": storage.KmsKeyId, "encrypt": storage.Encrypt, "create_time": storage.CreateTime, "status": storage.DiskState, diff --git a/tencentcloud/services/cbs/data_source_tc_cbs_storages.md b/tencentcloud/services/cbs/data_source_tc_cbs_storages.md index ceea1c2d36..d0afdebed4 100644 --- a/tencentcloud/services/cbs/data_source_tc_cbs_storages.md +++ b/tencentcloud/services/cbs/data_source_tc_cbs_storages.md @@ -3,6 +3,7 @@ Use this data source to query detailed information of CBS storages. Example Usage Query all CBS storages + ```hcl data "tencentcloud_cbs_storages" "example" {} ``` @@ -17,6 +18,7 @@ data "tencentcloud_cbs_storages" "example" { ``` Query CBS by dedicated cluster id + ```hcl data "tencentcloud_cbs_storages" "example" { dedicated_cluster_id = "cluster-262n63e8" @@ -26,7 +28,7 @@ data "tencentcloud_cbs_storages" "example" { The following snippet shows the new supported query params ```hcl -data "tencentcloud_cbs_storages" "whats_new" { +data "tencentcloud_cbs_storages" "example" { charge_type = ["POSTPAID_BY_HOUR", "PREPAID", "CDCPAID", "DEDICATED_CLUSTER_PAID"] storage_state = ["ATTACHED"] instance_ips = ["10.0.0.2"] diff --git a/tencentcloud/services/cbs/data_source_tc_cbs_storages_set.go b/tencentcloud/services/cbs/data_source_tc_cbs_storages_set.go index d3e18b9b5f..39c8d3ef25 100644 --- a/tencentcloud/services/cbs/data_source_tc_cbs_storages_set.go +++ b/tencentcloud/services/cbs/data_source_tc_cbs_storages_set.go @@ -155,6 +155,11 @@ func DataSourceTencentCloudCbsStoragesSet() *schema.Resource { Computed: true, Description: "ID of the CVM instance that be mounted by this CBS.", }, + "kms_key_id": { + Type: schema.TypeString, + Computed: true, + Description: "Kms key ID.", + }, "encrypt": { Type: schema.TypeBool, Computed: true, @@ -286,6 +291,7 @@ func dataSourceTencentCloudCbsStoragesSetRead(d *schema.ResourceData, meta inter "storage_size": storage.DiskSize, "attached": storage.Attached, "instance_id": storage.InstanceId, + "kms_key_id": storage.KmsKeyId, "encrypt": storage.Encrypt, "create_time": storage.CreateTime, "status": storage.DiskState, diff --git a/tencentcloud/services/cbs/resource_tc_cbs_storage_set.go b/tencentcloud/services/cbs/resource_tc_cbs_storage_set.go index cdce25f0d6..7afba572ce 100644 --- a/tencentcloud/services/cbs/resource_tc_cbs_storage_set.go +++ b/tencentcloud/services/cbs/resource_tc_cbs_storage_set.go @@ -80,6 +80,13 @@ func ResourceTencentCloudCbsStorageSet() *schema.Resource { Default: 0, Description: "ID of the project to which the instance belongs.", }, + "kms_key_id": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + Computed: true, + Description: "Optional parameters. When purchasing an encryption disk, customize the key. When this parameter is passed in, the `encrypt` parameter need be set.", + }, "encrypt": { Type: schema.TypeBool, Optional: true, @@ -148,6 +155,10 @@ func resourceTencentCloudCbsStorageSetCreate(d *schema.ResourceData, meta interf request.SnapshotId = helper.String(v.(string)) } + if v, ok := d.GetOk("kms_key_id"); ok { + request.KmsKeyId = helper.String(v.(string)) + } + if _, ok := d.GetOk("encrypt"); ok { request.Encrypt = helper.String("ENCRYPT") } @@ -234,6 +245,10 @@ func resourceTencentCloudCbsStorageSetRead(d *schema.ResourceData, meta interfac _ = d.Set("charge_type", storage.DiskChargeType) _ = d.Set("throughput_performance", storage.ThroughputPerformance) + if storage.KmsKeyId != nil { + _ = d.Set("kms_key_id", storage.KmsKeyId) + } + return nil } diff --git a/tencentcloud/services/cbs/resource_tc_cbs_storage_set.md b/tencentcloud/services/cbs/resource_tc_cbs_storage_set.md index 68bd226c29..a9f7fd8f6e 100644 --- a/tencentcloud/services/cbs/resource_tc_cbs_storage_set.md +++ b/tencentcloud/services/cbs/resource_tc_cbs_storage_set.md @@ -1,5 +1,7 @@ Provides a resource to create CBS set. +-> **NOTE:** When creating encrypted disks, if `kms_key_id` is not entered, the product side will generate a key by default. + Example Usage Create 3 standard CBS storages @@ -16,6 +18,35 @@ resource "tencentcloud_cbs_storage_set" "example" { } ``` +Create 3 standard CBS storages with customize kms_key_id + +```hcl +resource "tencentcloud_cbs_storage_set" "example" { + disk_count = 3 + storage_name = "tf-example" + storage_type = "CLOUD_SSD" + storage_size = 100 + availability_zone = "ap-guangzhou-3" + project_id = 0 + kms_key_id = "b60b328d-7ed5-11ef-8836-5254009ad364" + encrypt = true +} +``` + +Create 3 encrypted CBS storage with default generated kms_key_id + +```hcl +resource "tencentcloud_cbs_storage_set" "example" { + disk_count = 3 + storage_name = "tf-example" + storage_type = "CLOUD_SSD" + storage_size = 100 + availability_zone = "ap-guangzhou-3" + project_id = 0 + encrypt = true +} +``` + Create 3 dedicated cluster CBS storages ```hcl diff --git a/website/docs/d/cbs_storages.html.markdown b/website/docs/d/cbs_storages.html.markdown index 4fe4bddcd5..1056e98ab2 100644 --- a/website/docs/d/cbs_storages.html.markdown +++ b/website/docs/d/cbs_storages.html.markdown @@ -39,7 +39,7 @@ data "tencentcloud_cbs_storages" "example" { ### The following snippet shows the new supported query params ```hcl -data "tencentcloud_cbs_storages" "whats_new" { +data "tencentcloud_cbs_storages" "example" { charge_type = ["POSTPAID_BY_HOUR", "PREPAID", "CDCPAID", "DEDICATED_CLUSTER_PAID"] storage_state = ["ATTACHED"] instance_ips = ["10.0.0.2"] @@ -82,6 +82,7 @@ In addition to all arguments above, the following attributes are exported: * `dedicated_cluster_id` - Exclusive cluster id. * `encrypt` - Indicates whether CBS is encrypted. * `instance_id` - ID of the CVM instance that be mounted by this CBS. + * `kms_key_id` - Kms key ID. * `prepaid_renew_flag` - The way that CBS instance will be renew automatically or not when it reach the end of the prepaid tenancy. * `project_id` - ID of the project. * `status` - Status of CBS. diff --git a/website/docs/d/cbs_storages_set.html.markdown b/website/docs/d/cbs_storages_set.html.markdown index 1d897b23a7..1680da1550 100644 --- a/website/docs/d/cbs_storages_set.html.markdown +++ b/website/docs/d/cbs_storages_set.html.markdown @@ -53,6 +53,7 @@ In addition to all arguments above, the following attributes are exported: * `dedicated_cluster_id` - Exclusive cluster id. * `encrypt` - Indicates whether CBS is encrypted. * `instance_id` - ID of the CVM instance that be mounted by this CBS. + * `kms_key_id` - Kms key ID. * `prepaid_renew_flag` - The way that CBS instance will be renew automatically or not when it reach the end of the prepaid tenancy. * `project_id` - ID of the project. * `status` - Status of CBS. diff --git a/website/docs/r/cbs_storage.html.markdown b/website/docs/r/cbs_storage.html.markdown index 2f860a0205..5060b9017c 100644 --- a/website/docs/r/cbs_storage.html.markdown +++ b/website/docs/r/cbs_storage.html.markdown @@ -11,6 +11,8 @@ description: |- Provides a resource to create a CBS storage. +-> **NOTE:** When creating an encrypted disk, if `kms_key_id` is not entered, the product side will generate a key by default. + ## Example Usage ### Create a standard CBS storage @@ -25,7 +27,42 @@ resource "tencentcloud_cbs_storage" "example" { encrypt = false tags = { - createBy = "terraform" + createBy = "Terraform" + } +} +``` + +### Create an encrypted CBS storage with customize kms_key_id + +```hcl +resource "tencentcloud_cbs_storage" "example" { + storage_name = "tf-example" + storage_type = "CLOUD_SSD" + storage_size = 100 + availability_zone = "ap-guangzhou-3" + project_id = 0 + kms_key_id = "2e860789-7ef0-11ef-8d1c-5254001955d1" + encrypt = true + + tags = { + createBy = "Terraform" + } +} +``` + +### Create an encrypted CBS storage with default generated kms_key_id + +```hcl +resource "tencentcloud_cbs_storage" "example" { + storage_name = "tf-example" + storage_type = "CLOUD_SSD" + storage_size = 100 + availability_zone = "ap-guangzhou-3" + project_id = 0 + encrypt = true + + tags = { + createBy = "Terraform" } } ``` @@ -44,7 +81,7 @@ resource "tencentcloud_cbs_storage" "example" { encrypt = false tags = { - createBy = "terraform" + createBy = "Terraform" } } ``` @@ -60,8 +97,9 @@ The following arguments are supported: * `charge_type` - (Optional, String) The charge type of CBS instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `CDCPAID` and `DEDICATED_CLUSTER_PAID`. The default is `POSTPAID_BY_HOUR`. * `dedicated_cluster_id` - (Optional, String, ForceNew) Exclusive cluster id. * `disk_backup_quota` - (Optional, Int) The quota of backup points of cloud disk. -* `encrypt` - (Optional, Bool, ForceNew) Indicates whether CBS is encrypted. +* `encrypt` - (Optional, Bool, ForceNew) Pass in this parameter to create an encrypted cloud disk. * `force_delete` - (Optional, Bool) Indicate whether to delete CBS instance directly or not. Default is false. If set true, the instance will be deleted instead of staying recycle bin. +* `kms_key_id` - (Optional, String, ForceNew) Optional parameters. When purchasing an encryption disk, customize the key. When this parameter is passed in, the `encrypt` parameter need be set. * `period` - (Optional, Int, **Deprecated**) It has been deprecated from version 1.33.0. Set `prepaid_period` instead. The purchased usage period of CBS. Valid values: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 24, 36]. * `prepaid_period` - (Optional, Int) The tenancy (time unit is month) of the prepaid instance, NOTE: it only works when charge_type is set to `PREPAID`. Valid values are 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 24, 36. * `prepaid_renew_flag` - (Optional, String) Auto Renewal flag. Value range: `NOTIFY_AND_AUTO_RENEW`: Notify expiry and renew automatically, `NOTIFY_AND_MANUAL_RENEW`: Notify expiry but do not renew automatically, `DISABLE_NOTIFY_AND_MANUAL_RENEW`: Neither notify expiry nor renew automatically. Default value range: `NOTIFY_AND_MANUAL_RENEW`: Notify expiry but do not renew automatically. NOTE: it only works when charge_type is set to `PREPAID`. diff --git a/website/docs/r/cbs_storage_set.html.markdown b/website/docs/r/cbs_storage_set.html.markdown index 8cac214c27..6adb0644bd 100644 --- a/website/docs/r/cbs_storage_set.html.markdown +++ b/website/docs/r/cbs_storage_set.html.markdown @@ -11,6 +11,8 @@ description: |- Provides a resource to create CBS set. +-> **NOTE:** When creating encrypted disks, if `kms_key_id` is not entered, the product side will generate a key by default. + ## Example Usage ### Create 3 standard CBS storages @@ -27,6 +29,35 @@ resource "tencentcloud_cbs_storage_set" "example" { } ``` +### Create 3 standard CBS storages with customize kms_key_id + +```hcl +resource "tencentcloud_cbs_storage_set" "example" { + disk_count = 3 + storage_name = "tf-example" + storage_type = "CLOUD_SSD" + storage_size = 100 + availability_zone = "ap-guangzhou-3" + project_id = 0 + kms_key_id = "b60b328d-7ed5-11ef-8836-5254009ad364" + encrypt = true +} +``` + +### Create 3 encrypted CBS storage with default generated kms_key_id + +```hcl +resource "tencentcloud_cbs_storage_set" "example" { + disk_count = 3 + storage_name = "tf-example" + storage_type = "CLOUD_SSD" + storage_size = 100 + availability_zone = "ap-guangzhou-3" + project_id = 0 + encrypt = true +} +``` + ### Create 3 dedicated cluster CBS storages ```hcl @@ -55,6 +86,7 @@ The following arguments are supported: * `dedicated_cluster_id` - (Optional, String, ForceNew) Exclusive cluster id. * `disk_count` - (Optional, Int, ForceNew) The number of disks to be purchased. Default 1. * `encrypt` - (Optional, Bool, ForceNew) Indicates whether CBS is encrypted. +* `kms_key_id` - (Optional, String, ForceNew) Optional parameters. When purchasing an encryption disk, customize the key. When this parameter is passed in, the `encrypt` parameter need be set. * `project_id` - (Optional, Int) ID of the project to which the instance belongs. * `snapshot_id` - (Optional, String) ID of the snapshot. If specified, created the CBS by this snapshot. * `throughput_performance` - (Optional, Int) Add extra performance to the data disk. Only works when disk type is `CLOUD_TSSD` or `CLOUD_HSSD`. From fade20acb7e7b774c7ab97b343dfb8d25a796d96 Mon Sep 17 00:00:00 2001 From: SevenEarth <391613297@qq.com> Date: Mon, 28 Apr 2025 19:54:46 +0800 Subject: [PATCH 4/4] add --- tencentcloud/services/cbs/resource_tc_cbs_storage.md | 2 ++ tencentcloud/services/cbs/resource_tc_cbs_storage_set.md | 2 ++ website/docs/r/cbs_storage.html.markdown | 2 ++ website/docs/r/cbs_storage_set.html.markdown | 2 ++ 4 files changed, 8 insertions(+) diff --git a/tencentcloud/services/cbs/resource_tc_cbs_storage.md b/tencentcloud/services/cbs/resource_tc_cbs_storage.md index fbfbc836ad..386e061275 100644 --- a/tencentcloud/services/cbs/resource_tc_cbs_storage.md +++ b/tencentcloud/services/cbs/resource_tc_cbs_storage.md @@ -2,6 +2,8 @@ Provides a resource to create a CBS storage. -> **NOTE:** When creating an encrypted disk, if `kms_key_id` is not entered, the product side will generate a key by default. +-> **NOTE:** When using CBS encrypted disk, it is necessary to add `CVM_QcsRole` role and `QcloudKMSAccessForCVMRole` strategy to the account. + Example Usage Create a standard CBS storage diff --git a/tencentcloud/services/cbs/resource_tc_cbs_storage_set.md b/tencentcloud/services/cbs/resource_tc_cbs_storage_set.md index a9f7fd8f6e..8a8f9bae52 100644 --- a/tencentcloud/services/cbs/resource_tc_cbs_storage_set.md +++ b/tencentcloud/services/cbs/resource_tc_cbs_storage_set.md @@ -2,6 +2,8 @@ Provides a resource to create CBS set. -> **NOTE:** When creating encrypted disks, if `kms_key_id` is not entered, the product side will generate a key by default. +-> **NOTE:** When using CBS encrypted disk, it is necessary to add `CVM_QcsRole` role and `QcloudKMSAccessForCVMRole` strategy to the account. + Example Usage Create 3 standard CBS storages diff --git a/website/docs/r/cbs_storage.html.markdown b/website/docs/r/cbs_storage.html.markdown index 5060b9017c..d37936bb98 100644 --- a/website/docs/r/cbs_storage.html.markdown +++ b/website/docs/r/cbs_storage.html.markdown @@ -13,6 +13,8 @@ Provides a resource to create a CBS storage. -> **NOTE:** When creating an encrypted disk, if `kms_key_id` is not entered, the product side will generate a key by default. +-> **NOTE:** When using CBS encrypted disk, it is necessary to add `CVM_QcsRole` role and `QcloudKMSAccessForCVMRole` strategy to the account. + ## Example Usage ### Create a standard CBS storage diff --git a/website/docs/r/cbs_storage_set.html.markdown b/website/docs/r/cbs_storage_set.html.markdown index 6adb0644bd..8a7e44e2a9 100644 --- a/website/docs/r/cbs_storage_set.html.markdown +++ b/website/docs/r/cbs_storage_set.html.markdown @@ -13,6 +13,8 @@ Provides a resource to create CBS set. -> **NOTE:** When creating encrypted disks, if `kms_key_id` is not entered, the product side will generate a key by default. +-> **NOTE:** When using CBS encrypted disk, it is necessary to add `CVM_QcsRole` role and `QcloudKMSAccessForCVMRole` strategy to the account. + ## Example Usage ### Create 3 standard CBS storages