Skip to content

Commit 2d38381

Browse files
tongyimingmikatong
andauthored
feat: add ddos policy (#878)
Co-authored-by: mikatong <mikatong@tencent.com>
1 parent 45bdd3c commit 2d38381

File tree

9 files changed

+2471
-2
lines changed

9 files changed

+2471
-2
lines changed

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ require (
1717
github.com/mitchellh/go-homedir v1.1.0
1818
github.com/mozillazg/go-httpheader v0.3.0 // indirect
1919
github.com/pkg/errors v0.9.1
20-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/antiddos v1.0.334
20+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/antiddos v1.0.353
2121
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/api v1.0.285
2222
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apigateway v1.0.199
2323
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.0.199
@@ -30,7 +30,7 @@ require (
3030
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.283
3131
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.199
3232
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.291
33-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.351
33+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.353
3434
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.351
3535
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.199
3636
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dayu v1.0.335

go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -448,6 +448,8 @@ github.com/tdakkota/asciicheck v0.0.0-20200416190851-d7f85be797a2 h1:Xr9gkxfOP0K
448448
github.com/tdakkota/asciicheck v0.0.0-20200416190851-d7f85be797a2/go.mod h1:yHp0ai0Z9gUljN3o0xMhYJnH/IcvkdTBOX2fmJ93JEM=
449449
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/antiddos v1.0.334 h1:wQMm0QGdVvdkYALiav8MHWnigkpquU4XiUsMOzEtw38=
450450
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/antiddos v1.0.334/go.mod h1:6ficOD4j2/gwkkXUrSlInWqKIAuWrIid1u4UvMiC41A=
451+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/antiddos v1.0.353 h1:96xJ0rJ6x8P+2GkuCKDfUS83E5Blnvdxi/FmKdelX+Q=
452+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/antiddos v1.0.353/go.mod h1:E/Y+Rga/DOO+ZpBRQKSigaRnw6h1uJbIURKXI+6ozz4=
451453
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/api v1.0.285 h1:gFmukRGLtYiXVBVvg/5DP/0fM1+dKpwDjT+khtDVLmc=
452454
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/api v1.0.285/go.mod h1:aGlXSWjtSnE6kuqcaRy/NKj1CLiB8NlMSHGsDn+k7Ag=
453455
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apigateway v1.0.199 h1:e9M5HSIq2xw61Oz9whoaq+QT95rZtowkY/2zhdzx9v4=
@@ -485,6 +487,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.332 h1:sIRd
485487
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.332/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
486488
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.351 h1:BpVJoxG5kajBS7PYDeoujh4IDXr1sj3KNXn0GsceS2M=
487489
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.351/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
490+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.353 h1:rFkcKuLFxt2xolSWbyeznetTBw9Cyhe1ycILmEkE1Pk=
491+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.353/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
488492
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.199 h1:ajgJogYSIQ5u1PIbiV5nsvr5K0fYpm1/T7Dy+mxEM6U=
489493
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.199/go.mod h1:AqyM/ZZMD7q5mHBqNY9YImbSpEpoEe7E/vrTbUWX+po=
490494
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.351 h1:zqJsH5pxGT57La7NAOOyMQxsuM11pupNBwV1dzXcT24=

tencentcloud/extension_ddos.go

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package tencentcloud
22

3+
import "encoding/json"
4+
35
const (
46
DDOS_EIP_BIND_STATUS_BINDING = "BINDING"
57
DDOS_EIP_BIND_STATUS_BIND = "BIND"
@@ -16,3 +18,37 @@ const (
1618
)
1719

1820
var DDOS_EIP_BIND_RESOURCE_TYPE = []string{DDOS_EIP_BIND_RESOURCE_TYPE_CVM, DDOS_EIP_BIND_RESOURCE_TYPE_CLB}
21+
22+
const (
23+
DDOS_BLACK_WHITE_IP_TYPE_BLACK = "black"
24+
DDOS_BLACK_WHITE_IP_TYPE_WHITE = "white"
25+
)
26+
27+
func DeltaList(oldInstanceList []interface{}, newInstanceList []interface{}) (increment []string, decrement []string) {
28+
oldInstanceMaps := make(map[string]int)
29+
newInstanceMaps := make(map[string]int)
30+
for _, oldInstance := range oldInstanceList {
31+
buf, _ := json.Marshal(oldInstance)
32+
oldInstanceMaps[string(buf)] = 1
33+
}
34+
for _, newInstance := range newInstanceList {
35+
buf, _ := json.Marshal(newInstance)
36+
newInstanceMaps[string(buf)] = 1
37+
}
38+
39+
for _, oldInstance := range oldInstanceList {
40+
buf, _ := json.Marshal(oldInstance)
41+
key := string(buf)
42+
if newInstanceMaps[key] == 0 {
43+
decrement = append(decrement, key)
44+
}
45+
}
46+
for _, newInstance := range newInstanceList {
47+
buf, _ := json.Marshal(newInstance)
48+
key := string(buf)
49+
if oldInstanceMaps[key] == 0 {
50+
increment = append(increment, key)
51+
}
52+
}
53+
return
54+
}

tencentcloud/provider.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ Anti-DDoS(DayuV2)
5454
tencentcloud_dayu_eip
5555
tencentcloud_dayu_l4_rule
5656
tencentcloud_dayu_l7_rule_v2
57+
tencentcloud_dayu_ddos_policy_v2
5758
5859
Anti-DDoS(Dayu)
5960
Data Source
@@ -959,6 +960,7 @@ func Provider() terraform.ResourceProvider {
959960
"tencentcloud_dayu_cc_http_policy": resourceTencentCloudDayuCCHttpPolicy(),
960961
"tencentcloud_dayu_cc_https_policy": resourceTencentCloudDayuCCHttpsPolicy(),
961962
"tencentcloud_dayu_ddos_policy": resourceTencentCloudDayuDdosPolicy(),
963+
"tencentcloud_dayu_ddos_policy_v2": resourceTencentCloudDayuDdosPolicyV2(),
962964
"tencentcloud_dayu_ddos_policy_case": resourceTencentCloudDayuDdosPolicyCase(),
963965
"tencentcloud_dayu_ddos_policy_attachment": resourceTencentCloudDayuDdosPolicyAttachment(),
964966
"tencentcloud_dayu_l4_rule": resourceTencentCloudDayuL4Rule(),

0 commit comments

Comments
 (0)