Skip to content

Commit 01ec1df

Browse files
tongyimingmikatong
and
mikatong
authoredOct 23, 2024··
feat(tco): [120225468]add tencentcloud_organization_nodes and tencentcloud_open_identity_center_operation (#2906)
* add resource * add changelog * update --------- Co-authored-by: mikatong <[email protected]>
1 parent 2cfd758 commit 01ec1df

13 files changed

+538
-0
lines changed
 

‎.changelog/2906.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_open_identity_center_operation
3+
```
4+
5+
```release-note:new-data-source
6+
tencentcloud_organization_nodes
7+
```

‎tencentcloud/provider.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1094,6 +1094,7 @@ func Provider() *schema.Provider {
10941094
"tencentcloud_identity_center_groups": tco.DataSourceTencentCloudIdentityCenterGroups(),
10951095
"tencentcloud_identity_center_role_configurations": tco.DataSourceTencentCloudIdentityCenterRoleConfigurations(),
10961096
"tencentcloud_identity_center_users": tco.DataSourceTencentCloudIdentityCenterUsers(),
1097+
"tencentcloud_organization_nodes": tco.DataSourceTencentCloudOrganizationNodes(),
10971098
"tencentcloud_pts_scenario_with_jobs": pts.DataSourceTencentCloudPtsScenarioWithJobs(),
10981099
"tencentcloud_cam_list_attached_user_policy": cam.DataSourceTencentCloudCamListAttachedUserPolicy(),
10991100
"tencentcloud_cam_secret_last_used_time": cam.DataSourceTencentCloudCamSecretLastUsedTime(),
@@ -1833,6 +1834,7 @@ func Provider() *schema.Provider {
18331834
"tencentcloud_identity_center_user_sync_provisioning": tco.ResourceTencentCloudIdentityCenterUserSyncProvisioning(),
18341835
"tencentcloud_identity_center_role_assignment": tco.ResourceTencentCloudIdentityCenterRoleAssignment(),
18351836
"tencentcloud_invite_organization_member_operation": tco.ResourceTencentCloudInviteOrganizationMemberOperation(),
1837+
"tencentcloud_open_identity_center_operation": tco.ResourceTencentCloudOpenIdentityCenterOperation(),
18361838
"tencentcloud_dbbrain_sql_filter": dbbrain.ResourceTencentCloudDbbrainSqlFilter(),
18371839
"tencentcloud_dbbrain_security_audit_log_export_task": dbbrain.ResourceTencentCloudDbbrainSecurityAuditLogExportTask(),
18381840
"tencentcloud_dbbrain_db_diag_report_task": dbbrain.ResourceTencentCloudDbbrainDbDiagReportTask(),

‎tencentcloud/provider.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1682,6 +1682,7 @@ Tencent Cloud Organization (TCO)
16821682
tencentcloud_identity_center_groups
16831683
tencentcloud_identity_center_role_configurations
16841684
tencentcloud_identity_center_users
1685+
tencentcloud_organization_nodes
16851686
Resource
16861687
tencentcloud_organization_instance
16871688
tencentcloud_organization_org_node
@@ -1708,6 +1709,7 @@ Tencent Cloud Organization (TCO)
17081709
tencentcloud_identity_center_user_sync_provisioning
17091710
tencentcloud_identity_center_role_assignment
17101711
tencentcloud_invite_organization_member_operation
1712+
tencentcloud_open_identity_center_operation
17111713

17121714
TDSQL-C for PostgreSQL(TDCPG)
17131715
Data Source
Lines changed: 211 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,211 @@
1+
package tco
2+
3+
import (
4+
"context"
5+
"strconv"
6+
7+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
8+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
9+
organization "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization/v20210331"
10+
11+
tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common"
12+
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
13+
)
14+
15+
func DataSourceTencentCloudOrganizationNodes() *schema.Resource {
16+
return &schema.Resource{
17+
Read: dataSourceTencentCloudOrganizationNodesRead,
18+
Schema: map[string]*schema.Schema{
19+
"tags": {
20+
Type: schema.TypeList,
21+
Optional: true,
22+
Description: "Department tag search list, with a maximum of 10.",
23+
Elem: &schema.Resource{
24+
Schema: map[string]*schema.Schema{
25+
"tag_key": {
26+
Type: schema.TypeString,
27+
Required: true,
28+
Description: "Tag key.",
29+
},
30+
"tag_value": {
31+
Type: schema.TypeString,
32+
Required: true,
33+
Description: "Tag value.",
34+
},
35+
},
36+
},
37+
},
38+
39+
"items": {
40+
Type: schema.TypeList,
41+
Computed: true,
42+
Description: "List details.",
43+
Elem: &schema.Resource{
44+
Schema: map[string]*schema.Schema{
45+
"node_id": {
46+
Type: schema.TypeInt,
47+
Required: true,
48+
Description: "Organization node ID.",
49+
},
50+
"name": {
51+
Type: schema.TypeString,
52+
Required: true,
53+
Description: "Name.",
54+
},
55+
"parent_node_id": {
56+
Type: schema.TypeInt,
57+
Required: true,
58+
Description: "Parent node ID.",
59+
},
60+
"remark": {
61+
Type: schema.TypeString,
62+
Required: true,
63+
Description: "Remarks.",
64+
},
65+
"create_time": {
66+
Type: schema.TypeString,
67+
Required: true,
68+
Description: "Creation time.",
69+
},
70+
"update_time": {
71+
Type: schema.TypeString,
72+
Required: true,
73+
Description: "Update time.",
74+
},
75+
"tags": {
76+
Type: schema.TypeList,
77+
Required: true,
78+
Description: "Member tag list.",
79+
Elem: &schema.Resource{
80+
Schema: map[string]*schema.Schema{
81+
"tag_key": {
82+
Type: schema.TypeString,
83+
Required: true,
84+
Description: "Tag key.",
85+
},
86+
"tag_value": {
87+
Type: schema.TypeString,
88+
Required: true,
89+
Description: "Tag value.",
90+
},
91+
},
92+
},
93+
},
94+
},
95+
},
96+
},
97+
98+
"result_output_file": {
99+
Type: schema.TypeString,
100+
Optional: true,
101+
Description: "Used to save results.",
102+
},
103+
},
104+
}
105+
}
106+
107+
func dataSourceTencentCloudOrganizationNodesRead(d *schema.ResourceData, meta interface{}) error {
108+
defer tccommon.LogElapsed("data_source.tencentcloud_organization_nodes.read")()
109+
defer tccommon.InconsistentCheck(d, meta)()
110+
111+
logId := tccommon.GetLogId(tccommon.ContextNil)
112+
ctx := tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
113+
114+
service := OrganizationService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
115+
116+
paramMap := make(map[string]interface{})
117+
if v, ok := d.GetOk("tags"); ok {
118+
tagsSet := v.([]interface{})
119+
tmpSet := make([]*organization.Tag, 0, len(tagsSet))
120+
for _, item := range tagsSet {
121+
tagsMap := item.(map[string]interface{})
122+
tag := organization.Tag{}
123+
if v, ok := tagsMap["tag_key"]; ok {
124+
tag.TagKey = helper.String(v.(string))
125+
}
126+
if v, ok := tagsMap["tag_value"]; ok {
127+
tag.TagValue = helper.String(v.(string))
128+
}
129+
tmpSet = append(tmpSet, &tag)
130+
}
131+
paramMap["Tags"] = tmpSet
132+
}
133+
134+
var nodes []*organization.OrgNode
135+
err := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError {
136+
result, e := service.DescribeOrganizationNodesByFilter(ctx, paramMap)
137+
if e != nil {
138+
return tccommon.RetryError(e)
139+
}
140+
nodes = result
141+
return nil
142+
})
143+
if err != nil {
144+
return err
145+
}
146+
147+
itemList := make([]map[string]interface{}, 0, len(nodes))
148+
ids := make([]string, 0, len(nodes))
149+
for _, item := range nodes {
150+
itemMap := map[string]interface{}{}
151+
152+
if item.NodeId != nil {
153+
itemMap["node_id"] = item.NodeId
154+
nodeIdStr := strconv.FormatInt(*item.NodeId, 10)
155+
ids = append(ids, nodeIdStr)
156+
}
157+
158+
if item.Name != nil {
159+
itemMap["name"] = item.Name
160+
}
161+
162+
if item.ParentNodeId != nil {
163+
itemMap["parent_node_id"] = item.ParentNodeId
164+
}
165+
166+
if item.Remark != nil {
167+
itemMap["remark"] = item.Remark
168+
}
169+
170+
if item.CreateTime != nil {
171+
itemMap["create_time"] = item.CreateTime
172+
}
173+
174+
if item.UpdateTime != nil {
175+
itemMap["update_time"] = item.UpdateTime
176+
}
177+
178+
tagsList := make([]map[string]interface{}, 0, len(item.Tags))
179+
if item.Tags != nil {
180+
for _, tags := range item.Tags {
181+
tagsMap := map[string]interface{}{}
182+
183+
if tags.TagKey != nil {
184+
tagsMap["tag_key"] = tags.TagKey
185+
}
186+
187+
if tags.TagValue != nil {
188+
tagsMap["tag_value"] = tags.TagValue
189+
}
190+
191+
tagsList = append(tagsList, tagsMap)
192+
}
193+
194+
itemMap["tags"] = tagsList
195+
}
196+
itemList = append(itemList, itemMap)
197+
}
198+
199+
_ = d.Set("items", itemList)
200+
201+
d.SetId(helper.DataResourceIdsHash(ids))
202+
203+
output, ok := d.GetOk("result_output_file")
204+
if ok && output.(string) != "" {
205+
if e := tccommon.WriteToFile(output.(string), itemList); e != nil {
206+
return e
207+
}
208+
}
209+
210+
return nil
211+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
Use this data source to query detailed information of organization nodes
2+
3+
Example Usage
4+
5+
```hcl
6+
data "tencentcloud_organization_nodes" "organization_nodes" {
7+
tags {
8+
tag_key = "createBy"
9+
tag_value = "terraform"
10+
}
11+
}
12+
```
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package tco_test
2+
3+
import (
4+
"testing"
5+
6+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
7+
8+
tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest"
9+
)
10+
11+
func TestAccTencentCloudOrganizationNodesDataSource_basic(t *testing.T) {
12+
t.Parallel()
13+
resource.Test(t, resource.TestCase{
14+
PreCheck: func() {
15+
tcacctest.AccPreCheck(t)
16+
},
17+
Providers: tcacctest.AccProviders,
18+
Steps: []resource.TestStep{{
19+
Config: testAccOrganizationNodesDataSource,
20+
Check: resource.ComposeTestCheckFunc(
21+
tcacctest.AccCheckTencentCloudDataSourceID("data.tencentcloud_organization_nodes.organization_nodes"),
22+
resource.TestCheckResourceAttrSet("data.tencentcloud_organization_nodes.organization_nodes", "items.#"),
23+
resource.TestCheckResourceAttrSet("data.tencentcloud_organization_nodes.organization_nodes", "items.0.name"),
24+
resource.TestCheckResourceAttrSet("data.tencentcloud_organization_nodes.organization_nodes", "items.0.node_id"),
25+
resource.TestCheckResourceAttrSet("data.tencentcloud_organization_nodes.organization_nodes", "items.0.parent_node_id"),
26+
resource.TestCheckResourceAttrSet("data.tencentcloud_organization_nodes.organization_nodes", "items.0.create_time"),
27+
resource.TestCheckResourceAttrSet("data.tencentcloud_organization_nodes.organization_nodes", "items.0.update_time"),
28+
resource.TestCheckResourceAttrSet("data.tencentcloud_organization_nodes.organization_nodes", "items.0.tags.#"),
29+
),
30+
}},
31+
})
32+
}
33+
34+
const testAccOrganizationNodesDataSource = `
35+
36+
data "tencentcloud_organization_nodes" "organization_nodes" {
37+
tags {
38+
tag_key = "createBy"
39+
tag_value = "terraform"
40+
}
41+
}
42+
`
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
package tco
2+
3+
import (
4+
"log"
5+
6+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
7+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
8+
organization "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization/v20210331"
9+
10+
tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common"
11+
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
12+
)
13+
14+
func ResourceTencentCloudOpenIdentityCenterOperation() *schema.Resource {
15+
return &schema.Resource{
16+
Create: resourceTencentCloudInviteOpenIdentityCenterOperationCreate,
17+
Read: resourceTencentCloudInviteOpenIdentityCenterOperationRead,
18+
Delete: resourceTencentCloudInviteOpenIdentityCenterOperationDelete,
19+
Schema: map[string]*schema.Schema{
20+
"zone_name": {
21+
Type: schema.TypeString,
22+
Required: true,
23+
ForceNew: true,
24+
Description: "Space name, which must be globally unique and contain 2-64 characters including lowercase letters, digits, and hyphens (-). It can neither start or end with a hyphen (-) nor contain two consecutive hyphens (-).",
25+
},
26+
27+
"zone_id": {
28+
Type: schema.TypeString,
29+
Computed: true,
30+
Description: "Space ID. z-Prefix starts with 12 random numbers/lowercase letters followed by.",
31+
},
32+
},
33+
}
34+
}
35+
36+
func resourceTencentCloudInviteOpenIdentityCenterOperationCreate(d *schema.ResourceData, meta interface{}) error {
37+
defer tccommon.LogElapsed("resource.tencentcloud_open_identity_center_operation.create")()
38+
defer tccommon.InconsistentCheck(d, meta)()
39+
40+
logId := tccommon.GetLogId(tccommon.ContextNil)
41+
42+
var (
43+
request = organization.NewOpenIdentityCenterRequest()
44+
response = organization.NewOpenIdentityCenterResponse()
45+
)
46+
47+
if v, ok := d.GetOk("zone_name"); ok {
48+
request.ZoneName = helper.String(v.(string))
49+
}
50+
51+
err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
52+
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseOrganizationClient().OpenIdentityCenter(request)
53+
if e != nil {
54+
return tccommon.RetryError(e)
55+
} else {
56+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
57+
}
58+
response = result
59+
return nil
60+
})
61+
if err != nil {
62+
log.Printf("[CRITAL]%s open identity center operation failed, reason:%+v", logId, err)
63+
return err
64+
}
65+
66+
if response.Response != nil && response.Response.ZoneId != nil {
67+
d.SetId(*response.Response.ZoneId)
68+
_ = d.Set("zone_id", *response.Response.ZoneId)
69+
}
70+
71+
_ = response
72+
73+
return resourceTencentCloudInviteOpenIdentityCenterOperationRead(d, meta)
74+
}
75+
76+
func resourceTencentCloudInviteOpenIdentityCenterOperationRead(d *schema.ResourceData, meta interface{}) error {
77+
defer tccommon.LogElapsed("resource.tencentcloud_open_identity_center_operation.read")()
78+
defer tccommon.InconsistentCheck(d, meta)()
79+
80+
return nil
81+
}
82+
83+
func resourceTencentCloudInviteOpenIdentityCenterOperationDelete(d *schema.ResourceData, meta interface{}) error {
84+
defer tccommon.LogElapsed("resource.tencentcloud_open_identity_center_operation.delete")()
85+
defer tccommon.InconsistentCheck(d, meta)()
86+
87+
return nil
88+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
Provides a resource to open identity center
2+
3+
Example Usage
4+
5+
```hcl
6+
resource "tencentcloud_open_identity_center_operation" "open_identity_center_operation" {
7+
zone_name = "test"
8+
}
9+
```
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package tco_test
2+
3+
import (
4+
"testing"
5+
6+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
7+
8+
tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest"
9+
)
10+
11+
func TestAccTencentCloudOpenIdentityCenterOperationResource_basic(t *testing.T) {
12+
t.Parallel()
13+
resource.Test(t, resource.TestCase{
14+
PreCheck: func() {
15+
tcacctest.AccPreCheck(t)
16+
},
17+
Providers: tcacctest.AccProviders,
18+
Steps: []resource.TestStep{
19+
{
20+
Config: testAccOpenIdentityCenterOperation,
21+
Check: resource.ComposeTestCheckFunc(
22+
resource.TestCheckResourceAttrSet("tencentcloud_open_identity_center_operation.open_identity_center_operation", "id"),
23+
resource.TestCheckResourceAttrSet("tencentcloud_open_identity_center_operation.open_identity_center_operation", "zone_id"),
24+
),
25+
},
26+
},
27+
})
28+
}
29+
30+
const testAccOpenIdentityCenterOperation = `
31+
resource "tencentcloud_open_identity_center_operation" "open_identity_center_operation" {
32+
zone_name = "test"
33+
}
34+
`

‎tencentcloud/services/tco/service_tencentcloud_organization.go

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1847,3 +1847,50 @@ func (me *OrganizationService) DescribeIdentityCenterRoleConfigurationsByFilter(
18471847

18481848
return
18491849
}
1850+
1851+
func (me *OrganizationService) DescribeOrganizationNodesByFilter(ctx context.Context, param map[string]interface{}) (nodes []*organization.OrgNode, errRet error) {
1852+
var (
1853+
logId = tccommon.GetLogId(ctx)
1854+
request = organization.NewDescribeOrganizationNodesRequest()
1855+
)
1856+
1857+
defer func() {
1858+
if errRet != nil {
1859+
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", logId, request.GetAction(), request.ToJsonString(), errRet.Error())
1860+
}
1861+
}()
1862+
1863+
for k, v := range param {
1864+
if k == "Tags" {
1865+
request.Tags = v.([]*organization.Tag)
1866+
}
1867+
}
1868+
1869+
var (
1870+
limit int64 = 50
1871+
offset int64 = 0
1872+
)
1873+
request.Limit = &limit
1874+
request.Offset = &offset
1875+
nodes = make([]*organization.OrgNode, 0)
1876+
1877+
for {
1878+
ratelimit.Check(request.GetAction())
1879+
response, err := me.client.UseOrganizationClient().DescribeOrganizationNodes(request)
1880+
if err != nil {
1881+
errRet = err
1882+
return
1883+
}
1884+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString())
1885+
1886+
if response == nil || response.Response == nil {
1887+
return
1888+
}
1889+
1890+
nodes = append(nodes, response.Response.Items...)
1891+
if len(response.Response.Items) < int(limit) {
1892+
break
1893+
}
1894+
}
1895+
return
1896+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
---
2+
subcategory: "Tencent Cloud Organization (TCO)"
3+
layout: "tencentcloud"
4+
page_title: "TencentCloud: tencentcloud_organization_nodes"
5+
sidebar_current: "docs-tencentcloud-datasource-organization_nodes"
6+
description: |-
7+
Use this data source to query detailed information of organization nodes
8+
---
9+
10+
# tencentcloud_organization_nodes
11+
12+
Use this data source to query detailed information of organization nodes
13+
14+
## Example Usage
15+
16+
```hcl
17+
data "tencentcloud_organization_nodes" "organization_nodes" {
18+
tags {
19+
tag_key = "createBy"
20+
tag_value = "terraform"
21+
}
22+
}
23+
```
24+
25+
## Argument Reference
26+
27+
The following arguments are supported:
28+
29+
* `result_output_file` - (Optional, String) Used to save results.
30+
* `tags` - (Optional, List) Department tag search list, with a maximum of 10.
31+
32+
The `tags` object supports the following:
33+
34+
* `tag_key` - (Required, String) Tag key.
35+
* `tag_value` - (Required, String) Tag value.
36+
37+
## Attributes Reference
38+
39+
In addition to all arguments above, the following attributes are exported:
40+
41+
* `items` - List details.
42+
43+
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
---
2+
subcategory: "Tencent Cloud Organization (TCO)"
3+
layout: "tencentcloud"
4+
page_title: "TencentCloud: tencentcloud_open_identity_center_operation"
5+
sidebar_current: "docs-tencentcloud-resource-open_identity_center_operation"
6+
description: |-
7+
Provides a resource to open identity center
8+
---
9+
10+
# tencentcloud_open_identity_center_operation
11+
12+
Provides a resource to open identity center
13+
14+
## Example Usage
15+
16+
```hcl
17+
resource "tencentcloud_open_identity_center_operation" "open_identity_center_operation" {
18+
zone_name = "test"
19+
}
20+
```
21+
22+
## Argument Reference
23+
24+
The following arguments are supported:
25+
26+
* `zone_name` - (Required, String, ForceNew) Space name, which must be globally unique and contain 2-64 characters including lowercase letters, digits, and hyphens (-). It can neither start or end with a hyphen (-) nor contain two consecutive hyphens (-).
27+
28+
## Attributes Reference
29+
30+
In addition to all arguments above, the following attributes are exported:
31+
32+
* `id` - ID of the resource.
33+
* `zone_id` - Space ID. z-Prefix starts with 12 random numbers/lowercase letters followed by.
34+
35+

‎website/tencentcloud.erb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4420,6 +4420,9 @@
44204420
<li>
44214421
<a href="/docs/providers/tencentcloud/d/organization_members.html">tencentcloud_organization_members</a>
44224422
</li>
4423+
<li>
4424+
<a href="/docs/providers/tencentcloud/d/organization_nodes.html">tencentcloud_organization_nodes</a>
4425+
</li>
44234426
<li>
44244427
<a href="/docs/providers/tencentcloud/d/organization_org_auth_node.html">tencentcloud_organization_org_auth_node</a>
44254428
</li>
@@ -4473,6 +4476,9 @@
44734476
<li>
44744477
<a href="/docs/providers/tencentcloud/r/invite_organization_member_operation.html">tencentcloud_invite_organization_member_operation</a>
44754478
</li>
4479+
<li>
4480+
<a href="/docs/providers/tencentcloud/r/open_identity_center_operation.html">tencentcloud_open_identity_center_operation</a>
4481+
</li>
44764482
<li>
44774483
<a href="/docs/providers/tencentcloud/r/organization_instance.html">tencentcloud_organization_instance</a>
44784484
</li>

0 commit comments

Comments
 (0)
Please sign in to comment.