Skip to content

Commit ce7e478

Browse files
committed
add
1 parent 19da728 commit ce7e478

File tree

39 files changed

+11670
-940
lines changed

39 files changed

+11670
-940
lines changed

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.36
49+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.39
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.31
101+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.1.39
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: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -957,6 +957,8 @@ 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/controlcenter v1.0.993 h1:WlPgXldQCxt7qi5Xrc6j6zTrsXWzN5BcOGs7Irq7fwQ=
961963
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993/go.mod h1:Z9U8zNtyuyKhjS0698wqsrG/kLx1TQ5CEixXBwVe7xY=
962964
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860 h1:F3esKBIT3HW9+7Gt8cVgf8X06VdGIczpgLBUECzSEzU=
@@ -1090,6 +1092,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.0.792 h1:NLgK
10901092
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.0.792/go.mod h1:Xz6vPV3gHlzPwtEcmWdWO1EUXJDgn2p7UMCXbJiVioQ=
10911093
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.1.31 h1:5mDWm86NA0etP4ictillWtZgyCHiK9hpCmj+qEYeowc=
10921094
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.1.31/go.mod h1:+DhuFrNBquvUs+QSbtVMe1tzJZq5donfipnzo3Luo9Y=
1095+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.1.39 h1:24yWzFxh/KW9CvYv9MLVFyUOIR6xqzO4meXGsP5t8Jo=
1096+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.1.39/go.mod h1:32C+QaoFmT1pvuIv1bkPi8Nc0f5btvMgzwX5AGwG74M=
10931097
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199 h1:hMBLtiJPnZ9GvA677cTB6ELBR6B68wCR2QY1sNoGQc4=
10941098
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199/go.mod h1:nnY91/H3j/Gu7V/oCA6Zeg8T5D3q36EUdBh4EjmHwqY=
10951099
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
@@ -1160,6 +1160,11 @@ func Provider() *schema.Provider {
11601160
"tencentcloud_eb_plateform_event_template": eb.DataSourceTencentCloudEbPlateformEventTemplate(),
11611161
"tencentcloud_wedata_rule_templates": wedata.DataSourceTencentCloudWedataRuleTemplates(),
11621162
"tencentcloud_wedata_data_source_list": wedata.DataSourceTencentCloudWedataDataSourceList(),
1163+
"tencentcloud_wedata_projects": wedata.DataSourceTencentCloudWedataProjects(),
1164+
"tencentcloud_wedata_data_sources": wedata.DataSourceTencentCloudWedataDataSources(),
1165+
"tencentcloud_wedata_project_roles": wedata.DataSourceTencentCloudWedataProjectRoles(),
1166+
"tencentcloud_wedata_tenant_roles": wedata.DataSourceTencentCloudWedataTenantRoles(),
1167+
"tencentcloud_wedata_resource_group_metrics": wedata.DataSourceTencentCloudWedataResourceGroupMetrics(),
11631168
"tencentcloud_private_dns_records": privatedns.DataSourceTencentCloudPrivateDnsRecords(),
11641169
"tencentcloud_private_dns_private_zone_list": privatedns.DataSourceTencentCloudPrivateDnsPrivateZoneList(),
11651170
"tencentcloud_private_dns_forward_rules": privatedns.DataSourceTencentCloudPrivateDnsForwardRules(),
@@ -2282,6 +2287,11 @@ func Provider() *schema.Provider {
22822287
"tencentcloud_wedata_dq_rule": wedata.ResourceTencentCloudWedataDqRule(),
22832288
"tencentcloud_wedata_integration_offline_task": wedata.ResourceTencentCloudWedataIntegrationOfflineTask(),
22842289
"tencentcloud_wedata_integration_realtime_task": wedata.ResourceTencentCloudWedataIntegrationRealtimeTask(),
2290+
"tencentcloud_wedata_project": wedata.ResourceTencentCloudWedataProject(),
2291+
"tencentcloud_wedata_data_source": wedata.ResourceTencentCloudWedataDataSource(),
2292+
"tencentcloud_wedata_project_member": wedata.ResourceTencentCloudWedataProjectMember(),
2293+
"tencentcloud_wedata_resource_group": wedata.ResourceTencentCloudWedataResourceGroup(),
2294+
"tencentcloud_wedata_resource_group_to_project_attachment": wedata.ResourceTencentCloudWedataResourceGroupToProjectAttachment(),
22852295
"tencentcloud_wedata_integration_task_node": wedata.ResourceTencentCloudWedataIntegrationTaskNode(),
22862296
"tencentcloud_cfw_address_template": cfw.ResourceTencentCloudCfwAddressTemplate(),
22872297
"tencentcloud_cfw_block_ignore": cfw.ResourceTencentCloudCfwBlockIgnore(),
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+
```
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package wedata_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 TestAccTencentCloudWedataDataSourcesDataSource_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: testAccWedataDataSourcesDataSource,
20+
Check: resource.ComposeTestCheckFunc(
21+
tcacctest.AccCheckTencentCloudDataSourceID("data.tencentcloud_wedata_data_sources.example"),
22+
),
23+
}},
24+
})
25+
}
26+
27+
const testAccWedataDataSourcesDataSource = `
28+
data "tencentcloud_wedata_data_sources" "example" {
29+
project_id = "2982667120655491072"
30+
name = "tf_example"
31+
display_name = "display_name"
32+
type = ["MYSQL", "ORACLE"]
33+
creator = "user"
34+
}
35+
`

0 commit comments

Comments
 (0)