diff --git a/.changelog/3315.txt b/.changelog/3315.txt new file mode 100644 index 0000000000..c7cc7fb0d2 --- /dev/null +++ b/.changelog/3315.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +resource/tencentcloud_sqlserver_general_cloud_instance: add multi_zones, multi_nodes, dr_zones, disk_encrypt_flag +``` \ No newline at end of file diff --git a/go.mod b/go.mod index 2cfcfbf35e..e7153f65e5 100644 --- a/go.mod +++ b/go.mod @@ -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.1142 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1145 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 @@ -78,7 +78,7 @@ require ( github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/scf v1.0.1034 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ses v1.0.748 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sms v1.0.486 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver v1.0.1073 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver v1.0.1136 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl v1.0.1015 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssm v1.0.691 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sts v1.0.1142 diff --git a/go.sum b/go.sum index f46fe50778..1df3d020a6 100644 --- a/go.sum +++ b/go.sum @@ -941,8 +941,9 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1130/go.mod github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1133/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1135 h1:NAu4sH5c+kGTZQ0rwhnuYjIXbentw3Np+TbwimH22uc= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1135/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1142 h1:tQRy/XRJOqtl4TKUVONQy8EvYEoU6alMM0sHO5bW5Q8= -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.1136/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/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= @@ -1021,6 +1022,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sms v1.0.486 h1:eHLaL+h github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sms v1.0.486/go.mod h1:MSsho0YlAsoPCOMqdBfwqGd/SMQ0FTGh0a6emBy2X+g= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver v1.0.1073 h1:sjLorWu5GwioPHJSbLPv/prfvvRYlK8FTtwtCHAjKzc= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver v1.0.1073/go.mod h1:ldl6POfJqrGX8zi46gkZfZtloBrqLwlbgXijZFBc5fM= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver v1.0.1136 h1:WbkKZyPVRzr2pPlQKxPwVNCZ3prVWt2nseo1ja7NyEo= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver v1.0.1136/go.mod h1:m7a2VoL3Cf2dECJN3QZPnHwaqJAfG2Vu17sLpnfBqho= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl v1.0.1015 h1:4fTbXtkXwleuDu/xYVELGpkuBLPgW+raED6y7Ni63sA= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl v1.0.1015/go.mod h1:0ZWI4Rd0p6LnXEvEaj/DbUza8B2s74AllJr1WXrsLtY= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssm v1.0.691 h1:UE55TqueOP889MDcJ+cBW+MBjtzvWUw5fuOBWGCBIjs= diff --git a/tencentcloud/services/sqlserver/resource_tc_sqlserver_general_cloud_instance.go b/tencentcloud/services/sqlserver/resource_tc_sqlserver_general_cloud_instance.go index 11f2005604..3fc645016b 100644 --- a/tencentcloud/services/sqlserver/resource_tc_sqlserver_general_cloud_instance.go +++ b/tencentcloud/services/sqlserver/resource_tc_sqlserver_general_cloud_instance.go @@ -160,6 +160,32 @@ func ResourceTencentCloudSqlserverGeneralCloudInstance() *schema.Resource { Computed: true, Description: "External port number.", }, + "multi_zones": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + Description: "Whether to deploy across availability zones, the default value is false.", + }, + "multi_nodes": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + Description: "Whether it is a multi-node architecture instance, the default value is false. When MultiNodes = true, the parameter MultiZones must be true.", + }, + "dr_zones": { + Type: schema.TypeSet, + Optional: true, + Computed: true, + Description: "The standby node availability area is empty by default. When MultiNodes = true, the primary node and standby node availability areas cannot all be the same. The minimum number of standby availability areas set is 2, and the maximum number is no more than 5.", + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "disk_encrypt_flag": { + Type: schema.TypeInt, + Optional: true, + Description: "Disk encryption identification, 0-not encrypted, 1-encrypted.", + }, }, } } @@ -279,6 +305,23 @@ func resourceTencentCloudSqlserverGeneralCloudInstanceCreate(d *schema.ResourceD request.TimeZone = helper.String(v.(string)) } + if v, ok := d.GetOkExists("multi_zones"); ok { + request.MultiZones = helper.Bool(v.(bool)) + } + if v, ok := d.GetOkExists("multi_nodes"); ok { + request.MultiNodes = helper.Bool(v.(bool)) + } + if v, ok := d.GetOk("dr_zones"); ok { + drZones := v.(*schema.Set).List() + for i := range drZones { + drZone := drZones[i].(string) + request.DrZones = append(request.DrZones, &drZone) + } + } + if v, ok := d.GetOkExists("disk_encrypt_flag"); ok { + request.DiskEncryptFlag = helper.IntInt64(v.(int)) + } + err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseSqlserverClient().CreateCloudDBInstances(request) if e != nil { @@ -430,6 +473,44 @@ func resourceTencentCloudSqlserverGeneralCloudInstanceRead(d *schema.ResourceDat _ = d.Set("tgw_wan_vport", generalCloudInstance.TgwWanVPort) } + if generalCloudInstance.IsDrZone != nil { + _ = d.Set("multi_zones", generalCloudInstance.IsDrZone) + } + + if len(generalCloudInstance.MultiSlaveZones) > 0 { + _ = d.Set("multi_nodes", true) + drZones := make([]string, 0) + for _, multiSlaveZone := range generalCloudInstance.MultiSlaveZones { + drZones = append(drZones, *multiSlaveZone.SlaveZone) + } + if len(drZones) > 0 { + _ = d.Set("dr_zones", drZones) + } + } else { + _ = d.Set("multi_nodes", false) + } + + var insAttribute *sqlserver.DescribeDBInstancesAttributeResponseParams + paramMap := map[string]interface{}{ + "InstanceId": helper.String(instanceId), + } + err = resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError { + result, e := service.DescribeSqlserverInsAttributeByFilter(ctx, paramMap) + if e != nil { + return tccommon.RetryError(e) + } + + insAttribute = result + return nil + }) + + if err != nil { + return err + } + + if insAttribute.IsDiskEncryptFlag != nil { + _ = d.Set("disk_encrypt_flag", insAttribute.IsDiskEncryptFlag) + } maintenanceSpan, err := service.DescribeMaintenanceSpanById(ctx, instanceId) if err != nil { return err @@ -488,7 +569,7 @@ func resourceTencentCloudSqlserverGeneralCloudInstanceUpdate(d *schema.ResourceD ) request.InstanceId = &instanceId - immutableArgs := []string{"zone", "machine_type", "instance_charge_type", "project_id", "subnet_id", "vpc_id", "period", "security_group_list", "weekly", "start_time", "span", "resource_tags", "collation", "time_zone"} + immutableArgs := []string{"zone", "machine_type", "instance_charge_type", "project_id", "subnet_id", "vpc_id", "period", "security_group_list", "weekly", "start_time", "span", "resource_tags", "collation", "time_zone", "multi_zones", "multi_nodes", "dr_zones", "disk_encrypt_flag"} for _, v := range immutableArgs { if d.HasChange(v) { diff --git a/tencentcloud/services/sqlserver/resource_tc_sqlserver_general_cloud_instance_test.go b/tencentcloud/services/sqlserver/resource_tc_sqlserver_general_cloud_instance_test.go index af08eec3b3..e083d44323 100644 --- a/tencentcloud/services/sqlserver/resource_tc_sqlserver_general_cloud_instance_test.go +++ b/tencentcloud/services/sqlserver/resource_tc_sqlserver_general_cloud_instance_test.go @@ -101,3 +101,109 @@ resource "tencentcloud_sqlserver_general_cloud_instance" "example" { time_zone = "China Standard Time" } ` + +func TestAccTencentCloudSqlserverGeneralCloudInstanceResource_multiZonesAndMultiNodes(t *testing.T) { + t.Parallel() + resource.Test(t, resource.TestCase{ + PreCheck: func() { + tcacctest.AccPreCheck(t) + }, + CheckDestroy: testAccCheckSqlserverInstanceDestroy, + Providers: tcacctest.AccProviders, + Steps: []resource.TestStep{ + { + Config: testAccSqlserverGeneralCloudInstance_multiZonesAndMultiNodes, + Check: resource.ComposeTestCheckFunc( + testAccCheckSqlserverInstanceExists("tencentcloud_sqlserver_general_cloud_instance.multi_zones_multi_nodes"), + resource.TestCheckResourceAttrSet("tencentcloud_sqlserver_general_cloud_instance.multi_zones_multi_nodes", "id"), + resource.TestCheckResourceAttr("tencentcloud_sqlserver_general_cloud_instance.multi_zones_multi_nodes", "multi_zones", "true"), + resource.TestCheckResourceAttr("tencentcloud_sqlserver_general_cloud_instance.multi_zones_multi_nodes", "multi_nodes", "true"), + resource.TestCheckResourceAttr("tencentcloud_sqlserver_general_cloud_instance.multi_zones_multi_nodes", "dr_zones.#", "2"), + ), + }, + { + ResourceName: "tencentcloud_sqlserver_general_cloud_instance.multi_zones_multi_nodes", + ImportState: true, + ImportStateVerify: true, + ImportStateVerifyIgnore: []string{"period"}, + }, + }, + }) +} + +const testAccSqlserverGeneralCloudInstance_multiZonesAndMultiNodes = tcacctest.DefaultVpcSubnets + ` +resource "tencentcloud_sqlserver_general_cloud_instance" "multi_zones_multi_nodes" { + name = "multi_zones_multi_nodes" + zone = "ap-guangzhou-3" + memory = 4 + storage = 20 + cpu = 2 + machine_type = "CLOUD_BSSD" + instance_charge_type = "POSTPAID" + project_id = 0 + subnet_id = local.subnet_id + vpc_id = local.vpc_id + db_version = "2017" + security_group_list = ["sg-kensue7b"] + weekly = [1, 2, 3, 5, 6, 7] + start_time = "00:00" + span = 6 + resource_tags { + tag_key = "test" + tag_value = "test" + } + collation = "Chinese_PRC_CI_AS" + time_zone = "China Standard Time" + multi_zones = true + multi_nodes = true + dr_zones = ["ap-guangzhou-6", "ap-guangzhou-7"] +} +` + +func TestAccTencentCloudSqlserverGeneralCloudInstanceResource_encrypt(t *testing.T) { + t.Parallel() + resource.Test(t, resource.TestCase{ + PreCheck: func() { + tcacctest.AccPreCheck(t) + }, + CheckDestroy: testAccCheckSqlserverInstanceDestroy, + Providers: tcacctest.AccProviders, + Steps: []resource.TestStep{ + { + Config: testAccSqlserverGeneralCloudInstance_encrypt, + Check: resource.ComposeTestCheckFunc( + testAccCheckSqlserverInstanceExists("tencentcloud_sqlserver_general_cloud_instance.encrypt"), + resource.TestCheckResourceAttrSet("tencentcloud_sqlserver_general_cloud_instance.encrypt", "id"), + resource.TestCheckResourceAttr("tencentcloud_sqlserver_general_cloud_instance.encrypt", "disk_encrypt_flag", "1"), + ), + }, + }, + }) +} + +const testAccSqlserverGeneralCloudInstance_encrypt = ` +resource "tencentcloud_sqlserver_general_cloud_instance" "encrypt" { + name = "encrypt" + zone = "ap-shanghai-5" + memory = 4 + storage = 100 + cpu = 2 + machine_type = "CLOUD_BSSD" + instance_charge_type = "POSTPAID" + project_id = 0 + subnet_id = "subnet-oea7530b" + vpc_id = "vpc-8av1vyby" + db_version = "2019" + security_group_list = ["sg-q4d821qk"] + weekly = [1, 2, 3, 5, 6, 7] + start_time = "00:00" + span = 6 + resource_tags { + tag_key = "test" + tag_value = "test" + } + collation = "Chinese_PRC_CI_AS" + time_zone = "China Standard Time" + disk_encrypt_flag = 1 +} +` 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 355cd67a2d..730a6c62a6 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.1142" + params["RequestClient"] = "SDK_GO_1.0.1145" if requestClient != "" { params["RequestClient"] += ": " + requestClient } diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver/v20180328/models.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver/v20180328/models.go index cb4c7704f8..912f8c3592 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver/v20180328/models.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver/v20180328/models.go @@ -947,6 +947,9 @@ type CreateBasicDBInstancesRequestParams struct { // 系统时区,默认:China Standard Time TimeZone *string `json:"TimeZone,omitnil,omitempty" name:"TimeZone"` + + // 磁盘加密标识,0-不加密,1-加密 + DiskEncryptFlag *int64 `json:"DiskEncryptFlag,omitnil,omitempty" name:"DiskEncryptFlag"` } type CreateBasicDBInstancesRequest struct { @@ -1017,6 +1020,9 @@ type CreateBasicDBInstancesRequest struct { // 系统时区,默认:China Standard Time TimeZone *string `json:"TimeZone,omitnil,omitempty" name:"TimeZone"` + + // 磁盘加密标识,0-不加密,1-加密 + DiskEncryptFlag *int64 `json:"DiskEncryptFlag,omitnil,omitempty" name:"DiskEncryptFlag"` } func (r *CreateBasicDBInstancesRequest) ToJsonString() string { @@ -1053,6 +1059,7 @@ func (r *CreateBasicDBInstancesRequest) FromJsonString(s string) error { delete(f, "ResourceTags") delete(f, "Collation") delete(f, "TimeZone") + delete(f, "DiskEncryptFlag") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateBasicDBInstancesRequest has unknown keys!", "") } @@ -1399,6 +1406,9 @@ type CreateCloudDBInstancesRequestParams struct { // 备节点可用区,默认为空。当MultiNodes = true时,主节点和备节点可用区不能全部相同。备机可用区集合最小为2个,最大不超过5个。 DrZones []*string `json:"DrZones,omitnil,omitempty" name:"DrZones"` + + // 磁盘加密标识,0-不加密,1-加密 + DiskEncryptFlag *int64 `json:"DiskEncryptFlag,omitnil,omitempty" name:"DiskEncryptFlag"` } type CreateCloudDBInstancesRequest struct { @@ -1478,6 +1488,9 @@ type CreateCloudDBInstancesRequest struct { // 备节点可用区,默认为空。当MultiNodes = true时,主节点和备节点可用区不能全部相同。备机可用区集合最小为2个,最大不超过5个。 DrZones []*string `json:"DrZones,omitnil,omitempty" name:"DrZones"` + + // 磁盘加密标识,0-不加密,1-加密 + DiskEncryptFlag *int64 `json:"DiskEncryptFlag,omitnil,omitempty" name:"DiskEncryptFlag"` } func (r *CreateCloudDBInstancesRequest) ToJsonString() string { @@ -1517,6 +1530,7 @@ func (r *CreateCloudDBInstancesRequest) FromJsonString(s string) error { delete(f, "TimeZone") delete(f, "MultiNodes") delete(f, "DrZones") + delete(f, "DiskEncryptFlag") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateCloudDBInstancesRequest has unknown keys!", "") } @@ -1621,6 +1635,9 @@ type CreateCloudReadOnlyDBInstancesRequestParams struct { // 系统时区,默认:China Standard Time TimeZone *string `json:"TimeZone,omitnil,omitempty" name:"TimeZone"` + + // 磁盘加密标识,0-不加密,1-加密 + DiskEncryptFlag *int64 `json:"DiskEncryptFlag,omitnil,omitempty" name:"DiskEncryptFlag"` } type CreateCloudReadOnlyDBInstancesRequest struct { @@ -1697,6 +1714,9 @@ type CreateCloudReadOnlyDBInstancesRequest struct { // 系统时区,默认:China Standard Time TimeZone *string `json:"TimeZone,omitnil,omitempty" name:"TimeZone"` + + // 磁盘加密标识,0-不加密,1-加密 + DiskEncryptFlag *int64 `json:"DiskEncryptFlag,omitnil,omitempty" name:"DiskEncryptFlag"` } func (r *CreateCloudReadOnlyDBInstancesRequest) ToJsonString() string { @@ -1735,6 +1755,7 @@ func (r *CreateCloudReadOnlyDBInstancesRequest) FromJsonString(s string) error { delete(f, "ResourceTags") delete(f, "Collation") delete(f, "TimeZone") + delete(f, "DiskEncryptFlag") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateCloudReadOnlyDBInstancesRequest has unknown keys!", "") } @@ -5292,12 +5313,21 @@ type DescribeDBInstancesAttributeResponseParams struct { // SSL加密 SSLConfig *SSLConfig `json:"SSLConfig,omitnil,omitempty" name:"SSLConfig"` - // 备机只读信息 + // 双节点备机只读信息 DrReadableInfo *DrReadableInfo `json:"DrReadableInfo,omitnil,omitempty" name:"DrReadableInfo"` // 等待回收的IP列表 OldVipList []*OldVip `json:"OldVipList,omitnil,omitempty" name:"OldVipList"` + // 操作日志采集状态,enable-采集中,disable-不可用,renew_doing-配置开启或关闭中 + XEventStatus *string `json:"XEventStatus,omitnil,omitempty" name:"XEventStatus"` + + // 多节点备机只读信息 + MultiDrReadableInfo []*DrReadableInfo `json:"MultiDrReadableInfo,omitnil,omitempty" name:"MultiDrReadableInfo"` + + // 是否开启磁盘加密,1-开启,0-未开启 + IsDiskEncryptFlag *int64 `json:"IsDiskEncryptFlag,omitnil,omitempty" name:"IsDiskEncryptFlag"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } @@ -5377,7 +5407,7 @@ type DescribeDBInstancesRequestParams struct { // 实例唯一Uid列表 UidSet []*string `json:"UidSet,omitnil,omitempty" name:"UidSet"` - // 实例类型 HA-高可用 RO-只读实例 SI-基础版 BI-商业智能服务 + // 实例类型 HA-高可用 RO-只读实例 SI-基础版 BI-商业智能服务,cvmHA-云盘双机高可用,cvmRO-云盘只读副本,MultiHA-多节点,cvmMultiHA-云盘多节点 InstanceType *string `json:"InstanceType,omitnil,omitempty" name:"InstanceType"` // 分页查询方式 offset-按照偏移量分页查询,pageNumber-按照页数分页查询,默认取值pageNumber @@ -5444,7 +5474,7 @@ type DescribeDBInstancesRequest struct { // 实例唯一Uid列表 UidSet []*string `json:"UidSet,omitnil,omitempty" name:"UidSet"` - // 实例类型 HA-高可用 RO-只读实例 SI-基础版 BI-商业智能服务 + // 实例类型 HA-高可用 RO-只读实例 SI-基础版 BI-商业智能服务,cvmHA-云盘双机高可用,cvmRO-云盘只读副本,MultiHA-多节点,cvmMultiHA-云盘多节点 InstanceType *string `json:"InstanceType,omitnil,omitempty" name:"InstanceType"` // 分页查询方式 offset-按照偏移量分页查询,pageNumber-按照页数分页查询,默认取值pageNumber @@ -10572,6 +10602,9 @@ type ModifyDBInstanceNetworkRequestParams struct { // 目标节点,0-修改主节点网络,1-修改备节点网络,默认取值0 DRNetwork *uint64 `json:"DRNetwork,omitnil,omitempty" name:"DRNetwork"` + + // 备机资源ID。当DRNetwork = 1时必填 + DrInstanceId *string `json:"DrInstanceId,omitnil,omitempty" name:"DrInstanceId"` } type ModifyDBInstanceNetworkRequest struct { @@ -10594,6 +10627,9 @@ type ModifyDBInstanceNetworkRequest struct { // 目标节点,0-修改主节点网络,1-修改备节点网络,默认取值0 DRNetwork *uint64 `json:"DRNetwork,omitnil,omitempty" name:"DRNetwork"` + + // 备机资源ID。当DRNetwork = 1时必填 + DrInstanceId *string `json:"DrInstanceId,omitnil,omitempty" name:"DrInstanceId"` } func (r *ModifyDBInstanceNetworkRequest) ToJsonString() string { @@ -10614,6 +10650,7 @@ func (r *ModifyDBInstanceNetworkRequest) FromJsonString(s string) error { delete(f, "OldIpRetainTime") delete(f, "Vip") delete(f, "DRNetwork") + delete(f, "DrInstanceId") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyDBInstanceNetworkRequest has unknown keys!", "") } @@ -13105,6 +13142,9 @@ type ResourceTag struct { type RestartDBInstanceRequestParams struct { // 数据库实例ID,形如mssql-njj2mtpl InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 重启设置,0-立刻重启,1-维护时间窗口内重启,默认0 + WaitSwitch *uint64 `json:"WaitSwitch,omitnil,omitempty" name:"WaitSwitch"` } type RestartDBInstanceRequest struct { @@ -13112,6 +13152,9 @@ type RestartDBInstanceRequest struct { // 数据库实例ID,形如mssql-njj2mtpl InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 重启设置,0-立刻重启,1-维护时间窗口内重启,默认0 + WaitSwitch *uint64 `json:"WaitSwitch,omitnil,omitempty" name:"WaitSwitch"` } func (r *RestartDBInstanceRequest) ToJsonString() string { @@ -13127,6 +13170,7 @@ func (r *RestartDBInstanceRequest) FromJsonString(s string) error { return err } delete(f, "InstanceId") + delete(f, "WaitSwitch") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "RestartDBInstanceRequest has unknown keys!", "") } @@ -14226,6 +14270,9 @@ type UpgradeDBInstanceRequestParams struct { // 执行变配的方式,默认为 1。支持值包括:0 - 立刻执行,1 - 维护时间窗执行 WaitSwitch *int64 `json:"WaitSwitch,omitnil,omitempty" name:"WaitSwitch"` + + // 多节点架构实例的备节点可用区,默认为空。如果需要在变配的同时修改指定备节点的可用区时必传,当MultiZones = MultiZones时主节点和备节点可用区不能全部相同。备机可用区集合最小为2个,最大不超过5个。 + DrZones []*DrZoneInfo `json:"DrZones,omitnil,omitempty" name:"DrZones"` } type UpgradeDBInstanceRequest struct { @@ -14260,6 +14307,9 @@ type UpgradeDBInstanceRequest struct { // 执行变配的方式,默认为 1。支持值包括:0 - 立刻执行,1 - 维护时间窗执行 WaitSwitch *int64 `json:"WaitSwitch,omitnil,omitempty" name:"WaitSwitch"` + + // 多节点架构实例的备节点可用区,默认为空。如果需要在变配的同时修改指定备节点的可用区时必传,当MultiZones = MultiZones时主节点和备节点可用区不能全部相同。备机可用区集合最小为2个,最大不超过5个。 + DrZones []*DrZoneInfo `json:"DrZones,omitnil,omitempty" name:"DrZones"` } func (r *UpgradeDBInstanceRequest) ToJsonString() string { @@ -14284,6 +14334,7 @@ func (r *UpgradeDBInstanceRequest) FromJsonString(s string) error { delete(f, "HAType") delete(f, "MultiZones") delete(f, "WaitSwitch") + delete(f, "DrZones") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "UpgradeDBInstanceRequest has unknown keys!", "") } diff --git a/vendor/modules.txt b/vendor/modules.txt index 5816dda992..d58a928ea6 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -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.1142 +# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1145 ## explicit; go 1.11 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors @@ -1288,7 +1288,7 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ses/v20201002 # github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sms v1.0.486 ## explicit; go 1.14 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sms/v20210111 -# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver v1.0.1073 +# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver v1.0.1136 ## explicit; go 1.14 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver/v20180328 # github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl v1.0.1015 diff --git a/website/docs/r/sqlserver_general_cloud_instance.html.markdown b/website/docs/r/sqlserver_general_cloud_instance.html.markdown index 225140f9d8..0e56b8f176 100644 --- a/website/docs/r/sqlserver_general_cloud_instance.html.markdown +++ b/website/docs/r/sqlserver_general_cloud_instance.html.markdown @@ -74,8 +74,12 @@ The following arguments are supported: * `auto_renew_flag` - (Optional, Int) Automatic renewal flag: 0-normal renewal 1-automatic renewal, the default is 1 automatic renewal. Valid only when purchasing a prepaid instance. Valid only when the 'instance_charge_type' parameter value is 'PREPAID'. * `collation` - (Optional, String) System character set collation, default: Chinese_PRC_CI_AS. * `db_version` - (Optional, String) sqlserver version, currently all supported versions are: 2008R2 (SQL Server 2008 R2 Enterprise), 2012SP3 (SQL Server 2012 Enterprise), 201202 (SQL Server 2012 Standard), 2014SP2 (SQL Server 2014 Enterprise), 201402 (SQL Server 2014 Standard), 2016SP1 (SQL Server 2016 Enterprise), 201602 (SQL Server 2016 Standard), 2017 (SQL Server 2017 Enterprise), 201702 (SQL Server 2017 Standard), 2019 (SQL Server 2019 Enterprise), 201902 (SQL Server 2019 Standard). Each region supports different versions for sale, and the version information that can be sold in each region can be pulled through the DescribeProductConfig interface. If left blank, the default version is 2008R2. +* `disk_encrypt_flag` - (Optional, Int) Disk encryption identification, 0-not encrypted, 1-encrypted. +* `dr_zones` - (Optional, Set: [`String`]) The standby node availability area is empty by default. When MultiNodes = true, the primary node and standby node availability areas cannot all be the same. The minimum number of standby availability areas set is 2, and the maximum number is no more than 5. * `ha_type` - (Optional, String, **Deprecated**) It has been deprecated from version 1.81.2. Upgrade the high-availability architecture of sqlserver, upgrade from mirror disaster recovery to always on cluster disaster recovery, only support 2017 and above and support always on high-availability instances, do not support downgrading to mirror disaster recovery, CLUSTER-upgrade to always on capacity Disaster, if not filled, the high-availability architecture will not be modified. * `instance_charge_type` - (Optional, String) Payment mode, the value supports PREPAID (prepaid), POSTPAID (postpaid). +* `multi_nodes` - (Optional, Bool) Whether it is a multi-node architecture instance, the default value is false. When MultiNodes = true, the parameter MultiZones must be true. +* `multi_zones` - (Optional, Bool) Whether to deploy across availability zones, the default value is false. * `period` - (Optional, Int) Purchase instance period, the default value is 1, which means one month. The value cannot exceed 48. Valid only when the 'instance_charge_type' parameter value is 'PREPAID'. * `project_id` - (Optional, Int) project ID. * `resource_tags` - (Optional, List) A collection of tags bound to the new instance.