Skip to content

Commit eabfe6b

Browse files
authored
feat/waf (#2331)
* feat/waf * feat/waf * feat/waf * feat/waf * feat/waf * feat/waf * feat/waf
1 parent 3b63613 commit eabfe6b

20 files changed

+1698
-23
lines changed

.changelog/2331.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
```release-note:new-resource
2+
tencentcloud_waf_cc_auto_status
3+
```
4+
5+
```release-note:new-resource
6+
tencentcloud_waf_cc_session
7+
```
8+
9+
```release-note:new-resource
10+
tencentcloud_waf_ip_access_control
11+
```

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ require (
9797
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tsf v1.0.674
9898
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.199
9999
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.779
100-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.794
100+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.799
101101
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.0.792
102102
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199
103103
github.com/tencentyun/cos-go-sdk-v5 v0.7.42-0.20230629101357-7edd77448a0f

go.sum

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -878,6 +878,7 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.794 h1:UZNz
878878
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.794/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
879879
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.797/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
880880
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.798/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
881+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.799/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
881882
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.800 h1:sQFdr2aQz+Z3wxI0BC0+yKQXwlo7q26u+yyPJcAuga4=
882883
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.800/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
883884
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624 h1:nEZqsoqt1pEoaP9JjkHQy3/H00suCfzlHW1qOm2nYD8=
@@ -984,17 +985,15 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.199 h1:6Yt74l4
984985
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.199/go.mod h1:Yw6OQ33z3s4k0HVYTNSffB12qOzEJ2Zf1Vj4+5S3sRs=
985986
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.779 h1:4NpjQiFgnIH662ydP7AecllyrhH+CVoGlzQ9V7RfD08=
986987
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.779/go.mod h1:kYBG2jgpjL7CuhYM+K1fkEtbWvNXrtt7NSLwXVCqmKA=
987-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.794 h1:BeiyGZ0WVMxlxz5wH2dxxPAGpo1KhQ33XHTucu1GK5k=
988-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.794/go.mod h1:26sr2/i6bz7sboU0ag5bUDDIKB2yxQ8LId/U1z9nysk=
988+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.799 h1:4RBEIK1t30g8VUTkU8KiE756Bq4O+ABUWYA1YoYpkZc=
989+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.799/go.mod h1:y0QoatwZugI17brN5IRUBtwpPtWajnkZPbulNUxtcwg=
989990
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.0.792 h1:NLgKNOIHWa38AmW7dyfI9Jlcp2Kr9VRD94f48pPNmxM=
990991
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.0.792/go.mod h1:Xz6vPV3gHlzPwtEcmWdWO1EUXJDgn2p7UMCXbJiVioQ=
991992
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199 h1:hMBLtiJPnZ9GvA677cTB6ELBR6B68wCR2QY1sNoGQc4=
992993
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199/go.mod h1:nnY91/H3j/Gu7V/oCA6Zeg8T5D3q36EUdBh4EjmHwqY=
993994
github.com/tencentyun/cos-go-sdk-v5 v0.7.42-0.20230629101357-7edd77448a0f h1:yTMDoBvFuXjZat10d98DIKbPnN9FQG+drt1SbNfMW5U=
994995
github.com/tencentyun/cos-go-sdk-v5 v0.7.42-0.20230629101357-7edd77448a0f/go.mod h1:LUFnaqRmGk6pEHOaRmdn2dCZR2j0cSsM5xowWFPTPao=
995-
github.com/tenntenn/modver v1.0.1 h1:2klLppGhDgzJrScMpkj9Ujy3rXPUspSjAcev9tSEBgA=
996996
github.com/tenntenn/modver v1.0.1/go.mod h1:bePIyQPb7UeioSRkw3Q0XeMhYZSMx9B8ePqg6SAMGH0=
997-
github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3 h1:f+jULpRQGxTSkNYKJ51yaw6ChIqO+Je8UqsTKN/cDag=
998997
github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3/go.mod h1:ON8b8w4BN/kE1EOhwT0o+d62W65a6aPw1nouo9LMgyY=
999998
github.com/tetafro/godot v1.4.11 h1:BVoBIqAf/2QdbFmSwAWnaIqDivZdOV0ZRwEm6jivLKw=
1000999
github.com/tetafro/godot v1.4.11/go.mod h1:LR3CJpxDVGlYOWn3ZZg1PgNZdTUvzsZWu8xaEohUpn8=
@@ -1032,7 +1031,6 @@ github.com/vmihailenco/tagparser v0.1.1 h1:quXMXlA39OCbd2wAdTsGDlK9RkOk6Wuw+x37w
10321031
github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI=
10331032
github.com/wI2L/jsondiff v0.3.0 h1:iTzQ9u/d86GE9RsBzVHX88f2EA1vQUboHwLhSQFc1s4=
10341033
github.com/wI2L/jsondiff v0.3.0/go.mod h1:y1IMzNNjlSsk3IUoJdRJO7VRBtzMvRgyo4Vu0LdHpTc=
1035-
github.com/xanzy/ssh-agent v0.3.0 h1:wUMzuKtKilRgBAD1sUb8gOwwRr2FGoBVumcjoOACClI=
10361034
github.com/xanzy/ssh-agent v0.3.0/go.mod h1:3s9xbODqPuuhK9JV1R321M/FlMZSBvE5aY6eAcqrDh0=
10371035
github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 h1:QldyIu/L63oPpyvQmHgvgickp1Yw510KJOqX7H24mg8=
10381036
github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778/go.mod h1:2MuV+tbUrU1zIOPMxZ5EncGwgmMJsa+9ucAQZXxsObs=
@@ -1071,7 +1069,6 @@ go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
10711069
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
10721070
go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
10731071
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
1074-
go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI=
10751072
go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=
10761073
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
10771074
go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60=
@@ -1303,7 +1300,6 @@ golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
13031300
golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA=
13041301
golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ=
13051302
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
1306-
golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw=
13071303
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
13081304
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
13091305
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -1508,15 +1504,13 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8
15081504
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
15091505
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
15101506
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
1511-
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
15121507
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
15131508
gopkg.in/cheggaaa/pb.v1 v1.0.27/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=
15141509
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
15151510
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
15161511
gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
15171512
gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
15181513
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
1519-
gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME=
15201514
gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=
15211515
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
15221516
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=

tencentcloud/provider.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1984,6 +1984,9 @@ Web Application Firewall(WAF)
19841984
tencentcloud_waf_protection_mode
19851985
tencentcloud_waf_web_shell
19861986
tencentcloud_waf_cc
1987+
tencentcloud_waf_cc_auto_status
1988+
tencentcloud_waf_cc_session
1989+
tencentcloud_waf_ip_access_control
19871990
19881991
Wedata
19891992
Data Source
@@ -3806,6 +3809,9 @@ func Provider() *schema.Provider {
38063809
"tencentcloud_waf_protection_mode": resourceTencentCloudWafProtectionMode(),
38073810
"tencentcloud_waf_web_shell": resourceTencentCloudWafWebShell(),
38083811
"tencentcloud_waf_cc": resourceTencentCloudWafCc(),
3812+
"tencentcloud_waf_cc_auto_status": resourceTencentCloudWafCcAutoStatus(),
3813+
"tencentcloud_waf_cc_session": resourceTencentCloudWafCcSession(),
3814+
"tencentcloud_waf_ip_access_control": resourceTencentCloudWafIpAccessControl(),
38093815
"tencentcloud_wedata_rule_template": resourceTencentCloudWedataRuleTemplate(),
38103816
"tencentcloud_wedata_datasource": resourceTencentCloudWedataDatasource(),
38113817
"tencentcloud_wedata_function": resourceTencentCloudWedataFunction(),

tencentcloud/resource_tc_waf_cc.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ func resourceTencentCloudWafCc() *schema.Resource {
9797
"valid_time": {
9898
Required: true,
9999
Type: schema.TypeInt,
100-
Description: "Action ValidTime, minute unit.",
100+
Description: "Action ValidTime, minute unit. Min: 60, Max: 604800.",
101101
},
102102
//"options_arr": {
103103
// Optional: true,
@@ -108,7 +108,7 @@ func resourceTencentCloudWafCc() *schema.Resource {
108108
Required: true,
109109
Type: schema.TypeString,
110110
ValidateFunc: validateAllowedStringValue(EDITION_TYPE),
111-
Description: "WAF edition.",
111+
Description: "WAF edition. clb-waf means clb-waf, sparta-waf means saas-waf.",
112112
},
113113
"type": {
114114
Optional: true,
Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
/*
2+
Provides a resource to create a waf cc_auto_status
3+
4+
Example Usage
5+
6+
```hcl
7+
resource "tencentcloud_waf_cc_auto_status" "example" {
8+
domain = "www.demo.com"
9+
edition = "sparta-waf"
10+
}
11+
```
12+
13+
Import
14+
15+
waf cc_auto_status can be imported using the id, e.g.
16+
17+
```
18+
terraform import tencentcloud_waf_cc_auto_status.example www.demo.com#sparta-waf
19+
```
20+
*/
21+
package tencentcloud
22+
23+
import (
24+
"context"
25+
"fmt"
26+
"log"
27+
"strings"
28+
29+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
30+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
31+
waf "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf/v20180125"
32+
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
33+
)
34+
35+
func resourceTencentCloudWafCcAutoStatus() *schema.Resource {
36+
return &schema.Resource{
37+
Create: resourceTencentCloudWafCcAutoStatusCreate,
38+
Read: resourceTencentCloudWafCcAutoStatusRead,
39+
Delete: resourceTencentCloudWafCcAutoStatusDelete,
40+
Importer: &schema.ResourceImporter{
41+
State: schema.ImportStatePassthrough,
42+
},
43+
Schema: map[string]*schema.Schema{
44+
"domain": {
45+
Required: true,
46+
ForceNew: true,
47+
Type: schema.TypeString,
48+
Description: "Domain.",
49+
},
50+
"edition": {
51+
Required: true,
52+
ForceNew: true,
53+
Type: schema.TypeString,
54+
ValidateFunc: validateAllowedStringValue(EDITION_TYPE),
55+
Description: "Waf edition. clb-waf means clb-waf, sparta-waf means saas-waf.",
56+
},
57+
"status": {
58+
Computed: true,
59+
Type: schema.TypeInt,
60+
Description: "cc auto status, 1 means open, 0 means close.",
61+
},
62+
},
63+
}
64+
}
65+
66+
func resourceTencentCloudWafCcAutoStatusCreate(d *schema.ResourceData, meta interface{}) error {
67+
defer logElapsed("resource.tencentcloud_waf_cc_auto_status.create")()
68+
defer inconsistentCheck(d, meta)()
69+
70+
var (
71+
logId = getLogId(contextNil)
72+
request = waf.NewUpsertCCAutoStatusRequest()
73+
domain string
74+
edition string
75+
)
76+
77+
if v, ok := d.GetOk("domain"); ok {
78+
request.Domain = helper.String(v.(string))
79+
domain = v.(string)
80+
}
81+
82+
if v, ok := d.GetOk("edition"); ok {
83+
request.Edition = helper.String(v.(string))
84+
edition = v.(string)
85+
}
86+
87+
request.Value = helper.IntInt64(1)
88+
89+
err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
90+
result, e := meta.(*TencentCloudClient).apiV3Conn.UseWafClient().UpsertCCAutoStatus(request)
91+
if e != nil {
92+
return retryError(e)
93+
} else {
94+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
95+
}
96+
97+
return nil
98+
})
99+
100+
if err != nil {
101+
log.Printf("[CRITAL]%s create waf CcAutoStatus failed, reason:%+v", logId, err)
102+
return err
103+
}
104+
105+
d.SetId(strings.Join([]string{domain, edition}, FILED_SP))
106+
107+
return resourceTencentCloudWafCcAutoStatusRead(d, meta)
108+
}
109+
110+
func resourceTencentCloudWafCcAutoStatusRead(d *schema.ResourceData, meta interface{}) error {
111+
defer logElapsed("resource.tencentcloud_waf_cc_auto_status.read")()
112+
defer inconsistentCheck(d, meta)()
113+
114+
var (
115+
logId = getLogId(contextNil)
116+
ctx = context.WithValue(context.TODO(), logIdKey, logId)
117+
service = WafService{client: meta.(*TencentCloudClient).apiV3Conn}
118+
)
119+
120+
idSplit := strings.Split(d.Id(), FILED_SP)
121+
if len(idSplit) != 2 {
122+
return fmt.Errorf("id is broken,%s", idSplit)
123+
}
124+
domain := idSplit[0]
125+
edition := idSplit[1]
126+
127+
CcAutoStatus, err := service.DescribeWafCcAutoStatusById(ctx, domain)
128+
if err != nil {
129+
return err
130+
}
131+
132+
if CcAutoStatus == nil {
133+
d.SetId("")
134+
log.Printf("[WARN]%s resource `WafCcAutoStatus` [%s] not found, please check if it has been deleted.\n", logId, d.Id())
135+
return nil
136+
}
137+
138+
_ = d.Set("domain", domain)
139+
_ = d.Set("edition", edition)
140+
141+
if CcAutoStatus.AutoCCSwitch != nil {
142+
_ = d.Set("status", CcAutoStatus.AutoCCSwitch)
143+
}
144+
145+
return nil
146+
}
147+
148+
func resourceTencentCloudWafCcAutoStatusDelete(d *schema.ResourceData, meta interface{}) error {
149+
defer logElapsed("resource.tencentcloud_waf_cc_auto_status.delete")()
150+
defer inconsistentCheck(d, meta)()
151+
152+
var (
153+
logId = getLogId(contextNil)
154+
ctx = context.WithValue(context.TODO(), logIdKey, logId)
155+
service = WafService{client: meta.(*TencentCloudClient).apiV3Conn}
156+
)
157+
158+
idSplit := strings.Split(d.Id(), FILED_SP)
159+
if len(idSplit) != 2 {
160+
return fmt.Errorf("id is broken,%s", idSplit)
161+
}
162+
domain := idSplit[0]
163+
edition := idSplit[1]
164+
165+
if err := service.DeleteWafCcAutoStatusById(ctx, domain, edition); err != nil {
166+
return err
167+
}
168+
169+
return nil
170+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package tencentcloud
2+
3+
import (
4+
"testing"
5+
6+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
7+
)
8+
9+
// go test -i; go test -test.run TestAccTencentCloudWafCcAutoStatusResource_basic -v
10+
func TestAccTencentCloudWafCcAutoStatusResource_basic(t *testing.T) {
11+
t.Parallel()
12+
resource.Test(t, resource.TestCase{
13+
PreCheck: func() {
14+
testAccPreCheck(t)
15+
},
16+
Providers: testAccProviders,
17+
Steps: []resource.TestStep{
18+
{
19+
Config: testAccWafCcAutoStatus,
20+
Check: resource.ComposeTestCheckFunc(
21+
resource.TestCheckResourceAttrSet("tencentcloud_waf_cc_auto_status.example", "id"),
22+
resource.TestCheckResourceAttr("tencentcloud_waf_cc_auto_status.example", "domain", "keep.qcloudwaf.com"),
23+
resource.TestCheckResourceAttr("tencentcloud_waf_cc_auto_status.example", "edition", "sparta-waf"),
24+
),
25+
},
26+
{
27+
ResourceName: "tencentcloud_waf_cc_auto_status.example",
28+
ImportState: true,
29+
ImportStateVerify: true,
30+
},
31+
},
32+
})
33+
}
34+
35+
const testAccWafCcAutoStatus = `
36+
resource "tencentcloud_waf_cc_auto_status" "example" {
37+
domain = "keep.qcloudwaf.com"
38+
edition = "sparta-waf"
39+
}
40+
`

0 commit comments

Comments
 (0)