Skip to content

Commit d050bb8

Browse files
committed
add
1 parent cfd1e0b commit d050bb8

File tree

15 files changed

+1996
-1079
lines changed

15 files changed

+1996
-1079
lines changed

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ require (
3434
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/bi v1.0.824
3535
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cam v1.0.1071
3636
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cat v1.0.825
37-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.591
37+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.1153
3838
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.944
3939
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.1010
4040
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdwch v1.0.1129
@@ -46,7 +46,7 @@ require (
4646
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1107
4747
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.1033
4848
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1135
49-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1149
49+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1153
5050
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.1128
5151
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762
5252
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.1111

go.sum

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -837,6 +837,10 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cat v1.0.825 h1:TgO9L1y
837837
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cat v1.0.825/go.mod h1:1yCKeIioX4D0bcIDHs3JCS5lbyzndXh1E8wHyHaCjxY=
838838
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.591 h1:TPGLjH6wqkA5Iirl6xCxFkWwrtCZ8ZmeF7ASzqUbsZA=
839839
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.591/go.mod h1:nCAGfVTXZkVnurkbjF3b0FM6RwGztE9t8D9Ms1unaKo=
840+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.1148 h1:AUppERhfYCUu5ZAN8gbGYfHwPy1uaT7nPmhYGY5JvSY=
841+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.1148/go.mod h1:cfP+nV0uB7FF86XyKF31edBoSJO36WFUsTc0KC80B4I=
842+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.1153 h1:jRsdk2F5QZusPAV5+C/cwmgXoxxomOXH3o9ofeb4dFo=
843+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.1153/go.mod h1:M83IuCDKXMqmpeOMkVtu9cloiJZsylESDjCvF0hzWQg=
840844
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.944 h1:+PGoNHlZE/WY6KWWNOByL0sYVv1ZJtSx7yXMUJNYV1Y=
841845
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.944/go.mod h1:+VHcZ4Cnzpt6vtCvNROz8xWfNWUkoAZ9UPSonbA3NWM=
842846
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
945949
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1142/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
946950
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1145 h1:DETyir/MtG+GLOD0OatzjrQTTXRguFSJo1ZtPXtbIQw=
947951
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1145/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
948-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1148 h1:+2jHvXzO0ljzTtqdnZ6ug0wMLYSaMwyr1zJa0z/DqyE=
949-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1148/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
950952
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1147 h1:6v559jM1v6A4KJinNZ28RqVZs+ipKMzCWtYWcWy+zZ4=
951953
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1147/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
952954
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1148 h1:+2jHvXzO0ljzTtqdnZ6ug0wMLYSaMwyr1zJa0z/DqyE=
953955
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1148/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
954956
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1149 h1:a2N8e9YHftVvJmI6PIVJBLfPuy2dn+jZ92atTsmtJuc=
955957
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1149/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
958+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1153 h1:g/aw2nrrMfO/+sdBPCFsiq+sgSFNiUK/sAci6PT4O4E=
959+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1153/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
956960
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993 h1:WlPgXldQCxt7qi5Xrc6j6zTrsXWzN5BcOGs7Irq7fwQ=
957961
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993/go.mod h1:Z9U8zNtyuyKhjS0698wqsrG/kLx1TQ5CEixXBwVe7xY=
958962
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860 h1:F3esKBIT3HW9+7Gt8cVgf8X06VdGIczpgLBUECzSEzU=

tencentcloud/services/cbs/resource_tc_cbs_storage.go

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,11 +95,18 @@ func ResourceTencentCloudCbsStorage() *schema.Resource {
9595
Default: 0,
9696
Description: "ID of the project to which the instance belongs.",
9797
},
98+
"kms_key_id": {
99+
Type: schema.TypeString,
100+
Optional: true,
101+
ForceNew: true,
102+
Computed: true,
103+
Description: "Optional parameters. When purchasing an encryption disk, customize the key. When this parameter is passed in, the `encrypt` parameter need be set.",
104+
},
98105
"encrypt": {
99106
Type: schema.TypeBool,
100107
Optional: true,
101108
ForceNew: true,
102-
Description: "Indicates whether CBS is encrypted.",
109+
Description: "Pass in this parameter to create an encrypted cloud disk.",
103110
},
104111
"tags": {
105112
Type: schema.TypeMap,
@@ -156,7 +163,7 @@ func resourceTencentCloudCbsStorageCreate(d *schema.ResourceData, meta interface
156163
Zone: helper.String(d.Get("availability_zone").(string)),
157164
}
158165

159-
if v, ok := d.GetOk("project_id"); ok {
166+
if v, ok := d.GetOkExists("project_id"); ok {
160167
request.Placement.ProjectId = helper.IntUint64(v.(int))
161168
}
162169

@@ -168,11 +175,15 @@ func resourceTencentCloudCbsStorageCreate(d *schema.ResourceData, meta interface
168175
request.SnapshotId = helper.String(v.(string))
169176
}
170177

178+
if v, ok := d.GetOk("kms_key_id"); ok {
179+
request.KmsKeyId = helper.String(v.(string))
180+
}
181+
171182
if _, ok := d.GetOk("encrypt"); ok {
172183
request.Encrypt = helper.String("ENCRYPT")
173184
}
174185

175-
if v, ok := d.GetOk("throughput_performance"); ok {
186+
if v, ok := d.GetOkExists("throughput_performance"); ok {
176187
request.ThroughputPerformance = helper.IntUint64(v.(int))
177188
}
178189

@@ -182,7 +193,7 @@ func resourceTencentCloudCbsStorageCreate(d *schema.ResourceData, meta interface
182193

183194
if chargeType == CBS_CHARGE_TYPE_PREPAID {
184195
request.DiskChargePrepaid = &cbs.DiskChargePrepaid{}
185-
if period, ok := d.GetOk("prepaid_period"); ok {
196+
if period, ok := d.GetOkExists("prepaid_period"); ok {
186197
periodInt64 := uint64(period.(int))
187198
request.DiskChargePrepaid.Period = &periodInt64
188199
} else {
@@ -215,6 +226,10 @@ func resourceTencentCloudCbsStorageCreate(d *schema.ResourceData, meta interface
215226
return tccommon.RetryError(e, tccommon.InternalError)
216227
}
217228

229+
if response == nil || response.Response == nil {
230+
return resource.NonRetryableError(fmt.Errorf("Create cbs failed, Response is nil."))
231+
}
232+
218233
if len(response.Response.DiskIdSet) < 1 {
219234
return resource.NonRetryableError(fmt.Errorf("storage id is nil"))
220235
}
@@ -310,6 +325,10 @@ func resourceTencentCloudCbsStorageRead(d *schema.ResourceData, meta interface{}
310325
_ = d.Set("prepaid_renew_flag", storage.RenewFlag)
311326
_ = d.Set("throughput_performance", storage.ThroughputPerformance)
312327

328+
if storage.KmsKeyId != nil {
329+
_ = d.Set("kms_key_id", storage.KmsKeyId)
330+
}
331+
313332
if *storage.DiskChargeType == CBS_CHARGE_TYPE_PREPAID {
314333
_ = d.Set("prepaid_renew_flag", storage.RenewFlag)
315334
}

tencentcloud/services/cbs/resource_tc_cbs_storage.md

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
Provides a resource to create a CBS storage.
22

3+
-> **NOTE:** When creating an encrypted disk, if `kms_key_id` is not entered, the product side will generate a key by default.
4+
35
Example Usage
46

57
Create a standard CBS storage
@@ -14,7 +16,42 @@ resource "tencentcloud_cbs_storage" "example" {
1416
encrypt = false
1517
1618
tags = {
17-
createBy = "terraform"
19+
createBy = "Terraform"
20+
}
21+
}
22+
```
23+
24+
Create an encrypted CBS storage with customize kms_key_id
25+
26+
```hcl
27+
resource "tencentcloud_cbs_storage" "example" {
28+
storage_name = "tf-example"
29+
storage_type = "CLOUD_SSD"
30+
storage_size = 100
31+
availability_zone = "ap-guangzhou-3"
32+
project_id = 0
33+
kms_key_id = "2e860789-7ef0-11ef-8d1c-5254001955d1"
34+
encrypt = true
35+
36+
tags = {
37+
createBy = "Terraform"
38+
}
39+
}
40+
```
41+
42+
Create an encrypted CBS storage with default generated kms_key_id
43+
44+
```hcl
45+
resource "tencentcloud_cbs_storage" "example" {
46+
storage_name = "tf-example"
47+
storage_type = "CLOUD_SSD"
48+
storage_size = 100
49+
availability_zone = "ap-guangzhou-3"
50+
project_id = 0
51+
encrypt = true
52+
53+
tags = {
54+
createBy = "Terraform"
1855
}
1956
}
2057
```
@@ -33,7 +70,7 @@ resource "tencentcloud_cbs_storage" "example" {
3370
encrypt = false
3471
3572
tags = {
36-
createBy = "terraform"
73+
createBy = "Terraform"
3774
}
3875
}
3976
```

0 commit comments

Comments
 (0)