Skip to content

Commit 2ba10da

Browse files
committed
add
1 parent 217e3ee commit 2ba10da

File tree

10 files changed

+205
-45
lines changed

10 files changed

+205
-45
lines changed

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ require (
3232
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm v1.0.825
3333
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.0.1052
3434
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/bi v1.0.824
35-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cam v1.0.1051
35+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cam v1.0.1071
3636
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cat v1.0.825
3737
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.591
3838
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.944
@@ -46,7 +46,7 @@ require (
4646
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1034
4747
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.1033
4848
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1046
49-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1068
49+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1071
5050
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.1053
5151
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762
5252
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.1058

go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -832,6 +832,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/bi v1.0.824 h1:DVKvZ6h+
832832
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/bi v1.0.824/go.mod h1:DvBpDX/qdJG4KKLeULmRvhAjPYiw8za0HeTSu2y/lFw=
833833
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cam v1.0.1051 h1:ZwWmhAxXd88JDPs/8s2qW9SJblXNhIXWKWfeW7jtjlc=
834834
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cam v1.0.1051/go.mod h1:VdaN1kukiMXu0xgDoapeNXs1Vy6VPchTdSzOtg1ySqY=
835+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cam v1.0.1071 h1:2CeivXYc7PtD2kgZEJXk9/SDQA9dzLejH5FmNzAW3QU=
836+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cam v1.0.1071/go.mod h1:UAjX3Vq52SQLKTe6o2HyGA/841Rnc+f4ZRATEsFHJDM=
835837
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cat v1.0.825 h1:TgO9L1yNPkWeXqrvys/9RL3u958xx9dcTAy4WmaxBnE=
836838
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cat v1.0.825/go.mod h1:1yCKeIioX4D0bcIDHs3JCS5lbyzndXh1E8wHyHaCjxY=
837839
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.591 h1:TPGLjH6wqkA5Iirl6xCxFkWwrtCZ8ZmeF7ASzqUbsZA=
@@ -943,6 +945,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1066 h1:D55
943945
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1066/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
944946
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1068 h1:mI0xoreGp9GkDJWkdzqgZcPsfoWXciahPAvEcaGSA6g=
945947
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1068/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
948+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1071 h1:Q/Ue/yRv4HSpaiFAnXIshoDjxzwyhwezEidXU49Boa4=
949+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1071/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
946950
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993 h1:WlPgXldQCxt7qi5Xrc6j6zTrsXWzN5BcOGs7Irq7fwQ=
947951
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993/go.mod h1:Z9U8zNtyuyKhjS0698wqsrG/kLx1TQ5CEixXBwVe7xY=
948952
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860 h1:F3esKBIT3HW9+7Gt8cVgf8X06VdGIczpgLBUECzSEzU=

tencentcloud/services/cam/resource_tc_cam_role.go

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -145,16 +145,19 @@ func resourceTencentCloudCamRoleCreate(d *schema.ResourceData, meta interface{})
145145
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n",
146146
logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
147147
}
148+
149+
if result == nil || result.Response == nil || result.Response.RoleId == nil {
150+
return resource.NonRetryableError(fmt.Errorf("Create CAM role failed, Response is nil."))
151+
}
152+
148153
response = result
149154
return nil
150155
})
151156
if err != nil {
152157
log.Printf("[CRITAL]%s create CAM role failed, reason:%s\n", logId, err.Error())
153158
return err
154159
}
155-
if response.Response.RoleId == nil {
156-
return fmt.Errorf("CAM role id is nil")
157-
}
160+
158161
d.SetId(*response.Response.RoleId)
159162

160163
//get really instance then read
@@ -373,7 +376,30 @@ func resourceTencentCloudCamRoleUpdate(d *schema.ResourceData, meta interface{})
373376
}
374377

375378
if d.HasChange("session_duration") {
376-
return fmt.Errorf("`session_duration` do not support change now.")
379+
request := cam.NewUpdateRoleSessionDurationRequest()
380+
request.RoleId = helper.StrToUint64Point(roleId)
381+
if v, ok := d.GetOkExists("session_duration"); ok {
382+
request.SessionDuration = helper.IntUint64(v.(int))
383+
}
384+
385+
err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
386+
response, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseCamClient().UpdateRoleSessionDuration(request)
387+
if e != nil {
388+
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n",
389+
logId, request.GetAction(), request.ToJsonString(), e.Error())
390+
return tccommon.RetryError(e)
391+
} else {
392+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n",
393+
logId, request.GetAction(), request.ToJsonString(), response.ToJsonString())
394+
}
395+
396+
return nil
397+
})
398+
399+
if err != nil {
400+
log.Printf("[CRITAL]%s update CAM role session duration failed, reason:%s\n", logId, err.Error())
401+
return err
402+
}
377403
}
378404
return resourceTencentCloudCamRoleRead(d, meta)
379405
}

tencentcloud/services/cam/resource_tc_cam_role.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,14 @@ locals {
1111
uin = data.tencentcloud_user_info.info.owner_uin
1212
}
1313
14-
output "uin" {
15-
value = local.uin
16-
}
17-
18-
resource "tencentcloud_cam_role" "foo" {
19-
name = "cam-role-test"
14+
resource "tencentcloud_cam_role" "example" {
15+
name = "tf-example"
2016
document = jsonencode(
2117
{
2218
statement = [
2319
{
24-
action = "name/sts:AssumeRole"
25-
effect = "allow"
20+
action = "name/sts:AssumeRole"
21+
effect = "allow"
2622
principal = {
2723
qcs = [
2824
"qcs::cam::uin/${local.uin}:root",
@@ -36,13 +32,17 @@ resource "tencentcloud_cam_role" "foo" {
3632
console_login = true
3733
description = "test"
3834
session_duration = 7200
39-
tags = {
40-
test = "tf-cam-role"
35+
tags = {
36+
createBy = "Terraform"
4137
}
4238
}
4339
40+
output "uin" {
41+
value = local.uin
42+
}
43+
4444
output "arn" {
45-
value = tencentcloud_cam_role.foo.role_arn
45+
value = tencentcloud_cam_role.example.role_arn
4646
}
4747
```
4848

@@ -53,15 +53,15 @@ variable "saml-provider" {
5353
default = "example"
5454
}
5555
56+
data "tencentcloud_user_info" "info" {}
57+
5658
locals {
57-
uin = data.tencentcloud_user_info.info.uin
59+
uin = data.tencentcloud_user_info.info.uin
5860
saml_provider = var.saml-provider
5961
}
6062
61-
data "tencentcloud_user_info" "info" {}
62-
63-
resource "tencentcloud_cam_role" "boo" {
64-
name = "tf_cam_role"
63+
resource "tencentcloud_cam_role" "example" {
64+
name = "tf-example"
6565
document = <<EOF
6666
{
6767
"version": "2.0",
@@ -80,7 +80,7 @@ resource "tencentcloud_cam_role" "boo" {
8080
]
8181
}
8282
EOF
83-
description = "tf_test"
83+
description = "terraform demo"
8484
console_login = true
8585
}
8686
```
@@ -90,5 +90,5 @@ Import
9090
CAM role can be imported using the id, e.g.
9191

9292
```
93-
$ terraform import tencentcloud_cam_role.foo 4611686018427733635
93+
$ terraform import tencentcloud_cam_role.example 4611686018427733635
9494
```

vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cam/v20190116/client.go

Lines changed: 55 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cam/v20190116/errors.go

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cam/v20190116/models.go

Lines changed: 76 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/modules.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1112,7 +1112,7 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as/v20180419
11121112
# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/bi v1.0.824
11131113
## explicit; go 1.14
11141114
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/bi/v20220105
1115-
# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cam v1.0.1051
1115+
# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cam v1.0.1071
11161116
## explicit; go 1.14
11171117
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cam/v20190116
11181118
# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cat v1.0.825
@@ -1163,7 +1163,7 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit/v20190319
11631163
# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1046
11641164
## explicit; go 1.14
11651165
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls/v20201016
1166-
# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1068
1166+
# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1071
11671167
## explicit; go 1.11
11681168
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common
11691169
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors

0 commit comments

Comments
 (0)