Skip to content

Commit 0d74d0f

Browse files
authored
feat(igtm): [127781474] add new resource (#3608)
* add * add * add * add * add
1 parent 7160fb2 commit 0d74d0f

File tree

51 files changed

+5242
-22
lines changed

Some content is hidden

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

51 files changed

+5242
-22
lines changed

.changelog/3607.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
```release-note:new-datasource
1+
```release-note:new-data-source
22
tencentcloud_igtm_address_pool_list
33
```
44

.changelog/3608.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_igtm_instance_list
3+
```
4+
5+
```release-note:new-data-source
6+
tencentcloud_igtm_monitors
7+
```
8+
9+
```release-note:new-data-source
10+
tencentcloud_igtm_detectors
11+
```
12+
13+
```release-note:new-data-source
14+
tencentcloud_igtm_strategy_list
15+
```
16+
17+
```release-note:new-data-source
18+
tencentcloud_igtm_instance_package_list
19+
```
20+
21+
```release-note:new-data-source
22+
tencentcloud_igtm_detect_task_package_list
23+
```
24+
25+
```release-note:new-resource
26+
tencentcloud_igtm_instance
27+
```
28+
29+
```release-note:new-resource
30+
tencentcloud_igtm_monitor
31+
```
32+
33+
```release-note:new-resource
34+
tencentcloud_igtm_strategy
35+
```

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ require (
115115
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860
116116
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dasb v1.0.970
117117
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/gwlb v1.0.1127
118+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/igtm v1.3.3
118119
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mqtt v1.0.1136
119120
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/oceanus v1.0.831
120121
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/region v1.0.920
@@ -313,7 +314,6 @@ require (
313314
github.com/subosito/gotenv v1.4.1 // indirect
314315
github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c // indirect
315316
github.com/tdakkota/asciicheck v0.2.0 // indirect
316-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/igtm v1.1.27 // indirect
317317
github.com/tetafro/godot v1.4.11 // indirect
318318
github.com/tidwall/gjson v1.17.0 // indirect
319319
github.com/tidwall/match v1.1.1 // indirect

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1033,6 +1033,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/gwlb v1.0.1127 h1:1ZhrN
10331033
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/gwlb v1.0.1127/go.mod h1:HSfd/mm8VyXn7VTe3tOvPgsumbsfeYcG5QgaCI1vsRk=
10341034
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/igtm v1.1.27 h1:XuNVpfyHcmyAavX06p8w7FLjY4eT70ndPZbazxRpbCY=
10351035
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/igtm v1.1.27/go.mod h1:26rOgYylbB4qROMOuYaOzUDF8CSKQi022SbX/FB+NHQ=
1036+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/igtm v1.3.3 h1:zIgjKSutqWwnLEK3mCMbvthtI2uf5/NL6xhVz+09GC4=
1037+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/igtm v1.3.3/go.mod h1:jog/RwpOLs2SbKz1iSenpjeQoVMPJg0F6D/0wa+qLR4=
10361038
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/kms v1.0.563/go.mod h1:uom4Nvi9W+Qkom0exYiJ9VWJjXwyxtPYTkKkaLMlfE0=
10371039
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/kms v1.0.1145 h1:/wV6YoCqDU1XXci7kxt/k+RTwx2xLzcxH4NYbC1UT6k=
10381040
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/kms v1.0.1145/go.mod h1:tUblC9MYww0ZRScBkLYINJ7F1fxAv/Ymmpbjn05RTPY=

tencentcloud/provider.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1300,7 +1300,13 @@ func Provider() *schema.Provider {
13001300
"tencentcloud_mqtt_instance_detail": mqtt.DataSourceTencentCloudMqttInstanceDetail(),
13011301
"tencentcloud_mqtt_topics": mqtt.DataSourceTencentCloudMqttTopics(),
13021302
"tencentcloud_billing_budget_operation_log": billing.DataSourceTencentCloudBillingBudgetOperationLog(),
1303+
"tencentcloud_igtm_instance_list": igtm.DataSourceTencentCloudIgtmInstanceList(),
13031304
"tencentcloud_igtm_address_pool_list": igtm.DataSourceTencentCloudIgtmAddressPoolList(),
1305+
"tencentcloud_igtm_monitors": igtm.DataSourceTencentCloudIgtmMonitors(),
1306+
"tencentcloud_igtm_detectors": igtm.DataSourceTencentCloudIgtmDetectors(),
1307+
"tencentcloud_igtm_strategy_list": igtm.DataSourceTencentCloudIgtmStrategyList(),
1308+
"tencentcloud_igtm_instance_package_list": igtm.DataSourceTencentCloudIgtmInstancePackageList(),
1309+
"tencentcloud_igtm_detect_task_package_list": igtm.DataSourceTencentCloudIgtmDetectTaskPackageList(),
13041310
},
13051311

13061312
ResourcesMap: map[string]*schema.Resource{
@@ -2472,7 +2478,10 @@ func Provider() *schema.Provider {
24722478
"tencentcloud_mqtt_http_authenticator": mqtt.ResourceTencentCloudMqttHttpAuthenticator(),
24732479
"tencentcloud_billing_allocation_tag": billing.ResourceTencentCloudBillingAllocationTag(),
24742480
"tencentcloud_billing_budget": billing.ResourceTencentCloudBillingBudget(),
2481+
"tencentcloud_igtm_instance": igtm.ResourceTencentCloudIgtmInstance(),
24752482
"tencentcloud_igtm_address_pool": igtm.ResourceTencentCloudIgtmAddressPool(),
2483+
"tencentcloud_igtm_monitor": igtm.ResourceTencentCloudIgtmMonitor(),
2484+
"tencentcloud_igtm_strategy": igtm.ResourceTencentCloudIgtmStrategy(),
24762485
},
24772486

24782487
ConfigureFunc: providerConfigure,

tencentcloud/provider.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2447,6 +2447,15 @@ tencentcloud_tcss_refresh_task_operation
24472447

24482448
Intelligent Global Traffic Manager(IGTM)
24492449
Data Source
2450+
tencentcloud_igtm_instance_list
24502451
tencentcloud_igtm_address_pool_list
2452+
tencentcloud_igtm_monitors
2453+
tencentcloud_igtm_detectors
2454+
tencentcloud_igtm_strategy_list
2455+
tencentcloud_igtm_instance_package_list
2456+
tencentcloud_igtm_detect_task_package_list
24512457
Resource
2458+
tencentcloud_igtm_instance
24522459
tencentcloud_igtm_address_pool
2460+
tencentcloud_igtm_monitor
2461+
tencentcloud_igtm_strategy

tencentcloud/services/igtm/data_source_tc_igtm_address_pool_list.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ func DataSourceTencentCloudIgtmAddressPoolList() *schema.Resource {
1818
"filters": {
1919
Type: schema.TypeList,
2020
Optional: true,
21-
Description: "Alert filter conditions: PoolName: Address pool name; MonitorId: Monitor ID.",
21+
Description: "Alert filter conditions.",
2222
Elem: &schema.Resource{
2323
Schema: map[string]*schema.Schema{
2424
"name": {
2525
Type: schema.TypeString,
2626
Required: true,
27-
Description: "Filter field name, supported list as follows:\n- type: Main resource type, CDN.\n- instanceId: IGTM instance ID. This is a required parameter, failure to provide will cause interface query failure.",
27+
Description: "Filter field name, supported list as follows:\n- PoolName: Address pool name.\n- MonitorId: Monitor ID. This is a required parameter, failure to provide will cause interface query failure.",
2828
},
2929
"value": {
3030
Type: schema.TypeSet,
Lines changed: 265 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,265 @@
1+
package igtm
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+
igtmv20231024 "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/igtm/v20231024"
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 DataSourceTencentCloudIgtmDetectTaskPackageList() *schema.Resource {
15+
return &schema.Resource{
16+
Read: dataSourceTencentCloudIgtmDetectTaskPackageListRead,
17+
Schema: map[string]*schema.Schema{
18+
"filters": {
19+
Type: schema.TypeList,
20+
Optional: true,
21+
Description: "Detect task filter conditions.",
22+
Elem: &schema.Resource{
23+
Schema: map[string]*schema.Schema{
24+
"name": {
25+
Type: schema.TypeString,
26+
Required: true,
27+
Description: "Filter field name, supported list as follows:\n- ResourceId: detect task resource id.\n- PeriodStart: minimum expiration time.\n- PeriodEnd: maximum expiration time.",
28+
},
29+
"value": {
30+
Type: schema.TypeSet,
31+
Required: true,
32+
Description: "Filter field value.",
33+
Elem: &schema.Schema{
34+
Type: schema.TypeString,
35+
},
36+
},
37+
"fuzzy": {
38+
Type: schema.TypeBool,
39+
Optional: true,
40+
Description: "Whether to enable fuzzy query, only supports filter field name as domain.\nWhen fuzzy query is enabled, maximum Value length is 1, otherwise maximum Value length is 5. (Reserved field, not currently used).",
41+
},
42+
},
43+
},
44+
},
45+
46+
"task_package_set": {
47+
Type: schema.TypeList,
48+
Computed: true,
49+
Description: "Detect task package list.",
50+
Elem: &schema.Resource{
51+
Schema: map[string]*schema.Schema{
52+
"resource_id": {
53+
Type: schema.TypeString,
54+
Computed: true,
55+
Description: "Resource ID.",
56+
},
57+
"resource_type": {
58+
Type: schema.TypeString,
59+
Computed: true,
60+
Description: "Resource type\nTASK Detect task.",
61+
},
62+
"quota": {
63+
Type: schema.TypeInt,
64+
Computed: true,
65+
Description: "Quota.",
66+
},
67+
"current_deadline": {
68+
Type: schema.TypeString,
69+
Computed: true,
70+
Description: "Package expiration time.",
71+
},
72+
"create_time": {
73+
Type: schema.TypeString,
74+
Computed: true,
75+
Description: "Package creation time.",
76+
},
77+
"is_expire": {
78+
Type: schema.TypeInt,
79+
Computed: true,
80+
Description: "Whether expired 0 no 1 yes.",
81+
},
82+
"status": {
83+
Type: schema.TypeString,
84+
Computed: true,
85+
Description: "Status\nENABLED: Normal\nISOLATED: Isolated\nDESTROYED: Destroyed\nREFUNDED: Refunded.",
86+
},
87+
"auto_renew_flag": {
88+
Type: schema.TypeInt,
89+
Computed: true,
90+
Description: "Whether auto-renew 0 no 1 yes.",
91+
},
92+
"remark": {
93+
Type: schema.TypeString,
94+
Computed: true,
95+
Description: "Remark.",
96+
},
97+
"cost_item_list": {
98+
Type: schema.TypeList,
99+
Computed: true,
100+
Description: "Billing item.",
101+
Elem: &schema.Resource{
102+
Schema: map[string]*schema.Schema{
103+
"cost_name": {
104+
Type: schema.TypeString,
105+
Computed: true,
106+
Description: "Billing item name.",
107+
},
108+
"cost_value": {
109+
Type: schema.TypeInt,
110+
Computed: true,
111+
Description: "Billing item value.",
112+
},
113+
},
114+
},
115+
},
116+
"group": {
117+
Type: schema.TypeInt,
118+
Computed: true,
119+
Description: "Detect task type: 100 system setting; 200 billing; 300 management system; 110D monitoring migration free task; 120 disaster recovery switch task.",
120+
},
121+
},
122+
},
123+
},
124+
125+
"result_output_file": {
126+
Type: schema.TypeString,
127+
Optional: true,
128+
Description: "Used to save results.",
129+
},
130+
},
131+
}
132+
}
133+
134+
func dataSourceTencentCloudIgtmDetectTaskPackageListRead(d *schema.ResourceData, meta interface{}) error {
135+
defer tccommon.LogElapsed("data_source.tencentcloud_igtm_detect_task_package_list.read")()
136+
defer tccommon.InconsistentCheck(d, meta)()
137+
138+
var (
139+
logId = tccommon.GetLogId(nil)
140+
ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
141+
service = IgtmService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
142+
)
143+
144+
paramMap := make(map[string]interface{})
145+
if v, ok := d.GetOk("filters"); ok {
146+
filtersSet := v.([]interface{})
147+
tmpSet := make([]*igtmv20231024.ResourceFilter, 0, len(filtersSet))
148+
for _, item := range filtersSet {
149+
filtersMap := item.(map[string]interface{})
150+
resourceFilter := igtmv20231024.ResourceFilter{}
151+
if v, ok := filtersMap["name"].(string); ok && v != "" {
152+
resourceFilter.Name = helper.String(v)
153+
}
154+
155+
if v, ok := filtersMap["value"]; ok {
156+
valueSet := v.(*schema.Set).List()
157+
for i := range valueSet {
158+
value := valueSet[i].(string)
159+
resourceFilter.Value = append(resourceFilter.Value, helper.String(value))
160+
}
161+
}
162+
163+
if v, ok := filtersMap["fuzzy"].(bool); ok {
164+
resourceFilter.Fuzzy = helper.Bool(v)
165+
}
166+
167+
tmpSet = append(tmpSet, &resourceFilter)
168+
}
169+
170+
paramMap["Filters"] = tmpSet
171+
}
172+
173+
var respData []*igtmv20231024.DetectTaskPackage
174+
reqErr := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError {
175+
result, e := service.DescribeIgtmDetectTaskPackageListByFilter(ctx, paramMap)
176+
if e != nil {
177+
return tccommon.RetryError(e)
178+
}
179+
180+
respData = result
181+
return nil
182+
})
183+
184+
if reqErr != nil {
185+
return reqErr
186+
}
187+
188+
taskPackageSetList := make([]map[string]interface{}, 0, len(respData))
189+
if respData != nil {
190+
for _, taskPackageSet := range respData {
191+
taskPackageSetMap := map[string]interface{}{}
192+
if taskPackageSet.ResourceId != nil {
193+
taskPackageSetMap["resource_id"] = taskPackageSet.ResourceId
194+
}
195+
196+
if taskPackageSet.ResourceType != nil {
197+
taskPackageSetMap["resource_type"] = taskPackageSet.ResourceType
198+
}
199+
200+
if taskPackageSet.Quota != nil {
201+
taskPackageSetMap["quota"] = taskPackageSet.Quota
202+
}
203+
204+
if taskPackageSet.CurrentDeadline != nil {
205+
taskPackageSetMap["current_deadline"] = taskPackageSet.CurrentDeadline
206+
}
207+
208+
if taskPackageSet.CreateTime != nil {
209+
taskPackageSetMap["create_time"] = taskPackageSet.CreateTime
210+
}
211+
212+
if taskPackageSet.IsExpire != nil {
213+
taskPackageSetMap["is_expire"] = taskPackageSet.IsExpire
214+
}
215+
216+
if taskPackageSet.Status != nil {
217+
taskPackageSetMap["status"] = taskPackageSet.Status
218+
}
219+
220+
if taskPackageSet.AutoRenewFlag != nil {
221+
taskPackageSetMap["auto_renew_flag"] = taskPackageSet.AutoRenewFlag
222+
}
223+
224+
if taskPackageSet.Remark != nil {
225+
taskPackageSetMap["remark"] = taskPackageSet.Remark
226+
}
227+
228+
costItemListList := make([]map[string]interface{}, 0, len(taskPackageSet.CostItemList))
229+
if taskPackageSet.CostItemList != nil {
230+
for _, costItemList := range taskPackageSet.CostItemList {
231+
costItemListMap := map[string]interface{}{}
232+
if costItemList.CostName != nil {
233+
costItemListMap["cost_name"] = costItemList.CostName
234+
}
235+
236+
if costItemList.CostValue != nil {
237+
costItemListMap["cost_value"] = costItemList.CostValue
238+
}
239+
240+
costItemListList = append(costItemListList, costItemListMap)
241+
}
242+
243+
taskPackageSetMap["cost_item_list"] = costItemListList
244+
}
245+
246+
if taskPackageSet.Group != nil {
247+
taskPackageSetMap["group"] = taskPackageSet.Group
248+
}
249+
250+
taskPackageSetList = append(taskPackageSetList, taskPackageSetMap)
251+
}
252+
253+
_ = d.Set("task_package_set", taskPackageSetList)
254+
}
255+
256+
d.SetId(helper.BuildToken())
257+
output, ok := d.GetOk("result_output_file")
258+
if ok && output.(string) != "" {
259+
if e := tccommon.WriteToFile(output.(string), taskPackageSetList); e != nil {
260+
return e
261+
}
262+
}
263+
264+
return nil
265+
}

0 commit comments

Comments
 (0)