Skip to content

Commit 2304856

Browse files
authored
feat(wedata): [127477929] add new resource (#3570)
* add * add
1 parent 9ad01dc commit 2304856

File tree

41 files changed

+3693
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+3693
-0
lines changed

.changelog/3570.txt

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
```release-note:new-data-source
2+
tencentcloud_wedata_list_lineage
3+
```
4+
5+
```release-note:new-data-source
6+
tencentcloud_wedata_list_process_lineage
7+
```
8+
9+
```release-note:new-data-source
10+
tencentcloud_wedata_list_column_lineage
11+
```
12+
13+
```release-note:new-data-source
14+
tencentcloud_wedata_list_catalog
15+
```
16+
17+
```release-note:new-data-source
18+
tencentcloud_wedata_list_database
19+
```
20+
21+
```release-note:new-data-source
22+
tencentcloud_wedata_list_schema
23+
```
24+
25+
```release-note:new-data-source
26+
tencentcloud_wedata_list_table
27+
```
28+
29+
```release-note:new-data-source
30+
tencentcloud_wedata_get_table
31+
```
32+
33+
```release-note:new-data-source
34+
tencentcloud_wedata_get_table_columns
35+
```

tencentcloud/provider.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1193,6 +1193,15 @@ func Provider() *schema.Provider {
11931193
"tencentcloud_wedata_project_roles": wedata.DataSourceTencentCloudWedataProjectRoles(),
11941194
"tencentcloud_wedata_tenant_roles": wedata.DataSourceTencentCloudWedataTenantRoles(),
11951195
"tencentcloud_wedata_resource_group_metrics": wedata.DataSourceTencentCloudWedataResourceGroupMetrics(),
1196+
"tencentcloud_wedata_list_lineage": wedata.DataSourceTencentCloudWedataListLineage(),
1197+
"tencentcloud_wedata_list_process_lineage": wedata.DataSourceTencentCloudWedataListProcessLineage(),
1198+
"tencentcloud_wedata_list_column_lineage": wedata.DataSourceTencentCloudWedataListColumnLineage(),
1199+
"tencentcloud_wedata_list_catalog": wedata.DataSourceTencentCloudWedataListCatalog(),
1200+
"tencentcloud_wedata_list_database": wedata.DataSourceTencentCloudWedataListDatabase(),
1201+
"tencentcloud_wedata_list_schema": wedata.DataSourceTencentCloudWedataListSchema(),
1202+
"tencentcloud_wedata_list_table": wedata.DataSourceTencentCloudWedataListTable(),
1203+
"tencentcloud_wedata_get_table": wedata.DataSourceTencentCloudWedataGetTable(),
1204+
"tencentcloud_wedata_get_table_columns": wedata.DataSourceTencentCloudWedataGetTableColumns(),
11961205
"tencentcloud_private_dns_records": privatedns.DataSourceTencentCloudPrivateDnsRecords(),
11971206
"tencentcloud_private_dns_private_zone_list": privatedns.DataSourceTencentCloudPrivateDnsPrivateZoneList(),
11981207
"tencentcloud_private_dns_forward_rules": privatedns.DataSourceTencentCloudPrivateDnsForwardRules(),

tencentcloud/provider.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2255,6 +2255,15 @@ tencentcloud_wedata_data_sources
22552255
tencentcloud_wedata_project_roles
22562256
tencentcloud_wedata_tenant_roles
22572257
tencentcloud_wedata_resource_group_metrics
2258+
tencentcloud_wedata_list_lineage
2259+
tencentcloud_wedata_list_process_lineage
2260+
tencentcloud_wedata_list_column_lineage
2261+
tencentcloud_wedata_list_catalog
2262+
tencentcloud_wedata_list_database
2263+
tencentcloud_wedata_list_schema
2264+
tencentcloud_wedata_list_table
2265+
tencentcloud_wedata_get_table
2266+
tencentcloud_wedata_get_table_columns
22582267

22592268
Resource
22602269
tencentcloud_wedata_submit_task_operation
Lines changed: 230 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,230 @@
1+
package wedata
2+
3+
import (
4+
"context"
5+
6+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
7+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
8+
wedatav20250806 "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata/v20250806"
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 DataSourceTencentCloudWedataGetTable() *schema.Resource {
15+
return &schema.Resource{
16+
Read: dataSourceTencentCloudWedataGetTableRead,
17+
Schema: map[string]*schema.Schema{
18+
"table_guid": {
19+
Type: schema.TypeString,
20+
Required: true,
21+
Description: "Table GUID.",
22+
},
23+
24+
"data": {
25+
Type: schema.TypeList,
26+
Computed: true,
27+
Description: "Data table details.",
28+
Elem: &schema.Resource{
29+
Schema: map[string]*schema.Schema{
30+
"guid": {
31+
Type: schema.TypeString,
32+
Computed: true,
33+
Description: "Data table GUID.",
34+
},
35+
"name": {
36+
Type: schema.TypeString,
37+
Computed: true,
38+
Description: "Data table name.",
39+
},
40+
"description": {
41+
Type: schema.TypeString,
42+
Computed: true,
43+
Description: "Data table description.",
44+
},
45+
"database_name": {
46+
Type: schema.TypeString,
47+
Computed: true,
48+
Description: "Database name.",
49+
},
50+
"schema_name": {
51+
Type: schema.TypeString,
52+
Computed: true,
53+
Description: "Database schema name.",
54+
},
55+
"table_type": {
56+
Type: schema.TypeString,
57+
Computed: true,
58+
Description: "Table type.",
59+
},
60+
"create_time": {
61+
Type: schema.TypeString,
62+
Computed: true,
63+
Description: "Creation time.",
64+
},
65+
"update_time": {
66+
Type: schema.TypeString,
67+
Computed: true,
68+
Description: "Update time.",
69+
},
70+
"technical_metadata": {
71+
Type: schema.TypeList,
72+
Computed: true,
73+
Description: "Technical metadata of the table.",
74+
Elem: &schema.Resource{
75+
Schema: map[string]*schema.Schema{
76+
"owner": {
77+
Type: schema.TypeString,
78+
Computed: true,
79+
Description: "Responsible person.",
80+
},
81+
"location": {
82+
Type: schema.TypeString,
83+
Computed: true,
84+
Description: "Data table location.",
85+
},
86+
"storage_size": {
87+
Type: schema.TypeInt,
88+
Computed: true,
89+
Description: "Storage size.",
90+
},
91+
},
92+
},
93+
},
94+
"business_metadata": {
95+
Type: schema.TypeList,
96+
Computed: true,
97+
Description: "Business metadata of the table.",
98+
Elem: &schema.Resource{
99+
Schema: map[string]*schema.Schema{
100+
"tag_names": {
101+
Type: schema.TypeSet,
102+
Computed: true,
103+
Description: "Tag names.",
104+
Elem: &schema.Schema{
105+
Type: schema.TypeString,
106+
},
107+
},
108+
},
109+
},
110+
},
111+
},
112+
},
113+
},
114+
115+
"result_output_file": {
116+
Type: schema.TypeString,
117+
Optional: true,
118+
Description: "Used to save results.",
119+
},
120+
},
121+
}
122+
}
123+
124+
func dataSourceTencentCloudWedataGetTableRead(d *schema.ResourceData, meta interface{}) error {
125+
defer tccommon.LogElapsed("data_source.tencentcloud_wedata_get_table.read")()
126+
defer tccommon.InconsistentCheck(d, meta)()
127+
128+
var (
129+
logId = tccommon.GetLogId(nil)
130+
ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
131+
service = WedataService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
132+
tableGuid string
133+
)
134+
135+
paramMap := make(map[string]interface{})
136+
if v, ok := d.GetOk("table_guid"); ok {
137+
paramMap["TableGuid"] = helper.String(v.(string))
138+
tableGuid = v.(string)
139+
}
140+
141+
var respData *wedatav20250806.TableInfo
142+
reqErr := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError {
143+
result, e := service.DescribeWedataGetTableByFilter(ctx, paramMap)
144+
if e != nil {
145+
return tccommon.RetryError(e)
146+
}
147+
148+
respData = result
149+
return nil
150+
})
151+
if reqErr != nil {
152+
return reqErr
153+
}
154+
155+
tmpList := make([]map[string]interface{}, 0)
156+
if respData != nil {
157+
dataMap := map[string]interface{}{}
158+
if respData.Guid != nil {
159+
dataMap["guid"] = respData.Guid
160+
}
161+
162+
if respData.Name != nil {
163+
dataMap["name"] = respData.Name
164+
}
165+
166+
if respData.Description != nil {
167+
dataMap["description"] = respData.Description
168+
}
169+
170+
if respData.DatabaseName != nil {
171+
dataMap["database_name"] = respData.DatabaseName
172+
}
173+
174+
if respData.SchemaName != nil {
175+
dataMap["schema_name"] = respData.SchemaName
176+
}
177+
178+
if respData.TableType != nil {
179+
dataMap["table_type"] = respData.TableType
180+
}
181+
182+
if respData.CreateTime != nil {
183+
dataMap["create_time"] = respData.CreateTime
184+
}
185+
186+
if respData.UpdateTime != nil {
187+
dataMap["update_time"] = respData.UpdateTime
188+
}
189+
190+
technicalMetadataMap := map[string]interface{}{}
191+
if respData.TechnicalMetadata != nil {
192+
if respData.TechnicalMetadata.Owner != nil {
193+
technicalMetadataMap["owner"] = respData.TechnicalMetadata.Owner
194+
}
195+
196+
if respData.TechnicalMetadata.Location != nil {
197+
technicalMetadataMap["location"] = respData.TechnicalMetadata.Location
198+
}
199+
200+
if respData.TechnicalMetadata.StorageSize != nil {
201+
technicalMetadataMap["storage_size"] = respData.TechnicalMetadata.StorageSize
202+
}
203+
204+
dataMap["technical_metadata"] = []interface{}{technicalMetadataMap}
205+
}
206+
207+
businessMetadataMap := map[string]interface{}{}
208+
if respData.BusinessMetadata != nil {
209+
if respData.BusinessMetadata.TagNames != nil {
210+
businessMetadataMap["tag_names"] = respData.BusinessMetadata.TagNames
211+
}
212+
213+
dataMap["business_metadata"] = []interface{}{businessMetadataMap}
214+
}
215+
216+
tmpList = append(tmpList, dataMap)
217+
}
218+
219+
_ = d.Set("data", tmpList)
220+
221+
d.SetId(tableGuid)
222+
output, ok := d.GetOk("result_output_file")
223+
if ok && output.(string) != "" {
224+
if e := tccommon.WriteToFile(output.(string), tmpList); e != nil {
225+
return e
226+
}
227+
}
228+
229+
return nil
230+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
Use this data source to query detailed information of WeData get table
2+
3+
Example Usage
4+
5+
```hcl
6+
data "tencentcloud_wedata_get_table" "example" {
7+
table_guid = "ktDR4ymhp2_nlfClXhwxRQ"
8+
}
9+
```

0 commit comments

Comments
 (0)