Skip to content

Commit 007f4bc

Browse files
gitmkncurtiscao
andauthored
Fix/teo support change (#1283)
* fix: update teo resource * fix: update service * fix: update sdk version * fix: update sdk version * fix: update zone * feat: support teo data source * fix: create zone * fix: update zone * fix: update provider * fix: update teo data source * fix: update bot_portrait_rules * fix: update zone_available_plans * fix: update teo_security_policy_regions * fix: update security_policy_regions * fix: modify teo source * fix: see list below. 1. some docs. 2. delete tencentcloud_teo_security_policy_regions `country_en` and `continent_en`. 3. delete tencentcloud_teo_waf_managed_rules 4. tencentcloud_teo_zone_available_plans add `area`. 5. fix tencentcloud_teo_application_proxy build error. 6. fix tencentcloud_teo_zone `plan_type`. * fix: update teo resource * fix: don't change plan_type when read zone info. * fix: go fmt * fix: update teo rule * fix: don't use default empty string to fill update request. * fix: delete tags field in tencentcloud_teo_zone_setting. * fix: zone tag. * fix: update teo rule priority * fix: update teo origin_group * fix: update teo load balancing * fix: update teo example * fix: update teo application proxy * fix: update teo application_proxy_rule * fix: update teo ddos policy * fix: update teo default_certificate * fix: zone filed, cname_speed_up and paused * fix: always use tag API. * fix: zoneSetting ignore InvalidParameter.ZoneNotFound when creating. * fix: retry when creating or deleting dns records. * fix: update teo_host_certificate * fix: retry when creating or deleting resources. * fix: must check zone access completion before add dns record. * fix: support teo_custom_error_page * fix: zero value is valid. * fix: delete all useless `tags` fields. * fix: setting `status` to offline automatically. * fix: update teo_security_policy * fix: go fmt * fix: update teo sdk and doc * fix: update teo sdk and doc * fix: application proxy rule * fix: update teo_security_policy * fix: update teo_security_policy * fix: update teo_security_policy * fix: rule engine improve * fix: default certificate improved * fix: pageSize is incorrect * fix: delete `total` * fix: read data source * fix: error page creation * fix: security_policy support importer * fix: update error page * fix: rule_engine change fields * fix: ddosPolicy creation * fix: ddosPolicy & securityPolicy document * fix: clean up teo docs * fix: creation of ddos and security policy * fix: delete `udp_shard_open` * fix: doc improvement * fix: check zone active before create applicationProxy * fix: for batch creation or deletion * fix: `ipv6` is readable. * fix: go fmt and update doc * fix: update datasource id * fix: update doc Co-authored-by: arunma <arunma@tencent.com> Co-authored-by: curtiscao <curtiscao@tencent.com>
1 parent 3e83979 commit 007f4bc

File tree

67 files changed

+16281
-8458
lines changed

Some content is hidden

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

67 files changed

+16281
-8458
lines changed

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ require (
3434
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.445
3535
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.199
3636
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.412
37-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.494
37+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.500
3838
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.445
3939
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.488
4040
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dayu v1.0.335
@@ -61,7 +61,7 @@ require (
6161
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tcr v1.0.267
6262
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.268
6363
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tem v1.0.472
64-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.486
64+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.500
6565
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.489
6666
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.199
6767
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.479

go.sum

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -481,12 +481,18 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.472/go.mod
481481
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.479/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
482482
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.480/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
483483
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.486/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
484+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.487 h1:6PCOaohR7z/5lbK1PDJRg0TY9tYK7zvjmDxY1yXWsQE=
485+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.487/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
486+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.488 h1:rFQ+2+p2sFMdSGE99zc5oqN3TvYVK9Vxbp+wZJjTrHw=
484487
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.488/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
488+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.489 h1:707A5KMvEapIjH+QWUGHn+Re57VpGz8RzFEoxMAs6FI=
485489
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.489/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
490+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.490 h1:mmz27tVi2r70JYnm5y0Zk8w0Qzsx+vfUw3oqSyrEfP8=
486491
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.490/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
487492
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.493/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
488-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.494 h1:IC3vvhWYomlthgXvBAQbP/M/YW+OpcodyYz4gU3JCiQ=
489493
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.494/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
494+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.500 h1:xuc9CRLhkpww61x5/k2cZ1tx8zGTEzE1+pv/1bSWlPI=
495+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.500/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
490496
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.445 h1:Bh7XD0ypNMHYyBOM8hhKsSu+y0VVKUnJVS+YKKhfpGg=
491497
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.445/go.mod h1:jMDD351efCFpT1+KVFbcpu6SbmP4TYmp4qkoCfr63nQ=
492498
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.488 h1:A1seXWtMf2atBjSNYvcwxyDoFzCMgqyVnsxnWzhqJEA=
@@ -542,6 +548,10 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tem v1.0.472 h1:9Jzrgx7
542548
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tem v1.0.472/go.mod h1:ayIL2FNqk7HH5fPQrkWtYjgU4jL7if63f7x+yRwb4a0=
543549
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.486 h1:JRtQYtJB9sErV9tXY6xbrC3RmXNepBKd7aV3inxkUPs=
544550
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.486/go.mod h1:wtPJIKxQUR3KoL2KWAt/Qi8KMR4ayKHiOeVJ6sTSC4U=
551+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.500 h1:8pOrQK3GLskFEHGYR3s6is0YLAgSe7vYs7wdC+brA30=
552+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.500/go.mod h1:eQfp4Z6W1vg5vBVkR6i/ZdgKeXWoMECCvQKGTvU5dP0=
553+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.480 h1:oZptW2Fo1pW8fKz/dv+RJLr2q8UC1qkqDqWs3rDgvQ8=
554+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.480/go.mod h1:rs+BUoY53xfiE5sRsVk2RpsjgzODtq52xiBTc6WTWWM=
545555
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.489 h1:61QTzF5vjDthscsPh2WGL1bLlmOjIJ6PB2+pIihzeTI=
546556
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.489/go.mod h1:ECfO9sL5b6ZDhQWx2k85JtrCWOC3kH1KFw00TGlBL6Y=
547557
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.199 h1:6Yt74l4pA5QtzhwMNIEUt0spXdSBKH744DDqTHJOCP0=

tencentcloud/common.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@ var retryableErrorCode = []string{
7777
"ResourceUnavailable",
7878
// cbs
7979
"ResourceBusy",
80+
// teo
81+
"InvalidParameter.ActionInProgress",
8082
}
8183

8284
func init() {

tencentcloud/connectivity/client.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ import (
5656
tcr "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tcr/v20190924"
5757
tdmq "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq/v20200217"
5858
tem "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tem/v20210701"
59-
teo "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo/v20220106"
59+
teo "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo/v20220901"
6060
tke "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke/v20180525"
6161
vod "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod/v20180717"
6262
vpc "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312"
Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
/*
2+
Use this data source to query detailed information of teo botManagedRules
3+
4+
Example Usage
5+
6+
```hcl
7+
data "tencentcloud_teo_bot_managed_rules" "botManagedRules" {
8+
zone_id = ""
9+
entity = ""
10+
}
11+
```
12+
*/
13+
package tencentcloud
14+
15+
import (
16+
"context"
17+
"log"
18+
19+
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
20+
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
21+
teo "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo/v20220901"
22+
)
23+
24+
func dataSourceTencentCloudTeoBotManagedRules() *schema.Resource {
25+
return &schema.Resource{
26+
Read: dataSourceTencentCloudTeoBotManagedRulesRead,
27+
Schema: map[string]*schema.Schema{
28+
"zone_id": {
29+
Type: schema.TypeString,
30+
Required: true,
31+
Description: "Site ID.",
32+
},
33+
34+
"entity": {
35+
Type: schema.TypeString,
36+
Required: true,
37+
Description: "Subdomain or application name.",
38+
},
39+
40+
"rules": {
41+
Type: schema.TypeList,
42+
Computed: true,
43+
Description: "Managed rules list.",
44+
Elem: &schema.Resource{
45+
Schema: map[string]*schema.Schema{
46+
"rule_id": {
47+
Type: schema.TypeInt,
48+
Computed: true,
49+
Description: "Rule ID.",
50+
},
51+
"description": {
52+
Type: schema.TypeString,
53+
Computed: true,
54+
Description: "Description of the rule.",
55+
},
56+
"rule_type_name": {
57+
Type: schema.TypeString,
58+
Computed: true,
59+
Description: "Type of the rule.",
60+
},
61+
"status": {
62+
Type: schema.TypeString,
63+
Computed: true,
64+
Description: "Status of the rule.",
65+
},
66+
},
67+
},
68+
},
69+
70+
"result_output_file": {
71+
Type: schema.TypeString,
72+
Optional: true,
73+
Description: "Used to save results.",
74+
},
75+
},
76+
}
77+
}
78+
79+
func dataSourceTencentCloudTeoBotManagedRulesRead(d *schema.ResourceData, meta interface{}) error {
80+
defer logElapsed("data_source.tencentcloud_teo_bot_managed_rules.read")()
81+
defer inconsistentCheck(d, meta)()
82+
83+
logId := getLogId(contextNil)
84+
ctx := context.WithValue(context.TODO(), logIdKey, logId)
85+
var zoneId string
86+
var entity string
87+
88+
paramMap := make(map[string]interface{})
89+
if v, ok := d.GetOk("zone_id"); ok {
90+
zoneId = v.(string)
91+
paramMap["zone_id"] = v
92+
}
93+
94+
if v, ok := d.GetOk("entity"); ok {
95+
paramMap["entity"] = v
96+
}
97+
98+
teoService := TeoService{client: meta.(*TencentCloudClient).apiV3Conn}
99+
100+
var rules []*teo.BotManagedRuleDetail
101+
err := resource.Retry(readRetryTimeout, func() *resource.RetryError {
102+
results, e := teoService.DescribeTeoBotManagedRulesByFilter(ctx, paramMap)
103+
if e != nil {
104+
return retryError(e)
105+
}
106+
rules = results
107+
return nil
108+
})
109+
if err != nil {
110+
log.Printf("[CRITAL]%s read Teo rules failed, reason:%+v", logId, err)
111+
return err
112+
}
113+
114+
ruleList := []interface{}{}
115+
if rules != nil {
116+
for _, rule := range rules {
117+
ruleMap := map[string]interface{}{}
118+
if rule.RuleId != nil {
119+
ruleMap["rule_id"] = rule.RuleId
120+
}
121+
if rule.Description != nil {
122+
ruleMap["description"] = rule.Description
123+
}
124+
if rule.RuleTypeName != nil {
125+
ruleMap["rule_type_name"] = rule.RuleTypeName
126+
}
127+
if rule.Status != nil {
128+
ruleMap["status"] = rule.Status
129+
}
130+
131+
ruleList = append(ruleList, ruleMap)
132+
}
133+
_ = d.Set("rules", ruleList)
134+
}
135+
136+
d.SetId(zoneId + FILED_SP + entity)
137+
138+
output, ok := d.GetOk("result_output_file")
139+
if ok && output.(string) != "" {
140+
if e := writeToFile(output.(string), ruleList); e != nil {
141+
return e
142+
}
143+
}
144+
return nil
145+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package tencentcloud
2+
3+
import (
4+
"testing"
5+
6+
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
7+
)
8+
9+
func TestAccTencentCloudTeoBotManagedRulesDataSource(t *testing.T) {
10+
t.Parallel()
11+
12+
resource.Test(t, resource.TestCase{
13+
PreCheck: func() { testAccPreCheck(t) },
14+
Providers: testAccProviders,
15+
Steps: []resource.TestStep{
16+
{
17+
Config: testAccDataSourceTeoBotManagedRules,
18+
Check: resource.ComposeTestCheckFunc(
19+
testAccCheckTencentCloudDataSourceID("data.tencentcloud_teo_bot_managed_rules.bot_managed_rules"),
20+
),
21+
},
22+
},
23+
})
24+
}
25+
26+
const testAccDataSourceTeoBotManagedRules = `
27+
28+
data "tencentcloud_teo_bot_managed_rules" "bot_managed_rules" {
29+
zone_id = ""
30+
entity = ""
31+
}
32+
33+
`

0 commit comments

Comments
 (0)