Skip to content

Commit 4784c55

Browse files
authored
feat(wedata): [127477929] add new resource (#3549)
* add * add * add * add * add * add * add
1 parent 6cdcabe commit 4784c55

File tree

55 files changed

+5290
-129
lines changed

Some content is hidden

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

55 files changed

+5290
-129
lines changed

.changelog/3549.txt

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
```release-note:new-data-source
2+
tencentcloud_wedata_projects
3+
```
4+
5+
```release-note:new-data-source
6+
tencentcloud_wedata_data_sources
7+
```
8+
9+
```release-note:new-data-source
10+
tencentcloud_wedata_project_roles
11+
```
12+
13+
```release-note:new-data-source
14+
tencentcloud_wedata_tenant_roles
15+
```
16+
17+
```release-note:new-data-source
18+
tencentcloud_wedata_resource_group_metrics
19+
```
20+
21+
```release-note:new-resource
22+
tencentcloud_wedata_project
23+
```
24+
25+
```release-note:new-resource
26+
tencentcloud_wedata_project_member
27+
```

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ require (
4646
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1107
4747
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.1033
4848
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1148
49-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.40
49+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.42
5050
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.1206
5151
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762
5252
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.1161
@@ -98,7 +98,7 @@ require (
9898
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.860
9999
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.1.14
100100
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.1170
101-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.1.40
101+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.1.42
102102
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199
103103
github.com/tencentyun/cos-go-sdk-v5 v0.7.66
104104
github.com/yangwenmai/ratelimit v0.0.0-20180104140304-44221c2292e1

go.sum

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -957,8 +957,12 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.35 h1:gcnqn
957957
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.35/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
958958
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.36 h1:9zBwuj7prOhpObcw8idPnTn78TbNeK2RfAYoUaB6O/o=
959959
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.36/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
960+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.39 h1:D7qtbjv0+L8r+Wrenk+SAsAwLVPRUkePROGWUrZY5QE=
961+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.39/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
960962
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.40 h1:mNP6SgjUucirQfsAtChZ0bG6Cd2XcgJvHXW8IaChxtM=
961963
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.40/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
964+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.42 h1:zOTQCji3vmxrZPkDPfqs2cklL0ZwZYABvWPdm1NQ9lk=
965+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.42/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
962966
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993 h1:WlPgXldQCxt7qi5Xrc6j6zTrsXWzN5BcOGs7Irq7fwQ=
963967
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993/go.mod h1:Z9U8zNtyuyKhjS0698wqsrG/kLx1TQ5CEixXBwVe7xY=
964968
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860 h1:F3esKBIT3HW9+7Gt8cVgf8X06VdGIczpgLBUECzSEzU=
@@ -1092,8 +1096,12 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.0.792 h1:NLgK
10921096
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.0.792/go.mod h1:Xz6vPV3gHlzPwtEcmWdWO1EUXJDgn2p7UMCXbJiVioQ=
10931097
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.1.31 h1:5mDWm86NA0etP4ictillWtZgyCHiK9hpCmj+qEYeowc=
10941098
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.1.31/go.mod h1:+DhuFrNBquvUs+QSbtVMe1tzJZq5donfipnzo3Luo9Y=
1099+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.1.39 h1:24yWzFxh/KW9CvYv9MLVFyUOIR6xqzO4meXGsP5t8Jo=
1100+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.1.39/go.mod h1:32C+QaoFmT1pvuIv1bkPi8Nc0f5btvMgzwX5AGwG74M=
10951101
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.1.40 h1:ZHESnPRiyV9+HYSArZKPmliSjy85/El899LKGSsyxSw=
10961102
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.1.40/go.mod h1:ROVq1WJulfJonhjNE6olW+xEBHPxqgAoYhpMZ7gFHO8=
1103+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.1.42 h1:UccqwoaGyksPVmFyCFOWLCpLJqpcLFvG/9KnZne2zR8=
1104+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.1.42/go.mod h1:w5V5Vo3d+7UVFIEq3crWPb7tElu2TaG23u+Fq/eo26w=
10971105
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199 h1:hMBLtiJPnZ9GvA677cTB6ELBR6B68wCR2QY1sNoGQc4=
10981106
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199/go.mod h1:nnY91/H3j/Gu7V/oCA6Zeg8T5D3q36EUdBh4EjmHwqY=
10991107
github.com/tencentyun/cos-go-sdk-v5 v0.7.66 h1:O4O6EsozBoDjxWbltr3iULgkI7WPj/BFNlYTXDuE64E=

tencentcloud/provider.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1188,6 +1188,11 @@ func Provider() *schema.Provider {
11881188
"tencentcloud_wedata_task_instance_executions": wedata.DataSourceTencentCloudWedataTaskInstanceExecutions(),
11891189
"tencentcloud_wedata_data_source_list": wedata.DataSourceTencentCloudWedataDataSourceList(),
11901190
"tencentcloud_wedata_sql_script_runs": wedata.DataSourceTencentCloudWedataSqlScriptRuns(),
1191+
"tencentcloud_wedata_projects": wedata.DataSourceTencentCloudWedataProjects(),
1192+
"tencentcloud_wedata_data_sources": wedata.DataSourceTencentCloudWedataDataSources(),
1193+
"tencentcloud_wedata_project_roles": wedata.DataSourceTencentCloudWedataProjectRoles(),
1194+
"tencentcloud_wedata_tenant_roles": wedata.DataSourceTencentCloudWedataTenantRoles(),
1195+
"tencentcloud_wedata_resource_group_metrics": wedata.DataSourceTencentCloudWedataResourceGroupMetrics(),
11911196
"tencentcloud_private_dns_records": privatedns.DataSourceTencentCloudPrivateDnsRecords(),
11921197
"tencentcloud_private_dns_private_zone_list": privatedns.DataSourceTencentCloudPrivateDnsPrivateZoneList(),
11931198
"tencentcloud_private_dns_forward_rules": privatedns.DataSourceTencentCloudPrivateDnsForwardRules(),
@@ -2323,6 +2328,11 @@ func Provider() *schema.Provider {
23232328
"tencentcloud_wedata_ops_task": wedata.ResourceTencentCloudWedataOpsTask(),
23242329
"tencentcloud_wedata_integration_offline_task": wedata.ResourceTencentCloudWedataIntegrationOfflineTask(),
23252330
"tencentcloud_wedata_integration_realtime_task": wedata.ResourceTencentCloudWedataIntegrationRealtimeTask(),
2331+
"tencentcloud_wedata_project": wedata.ResourceTencentCloudWedataProject(),
2332+
"tencentcloud_wedata_data_source": wedata.ResourceTencentCloudWedataDataSource(),
2333+
"tencentcloud_wedata_project_member": wedata.ResourceTencentCloudWedataProjectMember(),
2334+
"tencentcloud_wedata_resource_group": wedata.ResourceTencentCloudWedataResourceGroup(),
2335+
"tencentcloud_wedata_resource_group_to_project_attachment": wedata.ResourceTencentCloudWedataResourceGroupToProjectAttachment(),
23262336
"tencentcloud_wedata_integration_task_node": wedata.ResourceTencentCloudWedataIntegrationTaskNode(),
23272337
"tencentcloud_wedata_sql_folder": wedata.ResourceTencentCloudWedataSqlFolder(),
23282338
"tencentcloud_wedata_sql_script": wedata.ResourceTencentCloudWedataSqlScript(),

tencentcloud/provider.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2249,6 +2249,11 @@ tencentcloud_wedata_downstream_task_instances
22492249
tencentcloud_wedata_task_instance_executions
22502250
tencentcloud_wedata_data_source_list
22512251
tencentcloud_wedata_sql_script_runs
2252+
tencentcloud_wedata_projects
2253+
tencentcloud_wedata_data_sources
2254+
tencentcloud_wedata_project_roles
2255+
tencentcloud_wedata_tenant_roles
2256+
tencentcloud_wedata_resource_group_metrics
22522257

22532258
Resource
22542259
tencentcloud_wedata_submit_task_operation
@@ -2278,6 +2283,8 @@ tencentcloud_wedata_code_folder
22782283
tencentcloud_wedata_code_file
22792284
tencentcloud_wedata_run_sql_script_operation
22802285
tencentcloud_wedata_stop_sql_script_run_operation
2286+
tencentcloud_wedata_project
2287+
tencentcloud_wedata_project_member
22812288

22822289
Cloud Firewall(CFW)
22832290
Data Source
Lines changed: 268 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,268 @@
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 DataSourceTencentCloudWedataDataSources() *schema.Resource {
15+
return &schema.Resource{
16+
Read: dataSourceTencentCloudWedataDataSourcesRead,
17+
Schema: map[string]*schema.Schema{
18+
"project_id": {
19+
Type: schema.TypeString,
20+
Required: true,
21+
Description: "Project ID.",
22+
},
23+
24+
"name": {
25+
Type: schema.TypeString,
26+
Optional: true,
27+
Description: "Data source name.",
28+
},
29+
30+
"display_name": {
31+
Type: schema.TypeString,
32+
Optional: true,
33+
Description: "Data source display name.",
34+
},
35+
36+
"type": {
37+
Type: schema.TypeSet,
38+
Optional: true,
39+
Description: "Data source type: enumeration values.\n\n- MYSQL\n- TENCENT_MYSQL\n- POSTGRE\n- ORACLE\n- SQLSERVER\n- FTP\n- HIVE\n- HUDI\n- HDFS\n- ICEBERG\n- KAFKA\n- HBASE\n- SPARK\n- VIRTUAL\n- TBASE\n- DB2\n- DM\n- GAUSSDB\n- GBASE\n- IMPALA\n- ES\n- TENCENT_ES\n- GREENPLUM\n- PHOENIX\n- SAP_HANA\n- SFTP\n- OCEANBASE\n- CLICKHOUSE\n- KUDU\n- VERTICA\n- REDIS\n- COS\n- DLC\n- DORIS\n- CKAFKA\n- S3\n- TDSQL\n- TDSQL_MYSQL\n- MONGODB\n- TENCENT_MONGODB\n- REST_API\n- SuperSQL\n- PRESTO\n- TiDB\n- StarRocks\n- Trino\n- Kyuubi\n- TCHOUSE_X\n- TCHOUSE_P\n- TCHOUSE_C\n- TCHOUSE_D\n- INFLUXDB\n- BIG_QUERY\n- SSH\n- BLOB.",
40+
Elem: &schema.Schema{
41+
Type: schema.TypeString,
42+
},
43+
},
44+
45+
"creator": {
46+
Type: schema.TypeString,
47+
Optional: true,
48+
Description: "Creator.",
49+
},
50+
51+
"items": {
52+
Type: schema.TypeList,
53+
Computed: true,
54+
Description: "Data source list.",
55+
Elem: &schema.Resource{
56+
Schema: map[string]*schema.Schema{
57+
"project_id": {
58+
Type: schema.TypeString,
59+
Computed: true,
60+
Description: "Belonging project ID.",
61+
},
62+
"id": {
63+
Type: schema.TypeInt,
64+
Computed: true,
65+
Description: "Data source ID.",
66+
},
67+
"type": {
68+
Type: schema.TypeString,
69+
Computed: true,
70+
Description: "Data source type: enumeration values.",
71+
},
72+
"name": {
73+
Type: schema.TypeString,
74+
Computed: true,
75+
Description: "Data source name.",
76+
},
77+
"display_name": {
78+
Type: schema.TypeString,
79+
Computed: true,
80+
Description: "Data source display name, for visual viewing.",
81+
},
82+
"description": {
83+
Type: schema.TypeString,
84+
Computed: true,
85+
Description: "Data source description information.",
86+
},
87+
"project_name": {
88+
Type: schema.TypeString,
89+
Computed: true,
90+
Description: "Belonging project name.",
91+
},
92+
"create_user": {
93+
Type: schema.TypeString,
94+
Computed: true,
95+
Description: "Data source creator.",
96+
},
97+
"create_time": {
98+
Type: schema.TypeString,
99+
Computed: true,
100+
Description: "Time.",
101+
},
102+
"modify_user": {
103+
Type: schema.TypeString,
104+
Computed: true,
105+
Description: "Modifier.",
106+
},
107+
"modify_time": {
108+
Type: schema.TypeString,
109+
Computed: true,
110+
Description: "Modification time.",
111+
},
112+
"prod_con_properties": {
113+
Type: schema.TypeString,
114+
Computed: true,
115+
Description: "Data source configuration information, stored in JSON KV format, varies by data source type.",
116+
},
117+
"dev_con_properties": {
118+
Type: schema.TypeString,
119+
Computed: true,
120+
Description: "Same as params, contains data for development data source.",
121+
},
122+
"category": {
123+
Type: schema.TypeString,
124+
Computed: true,
125+
Description: "Data source category:\n\n- DB - custom source\n- CLUSTER - system source.",
126+
},
127+
},
128+
},
129+
},
130+
131+
"result_output_file": {
132+
Type: schema.TypeString,
133+
Optional: true,
134+
Description: "Used to save results.",
135+
},
136+
},
137+
}
138+
}
139+
140+
func dataSourceTencentCloudWedataDataSourcesRead(d *schema.ResourceData, meta interface{}) error {
141+
defer tccommon.LogElapsed("data_source.tencentcloud_wedata_data_sources.read")()
142+
defer tccommon.InconsistentCheck(d, meta)()
143+
144+
var (
145+
logId = tccommon.GetLogId(nil)
146+
ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
147+
service = WedataService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
148+
projectId string
149+
)
150+
151+
paramMap := make(map[string]interface{})
152+
if v, ok := d.GetOk("project_id"); ok {
153+
paramMap["ProjectId"] = helper.String(v.(string))
154+
projectId = v.(string)
155+
}
156+
157+
if v, ok := d.GetOk("name"); ok {
158+
paramMap["Name"] = helper.String(v.(string))
159+
}
160+
161+
if v, ok := d.GetOk("display_name"); ok {
162+
paramMap["DisplayName"] = helper.String(v.(string))
163+
}
164+
165+
if v, ok := d.GetOk("type"); ok {
166+
typeList := []*string{}
167+
typeSet := v.(*schema.Set).List()
168+
for i := range typeSet {
169+
tmpType := typeSet[i].(string)
170+
typeList = append(typeList, helper.String(tmpType))
171+
}
172+
173+
paramMap["Type"] = typeList
174+
}
175+
176+
if v, ok := d.GetOk("creator"); ok {
177+
paramMap["Creator"] = helper.String(v.(string))
178+
}
179+
180+
var respData []*wedatav20250806.DataSource
181+
reqErr := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError {
182+
result, e := service.DescribeWedataDataSourcesByFilter(ctx, paramMap)
183+
if e != nil {
184+
return tccommon.RetryError(e)
185+
}
186+
187+
respData = result
188+
return nil
189+
})
190+
191+
if reqErr != nil {
192+
return reqErr
193+
}
194+
195+
itemsList := make([]map[string]interface{}, 0, len(respData))
196+
for _, items := range respData {
197+
itemsMap := map[string]interface{}{}
198+
if items.ProjectId != nil {
199+
itemsMap["project_id"] = items.ProjectId
200+
}
201+
202+
if items.Id != nil {
203+
itemsMap["id"] = items.Id
204+
}
205+
206+
if items.Type != nil {
207+
itemsMap["type"] = items.Type
208+
}
209+
210+
if items.Name != nil {
211+
itemsMap["name"] = items.Name
212+
}
213+
214+
if items.DisplayName != nil {
215+
itemsMap["display_name"] = items.DisplayName
216+
}
217+
218+
if items.Description != nil {
219+
itemsMap["description"] = items.Description
220+
}
221+
222+
if items.ProjectName != nil {
223+
itemsMap["project_name"] = items.ProjectName
224+
}
225+
226+
if items.CreateUser != nil {
227+
itemsMap["create_user"] = items.CreateUser
228+
}
229+
230+
if items.CreateTime != nil {
231+
itemsMap["create_time"] = items.CreateTime
232+
}
233+
234+
if items.ModifyUser != nil {
235+
itemsMap["modify_user"] = items.ModifyUser
236+
}
237+
238+
if items.ModifyTime != nil {
239+
itemsMap["modify_time"] = items.ModifyTime
240+
}
241+
242+
if items.ProdConProperties != nil {
243+
itemsMap["prod_con_properties"] = items.ProdConProperties
244+
}
245+
246+
if items.DevConProperties != nil {
247+
itemsMap["dev_con_properties"] = items.DevConProperties
248+
}
249+
250+
if items.Category != nil {
251+
itemsMap["category"] = items.Category
252+
}
253+
254+
itemsList = append(itemsList, itemsMap)
255+
}
256+
257+
_ = d.Set("items", itemsList)
258+
259+
d.SetId(projectId)
260+
output, ok := d.GetOk("result_output_file")
261+
if ok && output.(string) != "" {
262+
if e := tccommon.WriteToFile(output.(string), itemsList); e != nil {
263+
return e
264+
}
265+
}
266+
267+
return nil
268+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
Use this data source to query detailed information of WeData data sources
2+
3+
Example Usage
4+
5+
```hcl
6+
data "tencentcloud_wedata_data_sources" "example" {
7+
project_id = "2982667120655491072"
8+
name = "tf_example"
9+
display_name = "display_name"
10+
type = ["MYSQL", "ORACLE"]
11+
creator = "user"
12+
}
13+
```

0 commit comments

Comments
 (0)