Skip to content

Commit 455fe9f

Browse files
WeiMengXSWeiMengXS
andauthored
Feat/organization (#2191)
* feat: memberAuthIdentity * feat: memberAuthIdentity * feat: update * feat: changelog * feat: changelog --------- Co-authored-by: WeiMengXS <nickcchen@tencent.com>
1 parent 326cdfc commit 455fe9f

16 files changed

+2975
-289
lines changed

.changelog/2191.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
```release-note:new-resource
2+
tencentcloud_organization_org_member_auth_identity_attachment
3+
```
4+
5+
```release-note:new-data-source
6+
tencentcloud_organization_org_auth_node
7+
```

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ require (
6666
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mongodb v1.0.651
6767
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.734
6868
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mps v1.0.758
69-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.540
69+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.762
7070
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.676
7171
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.751
7272
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/pts v1.0.533

go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -886,6 +886,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.761 h1:b1f4
886886
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.761/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
887887
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.762 h1:ixDQofTbSDKpIwNI+yUgEUrUBH18m2Jb+ZQjFnTnAcU=
888888
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.762/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
889+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.762 h1:ixDQofTbSDKpIwNI+yUgEUrUBH18m2Jb+ZQjFnTnAcU=
890+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.762/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
889891
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624 h1:nEZqsoqt1pEoaP9JjkHQy3/H00suCfzlHW1qOm2nYD8=
890892
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624/go.mod h1:+TXSVyeKwt1IhZRqKPbTREteBcP+K07Q846/ilNzLWA=
891893
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.589 h1:LZihgirMH0vsaGScYexxwY0fTss9vHaSZs/YOQUVESg=
@@ -942,6 +944,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mps v1.0.758 h1:lsuwM6C
942944
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mps v1.0.758/go.mod h1:OklPo0yw4wKOYDAtXgmtUJCzGdvYooaqKchviSg84Ro=
943945
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.540 h1:gUVuwcjt9baj+/5LFafjdR53/xSdQxfA45Vp6E65rXU=
944946
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.540/go.mod h1:jHcHwlsdNL9ycLwNtqYZVjLKJILA1xuODMeMDMOxCrA=
947+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.762 h1:WtI21wvdpyvyjC6cdqduQpxngsvo7irGd+2VzMhlOqk=
948+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.762/go.mod h1:OT/tFn3z36vkvTkFOQOvYixU1z5A75ihJu6yUd5UJiM=
945949
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.676 h1:KDt87M2b8j/Xo/9o+kaVtJ46fOtPctCpMDa1CJpSlkY=
946950
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.676/go.mod h1:mXbqv53QFAhvyYqainXSAMdoCui5GudorFhKufJxITc=
947951
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.751 h1:D2tcvMV9G8dWIoTybLeZoO3Xwz3tFa0A/cN1+glbMG4=
Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
/*
2+
Use this data source to query detailed information of organization org_auth_node
3+
4+
Example Usage
5+
6+
```hcl
7+
data "tencentcloud_organization_org_auth_node" "org_auth_node" {
8+
}
9+
```
10+
*/
11+
package tencentcloud
12+
13+
import (
14+
"context"
15+
16+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
17+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
18+
organization "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization/v20210331"
19+
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
20+
)
21+
22+
func dataSourceTencentCloudOrganizationOrgAuthNode() *schema.Resource {
23+
return &schema.Resource{
24+
Read: dataSourceTencentCloudOrganizationOrgAuthNodeRead,
25+
Schema: map[string]*schema.Schema{
26+
"auth_name": {
27+
Optional: true,
28+
Type: schema.TypeString,
29+
Description: "Verified company name.",
30+
},
31+
32+
"items": {
33+
Computed: true,
34+
Type: schema.TypeList,
35+
Description: "Organization auth node list.",
36+
Elem: &schema.Resource{
37+
Schema: map[string]*schema.Schema{
38+
"relation_id": {
39+
Type: schema.TypeInt,
40+
Computed: true,
41+
Description: "Relationship Id.",
42+
},
43+
"auth_name": {
44+
Type: schema.TypeString,
45+
Computed: true,
46+
Description: "Verified company name.",
47+
},
48+
"manager": {
49+
Type: schema.TypeList,
50+
Computed: true,
51+
Description: "Organization auth manager.",
52+
Elem: &schema.Resource{
53+
Schema: map[string]*schema.Schema{
54+
"member_uin": {
55+
Type: schema.TypeInt,
56+
Computed: true,
57+
Description: "Member uin.",
58+
},
59+
"member_name": {
60+
Type: schema.TypeString,
61+
Computed: true,
62+
Description: "Member name.",
63+
},
64+
},
65+
},
66+
},
67+
},
68+
},
69+
},
70+
71+
"result_output_file": {
72+
Type: schema.TypeString,
73+
Optional: true,
74+
Description: "Used to save results.",
75+
},
76+
},
77+
}
78+
}
79+
80+
func dataSourceTencentCloudOrganizationOrgAuthNodeRead(d *schema.ResourceData, meta interface{}) error {
81+
defer logElapsed("data_source.tencentcloud_organization_org_auth_node.read")()
82+
defer inconsistentCheck(d, meta)()
83+
84+
logId := getLogId(contextNil)
85+
86+
ctx := context.WithValue(context.TODO(), logIdKey, logId)
87+
88+
paramMap := make(map[string]interface{})
89+
if v, ok := d.GetOk("auth_name"); ok {
90+
paramMap["AuthName"] = helper.String(v.(string))
91+
}
92+
93+
service := OrganizationService{client: meta.(*TencentCloudClient).apiV3Conn}
94+
95+
var items []*organization.AuthNode
96+
97+
err := resource.Retry(readRetryTimeout, func() *resource.RetryError {
98+
result, e := service.DescribeOrganizationOrgAuthNodeByFilter(ctx, paramMap)
99+
if e != nil {
100+
return retryError(e)
101+
}
102+
items = result
103+
return nil
104+
})
105+
if err != nil {
106+
return err
107+
}
108+
109+
ids := make([]string, 0, len(items))
110+
tmpList := make([]map[string]interface{}, 0, len(items))
111+
112+
if items != nil {
113+
for _, authNode := range items {
114+
authNodeMap := map[string]interface{}{}
115+
116+
if authNode.RelationId != nil {
117+
authNodeMap["relation_id"] = authNode.RelationId
118+
}
119+
120+
if authNode.AuthName != nil {
121+
authNodeMap["auth_name"] = authNode.AuthName
122+
}
123+
124+
if authNode.Manager != nil {
125+
managerMap := map[string]interface{}{}
126+
127+
if authNode.Manager.MemberUin != nil {
128+
managerMap["member_uin"] = authNode.Manager.MemberUin
129+
}
130+
131+
if authNode.Manager.MemberName != nil {
132+
managerMap["member_name"] = authNode.Manager.MemberName
133+
}
134+
135+
authNodeMap["manager"] = []interface{}{managerMap}
136+
}
137+
138+
ids = append(ids, *authNode.AuthName)
139+
tmpList = append(tmpList, authNodeMap)
140+
}
141+
142+
_ = d.Set("items", tmpList)
143+
}
144+
145+
d.SetId(helper.DataResourceIdsHash(ids))
146+
output3, ok := d.GetOk("result_output_file")
147+
if ok && output3.(string) != "" {
148+
if e := writeToFile(output3.(string), tmpList); e != nil {
149+
return e
150+
}
151+
}
152+
return nil
153+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package tencentcloud
2+
3+
import (
4+
"testing"
5+
6+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
7+
)
8+
9+
func TestAccTencentCloudOrganizationOrgAuthNodeDataSource_basic(t *testing.T) {
10+
t.Parallel()
11+
resource.Test(t, resource.TestCase{
12+
PreCheck: func() {
13+
testAccPreCheck(t)
14+
},
15+
Providers: testAccProviders,
16+
Steps: []resource.TestStep{
17+
{
18+
Config: testAccOrganizationOrgAuthNodeDataSource,
19+
Check: resource.ComposeTestCheckFunc(testAccCheckTencentCloudDataSourceID("data.tencentcloud_organization_org_auth_node.org_auth_node")),
20+
},
21+
},
22+
})
23+
}
24+
25+
const testAccOrganizationOrgAuthNodeDataSource = `
26+
27+
data "tencentcloud_organization_org_auth_node" "org_auth_node" {
28+
}
29+
30+
`

tencentcloud/provider.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1384,10 +1384,13 @@ TencentCloud Automation Tools(TAT)
13841384
tencentcloud_tat_invocation_command_attachment
13851385
13861386
Tencent Cloud Organization (TCO)
1387+
Data Source
1388+
tencentcloud_organization_org_auth_node
13871389
Resource
13881390
tencentcloud_organization_org_node
13891391
tencentcloud_organization_org_member
13901392
tencentcloud_organization_policy_sub_account_attachment
1393+
tencentcloud_organization_org_member_auth_identity_attachment
13911394
13921395
TDSQL-C for PostgreSQL(TDCPG)
13931396
Data Source
@@ -2448,6 +2451,7 @@ func Provider() *schema.Provider {
24482451
"tencentcloud_ses_black_email_address": dataSourceTencentCloudSesBlackEmailAddress(),
24492452
"tencentcloud_ses_statistics_report": dataSourceTencentCloudSesStatisticsReport(),
24502453
"tencentcloud_ses_send_email_status": dataSourceTencentCloudSesSendEmailStatus(),
2454+
"tencentcloud_organization_org_auth_node": dataSourceTencentCloudOrganizationOrgAuthNode(),
24512455
},
24522456

24532457
ResourcesMap: map[string]*schema.Resource{
@@ -3025,6 +3029,7 @@ func Provider() *schema.Provider {
30253029
"tencentcloud_organization_org_node": resourceTencentCloudOrganizationOrgNode(),
30263030
"tencentcloud_organization_org_member": resourceTencentCloudOrganizationOrgMember(),
30273031
"tencentcloud_organization_policy_sub_account_attachment": resourceTencentCloudOrganizationPolicySubAccountAttachment(),
3032+
"tencentcloud_organization_org_member_auth_identity_attachment": resourceTencentCloudOrganizationOrgMemberAuthIdentityAttachment(),
30283033
"tencentcloud_dbbrain_sql_filter": resourceTencentCloudDbbrainSqlFilter(),
30293034
"tencentcloud_dbbrain_security_audit_log_export_task": resourceTencentCloudDbbrainSecurityAuditLogExportTask(),
30303035
"tencentcloud_dbbrain_db_diag_report_task": resourceTencentCloudDbbrainDbDiagReportTask(),

0 commit comments

Comments
 (0)