Skip to content

Commit 127da20

Browse files
WeiMengXSWeiMengXS
andauthored
Dev/cam examples (#2010)
* fix: modify cam doc * fix: modify cam doc * fix: modify cam doc * fix: add Resource doc * fix: fix Resource doc * fix: fix Resource doc * fix: fix example doc --------- Co-authored-by: WeiMengXS <nickcchen@tencent.com>
1 parent 8077998 commit 127da20

31 files changed

+595
-119
lines changed

examples/tencentcloud-cam/main.tf

Lines changed: 66 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,50 @@
1+
terraform {
2+
required_providers {
3+
tencentcloud = {
4+
source = "tencentcloudstack/tencentcloud"
5+
}
6+
}
7+
}
8+
provider "tencentcloud" {
9+
region = "ap-guangzhou"
10+
}
11+
12+
data "tencentcloud_cam_users" "users" {
13+
name = tencentcloud_cam_user.example.id
14+
}
15+
16+
data "tencentcloud_cam_roles" "roles" {
17+
role_id = tencentcloud_cam_role.example.id
18+
}
19+
20+
data "tencentcloud_cam_policies" "policies" {
21+
policy_id = tencentcloud_cam_policy.example.id
22+
}
23+
24+
data "tencentcloud_cam_groups" "groups" {
25+
group_id = tencentcloud_cam_group.example.id
26+
}
27+
28+
data "tencentcloud_cam_group_memberships" "memberships" {
29+
group_id = tencentcloud_cam_group_membership.example.id
30+
}
31+
32+
data "tencentcloud_cam_user_policy_attachments" "user_policy_attachments" {
33+
user_name = tencentcloud_cam_user_policy_attachment.example.user_name
34+
}
35+
36+
data "tencentcloud_cam_role_policy_attachments" "role_policy_attachments" {
37+
role_id = tencentcloud_cam_role_policy_attachment.example.role_id
38+
}
39+
40+
data "tencentcloud_cam_group_policy_attachments" "group_policy_attachments" {
41+
group_id = tencentcloud_cam_group_policy_attachment.example.group_id
42+
}
43+
44+
data "tencentcloud_cam_saml_providers" "saml_providers" {
45+
name = tencentcloud_cam_saml_provider.example.id
46+
}
47+
148
resource "tencentcloud_cam_group" "example" {
249
name = "example"
350
remark = "example"
@@ -23,7 +70,25 @@ resource "tencentcloud_cam_policy" "example" {
2370

2471
resource "tencentcloud_cam_role" "example" {
2572
name = "example"
26-
document = var.role_document
73+
document =<<EOF
74+
{
75+
"version": "2.0",
76+
"statement": [
77+
{
78+
"action": [
79+
"name/sts:AssumeRole"
80+
],
81+
"effect": "allow",
82+
"principal": {
83+
"qcs": [
84+
"qcs::cam::uin/${local.uin}:uin/${local.uin}"
85+
]
86+
}
87+
}
88+
]
89+
}
90+
EOF
91+
2792
description = "test"
2893
console_login = true
2994
}
@@ -54,38 +119,3 @@ resource "tencentcloud_cam_saml_provider" "example" {
54119
description = "test"
55120
}
56121

57-
data "tencentcloud_cam_users" "users" {
58-
name = tencentcloud_cam_user.example.id
59-
}
60-
61-
data "tencentcloud_cam_roles" "roles" {
62-
role_id = tencentcloud_cam_role.example.id
63-
}
64-
65-
data "tencentcloud_cam_policies" "policies" {
66-
policy_id = tencentcloud_cam_policy.example.id
67-
}
68-
69-
data "tencentcloud_cam_groups" "groups" {
70-
group_id = tencentcloud_cam_group.example.id
71-
}
72-
73-
data "tencentcloud_cam_group_memberships" "memberships" {
74-
group_id = tencentcloud_cam_group_membership.example.id
75-
}
76-
77-
data "tencentcloud_cam_user_policy_attachments" "user_policy_attachments" {
78-
user_name = tencentcloud_cam_user_policy_attachment.example.user_name
79-
}
80-
81-
data "tencentcloud_cam_role_policy_attachments" "role_policy_attachments" {
82-
role_id = tencentcloud_cam_role_policy_attachment.example.role_id
83-
}
84-
85-
data "tencentcloud_cam_group_policy_attachments" "group_policy_attachments" {
86-
group_id = tencentcloud_cam_group_policy_attachment.example.group_id
87-
}
88-
89-
data "tencentcloud_cam_saml_providers" "saml_providers" {
90-
name = tencentcloud_cam_saml_provider.example.id
91-
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
locals {
2+
uin = data.tencentcloud_user_info.info.uin
3+
}
4+
5+
data "tencentcloud_user_info" "info" {}

examples/tencentcloud-cam/variables.tf

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -42,27 +42,6 @@ variable "policy_document" {
4242
EOF
4343
}
4444

45-
variable "role_document" {
46-
default = <<EOF
47-
{
48-
"version": "2.0",
49-
"statement": [
50-
{
51-
"action": [
52-
"name/sts:AssumeRole"
53-
],
54-
"effect": "allow",
55-
"principal": {
56-
"qcs": [
57-
"qcs::cam::uin/100009461222:uin/100009461222"
58-
]
59-
}
60-
}
61-
]
62-
}
63-
EOF
64-
}
65-
6645
variable "meta_data" {
6746
default = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48bWQ6RW50aXR5RGVzY3JpcHRvciBlbnRpdHlJRD0iaHR0cDovL3d3dy5va3RhLmNvbS9leGsxa3F4bWNqUW1HQURNeTM1NyIgeG1sbnM6bWQ9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDptZXRhZGF0YSI+PG1kOklEUFNTT0Rlc2NyaXB0b3IgV2FudEF1dGhuUmVxdWVzdHNTaWduZWQ9ImZhbHNlIiBwcm90b2NvbFN1cHBvcnRFbnVtZXJhdGlvbj0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOnByb3RvY29sIj48bWQ6S2V5RGVzY3JpcHRvciB1c2U9InNpZ25pbmciPjxkczpLZXlJbmZvIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj48ZHM6WDUwOURhdGE+PGRzOlg1MDlDZXJ0aWZpY2F0ZT5NSUlEb0RDQ0FvaWdBd0lCQWdJR0FXM0lTcExvTUEwR0NTcUdTSWIzRFFFQkN3VUFNSUdRTVFzd0NRWURWUVFHRXdKVlV6RVRNQkVHDQpBMVVFQ0F3S1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ3d05VMkZ1SUVaeVlXNWphWE5qYnpFTk1Bc0dBMVVFQ2d3RVQydDBZVEVVDQpNQklHQTFVRUN3d0xVMU5QVUhKdmRtbGtaWEl4RVRBUEJnTlZCQU1NQ0dsa2VIVmxkblJoTVJ3d0dnWUpLb1pJaHZjTkFRa0JGZzFwDQpibVp2UUc5cmRHRXVZMjl0TUI0WERURTVNVEF4TkRBek1qSXhNMW9YRFRJNU1UQXhOREF6TWpNeE0xb3dnWkF4Q3pBSkJnTlZCQVlUDQpBbFZUTVJNd0VRWURWUVFJREFwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSERBMVRZVzRnUm5KaGJtTnBjMk52TVEwd0N3WURWUVFLDQpEQVJQYTNSaE1SUXdFZ1lEVlFRTERBdFRVMDlRY205MmFXUmxjakVSTUE4R0ExVUVBd3dJYVdSNGRXVjJkR0V4SERBYUJna3Foa2lHDQo5dzBCQ1FFV0RXbHVabTlBYjJ0MFlTNWpiMjB3Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRQ2g4b3dqDQpZK2dQSUM3blQvNTduLzdmeXJzcDlHMXdxa2UxdXhjMHVrTndnQXozOVNpelY3QVhLMWRReTFLaThXWjJJMzFEczJkT0FNQ1FKR2pWDQpUWWNNbnA3KzhqUzNLdmxNUkRJamk5cmxuUi9vcnBvMll1RHVWby9jVzdidlRIS2h2REo1QWZRaWxzYlNPTXdUOWM2TVlYZGhBNVBwDQpzelFsK1UrdHJmcXUrdUorSER4SVQxdlhWaVI5YlY2SUFRSzZpbWZoc2wxWmVSUytjbVFVNEpjQWlYT0xtTnFVVWM2UkpxUzhrMW1mDQpBLzhmb2VyMGc3SG4xZDVXclpCc2gyUlR2Vzh1ZVdadHQ3dmh4QTlGdE5kSVlEcXJ0eElmMlZXcXhrSHM3WFZDSm5wTnJITVovT1BRDQpGY21YSGVxNlJJMlB3Q1RlOW8zZHZpM0hqeXBaOEl4dkFnTUJBQUV3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUFHaHk1bG9nbGtTDQoyVHg2YS90MnF5VEx0YVV5cEwrNGhySGJoMVAweVVMc0NrSnFsM2wrWG9VZDZCY2FJaFNSVGFPQk95ODViL0UzelJ4K3JzQXJwTjVVDQp5ZThuUEM4a05PYW5vTk9wWnZvYmhpTzFlMFIvYmxEcnRBL0o5UlBwMWtmdlhmS2NSTTU3TlRCWXppTURlbnFQUTRFOWN1U2lGdFFxDQpJYmpIbThaM1B1YXgwRitldkZ3U1pJMDNCWXNISGw1d1EraEJBS3hTdTJINEZRdU93Zmpnb2EveEN6Z1NKYjJ2UXdEc1MxMk9mSkNiDQpSRm1ZL1VYZXQramFhdEVORktLZStZSUJpU0J2WG1adTN0MHN5NDZTNzlPVzBacXJ0NUh2bElsT2lpTFpaN1FZamxjM1kxeG1LZ1luDQpXM2M2WGZkdmhGWHo0ZDdkbWYvTUdpNGY0enM9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9tZDpLZXlEZXNjcmlwdG9yPjxtZDpOYW1lSURGb3JtYXQ+dXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6MS4xOm5hbWVpZC1mb3JtYXQ6dW5zcGVjaWZpZWQ8L21kOk5hbWVJREZvcm1hdD48bWQ6TmFtZUlERm9ybWF0PnVybjpvYXNpczpuYW1lczp0YzpTQU1MOjEuMTpuYW1laWQtZm9ybWF0OmVtYWlsQWRkcmVzczwvbWQ6TmFtZUlERm9ybWF0PjxtZDpTaW5nbGVTaWduT25TZXJ2aWNlIEJpbmRpbmc9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpiaW5kaW5nczpIVFRQLVBPU1QiIExvY2F0aW9uPSJodHRwczovL2lkeHVldnRhLm9rdGEuY29tL2FwcC9pZHh1ZW9yZzYzNzM1OF90ZXN0XzEvZXhrMWtxeG1jalFtR0FETXkzNTcvc3NvL3NhbWwiLz48bWQ6U2luZ2xlU2lnbk9uU2VydmljZSBCaW5kaW5nPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6YmluZGluZ3M6SFRUUC1SZWRpcmVjdCIgTG9jYXRpb249Imh0dHBzOi8vaWR4dWV2dGEub2t0YS5jb20vYXBwL2lkeHVlb3JnNjM3MzU4X3Rlc3RfMS9leGsxa3F4bWNqUW1HQURNeTM1Ny9zc28vc2FtbCIvPjwvbWQ6SURQU1NPRGVzY3JpcHRvcj48L21kOkVudGl0eURlc2NyaXB0b3I+"
6847
}

tencentcloud/provider.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,8 +213,11 @@ Cloud Access Management(CAM)
213213
214214
Resource
215215
tencentcloud_cam_role
216+
tencentcloud_cam_role_by_name
216217
tencentcloud_cam_role_policy_attachment
218+
tencentcloud_cam_role_policy_attachment_by_name
217219
tencentcloud_cam_policy
220+
tencentcloud_cam_policy_by_name
218221
tencentcloud_cam_user
219222
tencentcloud_cam_user_policy_attachment
220223
tencentcloud_cam_group

tencentcloud/resource_tc_cam_group.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ Example Usage
55
66
```hcl
77
resource "tencentcloud_cam_group" "foo" {
8-
name = "cam-group-test"
9-
remark = "test"
8+
name = "tf_cam_group"
9+
remark = "tf_group_remark"
1010
}
1111
```
1212

tencentcloud/resource_tc_cam_group_membership.go

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,33 @@ Provides a resource to create a CAM group membership.
44
Example Usage
55
66
```hcl
7-
resource "tencentcloud_cam_group_membership" "foo" {
8-
group_id = tencentcloud_cam_group.foo.id
9-
user_names = [tencentcloud_cam_user.foo.name, tencentcloud_cam_user.bar.name]
7+
variable "cam_group_basic" {
8+
default = "keep-cam-group"
109
}
10+
11+
data "tencentcloud_cam_groups" "groups" {
12+
name = var.cam_group_basic
13+
}
14+
15+
resource "tencentcloud_cam_user" "foo" {
16+
name = "tf_cam_user"
17+
remark = "tf_user_remark"
18+
console_login = true
19+
use_api = true
20+
need_reset_password = true
21+
password = "Gail@1234"
22+
phone_num = "12345678910"
23+
country_code = "86"
24+
email = "1234@qq.com"
25+
force_delete = true
26+
}
27+
28+
29+
resource "tencentcloud_cam_group_membership" "group_membership_basic" {
30+
group_id = data.tencentcloud_cam_groups.groups.group_list.0.group_id
31+
user_names = [tencentcloud_cam_user.foo.id]
32+
}
33+
1134
```
1235
1336
Import

tencentcloud/resource_tc_cam_group_policy_attachment.go

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,25 @@ Provides a resource to create a CAM group policy attachment.
44
Example Usage
55
66
```hcl
7-
resource "tencentcloud_cam_group_policy_attachment" "foo" {
8-
group_id = tencentcloud_cam_group.foo.id
9-
policy_id = tencentcloud_cam_policy.foo.id
7+
variable "cam_policy_basic" {
8+
default = "keep-cam-policy"
9+
}
10+
11+
variable "cam_group_basic" {
12+
default = "keep-cam-group"
13+
}
14+
15+
data "tencentcloud_cam_groups" "groups" {
16+
name = var.cam_group_basic
17+
}
18+
19+
data "tencentcloud_cam_policies" "policy" {
20+
name = var.cam_policy_basic
21+
}
22+
23+
resource "tencentcloud_cam_group_policy_attachment" "group_policy_attachment_basic" {
24+
group_id = data.tencentcloud_cam_groups.groups.group_list.0.group_id
25+
policy_id = data.tencentcloud_cam_policies.policy.policy_list.0.policy_id
1026
}
1127
```
1228

tencentcloud/resource_tc_cam_policy.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Example Usage
55
66
```hcl
77
resource "tencentcloud_cam_policy" "foo" {
8-
name = "cam-policy-test"
8+
name = "tf_cam_policy"
99
document = <<EOF
1010
{
1111
"version": "2.0",
@@ -22,7 +22,7 @@ resource "tencentcloud_cam_policy" "foo" {
2222
]
2323
}
2424
EOF
25-
description = "test"
25+
description = "tf_test"
2626
}
2727
```
2828

tencentcloud/resource_tc_cam_policy_by_name.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Example Usage
55
66
```hcl
77
resource "tencentcloud_cam_policy_by_name" "foo" {
8-
name = "cam-policy-test"
8+
name = "tf_cam_policy_name"
99
document = <<EOF
1010
{
1111
"version": "2.0",
@@ -22,7 +22,7 @@ resource "tencentcloud_cam_policy_by_name" "foo" {
2222
]
2323
}
2424
EOF
25-
description = "test"
25+
description = "tf_test"
2626
}
2727
```
2828

tencentcloud/resource_tc_cam_role.go

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,27 @@ Example Usage
66
Create normally
77
88
```hcl
9+
locals {
10+
uin = data.tencentcloud_user_info.info.uin
11+
}
12+
13+
data "tencentcloud_user_info" "info" {}
14+
915
resource "tencentcloud_cam_role" "foo" {
1016
name = "cam-role-test"
1117
document = <<EOF
1218
{
1319
"version": "2.0",
1420
"statement": [
1521
{
16-
"action": ["name/sts:AssumeRole"],
22+
"action": [
23+
"name/sts:AssumeRole"
24+
],
1725
"effect": "allow",
1826
"principal": {
19-
"qcs": ["qcs::cam::uin/<your-account-id>:uin/<your-account-id>"]
27+
"qcs": [
28+
"qcs::cam::uin/${local.uin}:uin/${local.uin}"
29+
]
2030
}
2131
}
2232
]
@@ -33,23 +43,38 @@ EOF
3343
Create with SAML provider
3444
3545
```hcl
46+
variable "saml-provider" {
47+
default = "example"
48+
}
49+
50+
locals {
51+
uin = data.tencentcloud_user_info.info.uin
52+
saml_provider = var.saml-provider
53+
}
54+
55+
data "tencentcloud_user_info" "info" {}
56+
3657
resource "tencentcloud_cam_role" "boo" {
37-
name = "cam-role-test"
58+
name = "tf_cam_role"
3859
document = <<EOF
3960
{
4061
"version": "2.0",
4162
"statement": [
4263
{
43-
"action": ["name/sts:AssumeRole", "name/sts:AssumeRoleWithWebIdentity"],
64+
"action": [
65+
"name/sts:AssumeRole"
66+
],
4467
"effect": "allow",
4568
"principal": {
46-
"federated": ["qcs::cam::uin/<your-account-id>:saml-provider/<your-name>"]
69+
"qcs": [
70+
"qcs::cam::uin/${local.uin}:saml-provider/${local.saml_provider}"
71+
]
4772
}
4873
}
4974
]
5075
}
5176
EOF
52-
description = "test"
77+
description = "tf_test"
5378
console_login = true
5479
}
5580
```

0 commit comments

Comments
 (0)