From cad4d9627444acf54bbef2a543d6d2cc5d59d73a Mon Sep 17 00:00:00 2001 From: SevenEarth <391613297@qq.com> Date: Tue, 30 Apr 2024 17:51:08 +0800 Subject: [PATCH 1/2] add --- go.mod | 4 +- go.sum | 20 +- ...anization_org_manage_policy_config_test.go | 3 +- tencentcloud/services/waf/extension_waf.go | 20 + .../waf/resource_tc_waf_clb_domain.go | 121 ++- .../waf/resource_tc_waf_clb_domain_test.go | 87 +- .../waf/resource_tc_waf_saas_domain.go | 107 ++- .../waf/resource_tc_waf_saas_domain_test.go | 2 +- .../tencentcloud/common/http/request.go | 2 +- .../tencentcloud/waf/v20180125/client.go | 113 ++- .../tencentcloud/waf/v20180125/errors.go | 3 + .../tencentcloud/waf/v20180125/models.go | 830 ++++++++++++++---- vendor/modules.txt | 4 +- website/docs/r/waf_clb_domain.html.markdown | 2 + website/docs/r/waf_saas_domain.html.markdown | 2 + 15 files changed, 1020 insertions(+), 300 deletions(-) diff --git a/go.mod b/go.mod index 6030625d4a..bd2b9cab07 100644 --- a/go.mod +++ b/go.mod @@ -46,7 +46,7 @@ require ( github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.860 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.544 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.860 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.910 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.911 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.692 @@ -97,7 +97,7 @@ require ( github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tsf v1.0.674 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.860 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.845 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.833 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.856 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.0.792 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199 github.com/tencentyun/cos-go-sdk-v5 v0.7.42-0.20230629101357-7edd77448a0f diff --git a/go.sum b/go.sum index 662636ca37..4008a392ef 100644 --- a/go.sum +++ b/go.sum @@ -922,10 +922,10 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.857/go.mod github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.859/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.860/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.873/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.888 h1:FqVcZ+POUhckq6ZRlwOR819fsXp49YyizpmWZJYAAGg= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.888/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.910 h1:u+rAnHhLixQaNYy8vtnuClj4kYWs77VAHEbi9jl8k/4= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.910/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.911 h1:dRkofaSMvvyrfi5bUA2RiV05HYMfYd1nFk0Y1L+VMGs= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.911/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860 h1:F3esKBIT3HW9+7Gt8cVgf8X06VdGIczpgLBUECzSEzU= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860/go.mod h1:NZo1WplQcC314kMlCRUoy8NQju2BnolIJj7NAWgsuhY= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624 h1:nEZqsoqt1pEoaP9JjkHQy3/H00suCfzlHW1qOm2nYD8= @@ -976,8 +976,6 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mps v1.0.853 h1:abGpWsA github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mps v1.0.853/go.mod h1:xIprIT+IW+3Fj05GCWmgvxJOhICqFGoW4Ef77cDD2JQ= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/oceanus v1.0.831 h1:oyazF5wgAgoinGo/SDGfUReE3JFxqcpI6/pstWhK7yE= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/oceanus v1.0.831/go.mod h1:2WuTlTnKCnZoa6l0JxY9GNfo0UG6nU7AEsljF8rMMsM= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.856 h1:W1FLC178fBj5HigbNkAUIBGPPTit20RVycuXQ6u2lSg= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.856/go.mod h1:Ln9igPci1mCEe4gzekGpMMn/x9im6XlDh2bqvWnUMDo= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.910 h1:KQJSiP2zV2VP4brIqSGGvx/3uoJ2Y3X5S5RsqjR77Ag= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.910/go.mod h1:9cT5rPLn6J+M5Gt5eS6NrgJnqsAcQjimu4JMS76UORQ= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.873 h1:kqNFHpILFWPbOUAUrH1i6+IfkLWWEAZLYfj9RZ0WM+0= @@ -1034,17 +1032,17 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.860 h1:vW2NgAH github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.860/go.mod h1:uCkDh/AW/tb8JGq5b2kqLjqZuhCFR+6oTsq1SrrvT44= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.845 h1:c9TSh+kuEwxAuPndCMI7QeERfY/XWkZWRniFI1Gak60= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.845/go.mod h1:sz+RI5GLDNIQMKJAR2N93fyxFv/FQo322xq/iAg2Z/g= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.833 h1:avaBlZ+Qqv7bfMg/u0jlRsbEBbE18CfqKWbfGc84PLg= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.833/go.mod h1:fUWG217b//46Oa3VXxC5mgeYeewVAbF+lc81uET89EM= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.856 h1:019LsAoQz76hUYZKXfNLtmmGwp2u4Lx7PFe9Hi8ceiQ= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.856/go.mod h1:rlVASPNXcnU/AomXIqJd38UPqXRE1Q7RQqjIbErtMbg= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.911 h1:TJ4OsvE+wjNn9xkdSDmNAEBfOw/Ml1Uzb33d9MIA9NY= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.911/go.mod h1:emYIGjN30xjVvwReyHv2EuD4qyMiveBJWLynddGJNQ0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.0.792 h1:NLgKNOIHWa38AmW7dyfI9Jlcp2Kr9VRD94f48pPNmxM= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.0.792/go.mod h1:Xz6vPV3gHlzPwtEcmWdWO1EUXJDgn2p7UMCXbJiVioQ= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199 h1:hMBLtiJPnZ9GvA677cTB6ELBR6B68wCR2QY1sNoGQc4= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199/go.mod h1:nnY91/H3j/Gu7V/oCA6Zeg8T5D3q36EUdBh4EjmHwqY= github.com/tencentyun/cos-go-sdk-v5 v0.7.42-0.20230629101357-7edd77448a0f h1:yTMDoBvFuXjZat10d98DIKbPnN9FQG+drt1SbNfMW5U= github.com/tencentyun/cos-go-sdk-v5 v0.7.42-0.20230629101357-7edd77448a0f/go.mod h1:LUFnaqRmGk6pEHOaRmdn2dCZR2j0cSsM5xowWFPTPao= -github.com/tenntenn/modver v1.0.1 h1:2klLppGhDgzJrScMpkj9Ujy3rXPUspSjAcev9tSEBgA= github.com/tenntenn/modver v1.0.1/go.mod h1:bePIyQPb7UeioSRkw3Q0XeMhYZSMx9B8ePqg6SAMGH0= -github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3 h1:f+jULpRQGxTSkNYKJ51yaw6ChIqO+Je8UqsTKN/cDag= github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3/go.mod h1:ON8b8w4BN/kE1EOhwT0o+d62W65a6aPw1nouo9LMgyY= github.com/tetafro/godot v1.4.11 h1:BVoBIqAf/2QdbFmSwAWnaIqDivZdOV0ZRwEm6jivLKw= github.com/tetafro/godot v1.4.11/go.mod h1:LR3CJpxDVGlYOWn3ZZg1PgNZdTUvzsZWu8xaEohUpn8= @@ -1082,7 +1080,6 @@ github.com/vmihailenco/tagparser v0.1.1 h1:quXMXlA39OCbd2wAdTsGDlK9RkOk6Wuw+x37w github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= github.com/wI2L/jsondiff v0.3.0 h1:iTzQ9u/d86GE9RsBzVHX88f2EA1vQUboHwLhSQFc1s4= github.com/wI2L/jsondiff v0.3.0/go.mod h1:y1IMzNNjlSsk3IUoJdRJO7VRBtzMvRgyo4Vu0LdHpTc= -github.com/xanzy/ssh-agent v0.3.0 h1:wUMzuKtKilRgBAD1sUb8gOwwRr2FGoBVumcjoOACClI= github.com/xanzy/ssh-agent v0.3.0/go.mod h1:3s9xbODqPuuhK9JV1R321M/FlMZSBvE5aY6eAcqrDh0= github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 h1:QldyIu/L63oPpyvQmHgvgickp1Yw510KJOqX7H24mg8= github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778/go.mod h1:2MuV+tbUrU1zIOPMxZ5EncGwgmMJsa+9ucAQZXxsObs= @@ -1121,7 +1118,6 @@ go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= @@ -1365,7 +1361,6 @@ golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1573,7 +1568,6 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/cheggaaa/pb.v1 v1.0.27/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= @@ -1583,7 +1577,6 @@ gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -1631,5 +1624,4 @@ sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK sigs.k8s.io/structured-merge-diff/v4 v4.1.2/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE= sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E= -sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= diff --git a/tencentcloud/services/tco/resource_tc_organization_org_manage_policy_config_test.go b/tencentcloud/services/tco/resource_tc_organization_org_manage_policy_config_test.go index 0ad357b5c6..bb83512a97 100644 --- a/tencentcloud/services/tco/resource_tc_organization_org_manage_policy_config_test.go +++ b/tencentcloud/services/tco/resource_tc_organization_org_manage_policy_config_test.go @@ -1,9 +1,10 @@ package tco_test import ( - tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest" "testing" + tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" ) diff --git a/tencentcloud/services/waf/extension_waf.go b/tencentcloud/services/waf/extension_waf.go index 86bc87d4bd..2147a427ec 100644 --- a/tencentcloud/services/waf/extension_waf.go +++ b/tencentcloud/services/waf/extension_waf.go @@ -122,6 +122,26 @@ var API_SAFE_STATUS = []int{ API_SAFE_STATUS_1, } +const ( + POST_CLS_ACTION_0 = 0 + POST_CLS_ACTION_1 = 1 +) + +var POST_CLS_ACTION = []int{ + POST_CLS_ACTION_0, + POST_CLS_ACTION_1, +} + +const ( + POST_CKAFKA_ACTION_0 = 0 + POST_CKAFKA_ACTION_1 = 1 +) + +var POST_CKAFKA_ACTION = []int{ + POST_CKAFKA_ACTION_0, + POST_CKAFKA_ACTION_1, +} + const ( PROTECTION_STATUS_0 = 0 PROTECTION_STATUS_1 = 1 diff --git a/tencentcloud/services/waf/resource_tc_waf_clb_domain.go b/tencentcloud/services/waf/resource_tc_waf_clb_domain.go index 77e4546aaa..fd3ac88bf0 100644 --- a/tencentcloud/services/waf/resource_tc_waf_clb_domain.go +++ b/tencentcloud/services/waf/resource_tc_waf_clb_domain.go @@ -162,6 +162,20 @@ func ResourceTencentCloudWafClbDomain() *schema.Resource { ValidateFunc: tccommon.ValidateAllowedStringValue(ALB_TYPES), Description: "Load balancer type: clb, apisix or tsegw, default clb.", }, + "post_cls_action": { + Type: schema.TypeInt, + Optional: true, + Default: POST_CLS_ACTION_0, + ValidateFunc: tccommon.ValidateAllowedIntValue(POST_CLS_ACTION), + Description: "0-off, 1-on. default is 0.", + }, + "post_ckafka_action": { + Type: schema.TypeInt, + Optional: true, + Default: POST_CKAFKA_ACTION_0, + ValidateFunc: tccommon.ValidateAllowedIntValue(POST_CKAFKA_ACTION), + Description: "0-off, 1-on. default is 0.", + }, "ip_headers": { Type: schema.TypeList, Optional: true, @@ -182,20 +196,22 @@ func resourceTencentCloudWafClbDomainCreate(d *schema.ResourceData, meta interfa defer tccommon.InconsistentCheck(d, meta)() var ( - logId = tccommon.GetLogId(tccommon.ContextNil) - ctx = context.WithValue(context.TODO(), tccommon.LogIdKey, logId) - service = WafService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()} - request = waf.NewCreateHostRequest() - instanceID string - domain string - domainId string - wafStatus uint64 - engine uint64 - botStatus uint64 - apiSafeStatus uint64 - clsStatus uint64 - isCdn int - albType string + logId = tccommon.GetLogId(tccommon.ContextNil) + ctx = context.WithValue(context.TODO(), tccommon.LogIdKey, logId) + service = WafService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()} + request = waf.NewCreateHostRequest() + instanceID string + domain string + domainId string + wafStatus uint64 + engine uint64 + botStatus uint64 + apiSafeStatus uint64 + clsStatus uint64 + postCLSAction int + postCKafkaAction int + isCdn int + albType string ) if v, ok := d.GetOk("instance_id"); ok { @@ -503,6 +519,38 @@ func resourceTencentCloudWafClbDomainCreate(d *schema.ResourceData, meta interfa } } + // set domain post + if v, ok := d.GetOkExists("post_cls_action"); ok { + postCLSAction = v.(int) + } + + if v, ok := d.GetOkExists("post_ckafka_action"); ok { + postCKafkaAction = v.(int) + } + + if postCLSAction == POST_CLS_ACTION_1 || postCKafkaAction == POST_CKAFKA_ACTION_1 { + modifyDomainPostActionRequest := waf.NewModifyDomainPostActionRequest() + modifyDomainPostActionRequest.Domain = helper.String(domain) + modifyDomainPostActionRequest.PostCLSAction = helper.IntInt64(postCLSAction) + modifyDomainPostActionRequest.PostCKafkaAction = helper.IntInt64(postCKafkaAction) + + err = resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { + result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseWafClient().ModifyDomainPostAction(modifyDomainPostActionRequest) + if e != nil { + return tccommon.RetryError(e) + } else { + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, modifyDomainPostActionRequest.GetAction(), modifyDomainPostActionRequest.ToJsonString(), result.ToJsonString()) + } + + return nil + }) + + if err != nil { + log.Printf("[CRITAL]%s modify waf clbDomain post action failed, reason:%+v", logId, err) + return err + } + } + // set waf status if v, ok := d.GetOkExists("status"); ok { tmpWafStatus := v.(int) @@ -677,6 +725,14 @@ func resourceTencentCloudWafClbDomainRead(d *schema.ResourceData, meta interface _ = d.Set("domain_id", domainInfo.DomainId) } + if domainInfo.PostCLSStatus != nil { + _ = d.Set("post_cls_action", domainInfo.PostCLSStatus) + } + + if domainInfo.PostCKafkaStatus != nil { + _ = d.Set("post_ckafka_action", domainInfo.PostCKafkaStatus) + } + clbInfo, err := service.DescribeWafClbDomainById(ctx, instanceID, domain, domainId) if err != nil { return err @@ -713,6 +769,8 @@ func resourceTencentCloudWafClbDomainUpdate(d *schema.ResourceData, meta interfa botStatus uint64 apiSafeStatus uint64 clsStatus uint64 + postCLSAction int + postCKafkaAction int ) idSplit := strings.Split(d.Id(), tccommon.FILED_SP) @@ -1023,6 +1081,41 @@ func resourceTencentCloudWafClbDomainUpdate(d *schema.ResourceData, meta interfa } } + // set domain post + if d.HasChange("post_cls_action") || d.HasChange("post_ckafka_action") { + if v, ok := d.GetOkExists("post_cls_action"); ok { + postCLSAction = v.(int) + } + + if v, ok := d.GetOkExists("post_ckafka_action"); ok { + postCKafkaAction = v.(int) + } + + if postCLSAction == POST_CLS_ACTION_1 || postCKafkaAction == POST_CKAFKA_ACTION_1 { + modifyDomainPostActionRequest := waf.NewModifyDomainPostActionRequest() + modifyDomainPostActionRequest.Domain = helper.String(domain) + modifyDomainPostActionRequest.PostCLSAction = helper.IntInt64(postCLSAction) + modifyDomainPostActionRequest.PostCKafkaAction = helper.IntInt64(postCKafkaAction) + + err = resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { + result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseWafClient().ModifyDomainPostAction(modifyDomainPostActionRequest) + if e != nil { + return tccommon.RetryError(e) + } else { + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, modifyDomainPostActionRequest.GetAction(), modifyDomainPostActionRequest.ToJsonString(), result.ToJsonString()) + } + + return nil + }) + + if err != nil { + log.Printf("[CRITAL]%s modify waf clbDomain post action failed, reason:%+v", logId, err) + return err + } + } + + } + // set waf status if d.HasChange("status") { if v, ok := d.GetOkExists("status"); ok { diff --git a/tencentcloud/services/waf/resource_tc_waf_clb_domain_test.go b/tencentcloud/services/waf/resource_tc_waf_clb_domain_test.go index 48fb0a39ab..e2eccf14f8 100644 --- a/tencentcloud/services/waf/resource_tc_waf_clb_domain_test.go +++ b/tencentcloud/services/waf/resource_tc_waf_clb_domain_test.go @@ -9,7 +9,7 @@ import ( ) // go test -i; go test -test.run TestAccTencentCloudWafClbDomainResource_basic -v -func TestAccTencentCloudWafClbDomainResource_basic(t *testing.T) { +func TestAccTencentCloudNeedFixWafClbDomainResource_basic(t *testing.T) { t.Parallel() resource.Test(t, resource.TestCase{ PreCheck: func() { @@ -21,6 +21,9 @@ func TestAccTencentCloudWafClbDomainResource_basic(t *testing.T) { Config: testAccWafClbDomain, Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttrSet("tencentcloud_waf_clb_domain.example", "id"), + resource.TestCheckResourceAttr("tencentcloud_waf_clb_domain.example", "domain", "xxx.com"), + resource.TestCheckResourceAttr("tencentcloud_waf_clb_domain.example", "region", "gz"), + resource.TestCheckResourceAttr("tencentcloud_waf_clb_domain.example", "alb_type", "tsegw"), ), }, { @@ -32,6 +35,9 @@ func TestAccTencentCloudWafClbDomainResource_basic(t *testing.T) { Config: testAccWafClbDomainUpdate, Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttrSet("tencentcloud_waf_clb_domain.example", "id"), + resource.TestCheckResourceAttr("tencentcloud_waf_clb_domain.example", "domain", "xxx.com"), + resource.TestCheckResourceAttr("tencentcloud_waf_clb_domain.example", "region", "gz"), + resource.TestCheckResourceAttr("tencentcloud_waf_clb_domain.example", "alb_type", "tsegw"), ), }, }, @@ -40,65 +46,34 @@ func TestAccTencentCloudWafClbDomainResource_basic(t *testing.T) { const testAccWafClbDomain = ` resource "tencentcloud_waf_clb_domain" "example" { - instance_id = "waf_2kxtlbky00b2v1fn" - domain = "xxx.com" - is_cdn = 3 - status = 1 - engine = 21 - - load_balancer_set { - load_balancer_id = "lb-5dnrkgry" - load_balancer_name = "keep-listener-clb" - listener_id = "lbl-nonkgvc2" - listener_name = "dsadasd" - vip = "106.55.220.8" - vport = "80" - region = "gz" - protocol = "HTTP" - zone = "ap-guangzhou-6" - numerical_vpc_id = "5232945" - load_balancer_type = "OPEN" - } - - region = "gz" - flow_mode = 1 - alb_type = "clb" - bot_status = 1 - api_safe_status = 1 - ip_headers = [ - "headers_1", - "headers_2", - "headers_3", - ] + instance_id = "waf_2kxtlbky11b2v4fe" + domain = "xxx.com" + is_cdn = 0 + status = 1 + engine = 12 + region = "gz" + flow_mode = 0 + alb_type = "tsegw" + bot_status = 0 + api_safe_status = 0 + post_cls_action = 0 + post_ckafka_action = 0 } ` const testAccWafClbDomainUpdate = ` resource "tencentcloud_waf_clb_domain" "example" { - instance_id = "waf_2kxtlbky00b2v1fn" - domain = "xxx.com" - is_cdn = 0 - status = 1 - engine = 12 - - load_balancer_set { - load_balancer_id = "lb-5dnrkgry" - load_balancer_name = "keep-listener-clb" - listener_id = "lbl-nonkgvc2" - listener_name = "dsadasd" - vip = "106.55.220.8" - vport = "80" - region = "gz" - protocol = "HTTP" - zone = "ap-guangzhou-6" - numerical_vpc_id = "5232945" - load_balancer_type = "OPEN" - } - - region = "gz" - flow_mode = 0 - alb_type = "clb" - bot_status = 0 - api_safe_status = 0 + instance_id = "waf_2kxtlbky11b2v4fe" + domain = "xxx.com" + is_cdn = 0 + status = 1 + engine = 12 + region = "gz" + flow_mode = 0 + alb_type = "tsegw" + bot_status = 0 + api_safe_status = 0 + post_cls_action = 1 + post_ckafka_action = 1 } ` diff --git a/tencentcloud/services/waf/resource_tc_waf_saas_domain.go b/tencentcloud/services/waf/resource_tc_waf_saas_domain.go index 4e13519c7a..a30eb0eaf7 100644 --- a/tencentcloud/services/waf/resource_tc_waf_saas_domain.go +++ b/tencentcloud/services/waf/resource_tc_waf_saas_domain.go @@ -255,6 +255,20 @@ func ResourceTencentCloudWafSaasDomain() *schema.Resource { ValidateFunc: tccommon.ValidateAllowedIntValue(CLS_STATUS), Description: "Whether to enable access logs, 1 enable, 0 disable.", }, + "post_cls_action": { + Type: schema.TypeInt, + Optional: true, + Default: POST_CLS_ACTION_0, + ValidateFunc: tccommon.ValidateAllowedIntValue(POST_CLS_ACTION), + Description: "0-off, 1-on. default is 0.", + }, + "post_ckafka_action": { + Type: schema.TypeInt, + Optional: true, + Default: POST_CKAFKA_ACTION_0, + ValidateFunc: tccommon.ValidateAllowedIntValue(POST_CKAFKA_ACTION), + Description: "0-off, 1-on. default is 0.", + }, //"ipv6_status": { // Type: schema.TypeInt, // Optional: true, @@ -296,6 +310,8 @@ func resourceTencentCloudWafSaasDomainCreate(d *schema.ResourceData, meta interf apiSafeStatus uint64 clsStatus uint64 protectionStatus uint64 + postCLSAction int + postCKafkaAction int isCdn int //ipv6Status int64 @@ -710,6 +726,38 @@ func resourceTencentCloudWafSaasDomainCreate(d *schema.ResourceData, meta interf } } + // set domain post + if v, ok := d.GetOkExists("post_cls_action"); ok { + postCLSAction = v.(int) + } + + if v, ok := d.GetOkExists("post_ckafka_action"); ok { + postCKafkaAction = v.(int) + } + + if postCLSAction == POST_CLS_ACTION_1 || postCKafkaAction == POST_CKAFKA_ACTION_1 { + modifyDomainPostActionRequest := waf.NewModifyDomainPostActionRequest() + modifyDomainPostActionRequest.Domain = helper.String(domain) + modifyDomainPostActionRequest.PostCLSAction = helper.IntInt64(postCLSAction) + modifyDomainPostActionRequest.PostCKafkaAction = helper.IntInt64(postCKafkaAction) + + err = resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { + result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseWafClient().ModifyDomainPostAction(modifyDomainPostActionRequest) + if e != nil { + return tccommon.RetryError(e) + } else { + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, modifyDomainPostActionRequest.GetAction(), modifyDomainPostActionRequest.ToJsonString(), result.ToJsonString()) + } + + return nil + }) + + if err != nil { + log.Printf("[CRITAL]%s modify waf clbDomain post action failed, reason:%+v", logId, err) + return err + } + } + // set ipv6 //if v, ok := d.GetOkExists("ipv6_status"); ok { // tmpIpv6Status := v.(int) @@ -986,6 +1034,14 @@ func resourceTencentCloudWafSaasDomainRead(d *schema.ResourceData, meta interfac _ = d.Set("status", domainInfo.Status) } + if domainInfo.PostCLSStatus != nil { + _ = d.Set("post_cls_action", domainInfo.PostCLSStatus) + } + + if domainInfo.PostCKafkaStatus != nil { + _ = d.Set("post_ckafka_action", domainInfo.PostCKafkaStatus) + } + //if domainInfo.Ipv6Status != nil { // _ = d.Set("ipv6_status", domainInfo.Ipv6Status) //} @@ -998,13 +1054,15 @@ func resourceTencentCloudWafSaasDomainUpdate(d *schema.ResourceData, meta interf defer tccommon.InconsistentCheck(d, meta)() var ( - logId = tccommon.GetLogId(tccommon.ContextNil) - ctx = context.WithValue(context.TODO(), tccommon.LogIdKey, logId) - service = WafService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()} - request = waf.NewModifySpartaProtectionRequest() - botStatus uint64 - apiSafeStatus uint64 - clsStatus uint64 + logId = tccommon.GetLogId(tccommon.ContextNil) + ctx = context.WithValue(context.TODO(), tccommon.LogIdKey, logId) + service = WafService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()} + request = waf.NewModifySpartaProtectionRequest() + botStatus uint64 + apiSafeStatus uint64 + clsStatus uint64 + postCLSAction int + postCKafkaAction int //ipv6Status int64 loadBalance string isCdn int @@ -1463,6 +1521,41 @@ func resourceTencentCloudWafSaasDomainUpdate(d *schema.ResourceData, meta interf } } + // set domain post + if d.HasChange("post_cls_action") || d.HasChange("post_ckafka_action") { + if v, ok := d.GetOkExists("post_cls_action"); ok { + postCLSAction = v.(int) + } + + if v, ok := d.GetOkExists("post_ckafka_action"); ok { + postCKafkaAction = v.(int) + } + + if postCLSAction == POST_CLS_ACTION_1 || postCKafkaAction == POST_CKAFKA_ACTION_1 { + modifyDomainPostActionRequest := waf.NewModifyDomainPostActionRequest() + modifyDomainPostActionRequest.Domain = helper.String(domain) + modifyDomainPostActionRequest.PostCLSAction = helper.IntInt64(postCLSAction) + modifyDomainPostActionRequest.PostCKafkaAction = helper.IntInt64(postCKafkaAction) + + err = resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { + result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseWafClient().ModifyDomainPostAction(modifyDomainPostActionRequest) + if e != nil { + return tccommon.RetryError(e) + } else { + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, modifyDomainPostActionRequest.GetAction(), modifyDomainPostActionRequest.ToJsonString(), result.ToJsonString()) + } + + return nil + }) + + if err != nil { + log.Printf("[CRITAL]%s modify waf clbDomain post action failed, reason:%+v", logId, err) + return err + } + } + + } + // set ipv6 //if d.HasChange("ipv6_status") { // if v, ok := d.GetOkExists("ipv6_status"); ok { diff --git a/tencentcloud/services/waf/resource_tc_waf_saas_domain_test.go b/tencentcloud/services/waf/resource_tc_waf_saas_domain_test.go index 048655f364..c9d6a561a9 100644 --- a/tencentcloud/services/waf/resource_tc_waf_saas_domain_test.go +++ b/tencentcloud/services/waf/resource_tc_waf_saas_domain_test.go @@ -9,7 +9,7 @@ import ( ) // go test -i; go test -test.run TestAccTencentCloudWafSaasDomainResource_basic -v -func TestAccTencentCloudWafSaasDomainResource_basic(t *testing.T) { +func TestAccTencentCloudNeedFixWafSaasDomainResource_basic(t *testing.T) { t.Parallel() resource.Test(t, resource.TestCase{ PreCheck: func() { diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go index 224fcd786a..65d6a21a64 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go @@ -265,7 +265,7 @@ func CompleteCommonParams(request Request, region string, requestClient string) params["Action"] = request.GetAction() params["Timestamp"] = strconv.FormatInt(time.Now().Unix(), 10) params["Nonce"] = strconv.Itoa(rand.Int()) - params["RequestClient"] = "SDK_GO_1.0.910" + params["RequestClient"] = "SDK_GO_1.0.911" if requestClient != "" { params["RequestClient"] += ": " + requestClient } diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf/v20180125/client.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf/v20180125/client.go index a78f8853de..7e0fd4b249 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf/v20180125/client.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf/v20180125/client.go @@ -1302,9 +1302,7 @@ func NewDeleteHostResponse() (response *DeleteHostResponse) { } // DeleteHost -// 删除CLB-WAF防护域名 -// -// 支持批量操作 +// 删除负载均衡型域名,支持批量操作。 // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" @@ -1325,9 +1323,7 @@ func (c *Client) DeleteHost(request *DeleteHostRequest) (response *DeleteHostRes } // DeleteHost -// 删除CLB-WAF防护域名 -// -// 支持批量操作 +// 删除负载均衡型域名,支持批量操作。 // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" @@ -1491,7 +1487,7 @@ func NewDeleteSpartaProtectionResponse() (response *DeleteSpartaProtectionRespon } // DeleteSpartaProtection -// Saas型WAF删除防护域名 +// SaaS型WAF删除防护域名 // // 可能返回的错误码: // INTERNALERROR = "InternalError" @@ -1503,7 +1499,7 @@ func (c *Client) DeleteSpartaProtection(request *DeleteSpartaProtectionRequest) } // DeleteSpartaProtection -// Saas型WAF删除防护域名 +// SaaS型WAF删除防护域名 // // 可能返回的错误码: // INTERNALERROR = "InternalError" @@ -4531,7 +4527,7 @@ func NewDescribeTlsVersionResponse() (response *DescribeTlsVersionResponse) { } // DescribeTlsVersion -// 查询用户TLS版本 +// 查询SaaS型WAF支持的TLS版本 // // 可能返回的错误码: // AUTHFAILURE = "AuthFailure" @@ -4558,7 +4554,7 @@ func (c *Client) DescribeTlsVersion(request *DescribeTlsVersionRequest) (respons } // DescribeTlsVersion -// 查询用户TLS版本 +// 查询SaaS型WAF支持的TLS版本 // // 可能返回的错误码: // AUTHFAILURE = "AuthFailure" @@ -6656,6 +6652,91 @@ func (c *Client) ModifyDomainIpv6StatusWithContext(ctx context.Context, request return } +func NewModifyDomainPostActionRequest() (request *ModifyDomainPostActionRequest) { + request = &ModifyDomainPostActionRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("waf", APIVersion, "ModifyDomainPostAction") + + + return +} + +func NewModifyDomainPostActionResponse() (response *ModifyDomainPostActionResponse) { + response = &ModifyDomainPostActionResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// ModifyDomainPostAction +// 修改域名投递状态 +// +// 可能返回的错误码: +// AUTHFAILURE = "AuthFailure" +// FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_CKAFKAINTERNALERROR = "FailedOperation.CKafkaInternalError" +// FAILEDOPERATION_CLSINTERNALERROR = "FailedOperation.CLSInternalError" +// INTERNALERROR = "InternalError" +// INVALIDPARAMETER = "InvalidParameter" +// INVALIDPARAMETERVALUE = "InvalidParameterValue" +// LIMITEXCEEDED = "LimitExceeded" +// MISSINGPARAMETER = "MissingParameter" +// OPERATIONDENIED = "OperationDenied" +// REQUESTLIMITEXCEEDED = "RequestLimitExceeded" +// RESOURCEINUSE = "ResourceInUse" +// RESOURCEINSUFFICIENT = "ResourceInsufficient" +// RESOURCENOTFOUND = "ResourceNotFound" +// RESOURCEUNAVAILABLE = "ResourceUnavailable" +// RESOURCESSOLDOUT = "ResourcesSoldOut" +// UNAUTHORIZEDOPERATION = "UnauthorizedOperation" +// UNKNOWNPARAMETER = "UnknownParameter" +// UNSUPPORTEDOPERATION = "UnsupportedOperation" +func (c *Client) ModifyDomainPostAction(request *ModifyDomainPostActionRequest) (response *ModifyDomainPostActionResponse, err error) { + return c.ModifyDomainPostActionWithContext(context.Background(), request) +} + +// ModifyDomainPostAction +// 修改域名投递状态 +// +// 可能返回的错误码: +// AUTHFAILURE = "AuthFailure" +// FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_CKAFKAINTERNALERROR = "FailedOperation.CKafkaInternalError" +// FAILEDOPERATION_CLSINTERNALERROR = "FailedOperation.CLSInternalError" +// INTERNALERROR = "InternalError" +// INVALIDPARAMETER = "InvalidParameter" +// INVALIDPARAMETERVALUE = "InvalidParameterValue" +// LIMITEXCEEDED = "LimitExceeded" +// MISSINGPARAMETER = "MissingParameter" +// OPERATIONDENIED = "OperationDenied" +// REQUESTLIMITEXCEEDED = "RequestLimitExceeded" +// RESOURCEINUSE = "ResourceInUse" +// RESOURCEINSUFFICIENT = "ResourceInsufficient" +// RESOURCENOTFOUND = "ResourceNotFound" +// RESOURCEUNAVAILABLE = "ResourceUnavailable" +// RESOURCESSOLDOUT = "ResourcesSoldOut" +// UNAUTHORIZEDOPERATION = "UnauthorizedOperation" +// UNKNOWNPARAMETER = "UnknownParameter" +// UNSUPPORTEDOPERATION = "UnsupportedOperation" +func (c *Client) ModifyDomainPostActionWithContext(ctx context.Context, request *ModifyDomainPostActionRequest) (response *ModifyDomainPostActionResponse, err error) { + if request == nil { + request = NewModifyDomainPostActionRequest() + } + + if c.GetCredential() == nil { + return nil, errors.New("ModifyDomainPostAction require credential") + } + + request.SetContext(ctx) + + response = NewModifyDomainPostActionResponse() + err = c.Send(request, response) + return +} + func NewModifyDomainWhiteRuleRequest() (request *ModifyDomainWhiteRuleRequest) { request = &ModifyDomainWhiteRuleRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -6911,7 +6992,7 @@ func NewModifyHostResponse() (response *ModifyHostResponse) { } // ModifyHost -// clb-waf编辑防护域名配置 +// 编辑负载均衡型WAF防护域名配置 // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" @@ -6933,7 +7014,7 @@ func (c *Client) ModifyHost(request *ModifyHostRequest) (response *ModifyHostRes } // ModifyHost -// clb-waf编辑防护域名配置 +// 编辑负载均衡型WAF防护域名配置 // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" @@ -6986,7 +7067,7 @@ func NewModifyHostFlowModeResponse() (response *ModifyHostFlowModeResponse) { } // ModifyHostFlowMode -// clb-waf 设置防护域名的流量模式 +// 设置负载均衡型WAF防护域名的流量模式,切换镜像模式和清洗模式 // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" @@ -7007,7 +7088,7 @@ func (c *Client) ModifyHostFlowMode(request *ModifyHostFlowModeRequest) (respons } // ModifyHostFlowMode -// clb-waf 设置防护域名的流量模式 +// 设置负载均衡型WAF防护域名的流量模式,切换镜像模式和清洗模式 // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" @@ -7664,7 +7745,7 @@ func NewModifySpartaProtectionResponse() (response *ModifySpartaProtectionRespon } // ModifySpartaProtection -// 修改域名配置 +// 编辑SaaS型WAF域名配置 // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" @@ -7693,7 +7774,7 @@ func (c *Client) ModifySpartaProtection(request *ModifySpartaProtectionRequest) } // ModifySpartaProtection -// 修改域名配置 +// 编辑SaaS型WAF域名配置 // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf/v20180125/errors.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf/v20180125/errors.go index 44a6ef6b00..670590051a 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf/v20180125/errors.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf/v20180125/errors.go @@ -29,6 +29,9 @@ const ( // 操作失败。 FAILEDOPERATION = "FailedOperation" + // CKafka内部错误。 + FAILEDOPERATION_CKAFKAINTERNALERROR = "FailedOperation.CKafkaInternalError" + // 调用CLS日志服务API失败 FAILEDOPERATION_CLSDBOPERATIONFAILED = "FailedOperation.CLSDBOperationFailed" diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf/v20180125/models.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf/v20180125/models.go index 4b20901074..e2ab11669f 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf/v20180125/models.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf/v20180125/models.go @@ -329,9 +329,6 @@ type AddAttackWhiteRuleRequestParams struct { // 域名 Domain *string `json:"Domain,omitnil" name:"Domain"` - // 规则Id - SignatureId *string `json:"SignatureId,omitnil" name:"SignatureId"` - // 规则状态 Status *uint64 `json:"Status,omitnil" name:"Status"` @@ -340,6 +337,12 @@ type AddAttackWhiteRuleRequestParams struct { // 规则序号 RuleId *uint64 `json:"RuleId,omitnil" name:"RuleId"` + + // 规则Id + SignatureId *string `json:"SignatureId,omitnil" name:"SignatureId"` + + // 加白的规则ID列表 + SignatureIds []*string `json:"SignatureIds,omitnil" name:"SignatureIds"` } type AddAttackWhiteRuleRequest struct { @@ -348,9 +351,6 @@ type AddAttackWhiteRuleRequest struct { // 域名 Domain *string `json:"Domain,omitnil" name:"Domain"` - // 规则Id - SignatureId *string `json:"SignatureId,omitnil" name:"SignatureId"` - // 规则状态 Status *uint64 `json:"Status,omitnil" name:"Status"` @@ -359,6 +359,12 @@ type AddAttackWhiteRuleRequest struct { // 规则序号 RuleId *uint64 `json:"RuleId,omitnil" name:"RuleId"` + + // 规则Id + SignatureId *string `json:"SignatureId,omitnil" name:"SignatureId"` + + // 加白的规则ID列表 + SignatureIds []*string `json:"SignatureIds,omitnil" name:"SignatureIds"` } func (r *AddAttackWhiteRuleRequest) ToJsonString() string { @@ -374,10 +380,11 @@ func (r *AddAttackWhiteRuleRequest) FromJsonString(s string) error { return err } delete(f, "Domain") - delete(f, "SignatureId") delete(f, "Status") delete(f, "Rules") delete(f, "RuleId") + delete(f, "SignatureId") + delete(f, "SignatureIds") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "AddAttackWhiteRuleRequest has unknown keys!", "") } @@ -777,7 +784,7 @@ type AddSpartaProtectionRequestParams struct { // 待废弃,可不填。灰度的地区 GrayAreas []*string `json:"GrayAreas,omitnil" name:"GrayAreas"` - // 是否开启HTTP强制跳转到HTTPS。 + // 必填项,是否开启HTTP强制跳转到HTTPS。 // 0:不强制跳转 // 1:开启强制跳转 HttpsRewrite *int64 `json:"HttpsRewrite,omitnil" name:"HttpsRewrite"` @@ -788,7 +795,7 @@ type AddSpartaProtectionRequestParams struct { // IP回源时的回源IP列表。UpstreamType为0时,需要填充此字段 SrcList []*string `json:"SrcList,omitnil" name:"SrcList"` - // 是否开启HTTP2,需要开启HTTPS协议支持。 + // 必填项,是否开启HTTP2,需要开启HTTPS协议支持。 // 0:关闭 // 1:开启 IsHttp2 *int64 `json:"IsHttp2,omitnil" name:"IsHttp2"` @@ -807,12 +814,12 @@ type AddSpartaProtectionRequestParams struct { // cdn-waf:CDN上的Web防护能力 Edition *string `json:"Edition,omitnil" name:"Edition"` - // 是否开启长连接。 + // 必填项,是否开启长连接。 // 0: 短连接 // 1: 长连接 IsKeepAlive *string `json:"IsKeepAlive,omitnil" name:"IsKeepAlive"` - // 域名所属实例id + // 必填项,域名所属实例id InstanceID *string `json:"InstanceID,omitnil" name:"InstanceID"` // 待废弃,目前填0即可。anycast IP类型开关: 0 普通IP 1 Anycast IP @@ -821,7 +828,7 @@ type AddSpartaProtectionRequestParams struct { // 回源IP列表各IP的权重,和SrcList一一对应。当且仅当UpstreamType为0,并且SrcList有多个IP,并且LoadBalance为2时需要填写,否则填 [] Weights []*int64 `json:"Weights,omitnil" name:"Weights"` - // 是否开启主动健康检测。 + // 必填项,是否开启主动健康检测。 // 0:不开启 // 1:开启 ActiveCheck *int64 `json:"ActiveCheck,omitnil" name:"ActiveCheck"` @@ -829,7 +836,7 @@ type AddSpartaProtectionRequestParams struct { // TLS版本信息 TLSVersion *int64 `json:"TLSVersion,omitnil" name:"TLSVersion"` - // 加密套件模板。 + // 必填项,加密套件模板。 // 0:不支持选择,使用默认模板 // 1:通用型模板 // 2:安全型模板 @@ -859,6 +866,12 @@ type AddSpartaProtectionRequestParams struct { // 0:关闭 // 1:开启 XFFReset *int64 `json:"XFFReset,omitnil" name:"XFFReset"` + + // 域名备注信息 + Note *string `json:"Note,omitnil" name:"Note"` + + // 自定义回源Host。默认为空字符串,表示使用防护域名作为回源Host。 + UpstreamHost *string `json:"UpstreamHost,omitnil" name:"UpstreamHost"` } type AddSpartaProtectionRequest struct { @@ -925,7 +938,7 @@ type AddSpartaProtectionRequest struct { // 待废弃,可不填。灰度的地区 GrayAreas []*string `json:"GrayAreas,omitnil" name:"GrayAreas"` - // 是否开启HTTP强制跳转到HTTPS。 + // 必填项,是否开启HTTP强制跳转到HTTPS。 // 0:不强制跳转 // 1:开启强制跳转 HttpsRewrite *int64 `json:"HttpsRewrite,omitnil" name:"HttpsRewrite"` @@ -936,7 +949,7 @@ type AddSpartaProtectionRequest struct { // IP回源时的回源IP列表。UpstreamType为0时,需要填充此字段 SrcList []*string `json:"SrcList,omitnil" name:"SrcList"` - // 是否开启HTTP2,需要开启HTTPS协议支持。 + // 必填项,是否开启HTTP2,需要开启HTTPS协议支持。 // 0:关闭 // 1:开启 IsHttp2 *int64 `json:"IsHttp2,omitnil" name:"IsHttp2"` @@ -955,12 +968,12 @@ type AddSpartaProtectionRequest struct { // cdn-waf:CDN上的Web防护能力 Edition *string `json:"Edition,omitnil" name:"Edition"` - // 是否开启长连接。 + // 必填项,是否开启长连接。 // 0: 短连接 // 1: 长连接 IsKeepAlive *string `json:"IsKeepAlive,omitnil" name:"IsKeepAlive"` - // 域名所属实例id + // 必填项,域名所属实例id InstanceID *string `json:"InstanceID,omitnil" name:"InstanceID"` // 待废弃,目前填0即可。anycast IP类型开关: 0 普通IP 1 Anycast IP @@ -969,7 +982,7 @@ type AddSpartaProtectionRequest struct { // 回源IP列表各IP的权重,和SrcList一一对应。当且仅当UpstreamType为0,并且SrcList有多个IP,并且LoadBalance为2时需要填写,否则填 [] Weights []*int64 `json:"Weights,omitnil" name:"Weights"` - // 是否开启主动健康检测。 + // 必填项,是否开启主动健康检测。 // 0:不开启 // 1:开启 ActiveCheck *int64 `json:"ActiveCheck,omitnil" name:"ActiveCheck"` @@ -977,7 +990,7 @@ type AddSpartaProtectionRequest struct { // TLS版本信息 TLSVersion *int64 `json:"TLSVersion,omitnil" name:"TLSVersion"` - // 加密套件模板。 + // 必填项,加密套件模板。 // 0:不支持选择,使用默认模板 // 1:通用型模板 // 2:安全型模板 @@ -1007,6 +1020,12 @@ type AddSpartaProtectionRequest struct { // 0:关闭 // 1:开启 XFFReset *int64 `json:"XFFReset,omitnil" name:"XFFReset"` + + // 域名备注信息 + Note *string `json:"Note,omitnil" name:"Note"` + + // 自定义回源Host。默认为空字符串,表示使用防护域名作为回源Host。 + UpstreamHost *string `json:"UpstreamHost,omitnil" name:"UpstreamHost"` } func (r *AddSpartaProtectionRequest) ToJsonString() string { @@ -1055,6 +1074,8 @@ func (r *AddSpartaProtectionRequest) FromJsonString(s string) error { delete(f, "SniType") delete(f, "SniHost") delete(f, "XFFReset") + delete(f, "Note") + delete(f, "UpstreamHost") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "AddSpartaProtectionRequest has unknown keys!", "") } @@ -1446,28 +1467,28 @@ type ClbDomainsInfo struct { // 域名 Domain *string `json:"Domain,omitnil" name:"Domain"` - // 域名id + // 域名唯一ID DomainId *string `json:"DomainId,omitnil" name:"DomainId"` - // 实例id + // 域名所属实例ID InstanceId *string `json:"InstanceId,omitnil" name:"InstanceId"` - // 实例名 + // 域名所属实例名 InstanceName *string `json:"InstanceName,omitnil" name:"InstanceName"` - // waf类型 + // 域名所属实例类型 Edition *string `json:"Edition,omitnil" name:"Edition"` - // 是否是cdn + // waf前是否部署有七层代理服务。 0:没有部署代理服务 1:有部署代理服务,waf将使用XFF获取客户端IP 2:有部署代理服务,waf将使用remote_addr获取客户端IP 3:有部署代理服务,waf将使用ip_headers中的自定义header获取客户端IP IsCdn *uint64 `json:"IsCdn,omitnil" name:"IsCdn"` - // 负载均衡算法 + // 负载均衡类型为clb时,对应的负载均衡器信息 LoadBalancerSet []*LoadBalancerPackageNew `json:"LoadBalancerSet,omitnil" name:"LoadBalancerSet"` - // 镜像模式 + // 负载均衡型WAF的流量模式,1:清洗模式,0:镜像模式 FlowMode *uint64 `json:"FlowMode,omitnil" name:"FlowMode"` - // 绑定clb状态 + // 域名绑定负载均衡器状态 // 注意:此字段可能返回 null,表示取不到有效值。 State *int64 `json:"State,omitnil" name:"State"` @@ -1479,13 +1500,17 @@ type ClbDomainsInfo struct { // 注意:此字段可能返回 null,表示取不到有效值。 IpHeaders []*string `json:"IpHeaders,omitnil" name:"IpHeaders"` - // cdc类型会增加集群信息 + // cdc-clb-waf类型WAF的CDC集群信息 // 注意:此字段可能返回 null,表示取不到有效值。 CdcClusters *string `json:"CdcClusters,omitnil" name:"CdcClusters"` // 云类型:public:公有云;private:私有云;hybrid:混合云 // 注意:此字段可能返回 null,表示取不到有效值。 CloudType *string `json:"CloudType,omitnil" name:"CloudType"` + + // 域名备注信息 + // 注意:此字段可能返回 null,表示取不到有效值。 + Note *string `json:"Note,omitnil" name:"Note"` } type ClbHostResult struct { @@ -2429,7 +2454,7 @@ func (r *DeleteHostRequest) FromJsonString(s string) error { // Predefined struct for user type DeleteHostResponseParams struct { - // 操作的状态码,如果所有的资源操作成功则返回的是成功的状态码,如果有资源操作失败则需要解析Message的内容来查看哪个资源失败 + // 域名删除结果。Code表示状态码,Message表示详细信息。 Success *ResponseCode `json:"Success,omitnil" name:"Success"` // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -2468,6 +2493,9 @@ type DeleteIpAccessControlRequestParams struct { // 是否为多域名黑白名单 SourceType *string `json:"SourceType,omitnil" name:"SourceType"` + + // IP黑白名单类型,40为IP白名单,42为IP黑名单 + ActionType *uint64 `json:"ActionType,omitnil" name:"ActionType"` } type DeleteIpAccessControlRequest struct { @@ -2487,6 +2515,9 @@ type DeleteIpAccessControlRequest struct { // 是否为多域名黑白名单 SourceType *string `json:"SourceType,omitnil" name:"SourceType"` + + // IP黑白名单类型,40为IP白名单,42为IP黑名单 + ActionType *uint64 `json:"ActionType,omitnil" name:"ActionType"` } func (r *DeleteIpAccessControlRequest) ToJsonString() string { @@ -2506,6 +2537,7 @@ func (r *DeleteIpAccessControlRequest) FromJsonString(s string) error { delete(f, "IsId") delete(f, "DeleteAll") delete(f, "SourceType") + delete(f, "ActionType") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteIpAccessControlRequest has unknown keys!", "") } @@ -2622,7 +2654,7 @@ type DeleteSpartaProtectionRequestParams struct { // 实例类型 Edition *string `json:"Edition,omitnil" name:"Edition"` - // 实例id + // 必填项。域名所属实例ID InstanceID *string `json:"InstanceID,omitnil" name:"InstanceID"` } @@ -2635,7 +2667,7 @@ type DeleteSpartaProtectionRequest struct { // 实例类型 Edition *string `json:"Edition,omitnil" name:"Edition"` - // 实例id + // 必填项。域名所属实例ID InstanceID *string `json:"InstanceID,omitnil" name:"InstanceID"` } @@ -4159,16 +4191,16 @@ type DescribeCertificateVerifyResultRequestParams struct { // 域名 Domain *string `json:"Domain,omitnil" name:"Domain"` - // 证书类型 + // 证书类型。 0:仅配置HTTP监听端口,没有证书 1:证书来源为自有证书 2:证书来源为托管证书 CertType *int64 `json:"CertType,omitnil" name:"CertType"` - // 证书公钥 + // CertType为1时,需要填充此参数,表示自有证书的证书链 Certificate *string `json:"Certificate,omitnil" name:"Certificate"` - // 证书ID + // CertType为2时,需要填充此参数,表示腾讯云SSL平台托管的证书id CertID *string `json:"CertID,omitnil" name:"CertID"` - // 私钥信息 + // CertType为1时,需要填充此参数,表示自有证书的私钥 PrivateKey *string `json:"PrivateKey,omitnil" name:"PrivateKey"` } @@ -4178,16 +4210,16 @@ type DescribeCertificateVerifyResultRequest struct { // 域名 Domain *string `json:"Domain,omitnil" name:"Domain"` - // 证书类型 + // 证书类型。 0:仅配置HTTP监听端口,没有证书 1:证书来源为自有证书 2:证书来源为托管证书 CertType *int64 `json:"CertType,omitnil" name:"CertType"` - // 证书公钥 + // CertType为1时,需要填充此参数,表示自有证书的证书链 Certificate *string `json:"Certificate,omitnil" name:"Certificate"` - // 证书ID + // CertType为2时,需要填充此参数,表示腾讯云SSL平台托管的证书id CertID *string `json:"CertID,omitnil" name:"CertID"` - // 私钥信息 + // CertType为1时,需要填充此参数,表示自有证书的私钥 PrivateKey *string `json:"PrivateKey,omitnil" name:"PrivateKey"` } @@ -4216,7 +4248,11 @@ func (r *DescribeCertificateVerifyResultRequest) FromJsonString(s string) error // Predefined struct for user type DescribeCertificateVerifyResultResponseParams struct { - // 状态码 + // 状态码。 + // 0:证书正常 + // 310:证书异常 + // 311:证书过期 + // 312:证书即将过期 Status *int64 `json:"Status,omitnil" name:"Status"` // 错误详情 @@ -4225,7 +4261,9 @@ type DescribeCertificateVerifyResultResponseParams struct { // 过期时间 NotAfter *string `json:"NotAfter,omitnil" name:"NotAfter"` - // 证书是否改变:1有改变,0没有改变 + // 证书是否改变。 + // 0:未变化 + // 1:有变化 // 注意:此字段可能返回 null,表示取不到有效值。 Changed *int64 `json:"Changed,omitnil" name:"Changed"` @@ -7292,6 +7330,11 @@ type DescribeWafAutoDenyRulesResponseParams struct { // 自动封禁状态 DefenseStatus *int64 `json:"DefenseStatus,omitnil" name:"DefenseStatus"` + // 数据来源Source字段 custom-自定义(默认)、batch-domain-批量域名 + // + // 注意:此字段可能返回 null,表示取不到有效值。 + Source *string `json:"Source,omitnil" name:"Source"` + // 重保护网域名状态 HWState *int64 `json:"HWState,omitnil" name:"HWState"` @@ -7556,79 +7599,155 @@ type DomainInfo struct { // cname地址 Cname *string `json:"Cname,omitnil" name:"Cname"` - // 实例类型,sparta-waf表示saaswaf实例域名,clb-waf表示clbwaf实例域名,cdc-clb-waf表示CDC环境下clbwaf实例域名,cdn-waf表示cdnwaf实例域名 + // 域名所属实例类型。 + // sparta-waf:SaaS型WAF实例 + // clb-waf:负载均衡型WAF实例 + // cdc-clb-waf:CDC环境下负载均衡型WAF实例 Edition *string `json:"Edition,omitnil" name:"Edition"` - // 地域 + // 地域。 + // "多伦多": "ca" + // "广州": "gz" + // "成都": "cd" + // "福州": "fzec" + // "深圳": "szx" + // "印度": "in" + // "济南": "jnec" + // "重庆": "cq" + // "天津": "tsn" + // "欧洲东北": "ru" + // "南京": "nj" + // "美国硅谷": "usw" + // "泰国": "th" + // "广州Open": "gzopen" + // "深圳金融": "szjr" + // "法兰克福": "de" + // "日本": "jp" + // "弗吉尼亚": "use" + // "北京": "bj" + // "香港": "hk" + // "杭州": "hzec" + // "北京金融": "bjjr" + // "上海金融": "shjr" + // "台北": "tpe" + // "首尔": "kr" + // "上海": "sh" + // "新加坡": "sg" + // "清远": "qy" Region *string `json:"Region,omitnil" name:"Region"` // 实例名 InstanceName *string `json:"InstanceName,omitnil" name:"InstanceName"` - // 日志包 + // 访问日志开关状态。 + // 0:关闭 + // 1:开启 ClsStatus *uint64 `json:"ClsStatus,omitnil" name:"ClsStatus"` - // clbwaf使用模式,0镜像模式 1清洗模式 + // 负载均衡型WAF使用模式。 + // 0:镜像模式 + // 1:清洗模式 FlowMode *uint64 `json:"FlowMode,omitnil" name:"FlowMode"` - // waf开关,0关闭 1开启 + // waf开关状态。 + // 0:关闭 + // 1:开启 Status *uint64 `json:"Status,omitnil" name:"Status"` - // 规则引擎防护模式,0观察模式 1拦截模式 + // 规则引擎防护模式。 + // 0:观察模式 + // 1:拦截模式 Mode *uint64 `json:"Mode,omitnil" name:"Mode"` - // 规则引擎和AI引擎防护模式联合状态,10规则引擎观察&&AI引擎关闭模式 11规则引擎观察&&AI引擎观察模式 12规则引擎观察&&AI引擎拦截模式 20规则引擎拦截&&AI引擎关闭模式 21规则引擎拦截&&AI引擎观察模式 22规则引擎拦截&&AI引擎拦截模式 + // 规则引擎和AI引擎防护模式联合状态。 + // 1:初始状态,规则引擎拦截&&AI引擎未操作开关状态 + // 10:规则引擎观察&&AI引擎关闭模式 + // 11:规则引擎观察&&AI引擎观察模式 + // 12:规则引擎观察&&AI引擎拦截模式 + // 20:规则引擎拦截&&AI引擎关闭模式 + // 21:规则引擎拦截&&AI引擎观察模式 + // 22:规则引擎拦截&&AI引擎拦截模式 Engine *uint64 `json:"Engine,omitnil" name:"Engine"` - // CC列表 + // 沙箱集群回源出口IP列表 CCList []*string `json:"CCList,omitnil" name:"CCList"` - // 回源ip + // 生产集群回源出口IP列表 RsList []*string `json:"RsList,omitnil" name:"RsList"` // 服务端口配置 Ports []*PortInfo `json:"Ports,omitnil" name:"Ports"` - // 负载均衡器 + // 负载均衡器相关配置 LoadBalancerSet []*LoadBalancerPackageNew `json:"LoadBalancerSet,omitnil" name:"LoadBalancerSet"` // 用户id AppId *uint64 `json:"AppId,omitnil" name:"AppId"` - // clbwaf域名监听器状态,0操作成功 4正在绑定LB 6正在解绑LB 7解绑LB失败 8绑定LB失败 10内部错误 + // 负载均衡型WAF域名LB监听器状态。 + // 0:操作成功 + // 4:正在绑定LB + // 6:正在解绑LB + // 7:解绑LB失败 + // 8:绑定LB失败 + // 10:内部错误 State *int64 `json:"State,omitnil" name:"State"` // 创建时间 CreateTime *string `json:"CreateTime,omitnil" name:"CreateTime"` - // Ipv6开关状态,0关闭 1开启 + // Ipv6开关状态。 + // 0:关闭 + // 1:开启 Ipv6Status *int64 `json:"Ipv6Status,omitnil" name:"Ipv6Status"` - // BOT开关状态,0关闭 1开启 + // BOT开关状态。 + // 0:关闭 + // 1:关闭 + // 2:开启 + // 3:开启 BotStatus *int64 `json:"BotStatus,omitnil" name:"BotStatus"` - // 版本信息 + // 实例版本信息。 + // 101:小微敏捷版 + // 102:小微超轻版 + // 2:高级版 + // 3:企业版 + // 4:旗舰版 + // 6:独享版 Level *int64 `json:"Level,omitnil" name:"Level"` - // 是否开启投递CLS功能,0关闭 1开启 + // 投递CLS状态。 + // 0:关闭 + // 1:开启 PostCLSStatus *int64 `json:"PostCLSStatus,omitnil" name:"PostCLSStatus"` - // 是否开启投递CKafka功能,0关闭 1开启 + // 投递CKafka状态。 + // 0:关闭 + // 1:开启 PostCKafkaStatus *int64 `json:"PostCKafkaStatus,omitnil" name:"PostCKafkaStatus"` - // cdc实例域名接入的集群信息,非cdc实例忽略 + // cdc实例域名接入的集群信息,非cdc实例忽略。 // 注意:此字段可能返回 null,表示取不到有效值。 CdcClusters *string `json:"CdcClusters,omitnil" name:"CdcClusters"` - // api安全开关状态,0关闭 1开启 + // api安全开关状态。 + // 0:关闭 + // 1:开启 // 注意:此字段可能返回 null,表示取不到有效值。 ApiStatus *int64 `json:"ApiStatus,omitnil" name:"ApiStatus"` - // 应用型负载均衡类型,clb或者apisix,默认clb + // 应用型负载均衡类型,默认clb。 + // clb:七层负载均衡器类型 + // apisix:apisix网关型 // 注意:此字段可能返回 null,表示取不到有效值。 AlbType *string `json:"AlbType,omitnil" name:"AlbType"` - // 安全组状态,0不展示 1非腾讯云源站 2安全组绑定失败 3安全组发生变更 + // 安全组状态。 + // 0:不展示 + // 1:非腾讯云源站 + // 2:安全组绑定失败 + // 3:安全组发生变更 // 注意:此字段可能返回 null,表示取不到有效值。 SgState *int64 `json:"SgState,omitnil" name:"SgState"` @@ -7636,9 +7755,26 @@ type DomainInfo struct { // 注意:此字段可能返回 null,表示取不到有效值。 SgDetail *string `json:"SgDetail,omitnil" name:"SgDetail"` - // 域名类型:hybrid表示混合云域名,public表示公有云域名 + // 域名云环境。hybrid:混合云域名 + // public:公有云域名 // 注意:此字段可能返回 null,表示取不到有效值。 CloudType *string `json:"CloudType,omitnil" name:"CloudType"` + + // 域名备注信息 + // 注意:此字段可能返回 null,表示取不到有效值。 + Note *string `json:"Note,omitnil" name:"Note"` + + // SAASWAF源站IP列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + SrcList []*string `json:"SrcList,omitnil" name:"SrcList"` + + // SAASWAF源站域名列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + UpstreamDomainList []*string `json:"UpstreamDomainList,omitnil" name:"UpstreamDomainList"` + + // 安全组ID + // 注意:此字段可能返回 null,表示取不到有效值。 + SgID *string `json:"SgID,omitnil" name:"SgID"` } type DomainPackageNew struct { @@ -7679,16 +7815,16 @@ type DomainsPartInfo struct { // 域名 Domain *string `json:"Domain,omitnil" name:"Domain"` - // 域名id + // 域名唯一ID DomainId *string `json:"DomainId,omitnil" name:"DomainId"` - // 实例id + // 域名所属实例唯一ID InstanceId *string `json:"InstanceId,omitnil" name:"InstanceId"` - // 类型 + // 域名所属实例类型 Edition *string `json:"Edition,omitnil" name:"Edition"` - // 实例名 + // 域名所属实例名 InstanceName *string `json:"InstanceName,omitnil" name:"InstanceName"` // 证书 @@ -7697,67 +7833,102 @@ type DomainsPartInfo struct { // 创建时间 CreateTime *string `json:"CreateTime,omitnil" name:"CreateTime"` - // AI防御模式 + // 规则引擎和AI引擎防护模式联合状态。 + // 1:初始状态,规则引擎拦截&&AI引擎未操作开关状态 + // 10:规则引擎观察&&AI引擎关闭模式 + // 11:规则引擎观察&&AI引擎观察模式 + // 12:规则引擎观察&&AI引擎拦截模式 + // 20:规则引擎拦截&&AI引擎关闭模式 + // 21:规则引擎拦截&&AI引擎观察模式 + // 22:规则引擎拦截&&AI引擎拦截模式 Engine *uint64 `json:"Engine,omitnil" name:"Engine"` - // 是否开启httpRewrite + // 是否开启HTTP强制跳转到HTTPS。 + // 0:不强制跳转 + // 1:开启强制跳转 HttpsRewrite *uint64 `json:"HttpsRewrite,omitnil" name:"HttpsRewrite"` - // https回源端口 + // HTTPS回源端口 HttpsUpstreamPort *string `json:"HttpsUpstreamPort,omitnil" name:"HttpsUpstreamPort"` - // 是否是cdn + // waf前是否部署有七层代理服务。 + // 0:没有部署代理服务 + // 1:有部署代理服务,waf将使用XFF获取客户端IP + // 2:有部署代理服务,waf将使用remote_addr获取客户端IP + // 3:有部署代理服务,waf将使用ip_headers中的自定义header获取客户端IP IsCdn *uint64 `json:"IsCdn,omitnil" name:"IsCdn"` - // 是否开启gray + // 是否开启灰度,已废弃。 IsGray *uint64 `json:"IsGray,omitnil" name:"IsGray"` - // 是否是http2 + // 是否开启HTTP2,需要开启HTTPS协议支持。 + // 0:关闭 + // 1:开启 IsHttp2 *uint64 `json:"IsHttp2,omitnil" name:"IsHttp2"` - // 是否开启websocket + // 是否开启WebSocket支持。 + // 0:关闭 + // 1:开启 IsWebsocket *uint64 `json:"IsWebsocket,omitnil" name:"IsWebsocket"` - // 负载均衡 + // 回源负载均衡策略。 + // 0:轮询 + // 1:IP hash + // 2:加权轮询 LoadBalance *uint64 `json:"LoadBalance,omitnil" name:"LoadBalance"` - // 防御模式 + // 防护模式。 + // 0:观察模式 + // 1:拦截模式 Mode *uint64 `json:"Mode,omitnil" name:"Mode"` - // 私钥 + // 自有证书的私钥 PrivateKey *string `json:"PrivateKey,omitnil" name:"PrivateKey"` - // ssl id + // CertType为2时,需要填充此参数,表示腾讯云SSL平台托管的证书id SSLId *string `json:"SSLId,omitnil" name:"SSLId"` - // 回源域名 + // 域名回源时的回源域名。UpstreamType为1时,需要填充此字段 UpstreamDomain *string `json:"UpstreamDomain,omitnil" name:"UpstreamDomain"` - // 回源类型 + // 回源类型。 + // 0:通过IP回源 + // 1:通过域名回源 UpstreamType *uint64 `json:"UpstreamType,omitnil" name:"UpstreamType"` - // 回源ip + // IP回源时的回源IP列表。UpstreamType为0时,需要填充此字段 SrcList []*string `json:"SrcList,omitnil" name:"SrcList"` - // 服务端口配置 + // 域名端口配置 Ports []*PortInfo `json:"Ports,omitnil" name:"Ports"` - // 证书类型 + // 证书类型。 + // 0:仅配置HTTP监听端口,没有证书 + // 1:证书来源为自有证书 + // 2:证书来源为托管证书 CertType *uint64 `json:"CertType,omitnil" name:"CertType"` - // 回源方式 + // 服务配置有HTTPS端口时,HTTPS的回源协议。 + // http:使用http协议回源,和HttpsUpstreamPort配合使用 + // https:使用https协议回源 UpstreamScheme *string `json:"UpstreamScheme,omitnil" name:"UpstreamScheme"` - // 日志包 + // 日志包是否开启。 + // 0:关闭 + // 1:开启 Cls *uint64 `json:"Cls,omitnil" name:"Cls"` - // 一级cname + // 接入Cname,SaaS型域名使用此Cname进行接入 Cname *string `json:"Cname,omitnil" name:"Cname"` - // 是否长连接 + // 是否开启长连接。 + // 0: 短连接 + // 1: 长连接 IsKeepAlive *uint64 `json:"IsKeepAlive,omitnil" name:"IsKeepAlive"` - // 是否开启主动健康检测,1表示开启,0表示不开启 + // 是否开启主动健康检测。 + // 0:不开启 + // 1:开启 // 注意:此字段可能返回 null,表示取不到有效值。 ActiveCheck *uint64 `json:"ActiveCheck,omitnil" name:"ActiveCheck"` @@ -7765,31 +7936,39 @@ type DomainsPartInfo struct { // 注意:此字段可能返回 null,表示取不到有效值。 TLSVersion *int64 `json:"TLSVersion,omitnil" name:"TLSVersion"` - // 加密套件信息 + // 自定义的加密套件列表。CipherTemplate为3时需要填此字段,表示自定义的加密套件,值通过DescribeCiphersDetail接口获取。 // 注意:此字段可能返回 null,表示取不到有效值。 Ciphers []*int64 `json:"Ciphers,omitnil" name:"Ciphers"` - // 模板 + // 加密套件模板。 + // 0:不支持选择,使用默认模板 + // 1:通用型模板 + // 2:安全型模板 + // 3:自定义模板 // 注意:此字段可能返回 null,表示取不到有效值。 CipherTemplate *int64 `json:"CipherTemplate,omitnil" name:"CipherTemplate"` - // 300s + // WAF与源站的读超时时间,默认300s。 // 注意:此字段可能返回 null,表示取不到有效值。 ProxyReadTimeout *int64 `json:"ProxyReadTimeout,omitnil" name:"ProxyReadTimeout"` - // 300s + // WAF与源站的写超时时间,默认300s。 // 注意:此字段可能返回 null,表示取不到有效值。 ProxySendTimeout *int64 `json:"ProxySendTimeout,omitnil" name:"ProxySendTimeout"` - // 0:关闭SNI;1:开启SNI,SNI=源请求host;2:开启SNI,SNI=修改为源站host;3:开启SNI,自定义host,SNI=SniHost; + // WAF回源时的SNI类型。 + // 0:关闭SNI,不配置client_hello中的server_name + // 1:开启SNI,client_hello中的server_name为防护域名 + // 2:开启SNI,SNI为域名回源时的源站域名 + // 3:开启SNI,SNI为自定义域名 // 注意:此字段可能返回 null,表示取不到有效值。 SniType *int64 `json:"SniType,omitnil" name:"SniType"` - // SniType=3时,需要填此参数,表示自定义的host; + // SniType为3时,需要填此参数,表示自定义的SNI; // 注意:此字段可能返回 null,表示取不到有效值。 SniHost *string `json:"SniHost,omitnil" name:"SniHost"` - // 无 + // 回源IP权重 // 注意:此字段可能返回 null,表示取不到有效值。 Weights []*string `json:"Weights,omitnil" name:"Weights"` @@ -7797,9 +7976,23 @@ type DomainsPartInfo struct { // 注意:此字段可能返回 null,表示取不到有效值。 IpHeaders []*string `json:"IpHeaders,omitnil" name:"IpHeaders"` - // 0:关闭xff重置;1:开启xff重置 + // 是否开启XFF重置。 + // 0:关闭 + // 1:开启 // 注意:此字段可能返回 null,表示取不到有效值。 XFFReset *int64 `json:"XFFReset,omitnil" name:"XFFReset"` + + // 域名备注信息 + // 注意:此字段可能返回 null,表示取不到有效值。 + Note *string `json:"Note,omitnil" name:"Note"` + + // 自定义回源Host。默认为空字符串,表示使用防护域名作为回源Host。 + // 注意:此字段可能返回 null,表示取不到有效值。 + UpstreamHost *string `json:"UpstreamHost,omitnil" name:"UpstreamHost"` + + // 防护规则 + // 注意:此字段可能返回 null,表示取不到有效值。 + Level *string `json:"Level,omitnil" name:"Level"` } type DownloadAttackRecordInfo struct { @@ -8590,51 +8783,74 @@ type HostRecord struct { // 域名 Domain *string `json:"Domain,omitnil" name:"Domain"` - // 域名ID + // 域名唯一ID DomainId *string `json:"DomainId,omitnil" name:"DomainId"` // 主域名,入参时为空 MainDomain *string `json:"MainDomain,omitnil" name:"MainDomain"` - // 规则引擎防护模式,0 观察模式,1拦截模式 + // 规则引擎防护模式。 + // 0:观察模式 + // 1:拦截模式 Mode *uint64 `json:"Mode,omitnil" name:"Mode"` - // waf和LD的绑定,0:没有绑定,1:绑定 + // waf和负载均衡器的绑定关系。 + // 0:未绑定 + // 1:已绑定 Status *uint64 `json:"Status,omitnil" name:"Status"` - // 域名状态,0:正常,1:未检测到流量,2:即将过期,3:过期 + // clbwaf域名监听器状态。 + // 0:操作成功 + // 4:正在绑定LB + // 6:正在解绑LB + // 7:解绑LB失败 + // 8:绑定LB失败 + // 10:内部错误 State *uint64 `json:"State,omitnil" name:"State"` - // 规则引擎和AI引擎防护模式联合状态,10规则引擎观察&&AI引擎关闭模式 11规则引擎观察&&AI引擎观察模式 12规则引擎观察&&AI引擎拦截模式 20规则引擎拦截&&AI引擎关闭模式 21规则引擎拦截&&AI引擎观察模式 22规则引擎拦截&&AI引擎拦截模式 + // 规则引擎和AI引擎防护模式联合状态。 + // 1:初始状态,规则引擎拦截&&AI引擎未操作开关状态 + // 10:规则引擎观察&&AI引擎关闭模式 + // 11:规则引擎观察&&AI引擎观察模式 + // 12:规则引擎观察&&AI引擎拦截模式 + // 20:规则引擎拦截&&AI引擎关闭模式 + // 21:规则引擎拦截&&AI引擎观察模式 + // 22:规则引擎拦截&&AI引擎拦截模式 Engine *uint64 `json:"Engine,omitnil" name:"Engine"` - // 是否开启代理,0:不开启,1:开启 + // waf前是否部署有七层代理服务。 0:没有部署代理服务 1:有部署代理服务,waf将使用XFF获取客户端IP 2:有部署代理服务,waf将使用remote_addr获取客户端IP 3:有部署代理服务,waf将使用ip_headers中的自定义header获取客户端IP IsCdn *uint64 `json:"IsCdn,omitnil" name:"IsCdn"` - // 绑定的LB列表 + // 绑定的负载均衡器信息列表 LoadBalancerSet []*LoadBalancer `json:"LoadBalancerSet,omitnil" name:"LoadBalancerSet"` - // 域名绑定的LB的地域,以,分割多个地域 + // 域名绑定的LB的地域,以逗号分割多个地域 Region *string `json:"Region,omitnil" name:"Region"` - // 产品分类,取值为:sparta-waf、clb-waf、cdn-waf + // 域名所属实例类型。负载均衡型WAF为"clb-waf" Edition *string `json:"Edition,omitnil" name:"Edition"` - // WAF的流量模式,1:清洗模式,0:镜像模式 + // 负载均衡型WAF域名的流量模式。 + // 1:清洗模式 + // 0:镜像模式 FlowMode *uint64 `json:"FlowMode,omitnil" name:"FlowMode"` - // 是否开启访问日志,1:开启,0:关闭 + // 是否开启访问日志。 + // 1:开启 + // 0:关闭 ClsStatus *uint64 `json:"ClsStatus,omitnil" name:"ClsStatus"` // 防护等级,可选值100,200,300 // 注意:此字段可能返回 null,表示取不到有效值。 Level *uint64 `json:"Level,omitnil" name:"Level"` - // 域名需要下发到的cdc集群列表 + // 域名需要下发到的cdc集群列表。仅CDC场景下填充 // 注意:此字段可能返回 null,表示取不到有效值。 CdcClusters []*string `json:"CdcClusters,omitnil" name:"CdcClusters"` - // 应用型负载均衡类型: clb或者apisix,默认clb + // 应用型负载均衡类型,默认clb。 + // clb:七层负载均衡器类型 + // apisix:apisix网关型 // 注意:此字段可能返回 null,表示取不到有效值。 AlbType *string `json:"AlbType,omitnil" name:"AlbType"` @@ -8642,13 +8858,22 @@ type HostRecord struct { // 注意:此字段可能返回 null,表示取不到有效值。 IpHeaders []*string `json:"IpHeaders,omitnil" name:"IpHeaders"` - // 规则引擎类型, 1: menshen, 2:tiga + // 规则引擎类型。 + // 1: menshen + // 2: tiga // 注意:此字段可能返回 null,表示取不到有效值。 EngineType *int64 `json:"EngineType,omitnil" name:"EngineType"` - // 云类型:public:公有云;private:私有云;hybrid:混合云 + // 云类型。 + // public:公有云 + // private:私有云 + // hybrid:混合云 // 注意:此字段可能返回 null,表示取不到有效值。 CloudType *string `json:"CloudType,omitnil" name:"CloudType"` + + // 域名备注信息 + // 注意:此字段可能返回 null,表示取不到有效值。 + Note *string `json:"Note,omitnil" name:"Note"` } type HostStatus struct { @@ -8980,6 +9205,34 @@ type LoadBalancerPackageNew struct { Protocol *string `json:"Protocol,omitnil" name:"Protocol"` // 地区 + // "多伦多": "ca", + // "广州": "gz", + // "成都": "cd", + // "福州": "fzec", + // "深圳": "szx", + // "印度": "in", + // "济南": "jnec", + // "重庆": "cq", + // "天津": "tsn", + // "欧洲东北": "ru", + // "南京": "nj", + // "美国硅谷": "usw", + // "泰国": "th", + // "广州Open": "gzopen", + // "深圳金融": "szjr", + // "法兰克福": "de", + // "日本": "jp", + // "弗吉尼亚": "use", + // "北京": "bj", + // "香港": "hk", + // "杭州": "hzec", + // "北京金融": "bjjr", + // "上海金融": "shjr", + // "台北": "tpe", + // "首尔": "kr", + // "上海": "sh", + // "新加坡": "sg", + // "清远": "qy" // 注意:此字段可能返回 null,表示取不到有效值。 Region *string `json:"Region,omitnil" name:"Region"` @@ -9605,14 +9858,17 @@ type ModifyAttackWhiteRuleRequestParams struct { // 域名 Domain *string `json:"Domain,omitnil" name:"Domain"` - // 规则Id - SignatureId *string `json:"SignatureId,omitnil" name:"SignatureId"` - // 规则状态 Status *uint64 `json:"Status,omitnil" name:"Status"` // 匹配规则项列表 Rules []*UserWhiteRuleItem `json:"Rules,omitnil" name:"Rules"` + + // 规则Id + SignatureId *string `json:"SignatureId,omitnil" name:"SignatureId"` + + // 编辑的加白的规则ID列表 + SignatureIds []*string `json:"SignatureIds,omitnil" name:"SignatureIds"` } type ModifyAttackWhiteRuleRequest struct { @@ -9624,14 +9880,17 @@ type ModifyAttackWhiteRuleRequest struct { // 域名 Domain *string `json:"Domain,omitnil" name:"Domain"` - // 规则Id - SignatureId *string `json:"SignatureId,omitnil" name:"SignatureId"` - // 规则状态 Status *uint64 `json:"Status,omitnil" name:"Status"` // 匹配规则项列表 Rules []*UserWhiteRuleItem `json:"Rules,omitnil" name:"Rules"` + + // 规则Id + SignatureId *string `json:"SignatureId,omitnil" name:"SignatureId"` + + // 编辑的加白的规则ID列表 + SignatureIds []*string `json:"SignatureIds,omitnil" name:"SignatureIds"` } func (r *ModifyAttackWhiteRuleRequest) ToJsonString() string { @@ -9648,9 +9907,10 @@ func (r *ModifyAttackWhiteRuleRequest) FromJsonString(s string) error { } delete(f, "RuleId") delete(f, "Domain") - delete(f, "SignatureId") delete(f, "Status") delete(f, "Rules") + delete(f, "SignatureId") + delete(f, "SignatureIds") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyAttackWhiteRuleRequest has unknown keys!", "") } @@ -9684,15 +9944,15 @@ func (r *ModifyAttackWhiteRuleResponse) FromJsonString(s string) error { // Predefined struct for user type ModifyBotStatusRequestParams struct { - // 域名 - Domain *string `json:"Domain,omitnil" name:"Domain"` - // 类别 Category *string `json:"Category,omitnil" name:"Category"` // 状态 Status *string `json:"Status,omitnil" name:"Status"` + // 域名 + Domain *string `json:"Domain,omitnil" name:"Domain"` + // 实例id InstanceID *string `json:"InstanceID,omitnil" name:"InstanceID"` @@ -9701,20 +9961,23 @@ type ModifyBotStatusRequestParams struct { // 传入Bot版本号,场景化版本为"4.1.0" BotVersion *string `json:"BotVersion,omitnil" name:"BotVersion"` + + // 批量开启BOT开关的域名列表 + DomainList []*string `json:"DomainList,omitnil" name:"DomainList"` } type ModifyBotStatusRequest struct { *tchttp.BaseRequest - // 域名 - Domain *string `json:"Domain,omitnil" name:"Domain"` - // 类别 Category *string `json:"Category,omitnil" name:"Category"` // 状态 Status *string `json:"Status,omitnil" name:"Status"` + // 域名 + Domain *string `json:"Domain,omitnil" name:"Domain"` + // 实例id InstanceID *string `json:"InstanceID,omitnil" name:"InstanceID"` @@ -9723,6 +9986,9 @@ type ModifyBotStatusRequest struct { // 传入Bot版本号,场景化版本为"4.1.0" BotVersion *string `json:"BotVersion,omitnil" name:"BotVersion"` + + // 批量开启BOT开关的域名列表 + DomainList []*string `json:"DomainList,omitnil" name:"DomainList"` } func (r *ModifyBotStatusRequest) ToJsonString() string { @@ -9737,12 +10003,13 @@ func (r *ModifyBotStatusRequest) FromJsonString(s string) error { if err := json.Unmarshal([]byte(s), &f); err != nil { return err } - delete(f, "Domain") delete(f, "Category") delete(f, "Status") + delete(f, "Domain") delete(f, "InstanceID") delete(f, "IsVersionFour") delete(f, "BotVersion") + delete(f, "DomainList") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyBotStatusRequest has unknown keys!", "") } @@ -9755,6 +10022,17 @@ type ModifyBotStatusResponseParams struct { // 注意:此字段可能返回 null,表示取不到有效值。 Data *string `json:"Data,omitnil" name:"Data"` + // 未购买BOT的域名列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + UnSupportedList []*string `json:"UnSupportedList,omitnil" name:"UnSupportedList"` + + // 已购买但操作失败的域名列表 + // 注意:此字段可能返回 null,表示取不到有效值。 + FailDomainList []*string `json:"FailDomainList,omitnil" name:"FailDomainList"` + + // 成功数目 + Count *int64 `json:"Count,omitnil" name:"Count"` + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitnil" name:"RequestId"` } @@ -10224,6 +10502,74 @@ func (r *ModifyDomainIpv6StatusResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +// Predefined struct for user +type ModifyDomainPostActionRequestParams struct { + // www.tx.com + Domain *string `json:"Domain,omitnil" name:"Domain"` + + // 0-关闭投递,1-开启投递 + PostCLSAction *int64 `json:"PostCLSAction,omitnil" name:"PostCLSAction"` + + // 0-关闭投递,1-开启投递 + PostCKafkaAction *int64 `json:"PostCKafkaAction,omitnil" name:"PostCKafkaAction"` +} + +type ModifyDomainPostActionRequest struct { + *tchttp.BaseRequest + + // www.tx.com + Domain *string `json:"Domain,omitnil" name:"Domain"` + + // 0-关闭投递,1-开启投递 + PostCLSAction *int64 `json:"PostCLSAction,omitnil" name:"PostCLSAction"` + + // 0-关闭投递,1-开启投递 + PostCKafkaAction *int64 `json:"PostCKafkaAction,omitnil" name:"PostCKafkaAction"` +} + +func (r *ModifyDomainPostActionRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *ModifyDomainPostActionRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "Domain") + delete(f, "PostCLSAction") + delete(f, "PostCKafkaAction") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyDomainPostActionRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type ModifyDomainPostActionResponseParams struct { + // 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil" name:"RequestId"` +} + +type ModifyDomainPostActionResponse struct { + *tchttp.BaseResponse + Response *ModifyDomainPostActionResponseParams `json:"Response"` +} + +func (r *ModifyDomainPostActionResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *ModifyDomainPostActionResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + // Predefined struct for user type ModifyDomainWhiteRuleRequestParams struct { // 需要更改的规则的域名 @@ -10447,7 +10793,9 @@ type ModifyHostFlowModeRequestParams struct { // 域名ID DomainId *string `json:"DomainId,omitnil" name:"DomainId"` - // WAF流量模式,1:清洗模式,0:镜像模式(默认) + // WAF流量模式。 + // 0:镜像模式(默认) + // 1:清洗模式 FlowMode *uint64 `json:"FlowMode,omitnil" name:"FlowMode"` // 实例ID @@ -10463,7 +10811,9 @@ type ModifyHostFlowModeRequest struct { // 域名ID DomainId *string `json:"DomainId,omitnil" name:"DomainId"` - // WAF流量模式,1:清洗模式,0:镜像模式(默认) + // WAF流量模式。 + // 0:镜像模式(默认) + // 1:清洗模式 FlowMode *uint64 `json:"FlowMode,omitnil" name:"FlowMode"` // 实例ID @@ -10619,7 +10969,7 @@ type ModifyHostRequestParams struct { // 编辑的域名配置信息 Host *HostRecord `json:"Host,omitnil" name:"Host"` - // 实例id + // 实例唯一ID InstanceID *string `json:"InstanceID,omitnil" name:"InstanceID"` } @@ -10629,7 +10979,7 @@ type ModifyHostRequest struct { // 编辑的域名配置信息 Host *HostRecord `json:"Host,omitnil" name:"Host"` - // 实例id + // 实例唯一ID InstanceID *string `json:"InstanceID,omitnil" name:"InstanceID"` } @@ -11097,7 +11447,7 @@ type ModifyObjectRequestParams struct { // 修改对象标识 ObjectId *string `json:"ObjectId,omitnil" name:"ObjectId"` - // 改动作类型:Status修改开关,InstanceId绑定实例 + // 改动作类型:Status修改开关,InstanceId绑定实例, Proxy设置代理状态 OpType *string `json:"OpType,omitnil" name:"OpType"` // 新的Waf开关状态,如果和已有状态相同认为修改成功 @@ -11105,6 +11455,12 @@ type ModifyObjectRequestParams struct { // 新的实例ID,如果和已绑定的实例相同认为修改成功 InstanceId *string `json:"InstanceId,omitnil" name:"InstanceId"` + + // 是否开启代理,0:不开启,1:以XFF的第一个IP地址作为客户端IP,2:以remote_addr作为客户端IP,3:从指定的头部字段获取客户端IP,字段通过IpHeaders字段给出(OpType为Status或Proxy时,该值有效) + Proxy *uint64 `json:"Proxy,omitnil" name:"Proxy"` + + // IsCdn=3时,需要填此参数,表示自定义header(OpType为Status或Proxy时,该值有效) + IpHeaders []*string `json:"IpHeaders,omitnil" name:"IpHeaders"` } type ModifyObjectRequest struct { @@ -11113,7 +11469,7 @@ type ModifyObjectRequest struct { // 修改对象标识 ObjectId *string `json:"ObjectId,omitnil" name:"ObjectId"` - // 改动作类型:Status修改开关,InstanceId绑定实例 + // 改动作类型:Status修改开关,InstanceId绑定实例, Proxy设置代理状态 OpType *string `json:"OpType,omitnil" name:"OpType"` // 新的Waf开关状态,如果和已有状态相同认为修改成功 @@ -11121,6 +11477,12 @@ type ModifyObjectRequest struct { // 新的实例ID,如果和已绑定的实例相同认为修改成功 InstanceId *string `json:"InstanceId,omitnil" name:"InstanceId"` + + // 是否开启代理,0:不开启,1:以XFF的第一个IP地址作为客户端IP,2:以remote_addr作为客户端IP,3:从指定的头部字段获取客户端IP,字段通过IpHeaders字段给出(OpType为Status或Proxy时,该值有效) + Proxy *uint64 `json:"Proxy,omitnil" name:"Proxy"` + + // IsCdn=3时,需要填此参数,表示自定义header(OpType为Status或Proxy时,该值有效) + IpHeaders []*string `json:"IpHeaders,omitnil" name:"IpHeaders"` } func (r *ModifyObjectRequest) ToJsonString() string { @@ -11139,6 +11501,8 @@ func (r *ModifyObjectRequest) FromJsonString(s string) error { delete(f, "OpType") delete(f, "Status") delete(f, "InstanceId") + delete(f, "Proxy") + delete(f, "IpHeaders") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyObjectRequest has unknown keys!", "") } @@ -11319,73 +11683,97 @@ type ModifySpartaProtectionRequestParams struct { // 域名 Domain *string `json:"Domain,omitnil" name:"Domain"` - // 域名ID + // 必填项。域名唯一ID DomainId *string `json:"DomainId,omitnil" name:"DomainId"` - // 证书类型,0表示没有证书,CertType=1表示自有证书,2 为托管证书 + // 必填项。证书类型。 + // 0:仅配置HTTP监听端口,没有证书 + // 1:证书来源为自有证书 + // 2:证书来源为托管证书 CertType *int64 `json:"CertType,omitnil" name:"CertType"` - // CertType=1时,需要填次参数,表示证书内容 + // CertType为1时,需要填充此参数,表示自有证书的证书链 Cert *string `json:"Cert,omitnil" name:"Cert"` - // CertType=1时,需要填次参数,表示证书的私钥 + // CertType为1时,需要填充此参数,表示自有证书的私钥 PrivateKey *string `json:"PrivateKey,omitnil" name:"PrivateKey"` - // CertType=2时,需要填次参数,表示证书的ID + // CertType为2时,需要填充此参数,表示腾讯云SSL平台托管的证书id SSLId *string `json:"SSLId,omitnil" name:"SSLId"` - // 表示是否开启了CDN代理 + // 必填项。waf前是否部署有七层代理服务。 + // 0:没有部署代理服务 + // 1:有部署代理服务,waf将使用XFF获取客户端IP + // 2:有部署代理服务,waf将使用remote_addr获取客户端IP + // 3:有部署代理服务,waf将使用ip_headers中的自定义header获取客户端IP IsCdn *int64 `json:"IsCdn,omitnil" name:"IsCdn"` - // HTTPS回源协议 + // 服务配置有HTTPS端口时,HTTPS的回源协议。 + // http:使用http协议回源,和HttpsUpstreamPort配合使用 + // https:使用https协议回源 UpstreamScheme *string `json:"UpstreamScheme,omitnil" name:"UpstreamScheme"` // HTTPS回源端口,仅UpstreamScheme为http时需要填当前字段 HttpsUpstreamPort *string `json:"HttpsUpstreamPort,omitnil" name:"HttpsUpstreamPort"` - // 表示是否强制跳转到HTTPS,1表示开启,0表示不开启 + // 必填项。是否开启HTTP强制跳转到HTTPS。 + // 0:不强制跳转 + // 1:开启强制跳转 HttpsRewrite *uint64 `json:"HttpsRewrite,omitnil" name:"HttpsRewrite"` - // 回源类型,0表示通过IP回源,1 表示通过域名回源 + // 必填项。回源类型。 + // 0:通过IP回源 + // 1:通过域名回源 UpstreamType *int64 `json:"UpstreamType,omitnil" name:"UpstreamType"` - // UpstreamType=1时,填次字段表示回源域名 + // 域名回源时的回源域名。UpstreamType为1时,需要填充此字段 UpstreamDomain *string `json:"UpstreamDomain,omitnil" name:"UpstreamDomain"` - // UpstreamType=0时,填次字段表示回源ip + // IP回源时的回源IP列表。UpstreamType为0时,需要填充此字段 SrcList []*string `json:"SrcList,omitnil" name:"SrcList"` - // 是否开启HTTP2,1表示开启,0表示不开启http2。开启HTTP2需要HTTPS支持 + // 必填项。是否开启HTTP2,需要开启HTTPS协议支持。 + // 0:关闭 + // 1:开启 IsHttp2 *int64 `json:"IsHttp2,omitnil" name:"IsHttp2"` - // 是否开启WebSocket, 1:开启WebSocket,0:不开启WebSocket + // 必填项。是否开启WebSocket支持。 + // 0:关闭 + // 1:开启 IsWebsocket *int64 `json:"IsWebsocket,omitnil" name:"IsWebsocket"` - // 负载均衡策略,0表示轮徇,1表示IP hash + // 必填项。回源负载均衡策略。 + // 0:轮询 + // 1:IP hash + // 2:加权轮询 LoadBalance *int64 `json:"LoadBalance,omitnil" name:"LoadBalance"` - // 是否灰度 + // 待废弃,可不填。是否开启灰度,0表示不开启灰度。 IsGray *int64 `json:"IsGray,omitnil" name:"IsGray"` - // WAF版本 + // 域名所属实例类型 Edition *string `json:"Edition,omitnil" name:"Edition"` - // 端口信息 + // 必填项。端口信息,可通过DescribeDomains接口获取具体参数信息。 Ports []*SpartaProtectionPort `json:"Ports,omitnil" name:"Ports"` - // 长短连接标志,仅IP回源时有效 + // 必填项。是否开启长连接。 + // 0: 短连接 + // 1: 长连接 IsKeepAlive *string `json:"IsKeepAlive,omitnil" name:"IsKeepAlive"` - // 实例id + // 必填项。域名所属实例id InstanceID *string `json:"InstanceID,omitnil" name:"InstanceID"` - // 是否为Anycast ip类型:1 Anycast 0 普通ip + // 必填项,待废弃。目前填0即可。anycast IP类型开关: 0 普通IP 1 Anycast IP Anycast *int64 `json:"Anycast,omitnil" name:"Anycast"` - // src的权重 + // 回源IP列表各IP的权重,和SrcList一一对应。当且仅当UpstreamType为0,并且SrcList有多个IP,并且LoadBalance为2时需要填写,否则填 [] Weights []*int64 `json:"Weights,omitnil" name:"Weights"` - // 是否开启源站的主动健康检测,1表示开启,0表示不开启 + // 必填项,是否开启主动健康检测。 + // 0:不开启 + // 1:开启 ActiveCheck *int64 `json:"ActiveCheck,omitnil" name:"ActiveCheck"` // TLS版本信息 @@ -11394,26 +11782,42 @@ type ModifySpartaProtectionRequestParams struct { // 加密套件信息 Ciphers []*int64 `json:"Ciphers,omitnil" name:"Ciphers"` - // 0:不支持选择:默认模板 1:通用型模板 2:安全型模板 3:自定义模板 + // 必填项。加密套件模板。 + // 0:不支持选择,使用默认模板 + // 1:通用型模板 + // 2:安全型模板 + // 3:自定义模板 CipherTemplate *int64 `json:"CipherTemplate,omitnil" name:"CipherTemplate"` - // 300s + // WAF与源站的读超时时间,默认300s。 ProxyReadTimeout *int64 `json:"ProxyReadTimeout,omitnil" name:"ProxyReadTimeout"` - // 300s + // WAF与源站的写超时时间,默认300s。 ProxySendTimeout *int64 `json:"ProxySendTimeout,omitnil" name:"ProxySendTimeout"` - // 0:关闭SNI;1:开启SNI,SNI=源请求host;2:开启SNI,SNI=修改为源站host;3:开启SNI,自定义host,SNI=SniHost; + // WAF回源时的SNI类型。 + // 0:关闭SNI,不配置client_hello中的server_name + // 1:开启SNI,client_hello中的server_name为防护域名 + // 2:开启SNI,SNI为域名回源时的源站域名 + // 3:开启SNI,SNI为自定义域名 SniType *int64 `json:"SniType,omitnil" name:"SniType"` - // SniType=3时,需要填此参数,表示自定义的host; + // SniType为3时,需要填此参数,表示自定义的SNI; SniHost *string `json:"SniHost,omitnil" name:"SniHost"` // IsCdn=3时,需要填此参数,表示自定义header IpHeaders []*string `json:"IpHeaders,omitnil" name:"IpHeaders"` - // 0:关闭xff重置;1:开启xff重置,只有在IsCdn=0时可以开启 + // 必填项。是否开启XFF重置。 + // 0:关闭 + // 1:开启 XFFReset *int64 `json:"XFFReset,omitnil" name:"XFFReset"` + + // 域名备注信息 + Note *string `json:"Note,omitnil" name:"Note"` + + // 自定义回源Host。默认为空字符串,表示使用防护域名作为回源Host。 + UpstreamHost *string `json:"UpstreamHost,omitnil" name:"UpstreamHost"` } type ModifySpartaProtectionRequest struct { @@ -11422,73 +11826,97 @@ type ModifySpartaProtectionRequest struct { // 域名 Domain *string `json:"Domain,omitnil" name:"Domain"` - // 域名ID + // 必填项。域名唯一ID DomainId *string `json:"DomainId,omitnil" name:"DomainId"` - // 证书类型,0表示没有证书,CertType=1表示自有证书,2 为托管证书 + // 必填项。证书类型。 + // 0:仅配置HTTP监听端口,没有证书 + // 1:证书来源为自有证书 + // 2:证书来源为托管证书 CertType *int64 `json:"CertType,omitnil" name:"CertType"` - // CertType=1时,需要填次参数,表示证书内容 + // CertType为1时,需要填充此参数,表示自有证书的证书链 Cert *string `json:"Cert,omitnil" name:"Cert"` - // CertType=1时,需要填次参数,表示证书的私钥 + // CertType为1时,需要填充此参数,表示自有证书的私钥 PrivateKey *string `json:"PrivateKey,omitnil" name:"PrivateKey"` - // CertType=2时,需要填次参数,表示证书的ID + // CertType为2时,需要填充此参数,表示腾讯云SSL平台托管的证书id SSLId *string `json:"SSLId,omitnil" name:"SSLId"` - // 表示是否开启了CDN代理 + // 必填项。waf前是否部署有七层代理服务。 + // 0:没有部署代理服务 + // 1:有部署代理服务,waf将使用XFF获取客户端IP + // 2:有部署代理服务,waf将使用remote_addr获取客户端IP + // 3:有部署代理服务,waf将使用ip_headers中的自定义header获取客户端IP IsCdn *int64 `json:"IsCdn,omitnil" name:"IsCdn"` - // HTTPS回源协议 + // 服务配置有HTTPS端口时,HTTPS的回源协议。 + // http:使用http协议回源,和HttpsUpstreamPort配合使用 + // https:使用https协议回源 UpstreamScheme *string `json:"UpstreamScheme,omitnil" name:"UpstreamScheme"` // HTTPS回源端口,仅UpstreamScheme为http时需要填当前字段 HttpsUpstreamPort *string `json:"HttpsUpstreamPort,omitnil" name:"HttpsUpstreamPort"` - // 表示是否强制跳转到HTTPS,1表示开启,0表示不开启 + // 必填项。是否开启HTTP强制跳转到HTTPS。 + // 0:不强制跳转 + // 1:开启强制跳转 HttpsRewrite *uint64 `json:"HttpsRewrite,omitnil" name:"HttpsRewrite"` - // 回源类型,0表示通过IP回源,1 表示通过域名回源 + // 必填项。回源类型。 + // 0:通过IP回源 + // 1:通过域名回源 UpstreamType *int64 `json:"UpstreamType,omitnil" name:"UpstreamType"` - // UpstreamType=1时,填次字段表示回源域名 + // 域名回源时的回源域名。UpstreamType为1时,需要填充此字段 UpstreamDomain *string `json:"UpstreamDomain,omitnil" name:"UpstreamDomain"` - // UpstreamType=0时,填次字段表示回源ip + // IP回源时的回源IP列表。UpstreamType为0时,需要填充此字段 SrcList []*string `json:"SrcList,omitnil" name:"SrcList"` - // 是否开启HTTP2,1表示开启,0表示不开启http2。开启HTTP2需要HTTPS支持 + // 必填项。是否开启HTTP2,需要开启HTTPS协议支持。 + // 0:关闭 + // 1:开启 IsHttp2 *int64 `json:"IsHttp2,omitnil" name:"IsHttp2"` - // 是否开启WebSocket, 1:开启WebSocket,0:不开启WebSocket + // 必填项。是否开启WebSocket支持。 + // 0:关闭 + // 1:开启 IsWebsocket *int64 `json:"IsWebsocket,omitnil" name:"IsWebsocket"` - // 负载均衡策略,0表示轮徇,1表示IP hash + // 必填项。回源负载均衡策略。 + // 0:轮询 + // 1:IP hash + // 2:加权轮询 LoadBalance *int64 `json:"LoadBalance,omitnil" name:"LoadBalance"` - // 是否灰度 + // 待废弃,可不填。是否开启灰度,0表示不开启灰度。 IsGray *int64 `json:"IsGray,omitnil" name:"IsGray"` - // WAF版本 + // 域名所属实例类型 Edition *string `json:"Edition,omitnil" name:"Edition"` - // 端口信息 + // 必填项。端口信息,可通过DescribeDomains接口获取具体参数信息。 Ports []*SpartaProtectionPort `json:"Ports,omitnil" name:"Ports"` - // 长短连接标志,仅IP回源时有效 + // 必填项。是否开启长连接。 + // 0: 短连接 + // 1: 长连接 IsKeepAlive *string `json:"IsKeepAlive,omitnil" name:"IsKeepAlive"` - // 实例id + // 必填项。域名所属实例id InstanceID *string `json:"InstanceID,omitnil" name:"InstanceID"` - // 是否为Anycast ip类型:1 Anycast 0 普通ip + // 必填项,待废弃。目前填0即可。anycast IP类型开关: 0 普通IP 1 Anycast IP Anycast *int64 `json:"Anycast,omitnil" name:"Anycast"` - // src的权重 + // 回源IP列表各IP的权重,和SrcList一一对应。当且仅当UpstreamType为0,并且SrcList有多个IP,并且LoadBalance为2时需要填写,否则填 [] Weights []*int64 `json:"Weights,omitnil" name:"Weights"` - // 是否开启源站的主动健康检测,1表示开启,0表示不开启 + // 必填项,是否开启主动健康检测。 + // 0:不开启 + // 1:开启 ActiveCheck *int64 `json:"ActiveCheck,omitnil" name:"ActiveCheck"` // TLS版本信息 @@ -11497,26 +11925,42 @@ type ModifySpartaProtectionRequest struct { // 加密套件信息 Ciphers []*int64 `json:"Ciphers,omitnil" name:"Ciphers"` - // 0:不支持选择:默认模板 1:通用型模板 2:安全型模板 3:自定义模板 + // 必填项。加密套件模板。 + // 0:不支持选择,使用默认模板 + // 1:通用型模板 + // 2:安全型模板 + // 3:自定义模板 CipherTemplate *int64 `json:"CipherTemplate,omitnil" name:"CipherTemplate"` - // 300s + // WAF与源站的读超时时间,默认300s。 ProxyReadTimeout *int64 `json:"ProxyReadTimeout,omitnil" name:"ProxyReadTimeout"` - // 300s + // WAF与源站的写超时时间,默认300s。 ProxySendTimeout *int64 `json:"ProxySendTimeout,omitnil" name:"ProxySendTimeout"` - // 0:关闭SNI;1:开启SNI,SNI=源请求host;2:开启SNI,SNI=修改为源站host;3:开启SNI,自定义host,SNI=SniHost; + // WAF回源时的SNI类型。 + // 0:关闭SNI,不配置client_hello中的server_name + // 1:开启SNI,client_hello中的server_name为防护域名 + // 2:开启SNI,SNI为域名回源时的源站域名 + // 3:开启SNI,SNI为自定义域名 SniType *int64 `json:"SniType,omitnil" name:"SniType"` - // SniType=3时,需要填此参数,表示自定义的host; + // SniType为3时,需要填此参数,表示自定义的SNI; SniHost *string `json:"SniHost,omitnil" name:"SniHost"` // IsCdn=3时,需要填此参数,表示自定义header IpHeaders []*string `json:"IpHeaders,omitnil" name:"IpHeaders"` - // 0:关闭xff重置;1:开启xff重置,只有在IsCdn=0时可以开启 + // 必填项。是否开启XFF重置。 + // 0:关闭 + // 1:开启 XFFReset *int64 `json:"XFFReset,omitnil" name:"XFFReset"` + + // 域名备注信息 + Note *string `json:"Note,omitnil" name:"Note"` + + // 自定义回源Host。默认为空字符串,表示使用防护域名作为回源Host。 + UpstreamHost *string `json:"UpstreamHost,omitnil" name:"UpstreamHost"` } func (r *ModifySpartaProtectionRequest) ToJsonString() string { @@ -11564,6 +12008,8 @@ func (r *ModifySpartaProtectionRequest) FromJsonString(s string) error { delete(f, "SniHost") delete(f, "IpHeaders") delete(f, "XFFReset") + delete(f, "Note") + delete(f, "UpstreamHost") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifySpartaProtectionRequest has unknown keys!", "") } @@ -12004,6 +12450,18 @@ type PeakPointsItem struct { // 小程序 qps // 注意:此字段可能返回 null,表示取不到有效值。 WxAccess *uint64 `json:"WxAccess,omitnil" name:"WxAccess"` + + // 小程序请求数 + // 注意:此字段可能返回 null,表示取不到有效值。 + WxCount *uint64 `json:"WxCount,omitnil" name:"WxCount"` + + // 小程序上行带宽峰值,单位B + // 注意:此字段可能返回 null,表示取不到有效值。 + WxUp *uint64 `json:"WxUp,omitnil" name:"WxUp"` + + // 小程序下行带宽峰值,单位B + // 注意:此字段可能返回 null,表示取不到有效值。 + WxDown *uint64 `json:"WxDown,omitnil" name:"WxDown"` } type PiechartItem struct { diff --git a/vendor/modules.txt b/vendor/modules.txt index 9f93d13c75..d155111bd8 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1160,7 +1160,7 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit/v20190319 # github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.860 ## explicit; go 1.14 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls/v20201016 -# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.910 +# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.911 ## explicit; go 1.11 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors @@ -1327,7 +1327,7 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod/v20180717 # github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.845 ## explicit; go 1.14 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312 -# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.833 +# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.856 ## explicit; go 1.14 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf/v20180125 # github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.0.792 diff --git a/website/docs/r/waf_clb_domain.html.markdown b/website/docs/r/waf_clb_domain.html.markdown index 255a9cd028..ac2a8f0316 100644 --- a/website/docs/r/waf_clb_domain.html.markdown +++ b/website/docs/r/waf_clb_domain.html.markdown @@ -126,6 +126,8 @@ The following arguments are supported: * `ip_headers` - (Optional, List: [`String`]) When is_cdn=3, this parameter needs to be filled in to indicate a custom header. * `is_cdn` - (Optional, Int) Whether a proxy has been enabled before WAF, 0 no deployment, 1 deployment and use first IP in X-Forwarded-For as client IP, 2 deployment and use remote_addr as client IP, 3 deployment and use values of custom headers as client IP. * `load_balancer_set` - (Optional, List) List of bound LB. +* `post_ckafka_action` - (Optional, Int) 0-off, 1-on. default is 0. +* `post_cls_action` - (Optional, Int) 0-off, 1-on. default is 0. * `status` - (Optional, Int) Binding status between waf and LB, 0:not bind, 1:binding. The `load_balancer_set` object supports the following: diff --git a/website/docs/r/waf_saas_domain.html.markdown b/website/docs/r/waf_saas_domain.html.markdown index 5e8d8b4973..87020d9ae3 100644 --- a/website/docs/r/waf_saas_domain.html.markdown +++ b/website/docs/r/waf_saas_domain.html.markdown @@ -199,6 +199,8 @@ The following arguments are supported: * `is_keep_alive` - (Optional, String) Whether to enable keep-alive, 0 disable, 1 enable. * `is_websocket` - (Optional, Int) Is WebSocket support enabled. 1 means enabled, 0 does not. * `load_balance` - (Optional, String) Load balancing strategy, where 0 represents polling and 1 represents IP hash and 2 weighted round robin. +* `post_ckafka_action` - (Optional, Int) 0-off, 1-on. default is 0. +* `post_cls_action` - (Optional, Int) 0-off, 1-on. default is 0. * `private_key` - (Optional, String) Certificate key, When CertType=1, this parameter needs to be filled. * `proxy_read_timeout` - (Optional, Int) 300s. * `proxy_send_timeout` - (Optional, Int) 300s. From a89b818ce2acce3136b8d507459c2d284cae1f32 Mon Sep 17 00:00:00 2001 From: SevenEarth <391613297@qq.com> Date: Sun, 4 Feb 2024 11:20:22 +0800 Subject: [PATCH 2/2] fix/waf --- .changelog/2517.txt | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .changelog/2517.txt diff --git a/.changelog/2517.txt b/.changelog/2517.txt new file mode 100644 index 0000000000..43e9dcec40 --- /dev/null +++ b/.changelog/2517.txt @@ -0,0 +1,7 @@ +```release-note:enhancement +resource/tencentcloud_waf_clb_domain: support param `post_cls_action`, `post_ckafka_action` +``` + +```release-note:enhancement +resource/tencentcloud_waf_saas_domain: support param `post_cls_action`, `post_ckafka_action` +``` \ No newline at end of file