diff --git a/.changelog/3596.txt b/.changelog/3596.txt
new file mode 100644
index 0000000000..5ab8ecd417
--- /dev/null
+++ b/.changelog/3596.txt
@@ -0,0 +1,19 @@
+```release-note:new-data-source
+tencentcloud_waf_owasp_rule_types
+```
+
+```release-note:new-data-source
+tencentcloud_waf_owasp_rules
+```
+
+```release-note:new-resource
+tencentcloud_waf_owasp_rule_type_config
+```
+
+```release-note:new-resource
+tencentcloud_waf_owasp_rule_status_config
+```
+
+```release-note:new-resource
+tencentcloud_waf_owasp_white_rule
+```
\ No newline at end of file
diff --git a/go.mod b/go.mod
index 3980ad52a8..8bd5872d28 100644
--- a/go.mod
+++ b/go.mod
@@ -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.1.14
- github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.1170
+ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.1.36
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.1.45
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199
github.com/tencentyun/cos-go-sdk-v5 v0.7.66
diff --git a/go.sum b/go.sum
index 9c0b84951a..291344ede0 100644
--- a/go.sum
+++ b/go.sum
@@ -977,10 +977,10 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.46 h1:wWcfc
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.46/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.48 h1:aoRUrz2ag27jQWcOKHgeE+toSti6/xPqHKMLruOtJuM=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.48/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
-github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.50 h1:wZGiUXmzr4L0S1coFhnjddkyNrO5ZTtfxBDrbeR+1d8=
-github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.50/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.49 h1:BQwUw2V21zIRJxstnaxtG/22lBL3+FbUgWhaC6Qd9ws=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.49/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
+github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.50 h1:wZGiUXmzr4L0S1coFhnjddkyNrO5ZTtfxBDrbeR+1d8=
+github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.50/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993 h1:WlPgXldQCxt7qi5Xrc6j6zTrsXWzN5BcOGs7Irq7fwQ=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993/go.mod h1:Z9U8zNtyuyKhjS0698wqsrG/kLx1TQ5CEixXBwVe7xY=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860 h1:F3esKBIT3HW9+7Gt8cVgf8X06VdGIczpgLBUECzSEzU=
@@ -1118,6 +1118,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.1.14 h1:RsontLM/
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.1.14/go.mod h1:qvuXI7MmzMaUBhGaQhGdZU7QLp3hKS53a3otvIz4CYg=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.1170 h1:kcQCWuI9zOkZgL5CK66HNAJmSWCSJxRrDxXT+j02CeE=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.1170/go.mod h1:vTukVfThbBIc4lOf4eq/q51eEk78oZUJd2lAoJBOJwI=
+github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.1.36 h1:d4Cjrt+VkS0OElToWZuojkj55z07ECvqfSyeyLOziF4=
+github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.1.36/go.mod h1:4ukz7/m3FarLnjn9UTX/Oc0cTWLZb82MKVLov0Ac4/k=
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/wedata v1.1.31 h1:5mDWm86NA0etP4ictillWtZgyCHiK9hpCmj+qEYeowc=
diff --git a/tencentcloud/provider.go b/tencentcloud/provider.go
index 0448afafc3..339e476363 100644
--- a/tencentcloud/provider.go
+++ b/tencentcloud/provider.go
@@ -1219,6 +1219,8 @@ func Provider() *schema.Provider {
"tencentcloud_waf_peak_points": waf.DataSourceTencentCloudWafPeakPoints(),
"tencentcloud_waf_instance_qps_limit": waf.DataSourceTencentCloudWafInstanceQpsLimit(),
"tencentcloud_waf_user_clb_regions": waf.DataSourceTencentCloudWafUserClbRegions(),
+ "tencentcloud_waf_owasp_rule_types": waf.DataSourceTencentCloudWafOwaspRuleTypes(),
+ "tencentcloud_waf_owasp_rules": waf.DataSourceTencentCloudWafOwaspRules(),
"tencentcloud_cfw_nat_fw_switches": cfw.DataSourceTencentCloudCfwNatFwSwitches(),
"tencentcloud_cfw_vpc_fw_switches": cfw.DataSourceTencentCloudCfwVpcFwSwitches(),
"tencentcloud_cfw_edge_fw_switches": cfw.DataSourceTencentCloudCfwEdgeFwSwitches(),
@@ -2331,6 +2333,9 @@ func Provider() *schema.Provider {
"tencentcloud_waf_bot_status_config": waf.ResourceTencentCloudWafBotStatusConfig(),
"tencentcloud_waf_bot_scene_ucb_rule": waf.ResourceTencentCloudWafBotSceneUCBRule(),
"tencentcloud_waf_attack_white_rule": waf.ResourceTencentCloudWafAttackWhiteRule(),
+ "tencentcloud_waf_owasp_rule_type_config": waf.ResourceTencentCloudWafOwaspRuleTypeConfig(),
+ "tencentcloud_waf_owasp_rule_status_config": waf.ResourceTencentCloudWafOwaspRuleStatusConfig(),
+ "tencentcloud_waf_owasp_white_rule": waf.ResourceTencentCloudWafOwaspWhiteRule(),
"tencentcloud_wedata_submit_task_operation": wedata.ResourceTencentCloudWedataSubmitTaskOperation(),
"tencentcloud_wedata_task": wedata.ResourceTencentCloudWedataTask(),
"tencentcloud_wedata_workflow_folder": wedata.ResourceTencentCloudWedataWorkflowFolder(),
diff --git a/tencentcloud/provider.md b/tencentcloud/provider.md
index 0b6d032f1b..434bdc8d03 100644
--- a/tencentcloud/provider.md
+++ b/tencentcloud/provider.md
@@ -2197,6 +2197,8 @@ tencentcloud_waf_attack_total_count
tencentcloud_waf_peak_points
tencentcloud_waf_instance_qps_limit
tencentcloud_waf_user_clb_regions
+tencentcloud_waf_owasp_rule_types
+tencentcloud_waf_owasp_rules
Resource
tencentcloud_waf_custom_rule
@@ -2224,6 +2226,9 @@ tencentcloud_waf_bot_scene_status_config
tencentcloud_waf_bot_status_config
tencentcloud_waf_bot_scene_ucb_rule
tencentcloud_waf_attack_white_rule
+tencentcloud_waf_owasp_rule_type_config
+tencentcloud_waf_owasp_rule_status_config
+tencentcloud_waf_owasp_white_rule
Wedata
Data Source
diff --git a/tencentcloud/services/waf/data_source_tc_waf_owasp_rule_types.go b/tencentcloud/services/waf/data_source_tc_waf_owasp_rule_types.go
new file mode 100644
index 0000000000..4245452fb5
--- /dev/null
+++ b/tencentcloud/services/waf/data_source_tc_waf_owasp_rule_types.go
@@ -0,0 +1,228 @@
+package waf
+
+import (
+ "context"
+
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
+ wafv20180125 "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf/v20180125"
+
+ tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common"
+ "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
+)
+
+func DataSourceTencentCloudWafOwaspRuleTypes() *schema.Resource {
+ return &schema.Resource{
+ Read: dataSourceTencentCloudWafOwaspRuleTypesRead,
+ Schema: map[string]*schema.Schema{
+ "domain": {
+ Type: schema.TypeString,
+ Required: true,
+ Description: "Domain names to be queried.",
+ },
+
+ "filters": {
+ Type: schema.TypeList,
+ Optional: true,
+ Description: "Filter conditions. supports RuleId, CveID, and Desc.",
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "name": {
+ Type: schema.TypeString,
+ Required: true,
+ Description: "Field name, used for filtering\nFilter the sub-order number (value) by DealName.",
+ },
+ "values": {
+ Type: schema.TypeSet,
+ Required: true,
+ Description: "Values after filtering.",
+ Elem: &schema.Schema{
+ Type: schema.TypeString,
+ },
+ },
+ "exact_match": {
+ Type: schema.TypeBool,
+ Required: true,
+ Description: "Exact search or not.",
+ },
+ },
+ },
+ },
+
+ "list": {
+ Type: schema.TypeList,
+ Computed: true,
+ Description: "Rule type list and information.",
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "type_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "Type ID.",
+ },
+ "type_name": {
+ Type: schema.TypeString,
+ Computed: true,
+ Description: "Type name.",
+ },
+ "description": {
+ Type: schema.TypeString,
+ Computed: true,
+ Description: "Type description.",
+ },
+ "classification": {
+ Type: schema.TypeString,
+ Computed: true,
+ Description: "Data type category.",
+ },
+ "action": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "Protection mode of the rule type. valid values: 0 (observation), 1 (intercept).",
+ },
+ "level": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "Protection level of the rule type. valid values: 100 (loose), 200 (normal), 300 (strict), 400 (ultra-strict).",
+ },
+ "status": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "The switch status of the rule type. valid values: 0 (disabled), 1 (enabled).",
+ },
+ "total_rule": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "Specifies all rules under the rule type. always.",
+ },
+ "active_rule": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "Indicates the total number of rules enabled under the rule type.",
+ },
+ },
+ },
+ },
+
+ "result_output_file": {
+ Type: schema.TypeString,
+ Optional: true,
+ Description: "Used to save results.",
+ },
+ },
+ }
+}
+
+func dataSourceTencentCloudWafOwaspRuleTypesRead(d *schema.ResourceData, meta interface{}) error {
+ defer tccommon.LogElapsed("data_source.tencentcloud_waf_owasp_rule_types.read")()
+ defer tccommon.InconsistentCheck(d, meta)()
+
+ var (
+ logId = tccommon.GetLogId(nil)
+ ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
+ service = WafService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
+ domain string
+ )
+
+ paramMap := make(map[string]interface{})
+ if v, ok := d.GetOk("domain"); ok {
+ paramMap["Domain"] = helper.String(v.(string))
+ domain = v.(string)
+ }
+
+ if v, ok := d.GetOk("filters"); ok {
+ filtersSet := v.([]interface{})
+ tmpSet := make([]*wafv20180125.FiltersItemNew, 0, len(filtersSet))
+ for _, item := range filtersSet {
+ filtersMap := item.(map[string]interface{})
+ filtersItemNew := wafv20180125.FiltersItemNew{}
+ if v, ok := filtersMap["name"].(string); ok && v != "" {
+ filtersItemNew.Name = helper.String(v)
+ }
+
+ if v, ok := filtersMap["values"]; ok {
+ valuesSet := v.(*schema.Set).List()
+ for i := range valuesSet {
+ values := valuesSet[i].(string)
+ filtersItemNew.Values = append(filtersItemNew.Values, helper.String(values))
+ }
+ }
+
+ if v, ok := filtersMap["exact_match"].(bool); ok {
+ filtersItemNew.ExactMatch = helper.Bool(v)
+ }
+
+ tmpSet = append(tmpSet, &filtersItemNew)
+ }
+
+ paramMap["Filters"] = tmpSet
+ }
+
+ var respData []*wafv20180125.OwaspRuleType
+ reqErr := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError {
+ result, e := service.DescribeWafOwaspRuleTypesByFilter(ctx, paramMap)
+ if e != nil {
+ return tccommon.RetryError(e)
+ }
+
+ respData = result
+ return nil
+ })
+
+ if reqErr != nil {
+ return reqErr
+ }
+
+ listList := make([]map[string]interface{}, 0, len(respData))
+ for _, list := range respData {
+ listMap := map[string]interface{}{}
+ if list.TypeId != nil {
+ listMap["type_id"] = list.TypeId
+ }
+
+ if list.TypeName != nil {
+ listMap["type_name"] = list.TypeName
+ }
+
+ if list.Description != nil {
+ listMap["description"] = list.Description
+ }
+
+ if list.Classification != nil {
+ listMap["classification"] = list.Classification
+ }
+
+ if list.Action != nil {
+ listMap["action"] = list.Action
+ }
+
+ if list.Level != nil {
+ listMap["level"] = list.Level
+ }
+
+ if list.Status != nil {
+ listMap["status"] = list.Status
+ }
+
+ if list.TotalRule != nil {
+ listMap["total_rule"] = list.TotalRule
+ }
+
+ if list.ActiveRule != nil {
+ listMap["active_rule"] = list.ActiveRule
+ }
+
+ listList = append(listList, listMap)
+ }
+
+ _ = d.Set("list", listList)
+ d.SetId(domain)
+ output, ok := d.GetOk("result_output_file")
+ if ok && output.(string) != "" {
+ if e := tccommon.WriteToFile(output.(string), d); e != nil {
+ return e
+ }
+ }
+
+ return nil
+}
diff --git a/tencentcloud/services/waf/data_source_tc_waf_owasp_rule_types.md b/tencentcloud/services/waf/data_source_tc_waf_owasp_rule_types.md
new file mode 100644
index 0000000000..346ab7ec8e
--- /dev/null
+++ b/tencentcloud/services/waf/data_source_tc_waf_owasp_rule_types.md
@@ -0,0 +1,14 @@
+Use this data source to query detailed information of WAF owasp rule types
+
+Example Usage
+
+```hcl
+data "tencentcloud_waf_owasp_rule_types" "example" {
+ domain = "demo.com"
+ filters {
+ name = "RuleId"
+ values = ["10000001"]
+ exact_match = true
+ }
+}
+```
diff --git a/tencentcloud/services/waf/data_source_tc_waf_owasp_rule_types_test.go b/tencentcloud/services/waf/data_source_tc_waf_owasp_rule_types_test.go
new file mode 100644
index 0000000000..0721b0662a
--- /dev/null
+++ b/tencentcloud/services/waf/data_source_tc_waf_owasp_rule_types_test.go
@@ -0,0 +1,36 @@
+package waf_test
+
+import (
+ "testing"
+
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
+
+ tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest"
+)
+
+func TestAccTencentCloudWafOwaspRuleTypesDataSource_basic(t *testing.T) {
+ t.Parallel()
+ resource.Test(t, resource.TestCase{
+ PreCheck: func() {
+ tcacctest.AccPreCheck(t)
+ },
+ Providers: tcacctest.AccProviders,
+ Steps: []resource.TestStep{{
+ Config: testAccWafOwaspRuleTypesDataSource,
+ Check: resource.ComposeTestCheckFunc(
+ tcacctest.AccCheckTencentCloudDataSourceID("data.tencentcloud_waf_owasp_rule_types.example"),
+ ),
+ }},
+ })
+}
+
+const testAccWafOwaspRuleTypesDataSource = `
+data "tencentcloud_waf_owasp_rule_types" "example" {
+ domain = "example.qcloud.com"
+ filters {
+ name = "RuleId"
+ values = ["10000001"]
+ exact_match = true
+ }
+}
+`
diff --git a/tencentcloud/services/waf/data_source_tc_waf_owasp_rules.go b/tencentcloud/services/waf/data_source_tc_waf_owasp_rules.go
new file mode 100644
index 0000000000..b4cbfb668c
--- /dev/null
+++ b/tencentcloud/services/waf/data_source_tc_waf_owasp_rules.go
@@ -0,0 +1,267 @@
+package waf
+
+import (
+ "context"
+
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
+ wafv20180125 "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf/v20180125"
+
+ tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common"
+ "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
+)
+
+func DataSourceTencentCloudWafOwaspRules() *schema.Resource {
+ return &schema.Resource{
+ Read: dataSourceTencentCloudWafOwaspRulesRead,
+ Schema: map[string]*schema.Schema{
+ "domain": {
+ Type: schema.TypeString,
+ Required: true,
+ Description: "Domain to be queried.",
+ },
+
+ "by": {
+ Type: schema.TypeString,
+ Optional: true,
+ Description: "Specifies the field used to sort. valid values: RuleId, ModifyTime.",
+ },
+
+ "order": {
+ Type: schema.TypeString,
+ Optional: true,
+ Description: "Sorting method. supports asc, desc.",
+ },
+
+ "filters": {
+ Type: schema.TypeList,
+ Optional: true,
+ Description: "Specifies the criteria, support RuleId, TypeId, Desc, CveID, Status, and VulLevel.",
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "name": {
+ Type: schema.TypeString,
+ Required: true,
+ Description: "Field name, used for filtering\nFilter the sub-order number (value) by DealName.",
+ },
+ "values": {
+ Type: schema.TypeSet,
+ Required: true,
+ Description: "Values after filtering.",
+ Elem: &schema.Schema{
+ Type: schema.TypeString,
+ },
+ },
+ "exact_match": {
+ Type: schema.TypeBool,
+ Required: true,
+ Description: "Exact search or not.",
+ },
+ },
+ },
+ },
+
+ "list": {
+ Type: schema.TypeList,
+ Computed: true,
+ Description: "List of rules.",
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "rule_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "Rule ID.",
+ },
+ "description": {
+ Type: schema.TypeString,
+ Computed: true,
+ Description: "Rule description.",
+ },
+ "status": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "Rule switch. valid values: 0 (disabled), 1 (enabled), 2 (observation only).",
+ },
+ "level": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "Protection level of the rule. valid values: 100 (loose), 200 (normal), 300 (strict), 400 (ultra-strict).",
+ },
+ "vul_level": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "Threat level. valid values: 0 (unknown), 100 (low risk), 200 (medium risk), 300 (high risk), 400 (critical).",
+ },
+ "cve_id": {
+ Type: schema.TypeString,
+ Computed: true,
+ Description: "CVE ID.",
+ },
+ "type_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "Specifies the rule type ID.",
+ },
+ "create_time": {
+ Type: schema.TypeString,
+ Computed: true,
+ Description: "Creation time.",
+ },
+ "modify_time": {
+ Type: schema.TypeString,
+ Computed: true,
+ Description: "Update time.",
+ },
+ "locked": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "Whether the user is locked.",
+ },
+ "reason": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "Reason for modification\n\n0: none (compatibility records are empty).\n1: avoid false positives due to business characteristics.\n2: reporting of rule-based false positives.\n3: gray release of core business rules.\n4: others.",
+ },
+ },
+ },
+ },
+
+ "result_output_file": {
+ Type: schema.TypeString,
+ Optional: true,
+ Description: "Used to save results.",
+ },
+ },
+ }
+}
+
+func dataSourceTencentCloudWafOwaspRulesRead(d *schema.ResourceData, meta interface{}) error {
+ defer tccommon.LogElapsed("data_source.tencentcloud_waf_owasp_rules.read")()
+ defer tccommon.InconsistentCheck(d, meta)()
+
+ var (
+ logId = tccommon.GetLogId(nil)
+ ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
+ service = WafService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
+ domain string
+ )
+
+ paramMap := make(map[string]interface{})
+ if v, ok := d.GetOk("domain"); ok {
+ paramMap["Domain"] = helper.String(v.(string))
+ domain = v.(string)
+ }
+
+ if v, ok := d.GetOk("by"); ok {
+ paramMap["By"] = helper.String(v.(string))
+ }
+
+ if v, ok := d.GetOk("order"); ok {
+ paramMap["Order"] = helper.String(v.(string))
+ }
+
+ if v, ok := d.GetOk("filters"); ok {
+ filtersSet := v.([]interface{})
+ tmpSet := make([]*wafv20180125.FiltersItemNew, 0, len(filtersSet))
+ for _, item := range filtersSet {
+ filtersMap := item.(map[string]interface{})
+ filtersItemNew := wafv20180125.FiltersItemNew{}
+ if v, ok := filtersMap["name"].(string); ok && v != "" {
+ filtersItemNew.Name = helper.String(v)
+ }
+
+ if v, ok := filtersMap["values"]; ok {
+ valuesSet := v.(*schema.Set).List()
+ for i := range valuesSet {
+ values := valuesSet[i].(string)
+ filtersItemNew.Values = append(filtersItemNew.Values, helper.String(values))
+ }
+ }
+
+ if v, ok := filtersMap["exact_match"].(bool); ok {
+ filtersItemNew.ExactMatch = helper.Bool(v)
+ }
+
+ tmpSet = append(tmpSet, &filtersItemNew)
+ }
+
+ paramMap["Filters"] = tmpSet
+ }
+
+ var respData []*wafv20180125.OwaspRule
+ reqErr := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError {
+ result, e := service.DescribeWafOwaspRulesByFilter(ctx, paramMap)
+ if e != nil {
+ return tccommon.RetryError(e)
+ }
+
+ respData = result
+ return nil
+ })
+
+ if reqErr != nil {
+ return reqErr
+ }
+
+ listList := make([]map[string]interface{}, 0, len(respData))
+ for _, list := range respData {
+ listMap := map[string]interface{}{}
+ if list.RuleId != nil {
+ listMap["rule_id"] = list.RuleId
+ }
+
+ if list.Description != nil {
+ listMap["description"] = list.Description
+ }
+
+ if list.Status != nil {
+ listMap["status"] = list.Status
+ }
+
+ if list.Level != nil {
+ listMap["level"] = list.Level
+ }
+
+ if list.VulLevel != nil {
+ listMap["vul_level"] = list.VulLevel
+ }
+
+ if list.CveID != nil {
+ listMap["cve_id"] = list.CveID
+ }
+
+ if list.TypeId != nil {
+ listMap["type_id"] = list.TypeId
+ }
+
+ if list.CreateTime != nil {
+ listMap["create_time"] = list.CreateTime
+ }
+
+ if list.ModifyTime != nil {
+ listMap["modify_time"] = list.ModifyTime
+ }
+
+ if list.Locked != nil {
+ listMap["locked"] = list.Locked
+ }
+
+ if list.Reason != nil {
+ listMap["reason"] = list.Reason
+ }
+
+ listList = append(listList, listMap)
+ }
+
+ _ = d.Set("list", listList)
+
+ d.SetId(domain)
+ output, ok := d.GetOk("result_output_file")
+ if ok && output.(string) != "" {
+ if e := tccommon.WriteToFile(output.(string), d); e != nil {
+ return e
+ }
+ }
+
+ return nil
+}
diff --git a/tencentcloud/services/waf/data_source_tc_waf_owasp_rules.md b/tencentcloud/services/waf/data_source_tc_waf_owasp_rules.md
new file mode 100644
index 0000000000..06d162dc91
--- /dev/null
+++ b/tencentcloud/services/waf/data_source_tc_waf_owasp_rules.md
@@ -0,0 +1,16 @@
+Use this data source to query detailed information of WAF owasp rules
+
+Example Usage
+
+```hcl
+data "tencentcloud_waf_owasp_rules" "example" {
+ domain = "example.qcloud.com"
+ by = "RuleId"
+ order = "desc"
+ filters {
+ name = "RuleId"
+ values = ["106251141"]
+ exact_match = true
+ }
+}
+```
diff --git a/tencentcloud/services/waf/data_source_tc_waf_owasp_rules_test.go b/tencentcloud/services/waf/data_source_tc_waf_owasp_rules_test.go
new file mode 100644
index 0000000000..e10f220e20
--- /dev/null
+++ b/tencentcloud/services/waf/data_source_tc_waf_owasp_rules_test.go
@@ -0,0 +1,38 @@
+package waf_test
+
+import (
+ "testing"
+
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
+
+ tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest"
+)
+
+func TestAccTencentCloudWafOwaspRulesDataSource_basic(t *testing.T) {
+ t.Parallel()
+ resource.Test(t, resource.TestCase{
+ PreCheck: func() {
+ tcacctest.AccPreCheck(t)
+ },
+ Providers: tcacctest.AccProviders,
+ Steps: []resource.TestStep{{
+ Config: testAccWafOwaspRulesDataSource,
+ Check: resource.ComposeTestCheckFunc(
+ tcacctest.AccCheckTencentCloudDataSourceID("data.tencentcloud_waf_owasp_rules.example"),
+ ),
+ }},
+ })
+}
+
+const testAccWafOwaspRulesDataSource = `
+data "tencentcloud_waf_owasp_rules" "example" {
+ domain = "example.qcloud.com"
+ by = "RuleId"
+ order = "desc"
+ filters {
+ name = "RuleId"
+ values = ["106251141"]
+ exact_match = true
+ }
+}
+`
diff --git a/tencentcloud/services/waf/resource_tc_waf_owasp_rule_status_config.go b/tencentcloud/services/waf/resource_tc_waf_owasp_rule_status_config.go
new file mode 100644
index 0000000000..b11503b151
--- /dev/null
+++ b/tencentcloud/services/waf/resource_tc_waf_owasp_rule_status_config.go
@@ -0,0 +1,239 @@
+package waf
+
+import (
+ "context"
+ "fmt"
+ "log"
+ "strings"
+
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
+ wafv20180125 "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf/v20180125"
+
+ tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common"
+ "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
+)
+
+func ResourceTencentCloudWafOwaspRuleStatusConfig() *schema.Resource {
+ return &schema.Resource{
+ Create: resourceTencentCloudWafOwaspRuleStatusConfigCreate,
+ Read: resourceTencentCloudWafOwaspRuleStatusConfigRead,
+ Update: resourceTencentCloudWafOwaspRuleStatusConfigUpdate,
+ Delete: resourceTencentCloudWafOwaspRuleStatusConfigDelete,
+ Importer: &schema.ResourceImporter{
+ State: schema.ImportStatePassthrough,
+ },
+ Schema: map[string]*schema.Schema{
+ "domain": {
+ Type: schema.TypeString,
+ Required: true,
+ ForceNew: true,
+ Description: "Domain name.",
+ },
+
+ "rule_status": {
+ Type: schema.TypeInt,
+ Required: true,
+ Description: "Rule switch. valid values: 0 (disabled), 1 (enabled), 2 (observation only).",
+ },
+
+ "rule_id": {
+ Type: schema.TypeString,
+ Required: true,
+ ForceNew: true,
+ Description: "Rule ID.",
+ },
+
+ "type_id": {
+ Type: schema.TypeInt,
+ Optional: true,
+ Computed: true,
+ Description: "If reverse requires the input of data type.",
+ },
+
+ "reason": {
+ Type: schema.TypeInt,
+ Optional: true,
+ Computed: true,
+ Description: "Reason for modification. valid values: 0: none (compatibility record is empty). 1: avoid false positives due to business characteristics. 2: reporting of rule-based false positives. 3: gray release of core business rules. 4: others.",
+ },
+
+ // computed
+ "cve_id": {
+ Type: schema.TypeString,
+ Computed: true,
+ Description: "CVE ID.",
+ },
+
+ "description": {
+ Type: schema.TypeString,
+ Computed: true,
+ Description: "Rule description.",
+ },
+
+ "level": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "Protection level of the rule. valid values: 100 (loose), 200 (normal), 300 (strict), 400 (ultra-strict).",
+ },
+
+ "vul_level": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "Threat level. valid values: 0 (unknown), 100 (low risk), 200 (medium risk), 300 (high risk), 400 (critical).",
+ },
+
+ "locked": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "Whether the user is locked.",
+ },
+ },
+ }
+}
+
+func resourceTencentCloudWafOwaspRuleStatusConfigCreate(d *schema.ResourceData, meta interface{}) error {
+ defer tccommon.LogElapsed("resource.tencentcloud_waf_owasp_rule_status_config.create")()
+ defer tccommon.InconsistentCheck(d, meta)()
+
+ var (
+ domain string
+ ruleId string
+ )
+
+ if v, ok := d.GetOk("domain"); ok {
+ domain = v.(string)
+ }
+
+ if v, ok := d.GetOk("rule_id"); ok {
+ ruleId = v.(string)
+ }
+
+ d.SetId(strings.Join([]string{domain, ruleId}, tccommon.FILED_SP))
+ return resourceTencentCloudWafOwaspRuleStatusConfigUpdate(d, meta)
+}
+
+func resourceTencentCloudWafOwaspRuleStatusConfigRead(d *schema.ResourceData, meta interface{}) error {
+ defer tccommon.LogElapsed("resource.tencentcloud_waf_owasp_rule_status_config.read")()
+ defer tccommon.InconsistentCheck(d, meta)()
+
+ var (
+ logId = tccommon.GetLogId(tccommon.ContextNil)
+ ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
+ service = WafService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
+ )
+
+ idSplit := strings.Split(d.Id(), tccommon.FILED_SP)
+ if len(idSplit) != 2 {
+ return fmt.Errorf("id is broken,%s", d.Id())
+ }
+
+ domain := idSplit[0]
+ ruleId := idSplit[1]
+
+ respData, err := service.DescribeWafOwaspRuleStatusConfigById(ctx, domain, ruleId)
+ if err != nil {
+ return err
+ }
+
+ if respData == nil {
+ log.Printf("[WARN]%s resource `tencentcloud_waf_owasp_rule_status_config` [%s] not found, please check if it has been deleted.\n", logId, d.Id())
+ d.SetId("")
+ return nil
+ }
+
+ _ = d.Set("domain", domain)
+ _ = d.Set("rule_id", ruleId)
+
+ if respData.Status != nil {
+ _ = d.Set("rule_status", respData.Status)
+ }
+
+ if respData.TypeId != nil {
+ _ = d.Set("type_id", respData.TypeId)
+ }
+
+ if respData.Reason != nil {
+ _ = d.Set("reason", respData.Reason)
+ }
+
+ if respData.CveID != nil {
+ _ = d.Set("cve_id", respData.CveID)
+ }
+
+ if respData.Description != nil {
+ _ = d.Set("description", respData.Description)
+ }
+
+ if respData.Level != nil {
+ _ = d.Set("level", respData.Level)
+ }
+
+ if respData.VulLevel != nil {
+ _ = d.Set("vul_level", respData.VulLevel)
+ }
+
+ if respData.Locked != nil {
+ _ = d.Set("locked", respData.Locked)
+ }
+
+ return nil
+}
+
+func resourceTencentCloudWafOwaspRuleStatusConfigUpdate(d *schema.ResourceData, meta interface{}) error {
+ defer tccommon.LogElapsed("resource.tencentcloud_waf_owasp_rule_status_config.update")()
+ defer tccommon.InconsistentCheck(d, meta)()
+
+ var (
+ logId = tccommon.GetLogId(tccommon.ContextNil)
+ ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
+ )
+
+ idSplit := strings.Split(d.Id(), tccommon.FILED_SP)
+ if len(idSplit) != 2 {
+ return fmt.Errorf("id is broken,%s", d.Id())
+ }
+
+ domain := idSplit[0]
+ ruleId := idSplit[1]
+
+ request := wafv20180125.NewModifyOwaspRuleStatusRequest()
+ if v, ok := d.GetOkExists("rule_status"); ok {
+ request.RuleStatus = helper.IntInt64(v.(int))
+ }
+
+ if v, ok := d.GetOkExists("type_id"); ok {
+ request.TypeId = helper.IntUint64(v.(int))
+ }
+
+ if v, ok := d.GetOkExists("reason"); ok {
+ request.Reason = helper.IntInt64(v.(int))
+ }
+
+ request.Domain = &domain
+ request.RuleIDs = append(request.RuleIDs, &ruleId)
+ request.SelectAll = helper.Bool(false)
+ reqErr := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
+ result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseWafV20180125Client().ModifyOwaspRuleStatusWithContext(ctx, request)
+ if e != nil {
+ return tccommon.RetryError(e)
+ } else {
+ log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
+ }
+ return nil
+ })
+
+ if reqErr != nil {
+ log.Printf("[CRITAL]%s update waf owasp rule status config failed, reason:%+v", logId, reqErr)
+ return reqErr
+ }
+
+ return resourceTencentCloudWafOwaspRuleStatusConfigRead(d, meta)
+}
+
+func resourceTencentCloudWafOwaspRuleStatusConfigDelete(d *schema.ResourceData, meta interface{}) error {
+ defer tccommon.LogElapsed("resource.tencentcloud_waf_owasp_rule_status_config.delete")()
+ defer tccommon.InconsistentCheck(d, meta)()
+
+ return nil
+}
diff --git a/tencentcloud/services/waf/resource_tc_waf_owasp_rule_status_config.md b/tencentcloud/services/waf/resource_tc_waf_owasp_rule_status_config.md
new file mode 100644
index 0000000000..b330af4056
--- /dev/null
+++ b/tencentcloud/services/waf/resource_tc_waf_owasp_rule_status_config.md
@@ -0,0 +1,19 @@
+Provides a resource to create a WAF owasp rule status config
+
+Example Usage
+
+```hcl
+resource "tencentcloud_waf_owasp_rule_status_config" "example" {
+ domain = "demo.com"
+ rule_id = "106251141"
+ rule_status = 1
+}
+```
+
+Import
+
+WAF owasp rule status config can be imported using the domain#ruleId, e.g.
+
+```
+terraform import tencentcloud_waf_owasp_rule_status_config.example demo.com#106251141
+```
diff --git a/tencentcloud/services/waf/resource_tc_waf_owasp_rule_status_config_test.go b/tencentcloud/services/waf/resource_tc_waf_owasp_rule_status_config_test.go
new file mode 100644
index 0000000000..5b2f467a03
--- /dev/null
+++ b/tencentcloud/services/waf/resource_tc_waf_owasp_rule_status_config_test.go
@@ -0,0 +1,60 @@
+package waf_test
+
+import (
+ "testing"
+
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
+
+ tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest"
+)
+
+func TestAccTencentCloudWafOwaspRuleStatusConfigResource_basic(t *testing.T) {
+ t.Parallel()
+ resource.Test(t, resource.TestCase{
+ PreCheck: func() {
+ tcacctest.AccPreCheck(t)
+ },
+ Providers: tcacctest.AccProviders,
+ Steps: []resource.TestStep{
+ {
+ Config: testAccWafOwaspRuleStatusConfig,
+ Check: resource.ComposeTestCheckFunc(
+ resource.TestCheckResourceAttrSet("tencentcloud_waf_owasp_rule_status_config.example", "id"),
+ resource.TestCheckResourceAttrSet("tencentcloud_waf_owasp_rule_status_config.example", "domain"),
+ resource.TestCheckResourceAttrSet("tencentcloud_waf_owasp_rule_status_config.example", "rule_id"),
+ resource.TestCheckResourceAttrSet("tencentcloud_waf_owasp_rule_status_config.example", "rule_status"),
+ ),
+ },
+ {
+ Config: testAccWafOwaspRuleStatusConfigUpdate,
+ Check: resource.ComposeTestCheckFunc(
+ resource.TestCheckResourceAttrSet("tencentcloud_waf_owasp_rule_status_config.example", "id"),
+ resource.TestCheckResourceAttrSet("tencentcloud_waf_owasp_rule_status_config.example", "domain"),
+ resource.TestCheckResourceAttrSet("tencentcloud_waf_owasp_rule_status_config.example", "rule_id"),
+ resource.TestCheckResourceAttrSet("tencentcloud_waf_owasp_rule_status_config.example", "rule_status"),
+ ),
+ },
+ {
+ ResourceName: "tencentcloud_waf_owasp_rule_status_config.example",
+ ImportState: true,
+ ImportStateVerify: true,
+ },
+ },
+ })
+}
+
+const testAccWafOwaspRuleStatusConfig = `
+resource "tencentcloud_waf_owasp_rule_status_config" "example" {
+ domain = "example.qcloud.com"
+ rule_id = "106251141"
+ rule_status = 0
+}
+`
+
+const testAccWafOwaspRuleStatusConfigUpdate = `
+resource "tencentcloud_waf_owasp_rule_status_config" "example" {
+ domain = "example.qcloud.com"
+ rule_id = "106251141"
+ rule_status = 2
+}
+`
diff --git a/tencentcloud/services/waf/resource_tc_waf_owasp_rule_type_config.go b/tencentcloud/services/waf/resource_tc_waf_owasp_rule_type_config.go
new file mode 100644
index 0000000000..2aa03a2a15
--- /dev/null
+++ b/tencentcloud/services/waf/resource_tc_waf_owasp_rule_type_config.go
@@ -0,0 +1,275 @@
+package waf
+
+import (
+ "context"
+ "fmt"
+ "log"
+ "strings"
+
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
+ wafv20180125 "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf/v20180125"
+
+ tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common"
+ "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
+)
+
+func ResourceTencentCloudWafOwaspRuleTypeConfig() *schema.Resource {
+ return &schema.Resource{
+ Create: resourceTencentCloudWafOwaspRuleTypeConfigCreate,
+ Read: resourceTencentCloudWafOwaspRuleTypeConfigRead,
+ Update: resourceTencentCloudWafOwaspRuleTypeConfigUpdate,
+ Delete: resourceTencentCloudWafOwaspRuleTypeConfigDelete,
+ Importer: &schema.ResourceImporter{
+ State: schema.ImportStatePassthrough,
+ },
+ Schema: map[string]*schema.Schema{
+ "domain": {
+ Type: schema.TypeString,
+ Required: true,
+ ForceNew: true,
+ Description: "Domain name.",
+ },
+
+ "type_id": {
+ Type: schema.TypeString,
+ Required: true,
+ ForceNew: true,
+ Description: "Rule type ID.",
+ },
+
+ "rule_type_status": {
+ Type: schema.TypeInt,
+ Optional: true,
+ Computed: true,
+ Description: "The switch status of the rule type. valid values: 0 (disabled), 1 (enabled).",
+ },
+
+ "rule_type_action": {
+ Type: schema.TypeInt,
+ Optional: true,
+ Computed: true,
+ Description: "Protection mode of the rule type. valid values: 0 (observation), 1 (intercept).",
+ },
+
+ "rule_type_level": {
+ Type: schema.TypeInt,
+ Optional: true,
+ Computed: true,
+ Description: "Protection level of the rule. valid values: 100 (loose), 200 (normal), 300 (strict), 400 (ultra-strict).",
+ },
+
+ // computed
+ "rule_type_name": {
+ Type: schema.TypeString,
+ Computed: true,
+ Description: "Rule type name.",
+ },
+
+ "description": {
+ Type: schema.TypeString,
+ Computed: true,
+ Description: "Rule type description.",
+ },
+
+ "classification": {
+ Type: schema.TypeString,
+ Computed: true,
+ Description: "Data type category.",
+ },
+
+ "total_rule": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "Specifies all rules under the rule type. always.",
+ },
+
+ "active_rule": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "Indicates the total number of rules enabled under the rule type.",
+ },
+ },
+ }
+}
+
+func resourceTencentCloudWafOwaspRuleTypeConfigCreate(d *schema.ResourceData, meta interface{}) error {
+ defer tccommon.LogElapsed("resource.tencentcloud_waf_owasp_rule_type_config.create")()
+ defer tccommon.InconsistentCheck(d, meta)()
+
+ var (
+ domain string
+ typeId string
+ )
+
+ if v, ok := d.GetOk("domain"); ok {
+ domain = v.(string)
+ }
+
+ if v, ok := d.GetOk("type_id"); ok {
+ typeId = v.(string)
+ }
+
+ d.SetId(strings.Join([]string{domain, typeId}, tccommon.FILED_SP))
+ return resourceTencentCloudWafOwaspRuleTypeConfigUpdate(d, meta)
+}
+
+func resourceTencentCloudWafOwaspRuleTypeConfigRead(d *schema.ResourceData, meta interface{}) error {
+ defer tccommon.LogElapsed("resource.tencentcloud_waf_owasp_rule_type_config.read")()
+ defer tccommon.InconsistentCheck(d, meta)()
+
+ var (
+ logId = tccommon.GetLogId(tccommon.ContextNil)
+ ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
+ service = WafService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
+ )
+
+ idSplit := strings.Split(d.Id(), tccommon.FILED_SP)
+ if len(idSplit) != 2 {
+ return fmt.Errorf("id is broken,%s", d.Id())
+ }
+
+ domain := idSplit[0]
+ typeId := idSplit[1]
+
+ respData, err := service.DescribeWafOwaspRuleTypeConfigById(ctx, domain, typeId)
+ if err != nil {
+ return err
+ }
+
+ if respData == nil {
+ log.Printf("[WARN]%s resource `tencentcloud_waf_owasp_rule_type_config` [%s] not found, please check if it has been deleted.\n", logId, d.Id())
+ d.SetId("")
+ return nil
+ }
+
+ _ = d.Set("domain", domain)
+ _ = d.Set("type_id", typeId)
+
+ if respData.Status != nil {
+ _ = d.Set("rule_type_status", respData.Status)
+ }
+
+ if respData.Action != nil {
+ _ = d.Set("rule_type_action", respData.Action)
+ }
+
+ if respData.Level != nil {
+ _ = d.Set("rule_type_level", respData.Level)
+ }
+
+ if respData.TypeName != nil {
+ _ = d.Set("rule_type_name", respData.TypeName)
+ }
+
+ if respData.Description != nil {
+ _ = d.Set("description", respData.Description)
+ }
+
+ if respData.Classification != nil {
+ _ = d.Set("classification", respData.Classification)
+ }
+
+ if respData.TotalRule != nil {
+ _ = d.Set("total_rule", respData.TotalRule)
+ }
+
+ if respData.ActiveRule != nil {
+ _ = d.Set("active_rule", respData.ActiveRule)
+ }
+
+ return nil
+}
+
+func resourceTencentCloudWafOwaspRuleTypeConfigUpdate(d *schema.ResourceData, meta interface{}) error {
+ defer tccommon.LogElapsed("resource.tencentcloud_waf_owasp_rule_type_config.update")()
+ defer tccommon.InconsistentCheck(d, meta)()
+
+ var (
+ logId = tccommon.GetLogId(tccommon.ContextNil)
+ ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
+ )
+
+ idSplit := strings.Split(d.Id(), tccommon.FILED_SP)
+ if len(idSplit) != 2 {
+ return fmt.Errorf("id is broken,%s", d.Id())
+ }
+
+ domain := idSplit[0]
+ typeId := idSplit[1]
+
+ if v, ok := d.GetOkExists("rule_type_status"); ok {
+ request := wafv20180125.NewModifyOwaspRuleTypeStatusRequest()
+ request.RuleTypeStatus = helper.IntInt64(v.(int))
+ request.Domain = &domain
+ request.TypeIDs = helper.Strings([]string{typeId})
+ reqErr := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
+ result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseWafV20180125Client().ModifyOwaspRuleTypeStatusWithContext(ctx, request)
+ if e != nil {
+ return tccommon.RetryError(e)
+ } else {
+ log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
+ }
+
+ return nil
+ })
+
+ if reqErr != nil {
+ log.Printf("[CRITAL]%s update waf owasp rule type status failed, reason:%+v", logId, reqErr)
+ return reqErr
+ }
+ }
+
+ if v, ok := d.GetOkExists("rule_type_action"); ok {
+ request := wafv20180125.NewModifyOwaspRuleTypeActionRequest()
+ request.RuleTypeAction = helper.IntInt64(v.(int))
+ request.Domain = &domain
+ request.TypeIDs = helper.Strings([]string{typeId})
+ reqErr := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
+ result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseWafV20180125Client().ModifyOwaspRuleTypeActionWithContext(ctx, request)
+ if e != nil {
+ return tccommon.RetryError(e)
+ } else {
+ log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
+ }
+
+ return nil
+ })
+
+ if reqErr != nil {
+ log.Printf("[CRITAL]%s update waf owasp rule type action failed, reason:%+v", logId, reqErr)
+ return reqErr
+ }
+ }
+
+ if v, ok := d.GetOkExists("rule_type_level"); ok {
+ request := wafv20180125.NewModifyOwaspRuleTypeLevelRequest()
+ request.RuleTypeLevel = helper.IntInt64(v.(int))
+ request.Domain = &domain
+ request.TypeIDs = helper.Strings([]string{typeId})
+ reqErr := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
+ result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseWafV20180125Client().ModifyOwaspRuleTypeLevelWithContext(ctx, request)
+ if e != nil {
+ return tccommon.RetryError(e)
+ } else {
+ log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
+ }
+
+ return nil
+ })
+
+ if reqErr != nil {
+ log.Printf("[CRITAL]%s update waf owasp rule type level failed, reason:%+v", logId, reqErr)
+ return reqErr
+ }
+ }
+
+ return resourceTencentCloudWafOwaspRuleTypeConfigRead(d, meta)
+}
+
+func resourceTencentCloudWafOwaspRuleTypeConfigDelete(d *schema.ResourceData, meta interface{}) error {
+ defer tccommon.LogElapsed("resource.tencentcloud_waf_owasp_rule_type_config.delete")()
+ defer tccommon.InconsistentCheck(d, meta)()
+
+ return nil
+}
diff --git a/tencentcloud/services/waf/resource_tc_waf_owasp_rule_type_config.md b/tencentcloud/services/waf/resource_tc_waf_owasp_rule_type_config.md
new file mode 100644
index 0000000000..13034f22d5
--- /dev/null
+++ b/tencentcloud/services/waf/resource_tc_waf_owasp_rule_type_config.md
@@ -0,0 +1,21 @@
+Provides a resource to create a WAF owasp rule type config
+
+Example Usage
+
+```hcl
+resource "tencentcloud_waf_owasp_rule_type_config" "example" {
+ domain = "demo.com"
+ type_id = "30000000"
+ rule_type_status = 1
+ rule_type_action = 1
+ rule_type_level = 200
+}
+```
+
+Import
+
+WAF owasp rule type config can be imported using the domain#typeId, e.g.
+
+```
+terraform import tencentcloud_waf_owasp_rule_type_config.example demo.com#30000000
+```
diff --git a/tencentcloud/services/waf/resource_tc_waf_owasp_rule_type_config_test.go b/tencentcloud/services/waf/resource_tc_waf_owasp_rule_type_config_test.go
new file mode 100644
index 0000000000..b1b060b5df
--- /dev/null
+++ b/tencentcloud/services/waf/resource_tc_waf_owasp_rule_type_config_test.go
@@ -0,0 +1,68 @@
+package waf_test
+
+import (
+ "testing"
+
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
+
+ tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest"
+)
+
+func TestAccTencentCloudWafOwaspRuleTypeConfigResource_basic(t *testing.T) {
+ t.Parallel()
+ resource.Test(t, resource.TestCase{
+ PreCheck: func() {
+ tcacctest.AccPreCheck(t)
+ },
+ Providers: tcacctest.AccProviders,
+ Steps: []resource.TestStep{
+ {
+ Config: testAccWafOwaspRuleTypeConfig,
+ Check: resource.ComposeTestCheckFunc(
+ resource.TestCheckResourceAttrSet("tencentcloud_waf_owasp_rule_type_config.example", "id"),
+ resource.TestCheckResourceAttrSet("tencentcloud_waf_owasp_rule_type_config.example", "domain"),
+ resource.TestCheckResourceAttrSet("tencentcloud_waf_owasp_rule_type_config.example", "type_id"),
+ resource.TestCheckResourceAttrSet("tencentcloud_waf_owasp_rule_type_config.example", "rule_type_status"),
+ resource.TestCheckResourceAttrSet("tencentcloud_waf_owasp_rule_type_config.example", "rule_type_action"),
+ resource.TestCheckResourceAttrSet("tencentcloud_waf_owasp_rule_type_config.example", "rule_type_level"),
+ ),
+ },
+ {
+ Config: testAccWafOwaspRuleTypeConfigUpdate,
+ Check: resource.ComposeTestCheckFunc(
+ resource.TestCheckResourceAttrSet("tencentcloud_waf_owasp_rule_type_config.example", "id"),
+ resource.TestCheckResourceAttrSet("tencentcloud_waf_owasp_rule_type_config.example", "domain"),
+ resource.TestCheckResourceAttrSet("tencentcloud_waf_owasp_rule_type_config.example", "type_id"),
+ resource.TestCheckResourceAttrSet("tencentcloud_waf_owasp_rule_type_config.example", "rule_type_status"),
+ resource.TestCheckResourceAttrSet("tencentcloud_waf_owasp_rule_type_config.example", "rule_type_action"),
+ resource.TestCheckResourceAttrSet("tencentcloud_waf_owasp_rule_type_config.example", "rule_type_level"),
+ ),
+ },
+ {
+ ResourceName: "tencentcloud_waf_owasp_rule_type_config.example",
+ ImportState: true,
+ ImportStateVerify: true,
+ },
+ },
+ })
+}
+
+const testAccWafOwaspRuleTypeConfig = `
+resource "tencentcloud_waf_owasp_rule_type_config" "example" {
+ domain = "example.qcloud.com"
+ type_id = "30000000"
+ rule_type_status = 1
+ rule_type_action = 1
+ rule_type_level = 200
+}
+`
+
+const testAccWafOwaspRuleTypeConfigUpdate = `
+resource "tencentcloud_waf_owasp_rule_type_config" "example" {
+ domain = "example.qcloud.com"
+ type_id = "30000000"
+ rule_type_status = 0
+ rule_type_action = 0
+ rule_type_level = 100
+}
+`
diff --git a/tencentcloud/services/waf/resource_tc_waf_owasp_white_rule.go b/tencentcloud/services/waf/resource_tc_waf_owasp_white_rule.go
new file mode 100644
index 0000000000..3688411ce8
--- /dev/null
+++ b/tencentcloud/services/waf/resource_tc_waf_owasp_white_rule.go
@@ -0,0 +1,688 @@
+package waf
+
+import (
+ "context"
+ "fmt"
+ "log"
+ "strings"
+
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
+ wafv20180125 "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf/v20180125"
+
+ tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common"
+ "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
+)
+
+func ResourceTencentCloudWafOwaspWhiteRule() *schema.Resource {
+ return &schema.Resource{
+ Create: resourceTencentCloudWafOwaspWhiteRuleCreate,
+ Read: resourceTencentCloudWafOwaspWhiteRuleRead,
+ Update: resourceTencentCloudWafOwaspWhiteRuleUpdate,
+ Delete: resourceTencentCloudWafOwaspWhiteRuleDelete,
+ Schema: map[string]*schema.Schema{
+ "name": {
+ Type: schema.TypeString,
+ Required: true,
+ Description: "Rule name.",
+ },
+
+ "domain": {
+ Type: schema.TypeString,
+ Required: true,
+ ForceNew: true,
+ Description: "Domain name.",
+ },
+
+ "strategies": {
+ Type: schema.TypeList,
+ Required: true,
+ Description: "Rule-Based matching policy list.",
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "field": {
+ Type: schema.TypeString,
+ Required: true,
+ Description: "Specifies the matching field.\n\nDifferent matching fields result in different matching parameters, logical operators, and matching contents. the details are as follows:.\n
| Matching Field | Matching Parameter | Logical Symbol | Matching Content |
| IP (source IP) | Parameters are not supported. | ipmatch (match) ipnmatch (mismatch) | Multiple IP addresses are separated by commas. A maximum of 20 IP addresses are allowed. |
| IPv6 (source IPv6) | Parameters are not supported. | ipmatch (match) ipnmatch (mismatch) | A single IPv6 address is supported. |
| Referer (referer) | Parameters are not supported. | empty (Content is empty.) null (do not exist) eq (equal to) neq (not equal to) contains (contain) ncontains (do not contain) len_eq (length equals to) len_gt (length is greater than) len_lt (length is less than) strprefix (prefix matching) strsuffix (suffix matching) rematch (regular expression matching) | Enter the content, with a maximum of 512 characters. |
| URL (request path) | Parameters are not supported. | eq (equal to) neq (not equal to) contains (contain) ncontains (do not contain) len_eq (length equals to) len_gt (length is greater than) len_lt (length is \n less than) strprefix (prefix matching) strsuffix (suffix matching) rematch (regular expression matching) | Enter the content starting with /, with a maximum of 512 characters. |
| UserAgent (UserAgent) | Parameters are not supported. | Same logical symbols as the matching field Referer | Enter the content with a maximum of 512 characters. |
| HTTP_METHOD (HTTP request method) | Parameters are not supported. | eq (equal to) neq (not equal to) | Enter the method name. The uppercase is recommended. |
| QUERY_STRING (request string) | Parameters are not supported. | Same logical symbol as the matching field Request Path | Enter the content with a maximum of 512 characters. |
| GET (GET parameter value) | Parameter entry is supported. | contains (contain) ncontains (do not contain) len_eq (length equals to) len_gt (length is greater than) len_lt (length is less than) strprefix (prefix matching) strsuffix (suffix matching) | Enter the content with a maximum of 512 characters. |
| GET_PARAMS_NAMES (GET parameter name) | Parameters are not supported. | exist (Parameter exists.) nexist (Parameter does not exist.) len_eq (length equals to) len_gt (length is greater than) len_lt (length is less than) strprefix (prefix matching) strsuffix (suffix matching) | Enter the content with a maximum of 512 characters. |
| POST (POST parameter value) | Parameter entry is supported. | Same logical symbol as the matching field GET Parameter Value | Enter the content with a maximum of 512 characters. |
| GET_POST_NAMES (POST parameter name) | Parameters are not supported. | Same logical symbol as the matching field GET Parameter Name | Enter the content with a maximum of 512 characters. |
| POST_BODY (complete body) | Parameters are not supported. | Same logical symbol as the matching field Request Path | Enter the body content with a maximum of 512 characters. |
| COOKIE (cookie) | Parameters are not supported. | empty (Content is empty.) null (do not exist) rematch (regular expression matching) | Unsupported currently |
| GET_COOKIES_NAMES (cookie parameter name) | Parameters are not supported. | Same logical symbol as the matching field GET Parameter Name | Enter the content with a maximum of 512 characters. |
| ARGS_COOKIE (cookie parameter value) | Parameter entry is supported. | Same logical symbol as the matching field GET Parameter Value | Enter the content512 characters limit |
| GET_HEADERS_NAMES (Header parameter name) | parameter not supported | exsit (parameter exists) nexsit (parameter does not exist) len_eq (LENGTH equal) len_gt (LENGTH greater than) len_lt (LENGTH less than) strprefix (prefix match) strsuffix (suffix matching) rematch (regular expression matching) | enter CONTENT, lowercase is recommended, up to 512 characters |
| ARGS_Header (Header parameter value) | support parameter entry | contains (include) ncontains (does not include) len_eq (LENGTH equal) len_gt (LENGTH greater than) len_lt (LENGTH less than) strprefix (prefix match) strsuffix (suffix matching) rematch (regular expression matching) | enter CONTENT, up to 512 characters |
| CONTENT_LENGTH (CONTENT-LENGTH) | support parameter entry | numgt (value greater than) numlt (value smaller than) numeq (value equal to)
| enter an integer between 0-9999999999999 |
| IP_GEO (source IP geolocation) | support parameter entry | GEO_in (belong) GEO_not_in (not_in)
| enter CONTENT, up to 10240 characters, format: serialized JSON, format: [{\"Country\":\"china\",\"Region\":\"guangdong\",\"City\":\"shenzhen\"}] |
| CAPTCHA_RISK (CAPTCHA RISK) | parameter not supported | eq (equal) neq (not equal to) belong (belong) not_belong (not belong to) null (nonexistent) exist (exist) | enter RISK level value, value range 0-255 |
| CAPTCHA_DEVICE_RISK (CAPTCHA DEVICE RISK) | parameter not supported | eq (equal) neq (not equal to) belong (belong) not_belong (not belong to) null (nonexistent) exist (exist) | enter DEVICE RISK code, valid values: 101, 201, 301, 401, 501, 601, 701 |
| CAPTCHAR_SCORE (CAPTCHA RISK assessment SCORE) | parameter not supported | numeq (value equal to) numgt (value greater than) numlt (value smaller than) numle (less than or equal to) numge (value is greater than or equal to) null (nonexistent) exist (exist) | enter assessment SCORE, value range 0-100 |
.\n
.",
+ },
+ "compare_func": {
+ Type: schema.TypeString,
+ Required: true,
+ Description: "Specifies the logic symbol. \n\nLogical symbols are divided into the following types:.\nEmpty (content is empty).\nnull (not found).\nEq (equal to).\nneq (not equal to).\ncontains (contain).\nncontains (do not contain).\nstrprefix (prefix matching).\nstrsuffix (suffix matching).\nLen_eq (length equals to).\nLen_gt (length greater than).\nLen_lt (length less than).\nipmatch (belong).\nipnmatch (not_in).\nnumgt (value greater than).\nNumValue smaller than].\nValue equal to.\nnumneq (value not equal to).\nnumle (less than or equal to).\nnumge (value is greater than or equal to).\ngeo_in (IP geographic belong).\ngeo_not_in (IP geographic not_in).\nSpecifies different logical operators for matching fields. for details, see the matching field table above.",
+ },
+ "content": {
+ Type: schema.TypeString,
+ Required: true,
+ Description: "Specifies the match content.\n\nCurrently, when the match field is COOKIE (COOKIE), match content is not required. all others are needed.",
+ },
+ "arg": {
+ Type: schema.TypeString,
+ Required: true,
+ Description: "Specifies the matching parameter.\n\nConfiguration parameters are divided into two data types: parameter not supported and support parameters.\nWhen the match field is one of the following four, the matching parameter can be entered, otherwise not supported.\nGET (get parameter value).\v\t\t\nPOST (post parameter value).\v\t\t\nARGS_COOKIE (COOKIE parameter value).\v\t\t\nARGS_HEADER (HEADER parameter value).",
+ },
+ "case_not_sensitive": {
+ Type: schema.TypeInt,
+ Optional: true,
+ Description: "Case-Sensitive.\nCase-Insensitive.",
+ },
+ },
+ },
+ },
+
+ "ids": {
+ Type: schema.TypeSet,
+ Required: true,
+ Description: "ID list of allowlisted rules.",
+ Elem: &schema.Schema{
+ Type: schema.TypeInt,
+ },
+ },
+
+ "type": {
+ Type: schema.TypeInt,
+ Required: true,
+ Description: "Allowlist type. valid values: 0 (allowlisting by specific rule ID), 1 (allowlisting by rule type).",
+ },
+
+ "job_type": {
+ Type: schema.TypeString,
+ Required: true,
+ Description: "Rule execution mode: TimedJob indicates scheduled execution. CronJob indicates periodic execution.",
+ },
+
+ "job_date_time": {
+ Type: schema.TypeList,
+ Required: true,
+ MaxItems: 1,
+ Description: "Scheduled task configuration.",
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "timed": {
+ Type: schema.TypeList,
+ Optional: true,
+ Description: "Time parameter for scheduled execution.",
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "start_date_time": {
+ Type: schema.TypeInt,
+ Optional: true,
+ Description: "Start timestamp, in seconds.",
+ },
+ "end_date_time": {
+ Type: schema.TypeInt,
+ Optional: true,
+ Description: "End timestamp, in seconds.",
+ },
+ },
+ },
+ },
+ "cron": {
+ Type: schema.TypeList,
+ Optional: true,
+ Description: "Time parameter for periodic execution.",
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "days": {
+ Type: schema.TypeSet,
+ Optional: true,
+ Description: "Execution day of each month.",
+ Elem: &schema.Schema{
+ Type: schema.TypeInt,
+ },
+ },
+ "w_days": {
+ Type: schema.TypeSet,
+ Optional: true,
+ Description: "Execution day of each week.",
+ Elem: &schema.Schema{
+ Type: schema.TypeInt,
+ },
+ },
+ "start_time": {
+ Type: schema.TypeString,
+ Optional: true,
+ Description: "Start time.",
+ },
+ "end_time": {
+ Type: schema.TypeString,
+ Optional: true,
+ Description: "End time.",
+ },
+ },
+ },
+ },
+ "time_t_zone": {
+ Type: schema.TypeString,
+ Optional: true,
+ Description: "Specifies the time zone.",
+ },
+ },
+ },
+ },
+
+ "expire_time": {
+ Type: schema.TypeInt,
+ Required: true,
+ Description: "If the JobDateTime field is not set, this field is used. 0 means permanent, other values indicate the cutoff time for scheduled effect (unit: seconds).",
+ },
+
+ "status": {
+ Type: schema.TypeInt,
+ Optional: true,
+ Computed: true,
+ Description: "Rule status. valid values: 0 (disabled), 1 (enabled). enabled by default.",
+ },
+
+ // computed
+ "rule_id": {
+ Type: schema.TypeInt,
+ Computed: true,
+ Description: "Rule ID.",
+ },
+ },
+ }
+}
+
+func resourceTencentCloudWafOwaspWhiteRuleCreate(d *schema.ResourceData, meta interface{}) error {
+ defer tccommon.LogElapsed("resource.tencentcloud_waf_owasp_white_rule.create")()
+ defer tccommon.InconsistentCheck(d, meta)()
+
+ var (
+ logId = tccommon.GetLogId(tccommon.ContextNil)
+ ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
+ request = wafv20180125.NewCreateOwaspWhiteRuleRequest()
+ response = wafv20180125.NewCreateOwaspWhiteRuleResponse()
+ domain string
+ ruleId string
+ )
+
+ if v, ok := d.GetOk("name"); ok {
+ request.Name = helper.String(v.(string))
+ }
+
+ if v, ok := d.GetOk("domain"); ok {
+ request.Domain = helper.String(v.(string))
+ domain = v.(string)
+ }
+
+ if v, ok := d.GetOk("strategies"); ok {
+ for _, item := range v.([]interface{}) {
+ strategiesMap := item.(map[string]interface{})
+ strategy := wafv20180125.Strategy{}
+ if v, ok := strategiesMap["field"].(string); ok && v != "" {
+ strategy.Field = helper.String(v)
+ }
+
+ if v, ok := strategiesMap["compare_func"].(string); ok && v != "" {
+ strategy.CompareFunc = helper.String(v)
+ }
+
+ if v, ok := strategiesMap["content"].(string); ok && v != "" {
+ strategy.Content = helper.String(v)
+ }
+
+ if v, ok := strategiesMap["arg"].(string); ok && v != "" {
+ strategy.Arg = helper.String(v)
+ }
+
+ if v, ok := strategiesMap["case_not_sensitive"].(int); ok {
+ strategy.CaseNotSensitive = helper.IntUint64(v)
+ }
+
+ request.Strategies = append(request.Strategies, &strategy)
+ }
+ }
+
+ if v, ok := d.GetOk("ids"); ok {
+ idsSet := v.(*schema.Set).List()
+ for i := range idsSet {
+ ids := idsSet[i].(int)
+ request.Ids = append(request.Ids, helper.IntUint64(ids))
+ }
+ }
+
+ if v, ok := d.GetOkExists("type"); ok {
+ request.Type = helper.IntInt64(v.(int))
+ }
+
+ if v, ok := d.GetOk("job_type"); ok {
+ request.JobType = helper.String(v.(string))
+ }
+
+ if jobDateTimeMap, ok := helper.InterfacesHeadMap(d, "job_date_time"); ok {
+ jobDateTime := wafv20180125.JobDateTime{}
+ if v, ok := jobDateTimeMap["timed"]; ok {
+ for _, item := range v.([]interface{}) {
+ timedMap := item.(map[string]interface{})
+ timedJob := wafv20180125.TimedJob{}
+ if v, ok := timedMap["start_date_time"].(int); ok {
+ timedJob.StartDateTime = helper.IntUint64(v)
+ }
+
+ if v, ok := timedMap["end_date_time"].(int); ok {
+ timedJob.EndDateTime = helper.IntUint64(v)
+ }
+
+ jobDateTime.Timed = append(jobDateTime.Timed, &timedJob)
+ }
+ }
+
+ if v, ok := jobDateTimeMap["cron"]; ok {
+ for _, item := range v.([]interface{}) {
+ cronMap := item.(map[string]interface{})
+ cronJob := wafv20180125.CronJob{}
+ if v, ok := cronMap["days"]; ok {
+ daysSet := v.(*schema.Set).List()
+ for i := range daysSet {
+ days := daysSet[i].(int)
+ cronJob.Days = append(cronJob.Days, helper.IntUint64(days))
+ }
+ }
+
+ if v, ok := cronMap["w_days"]; ok {
+ wDaysSet := v.(*schema.Set).List()
+ for i := range wDaysSet {
+ wDays := wDaysSet[i].(int)
+ cronJob.WDays = append(cronJob.WDays, helper.IntUint64(wDays))
+ }
+ }
+
+ if v, ok := cronMap["start_time"].(string); ok && v != "" {
+ cronJob.StartTime = helper.String(v)
+ }
+
+ if v, ok := cronMap["end_time"].(string); ok && v != "" {
+ cronJob.EndTime = helper.String(v)
+ }
+
+ jobDateTime.Cron = append(jobDateTime.Cron, &cronJob)
+ }
+ }
+
+ if v, ok := jobDateTimeMap["time_t_zone"].(string); ok && v != "" {
+ jobDateTime.TimeTZone = helper.String(v)
+ }
+
+ request.JobDateTime = &jobDateTime
+ }
+
+ if v, ok := d.GetOkExists("expire_time"); ok {
+ request.ExpireTime = helper.IntUint64(v.(int))
+ }
+
+ if v, ok := d.GetOkExists("status"); ok {
+ request.Status = helper.IntUint64(v.(int))
+ }
+
+ reqErr := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
+ result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseWafV20180125Client().CreateOwaspWhiteRuleWithContext(ctx, request)
+ if e != nil {
+ return tccommon.RetryError(e)
+ } else {
+ log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
+ }
+
+ if result == nil || result.Response == nil {
+ return resource.NonRetryableError(fmt.Errorf("Create waf owasp white rule failed, Response is nil."))
+ }
+
+ response = result
+ return nil
+ })
+
+ if reqErr != nil {
+ log.Printf("[CRITAL]%s create waf owasp white rule failed, reason:%+v", logId, reqErr)
+ return reqErr
+ }
+
+ if response.Response.RuleId == nil {
+ return fmt.Errorf("RuleId is nil.")
+ }
+
+ ruleId = helper.UInt64ToStr(*response.Response.RuleId)
+ d.SetId(strings.Join([]string{domain, ruleId}, tccommon.FILED_SP))
+ return resourceTencentCloudWafOwaspWhiteRuleRead(d, meta)
+}
+
+func resourceTencentCloudWafOwaspWhiteRuleRead(d *schema.ResourceData, meta interface{}) error {
+ defer tccommon.LogElapsed("resource.tencentcloud_waf_owasp_white_rule.read")()
+ defer tccommon.InconsistentCheck(d, meta)()
+
+ var (
+ logId = tccommon.GetLogId(tccommon.ContextNil)
+ ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
+ service = WafService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
+ )
+
+ idSplit := strings.Split(d.Id(), tccommon.FILED_SP)
+ if len(idSplit) != 2 {
+ return fmt.Errorf("id is broken,%s", d.Id())
+ }
+
+ domain := idSplit[0]
+ ruleId := idSplit[1]
+
+ respData, err := service.DescribeWafOwaspWhiteRuleById(ctx, domain, ruleId)
+ if err != nil {
+ return err
+ }
+
+ if respData == nil {
+ log.Printf("[WARN]%s resource `tencentcloud_waf_owasp_white_rule` [%s] not found, please check if it has been deleted.\n", logId, d.Id())
+ d.SetId("")
+ return nil
+ }
+
+ _ = d.Set("domain", domain)
+
+ if respData.Name != nil {
+ _ = d.Set("name", respData.Name)
+ }
+
+ if respData.Strategies != nil {
+ tmpList := make([]map[string]interface{}, 0, len(respData.Strategies))
+ for _, strategies := range respData.Strategies {
+ strategiesMap := map[string]interface{}{}
+ if strategies.Field != nil {
+ strategiesMap["field"] = strategies.Field
+ }
+
+ if strategies.CompareFunc != nil {
+ strategiesMap["compare_func"] = strategies.CompareFunc
+ }
+
+ if strategies.Content != nil {
+ strategiesMap["content"] = strategies.Content
+ }
+
+ if strategies.Arg != nil {
+ strategiesMap["arg"] = strategies.Arg
+ }
+
+ if strategies.CaseNotSensitive != nil {
+ strategiesMap["case_not_sensitive"] = strategies.CaseNotSensitive
+ }
+
+ tmpList = append(tmpList, strategiesMap)
+ }
+
+ _ = d.Set("strategies", tmpList)
+ }
+
+ if respData.Ids != nil {
+ _ = d.Set("ids", respData.Ids)
+ }
+
+ if respData.Type != nil {
+ _ = d.Set("type", respData.Type)
+ }
+
+ if respData.JobType != nil {
+ _ = d.Set("job_type", respData.JobType)
+ }
+
+ if respData.JobDateTime != nil {
+ jobDateTimeMap := map[string]interface{}{}
+ if respData.JobDateTime.Timed != nil {
+ timedList := make([]map[string]interface{}, 0, len(respData.JobDateTime.Timed))
+ for _, timed := range respData.JobDateTime.Timed {
+ timedMap := map[string]interface{}{}
+ if timed.StartDateTime != nil {
+ timedMap["start_date_time"] = timed.StartDateTime
+ }
+
+ if timed.EndDateTime != nil {
+ timedMap["end_date_time"] = timed.EndDateTime
+ }
+
+ timedList = append(timedList, timedMap)
+ }
+
+ jobDateTimeMap["timed"] = timedList
+ }
+
+ if respData.JobDateTime.Cron != nil {
+ cronList := make([]map[string]interface{}, 0, len(respData.JobDateTime.Cron))
+ for _, cron := range respData.JobDateTime.Cron {
+ cronMap := map[string]interface{}{}
+ if cron.Days != nil {
+ cronMap["days"] = cron.Days
+ }
+
+ if cron.WDays != nil {
+ cronMap["w_days"] = cron.WDays
+ }
+
+ if cron.StartTime != nil {
+ cronMap["start_time"] = cron.StartTime
+ }
+
+ if cron.EndTime != nil {
+ cronMap["end_time"] = cron.EndTime
+ }
+
+ cronList = append(cronList, cronMap)
+ }
+
+ jobDateTimeMap["cron"] = cronList
+ }
+
+ if respData.JobDateTime.TimeTZone != nil {
+ jobDateTimeMap["time_t_zone"] = respData.JobDateTime.TimeTZone
+ }
+
+ _ = d.Set("job_date_time", []interface{}{jobDateTimeMap})
+ }
+
+ if respData.Status != nil {
+ _ = d.Set("status", respData.Status)
+ }
+
+ if respData.RuleId != nil {
+ _ = d.Set("rule_id", respData.RuleId)
+ }
+
+ return nil
+}
+
+func resourceTencentCloudWafOwaspWhiteRuleUpdate(d *schema.ResourceData, meta interface{}) error {
+ defer tccommon.LogElapsed("resource.tencentcloud_waf_owasp_white_rule.update")()
+ defer tccommon.InconsistentCheck(d, meta)()
+
+ var (
+ logId = tccommon.GetLogId(tccommon.ContextNil)
+ ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
+ )
+
+ idSplit := strings.Split(d.Id(), tccommon.FILED_SP)
+ if len(idSplit) != 2 {
+ return fmt.Errorf("id is broken,%s", d.Id())
+ }
+
+ domain := idSplit[0]
+ ruleId := idSplit[1]
+
+ needChange := false
+ mutableArgs := []string{"name", "strategies", "ids", "type", "job_type", "job_date_time", "expire_time", "status"}
+ for _, v := range mutableArgs {
+ if d.HasChange(v) {
+ needChange = true
+ break
+ }
+ }
+
+ if needChange {
+ request := wafv20180125.NewModifyOwaspWhiteRuleRequest()
+ if v, ok := d.GetOk("name"); ok {
+ request.Name = helper.String(v.(string))
+ }
+
+ if v, ok := d.GetOk("strategies"); ok {
+ for _, item := range v.([]interface{}) {
+ strategiesMap := item.(map[string]interface{})
+ strategy := wafv20180125.Strategy{}
+ if v, ok := strategiesMap["field"].(string); ok && v != "" {
+ strategy.Field = helper.String(v)
+ }
+
+ if v, ok := strategiesMap["compare_func"].(string); ok && v != "" {
+ strategy.CompareFunc = helper.String(v)
+ }
+
+ if v, ok := strategiesMap["content"].(string); ok && v != "" {
+ strategy.Content = helper.String(v)
+ }
+
+ if v, ok := strategiesMap["arg"].(string); ok && v != "" {
+ strategy.Arg = helper.String(v)
+ }
+
+ if v, ok := strategiesMap["case_not_sensitive"].(int); ok {
+ strategy.CaseNotSensitive = helper.IntUint64(v)
+ }
+
+ request.Strategies = append(request.Strategies, &strategy)
+ }
+ }
+
+ if v, ok := d.GetOk("ids"); ok {
+ idsSet := v.(*schema.Set).List()
+ for i := range idsSet {
+ ids := idsSet[i].(int)
+ request.Ids = append(request.Ids, helper.IntUint64(ids))
+ }
+ }
+
+ if v, ok := d.GetOkExists("type"); ok {
+ request.Type = helper.IntInt64(v.(int))
+ }
+
+ if v, ok := d.GetOk("job_type"); ok {
+ request.JobType = helper.String(v.(string))
+ }
+
+ if jobDateTimeMap, ok := helper.InterfacesHeadMap(d, "job_date_time"); ok {
+ jobDateTime := wafv20180125.JobDateTime{}
+ if v, ok := jobDateTimeMap["timed"]; ok {
+ for _, item := range v.([]interface{}) {
+ timedMap := item.(map[string]interface{})
+ timedJob := wafv20180125.TimedJob{}
+ if v, ok := timedMap["start_date_time"].(int); ok {
+ timedJob.StartDateTime = helper.IntUint64(v)
+ }
+
+ if v, ok := timedMap["end_date_time"].(int); ok {
+ timedJob.EndDateTime = helper.IntUint64(v)
+ }
+
+ jobDateTime.Timed = append(jobDateTime.Timed, &timedJob)
+ }
+ }
+
+ if v, ok := jobDateTimeMap["cron"]; ok {
+ for _, item := range v.([]interface{}) {
+ cronMap := item.(map[string]interface{})
+ cronJob := wafv20180125.CronJob{}
+ if v, ok := cronMap["days"]; ok {
+ daysSet := v.(*schema.Set).List()
+ for i := range daysSet {
+ days := daysSet[i].(int)
+ cronJob.Days = append(cronJob.Days, helper.IntUint64(days))
+ }
+ }
+
+ if v, ok := cronMap["w_days"]; ok {
+ wDaysSet := v.(*schema.Set).List()
+ for i := range wDaysSet {
+ wDays := wDaysSet[i].(int)
+ cronJob.WDays = append(cronJob.WDays, helper.IntUint64(wDays))
+ }
+ }
+
+ if v, ok := cronMap["start_time"].(string); ok && v != "" {
+ cronJob.StartTime = helper.String(v)
+ }
+
+ if v, ok := cronMap["end_time"].(string); ok && v != "" {
+ cronJob.EndTime = helper.String(v)
+ }
+
+ jobDateTime.Cron = append(jobDateTime.Cron, &cronJob)
+ }
+ }
+
+ if v, ok := jobDateTimeMap["time_t_zone"].(string); ok && v != "" {
+ jobDateTime.TimeTZone = helper.String(v)
+ }
+
+ request.JobDateTime = &jobDateTime
+ }
+
+ if v, ok := d.GetOkExists("expire_time"); ok {
+ request.ExpireTime = helper.IntUint64(v.(int))
+ }
+
+ if v, ok := d.GetOkExists("status"); ok {
+ request.Status = helper.IntUint64(v.(int))
+ }
+
+ request.Domain = &domain
+ request.RuleId = helper.StrToUint64Point(ruleId)
+ reqErr := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
+ result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseWafV20180125Client().ModifyOwaspWhiteRuleWithContext(ctx, request)
+ if e != nil {
+ return tccommon.RetryError(e)
+ } else {
+ log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
+ }
+
+ return nil
+ })
+
+ if reqErr != nil {
+ log.Printf("[CRITAL]%s update waf owasp white rule failed, reason:%+v", logId, reqErr)
+ return reqErr
+ }
+ }
+
+ return resourceTencentCloudWafOwaspWhiteRuleRead(d, meta)
+}
+
+func resourceTencentCloudWafOwaspWhiteRuleDelete(d *schema.ResourceData, meta interface{}) error {
+ defer tccommon.LogElapsed("resource.tencentcloud_waf_owasp_white_rule.delete")()
+ defer tccommon.InconsistentCheck(d, meta)()
+
+ var (
+ logId = tccommon.GetLogId(tccommon.ContextNil)
+ ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
+ request = wafv20180125.NewDeleteOwaspWhiteRuleRequest()
+ )
+
+ idSplit := strings.Split(d.Id(), tccommon.FILED_SP)
+ if len(idSplit) != 2 {
+ return fmt.Errorf("id is broken,%s", d.Id())
+ }
+
+ domain := idSplit[0]
+ ruleId := idSplit[1]
+
+ request.Domain = &domain
+ request.Ids = append(request.Ids, helper.StrToUint64Point(ruleId))
+ reqErr := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
+ result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseWafV20180125Client().DeleteOwaspWhiteRuleWithContext(ctx, request)
+ if e != nil {
+ return tccommon.RetryError(e)
+ } else {
+ log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
+ }
+
+ return nil
+ })
+
+ if reqErr != nil {
+ log.Printf("[CRITAL]%s delete waf owasp white rule failed, reason:%+v", logId, reqErr)
+ return reqErr
+ }
+
+ return nil
+}
diff --git a/tencentcloud/services/waf/resource_tc_waf_owasp_white_rule.md b/tencentcloud/services/waf/resource_tc_waf_owasp_white_rule.md
new file mode 100644
index 0000000000..43f7b7f391
--- /dev/null
+++ b/tencentcloud/services/waf/resource_tc_waf_owasp_white_rule.md
@@ -0,0 +1,56 @@
+Provides a resource to create a WAF owasp white rule
+
+Example Usage
+
+```hcl
+resource "tencentcloud_waf_owasp_white_rule" "example" {
+ name = "tf-example"
+ domain = "example.qcloud.com"
+ strategies {
+ field = "IP"
+ compare_func = "ipmatch"
+ content = "1.1.1.1"
+ arg = ""
+ case_not_sensitive = 0
+ }
+ ids = [
+ 10000000,
+ 20000000,
+ 30000000,
+ 40000000,
+ 90000000,
+ 110000000,
+ 190000000,
+ 200000000,
+ 210000000,
+ 220000000,
+ 230000000,
+ 240000000,
+ 250000000,
+ 260000000,
+ 270000000,
+ 280000000,
+ 290000000,
+ 300000000,
+ 310000000,
+ 320000000,
+ 330000000,
+ 340000000,
+ 350000000,
+ 360000000,
+ 370000000
+ ]
+ type = 1
+ job_type = "TimedJob"
+ job_date_time {
+ timed {
+ start_date_time = 0
+ end_date_time = 0
+ }
+
+ time_t_zone = "UTC+8"
+ }
+ expire_time = 0
+ status = 1
+}
+```
diff --git a/tencentcloud/services/waf/resource_tc_waf_owasp_white_rule_test.go b/tencentcloud/services/waf/resource_tc_waf_owasp_white_rule_test.go
new file mode 100644
index 0000000000..0777e166f4
--- /dev/null
+++ b/tencentcloud/services/waf/resource_tc_waf_owasp_white_rule_test.go
@@ -0,0 +1,122 @@
+package waf_test
+
+import (
+ "testing"
+
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
+
+ tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest"
+)
+
+func TestAccTencentCloudWafOwaspWhiteRuleResource_basic(t *testing.T) {
+ t.Parallel()
+ resource.Test(t, resource.TestCase{
+ PreCheck: func() {
+ tcacctest.AccPreCheck(t)
+ },
+ Providers: tcacctest.AccProviders,
+ Steps: []resource.TestStep{
+ {
+ Config: testAccWafOwaspWhiteRule,
+ Check: resource.ComposeTestCheckFunc(
+ resource.TestCheckResourceAttrSet("tencentcloud_waf_owasp_white_rule.example", "id"),
+ ),
+ },
+ {
+ Config: testAccWafOwaspWhiteRuleUpdate,
+ Check: resource.ComposeTestCheckFunc(
+ resource.TestCheckResourceAttrSet("tencentcloud_waf_owasp_white_rule.example", "id"),
+ ),
+ },
+ },
+ })
+}
+
+const testAccWafOwaspWhiteRule = `
+resource "tencentcloud_waf_owasp_white_rule" "example" {
+ name = "tf-example"
+ domain = "example.qcloud.com"
+ strategies {
+ field = "IP"
+ compare_func = "ipmatch"
+ content = "1.1.1.1"
+ arg = ""
+ case_not_sensitive = 0
+ }
+ ids = [
+ 10000000,
+ 20000000,
+ 30000000,
+ 40000000,
+ 90000000,
+ 110000000,
+ 190000000,
+ 200000000,
+ 210000000,
+ 220000000,
+ 230000000,
+ 240000000,
+ 250000000,
+ 260000000,
+ 270000000,
+ 280000000,
+ 290000000,
+ 300000000,
+ 310000000,
+ 320000000,
+ 330000000,
+ 340000000,
+ 350000000,
+ 360000000,
+ 370000000
+ ]
+ type = 1
+ job_type = "TimedJob"
+ job_date_time {
+ timed {
+ start_date_time = 0
+ end_date_time = 0
+ }
+
+ time_t_zone = "UTC+8"
+ }
+ expire_time = 0
+ status = 1
+}
+`
+
+const testAccWafOwaspWhiteRuleUpdate = `
+resource "tencentcloud_waf_owasp_white_rule" "example" {
+ name = "tf-example"
+ domain = "example.qcloud.com"
+ strategies {
+ field = "IP"
+ compare_func = "ipmatch"
+ content = "1.1.1.1"
+ arg = ""
+ case_not_sensitive = 0
+ }
+ ids = [
+ 10000000,
+ 20000000,
+ 30000000,
+ 40000000,
+ 90000000,
+ 110000000,
+ 190000000,
+ 200000000,
+ ]
+ type = 1
+ job_type = "TimedJob"
+ job_date_time {
+ timed {
+ start_date_time = 0
+ end_date_time = 0
+ }
+
+ time_t_zone = "UTC+8"
+ }
+ expire_time = 0
+ status = 0
+}
+`
diff --git a/tencentcloud/services/waf/service_tencentcloud_waf.go b/tencentcloud/services/waf/service_tencentcloud_waf.go
index 68e0679a56..e8a004c917 100644
--- a/tencentcloud/services/waf/service_tencentcloud_waf.go
+++ b/tencentcloud/services/waf/service_tencentcloud_waf.go
@@ -2006,3 +2006,308 @@ func (me *WafService) DescribeWafAttackWhiteRuleById(ctx context.Context, domain
return
}
+
+func (me *WafService) DescribeWafOwaspRuleTypeConfigById(ctx context.Context, domain, typeId string) (ret *waf.OwaspRuleType, errRet error) {
+ logId := tccommon.GetLogId(ctx)
+
+ request := waf.NewDescribeOwaspRuleTypesRequest()
+ response := waf.NewDescribeOwaspRuleTypesResponse()
+ request.Domain = &domain
+
+ defer func() {
+ if errRet != nil {
+ log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", logId, request.GetAction(), request.ToJsonString(), errRet.Error())
+ }
+ }()
+
+ var (
+ offset uint64 = 0
+ limit uint64 = 100
+ orList []*waf.OwaspRuleType
+ )
+
+ for {
+ request.Offset = &offset
+ request.Limit = &limit
+ err := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError {
+ ratelimit.Check(request.GetAction())
+ result, e := me.client.UseWafV20180125Client().DescribeOwaspRuleTypes(request)
+ if e != nil {
+ return tccommon.RetryError(e)
+ } else {
+ log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
+ }
+
+ if result == nil || result.Response == nil || result.Response.List == nil {
+ return resource.NonRetryableError(fmt.Errorf("Describe owasp rule types failed, Response is nil."))
+ }
+
+ response = result
+ return nil
+ })
+
+ if err != nil {
+ errRet = err
+ return
+ }
+
+ if response == nil || len(response.Response.List) < 1 {
+ break
+ }
+
+ orList = append(orList, response.Response.List...)
+ if len(response.Response.List) < int(limit) {
+ break
+ }
+
+ offset += limit
+ }
+
+ for _, item := range orList {
+ if item != nil && item.TypeId != nil {
+ respTypeId := helper.UInt64ToStr(*item.TypeId)
+ if respTypeId == typeId {
+ ret = item
+ return
+ }
+ }
+ }
+
+ return
+}
+
+func (me *WafService) DescribeWafOwaspRuleTypesByFilter(ctx context.Context, param map[string]interface{}) (ret []*waf.OwaspRuleType, errRet error) {
+ var (
+ logId = tccommon.GetLogId(ctx)
+ request = waf.NewDescribeOwaspRuleTypesRequest()
+ response = waf.NewDescribeOwaspRuleTypesResponse()
+ )
+
+ defer func() {
+ if errRet != nil {
+ log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", logId, request.GetAction(), request.ToJsonString(), errRet.Error())
+ }
+ }()
+
+ for k, v := range param {
+ if k == "Domain" {
+ request.Domain = v.(*string)
+ }
+
+ if k == "Filters" {
+ request.Filters = v.([]*waf.FiltersItemNew)
+ }
+ }
+
+ var (
+ offset uint64 = 0
+ limit uint64 = 100
+ )
+
+ for {
+ request.Offset = &offset
+ request.Limit = &limit
+ err := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError {
+ ratelimit.Check(request.GetAction())
+ result, e := me.client.UseWafV20180125Client().DescribeOwaspRuleTypes(request)
+ if e != nil {
+ return tccommon.RetryError(e)
+ } else {
+ log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
+ }
+
+ if result == nil || result.Response == nil || result.Response.List == nil {
+ return resource.NonRetryableError(fmt.Errorf("Describe owasp rule types failed, Response is nil."))
+ }
+
+ response = result
+ return nil
+ })
+
+ if err != nil {
+ errRet = err
+ return
+ }
+
+ if response == nil || len(response.Response.List) < 1 {
+ break
+ }
+
+ ret = append(ret, response.Response.List...)
+ if len(response.Response.List) < int(limit) {
+ break
+ }
+
+ offset += limit
+ }
+
+ return
+}
+
+func (me *WafService) DescribeWafOwaspRuleStatusConfigById(ctx context.Context, domain, ruleId string) (ret *waf.OwaspRule, errRet error) {
+ logId := tccommon.GetLogId(ctx)
+
+ request := waf.NewDescribeOwaspRulesRequest()
+ response := waf.NewDescribeOwaspRulesResponse()
+ request.Domain = &domain
+ request.Filters = []*waf.FiltersItemNew{
+ {
+ Name: common.StringPtr("RuleId"),
+ Values: common.StringPtrs([]string{ruleId}),
+ ExactMatch: common.BoolPtr(true),
+ },
+ }
+
+ defer func() {
+ if errRet != nil {
+ log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", logId, request.GetAction(), request.ToJsonString(), errRet.Error())
+ }
+ }()
+
+ err := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError {
+ ratelimit.Check(request.GetAction())
+ result, e := me.client.UseWafV20180125Client().DescribeOwaspRules(request)
+ if e != nil {
+ return tccommon.RetryError(e)
+ } else {
+ log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
+ }
+
+ if result == nil || result.Response == nil || result.Response.List == nil || len(result.Response.List) < 1 {
+ return resource.NonRetryableError(fmt.Errorf("Describe owasp rules failed, Response is nil."))
+ }
+
+ response = result
+ return nil
+ })
+
+ if err != nil {
+ errRet = err
+ return
+ }
+
+ ret = response.Response.List[0]
+ return
+}
+
+func (me *WafService) DescribeWafOwaspRulesByFilter(ctx context.Context, param map[string]interface{}) (ret []*waf.OwaspRule, errRet error) {
+ var (
+ logId = tccommon.GetLogId(ctx)
+ request = waf.NewDescribeOwaspRulesRequest()
+ response = waf.NewDescribeOwaspRulesResponse()
+ )
+
+ defer func() {
+ if errRet != nil {
+ log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", logId, request.GetAction(), request.ToJsonString(), errRet.Error())
+ }
+ }()
+
+ for k, v := range param {
+ if k == "Domain" {
+ request.Domain = v.(*string)
+ }
+
+ if k == "By" {
+ request.By = v.(*string)
+ }
+
+ if k == "Order" {
+ request.Order = v.(*string)
+ }
+
+ if k == "Filters" {
+ request.Filters = v.([]*waf.FiltersItemNew)
+ }
+ }
+
+ var (
+ offset uint64 = 0
+ limit uint64 = 100
+ )
+
+ for {
+ request.Offset = &offset
+ request.Limit = &limit
+ err := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError {
+ ratelimit.Check(request.GetAction())
+ result, e := me.client.UseWafV20180125Client().DescribeOwaspRules(request)
+ if e != nil {
+ return tccommon.RetryError(e)
+ } else {
+ log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
+ }
+
+ if result == nil || result.Response == nil || result.Response.List == nil {
+ return resource.NonRetryableError(fmt.Errorf("Describe owasp rules failed, Response is nil."))
+ }
+
+ response = result
+ return nil
+ })
+
+ if err != nil {
+ errRet = err
+ return
+ }
+
+ if response == nil || len(response.Response.List) < 1 {
+ break
+ }
+
+ ret = append(ret, response.Response.List...)
+ if len(response.Response.List) < int(limit) {
+ break
+ }
+
+ offset += limit
+ }
+
+ return
+}
+
+func (me *WafService) DescribeWafOwaspWhiteRuleById(ctx context.Context, domain, ruleId string) (ret *waf.OwaspWhiteRule, errRet error) {
+ logId := tccommon.GetLogId(ctx)
+
+ request := waf.NewDescribeOwaspWhiteRulesRequest()
+ response := waf.NewDescribeOwaspWhiteRulesResponse()
+ request.Domain = &domain
+ request.Filters = []*waf.FiltersItemNew{
+ {
+ Name: common.StringPtr("RuleId"),
+ Values: common.StringPtrs([]string{ruleId}),
+ ExactMatch: common.BoolPtr(true),
+ },
+ }
+
+ defer func() {
+ if errRet != nil {
+ log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", logId, request.GetAction(), request.ToJsonString(), errRet.Error())
+ }
+ }()
+
+ err := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError {
+ ratelimit.Check(request.GetAction())
+ result, e := me.client.UseWafV20180125Client().DescribeOwaspWhiteRules(request)
+ if e != nil {
+ return tccommon.RetryError(e)
+ } else {
+ log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
+ }
+
+ if result == nil || result.Response == nil || result.Response.List == nil || len(result.Response.List) < 1 {
+ return resource.NonRetryableError(fmt.Errorf("Describe owasp white rules failed, Response is nil."))
+ }
+
+ response = result
+ return nil
+ })
+
+ if err != nil {
+ errRet = err
+ return
+ }
+
+ ret = response.Response.List[0]
+ return
+}
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 2ba3264139..664cbdd3bd 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
@@ -1,4 +1,4 @@
-// Copyright (c) 2017-2018 THL A29 Limited, a Tencent company. All Rights Reserved.
+// Copyright (c) 2017-2025 Tencent. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -88,6 +88,7 @@ func (c *Client) AddAntiFakeUrlWithContext(ctx context.Context, request *AddAnti
if request == nil {
request = NewAddAntiFakeUrlRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "AddAntiFakeUrl")
if c.GetCredential() == nil {
return nil, errors.New("AddAntiFakeUrl require credential")
@@ -145,6 +146,7 @@ func (c *Client) AddAntiInfoLeakRulesWithContext(ctx context.Context, request *A
if request == nil {
request = NewAddAntiInfoLeakRulesRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "AddAntiInfoLeakRules")
if c.GetCredential() == nil {
return nil, errors.New("AddAntiInfoLeakRules require credential")
@@ -220,6 +222,7 @@ func (c *Client) AddAreaBanAreasWithContext(ctx context.Context, request *AddAre
if request == nil {
request = NewAddAreaBanAreasRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "AddAreaBanAreas")
if c.GetCredential() == nil {
return nil, errors.New("AddAreaBanAreas require credential")
@@ -309,6 +312,7 @@ func (c *Client) AddAttackWhiteRuleWithContext(ctx context.Context, request *Add
if request == nil {
request = NewAddAttackWhiteRuleRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "AddAttackWhiteRule")
if c.GetCredential() == nil {
return nil, errors.New("AddAttackWhiteRule require credential")
@@ -368,6 +372,7 @@ func (c *Client) AddCustomRuleWithContext(ctx context.Context, request *AddCusto
if request == nil {
request = NewAddCustomRuleRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "AddCustomRule")
if c.GetCredential() == nil {
return nil, errors.New("AddCustomRule require credential")
@@ -429,6 +434,7 @@ func (c *Client) AddCustomWhiteRuleWithContext(ctx context.Context, request *Add
if request == nil {
request = NewAddCustomWhiteRuleRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "AddCustomWhiteRule")
if c.GetCredential() == nil {
return nil, errors.New("AddCustomWhiteRule require credential")
@@ -488,6 +494,7 @@ func (c *Client) AddDomainWhiteRuleWithContext(ctx context.Context, request *Add
if request == nil {
request = NewAddDomainWhiteRuleRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "AddDomainWhiteRule")
if c.GetCredential() == nil {
return nil, errors.New("AddDomainWhiteRule require credential")
@@ -585,6 +592,7 @@ func (c *Client) AddSpartaProtectionWithContext(ctx context.Context, request *Ad
if request == nil {
request = NewAddSpartaProtectionRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "AddSpartaProtection")
if c.GetCredential() == nil {
return nil, errors.New("AddSpartaProtection require credential")
@@ -682,6 +690,7 @@ func (c *Client) BatchOperateUserSignatureRulesWithContext(ctx context.Context,
if request == nil {
request = NewBatchOperateUserSignatureRulesRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "BatchOperateUserSignatureRules")
if c.GetCredential() == nil {
return nil, errors.New("BatchOperateUserSignatureRules require credential")
@@ -769,6 +778,7 @@ func (c *Client) CreateAccessExportWithContext(ctx context.Context, request *Cre
if request == nil {
request = NewCreateAccessExportRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "CreateAccessExport")
if c.GetCredential() == nil {
return nil, errors.New("CreateAccessExport require credential")
@@ -846,6 +856,7 @@ func (c *Client) CreateAreaBanRuleWithContext(ctx context.Context, request *Crea
if request == nil {
request = NewCreateAreaBanRuleRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "CreateAreaBanRule")
if c.GetCredential() == nil {
return nil, errors.New("CreateAreaBanRule require credential")
@@ -858,6 +869,66 @@ func (c *Client) CreateAreaBanRuleWithContext(ctx context.Context, request *Crea
return
}
+func NewCreateBatchIpAccessControlRequest() (request *CreateBatchIpAccessControlRequest) {
+ request = &CreateBatchIpAccessControlRequest{
+ BaseRequest: &tchttp.BaseRequest{},
+ }
+
+ request.Init().WithApiInfo("waf", APIVersion, "CreateBatchIpAccessControl")
+
+
+ return
+}
+
+func NewCreateBatchIpAccessControlResponse() (response *CreateBatchIpAccessControlResponse) {
+ response = &CreateBatchIpAccessControlResponse{
+ BaseResponse: &tchttp.BaseResponse{},
+ }
+ return
+
+}
+
+// CreateBatchIpAccessControl
+// 批量IP黑白名单新增接口
+//
+// 可能返回的错误码:
+// FAILEDOPERATION_THENUMBEROFADDEDBLACKANDWHITELISTEXCEEDSTHEUPPERLIMIT = "FailedOperation.TheNumberOfAddedBlackAndWhiteListExceedsTheUpperLimit"
+// INTERNALERROR = "InternalError"
+// INTERNALERROR_DBERR = "InternalError.DBErr"
+// LIMITEXCEEDED = "LimitExceeded"
+// LIMITEXCEEDED_SPECIFICATIONERR = "LimitExceeded.SpecificationErr"
+// UNSUPPORTEDOPERATION = "UnsupportedOperation"
+func (c *Client) CreateBatchIpAccessControl(request *CreateBatchIpAccessControlRequest) (response *CreateBatchIpAccessControlResponse, err error) {
+ return c.CreateBatchIpAccessControlWithContext(context.Background(), request)
+}
+
+// CreateBatchIpAccessControl
+// 批量IP黑白名单新增接口
+//
+// 可能返回的错误码:
+// FAILEDOPERATION_THENUMBEROFADDEDBLACKANDWHITELISTEXCEEDSTHEUPPERLIMIT = "FailedOperation.TheNumberOfAddedBlackAndWhiteListExceedsTheUpperLimit"
+// INTERNALERROR = "InternalError"
+// INTERNALERROR_DBERR = "InternalError.DBErr"
+// LIMITEXCEEDED = "LimitExceeded"
+// LIMITEXCEEDED_SPECIFICATIONERR = "LimitExceeded.SpecificationErr"
+// UNSUPPORTEDOPERATION = "UnsupportedOperation"
+func (c *Client) CreateBatchIpAccessControlWithContext(ctx context.Context, request *CreateBatchIpAccessControlRequest) (response *CreateBatchIpAccessControlResponse, err error) {
+ if request == nil {
+ request = NewCreateBatchIpAccessControlRequest()
+ }
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "CreateBatchIpAccessControl")
+
+ if c.GetCredential() == nil {
+ return nil, errors.New("CreateBatchIpAccessControl require credential")
+ }
+
+ request.SetContext(ctx)
+
+ response = NewCreateBatchIpAccessControlResponse()
+ err = c.Send(request, response)
+ return
+}
+
func NewCreateDealsRequest() (request *CreateDealsRequest) {
request = &CreateDealsRequest{
BaseRequest: &tchttp.BaseRequest{},
@@ -935,6 +1006,7 @@ func (c *Client) CreateDealsWithContext(ctx context.Context, request *CreateDeal
if request == nil {
request = NewCreateDealsRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "CreateDeals")
if c.GetCredential() == nil {
return nil, errors.New("CreateDeals require credential")
@@ -947,6 +1019,76 @@ func (c *Client) CreateDealsWithContext(ctx context.Context, request *CreateDeal
return
}
+func NewCreateExportRequest() (request *CreateExportRequest) {
+ request = &CreateExportRequest{
+ BaseRequest: &tchttp.BaseRequest{},
+ }
+
+ request.Init().WithApiInfo("waf", APIVersion, "CreateExport")
+
+
+ return
+}
+
+func NewCreateExportResponse() (response *CreateExportResponse) {
+ response = &CreateExportResponse{
+ BaseResponse: &tchttp.BaseResponse{},
+ }
+ return
+
+}
+
+// CreateExport
+// 本接口仅创建下载任务,任务返回的下载地址,请用户调用DescribeExports查看任务列表。其中有下载地址CosPath参数。参考文档https://cloud.tencent.com/document/product/614/56449
+//
+// 可能返回的错误码:
+// FAILEDOPERATION = "FailedOperation"
+// FAILEDOPERATION_TOPICCLOSED = "FailedOperation.TopicClosed"
+// INTERNALERROR = "InternalError"
+// INVALIDPARAMETER = "InvalidParameter"
+// LIMITEXCEEDED_EXPORT = "LimitExceeded.Export"
+// MISSINGPARAMETER = "MissingParameter"
+// OPERATIONDENIED = "OperationDenied"
+// OPERATIONDENIED_ACCOUNTDESTROY = "OperationDenied.AccountDestroy"
+// OPERATIONDENIED_ACCOUNTISOLATE = "OperationDenied.AccountIsolate"
+// OPERATIONDENIED_ACCOUNTNOTEXISTS = "OperationDenied.AccountNotExists"
+// RESOURCENOTFOUND_TOPICNOTEXIST = "ResourceNotFound.TopicNotExist"
+func (c *Client) CreateExport(request *CreateExportRequest) (response *CreateExportResponse, err error) {
+ return c.CreateExportWithContext(context.Background(), request)
+}
+
+// CreateExport
+// 本接口仅创建下载任务,任务返回的下载地址,请用户调用DescribeExports查看任务列表。其中有下载地址CosPath参数。参考文档https://cloud.tencent.com/document/product/614/56449
+//
+// 可能返回的错误码:
+// FAILEDOPERATION = "FailedOperation"
+// FAILEDOPERATION_TOPICCLOSED = "FailedOperation.TopicClosed"
+// INTERNALERROR = "InternalError"
+// INVALIDPARAMETER = "InvalidParameter"
+// LIMITEXCEEDED_EXPORT = "LimitExceeded.Export"
+// MISSINGPARAMETER = "MissingParameter"
+// OPERATIONDENIED = "OperationDenied"
+// OPERATIONDENIED_ACCOUNTDESTROY = "OperationDenied.AccountDestroy"
+// OPERATIONDENIED_ACCOUNTISOLATE = "OperationDenied.AccountIsolate"
+// OPERATIONDENIED_ACCOUNTNOTEXISTS = "OperationDenied.AccountNotExists"
+// RESOURCENOTFOUND_TOPICNOTEXIST = "ResourceNotFound.TopicNotExist"
+func (c *Client) CreateExportWithContext(ctx context.Context, request *CreateExportRequest) (response *CreateExportResponse, err error) {
+ if request == nil {
+ request = NewCreateExportRequest()
+ }
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "CreateExport")
+
+ if c.GetCredential() == nil {
+ return nil, errors.New("CreateExport require credential")
+ }
+
+ request.SetContext(ctx)
+
+ response = NewCreateExportResponse()
+ err = c.Send(request, response)
+ return
+}
+
func NewCreateHostRequest() (request *CreateHostRequest) {
request = &CreateHostRequest{
BaseRequest: &tchttp.BaseRequest{},
@@ -1010,6 +1152,7 @@ func (c *Client) CreateHostWithContext(ctx context.Context, request *CreateHostR
if request == nil {
request = NewCreateHostRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "CreateHost")
if c.GetCredential() == nil {
return nil, errors.New("CreateHost require credential")
@@ -1069,6 +1212,7 @@ func (c *Client) CreateIpAccessControlWithContext(ctx context.Context, request *
if request == nil {
request = NewCreateIpAccessControlRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "CreateIpAccessControl")
if c.GetCredential() == nil {
return nil, errors.New("CreateIpAccessControl require credential")
@@ -1081,6 +1225,96 @@ func (c *Client) CreateIpAccessControlWithContext(ctx context.Context, request *
return
}
+func NewCreateOwaspWhiteRuleRequest() (request *CreateOwaspWhiteRuleRequest) {
+ request = &CreateOwaspWhiteRuleRequest{
+ BaseRequest: &tchttp.BaseRequest{},
+ }
+
+ request.Init().WithApiInfo("waf", APIVersion, "CreateOwaspWhiteRule")
+
+
+ return
+}
+
+func NewCreateOwaspWhiteRuleResponse() (response *CreateOwaspWhiteRuleResponse) {
+ response = &CreateOwaspWhiteRuleResponse{
+ BaseResponse: &tchttp.BaseResponse{},
+ }
+ return
+
+}
+
+// CreateOwaspWhiteRule
+// 添加规则引擎白名单
+//
+// 可能返回的错误码:
+// AUTHFAILURE = "AuthFailure"
+// DRYRUNOPERATION = "DryRunOperation"
+// FAILEDOPERATION = "FailedOperation"
+// INTERNALERROR = "InternalError"
+// INVALIDPARAMETER = "InvalidParameter"
+// INVALIDPARAMETER_INVALIDCERTIFICATE = "InvalidParameter.InvalidCertificate"
+// INVALIDPARAMETER_QUERYCERTBYSSLIDFAILED = "InvalidParameter.QueryCertBySSLIDFailed"
+// INVALIDPARAMETERVALUE = "InvalidParameterValue"
+// INVALIDPARAMETERVALUE_INVALIDREQUEST = "InvalidParameterValue.InvalidRequest"
+// 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) CreateOwaspWhiteRule(request *CreateOwaspWhiteRuleRequest) (response *CreateOwaspWhiteRuleResponse, err error) {
+ return c.CreateOwaspWhiteRuleWithContext(context.Background(), request)
+}
+
+// CreateOwaspWhiteRule
+// 添加规则引擎白名单
+//
+// 可能返回的错误码:
+// AUTHFAILURE = "AuthFailure"
+// DRYRUNOPERATION = "DryRunOperation"
+// FAILEDOPERATION = "FailedOperation"
+// INTERNALERROR = "InternalError"
+// INVALIDPARAMETER = "InvalidParameter"
+// INVALIDPARAMETER_INVALIDCERTIFICATE = "InvalidParameter.InvalidCertificate"
+// INVALIDPARAMETER_QUERYCERTBYSSLIDFAILED = "InvalidParameter.QueryCertBySSLIDFailed"
+// INVALIDPARAMETERVALUE = "InvalidParameterValue"
+// INVALIDPARAMETERVALUE_INVALIDREQUEST = "InvalidParameterValue.InvalidRequest"
+// 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) CreateOwaspWhiteRuleWithContext(ctx context.Context, request *CreateOwaspWhiteRuleRequest) (response *CreateOwaspWhiteRuleResponse, err error) {
+ if request == nil {
+ request = NewCreateOwaspWhiteRuleRequest()
+ }
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "CreateOwaspWhiteRule")
+
+ if c.GetCredential() == nil {
+ return nil, errors.New("CreateOwaspWhiteRule require credential")
+ }
+
+ request.SetContext(ctx)
+
+ response = NewCreateOwaspWhiteRuleResponse()
+ err = c.Send(request, response)
+ return
+}
+
func NewCreatePostCKafkaFlowRequest() (request *CreatePostCKafkaFlowRequest) {
request = &CreatePostCKafkaFlowRequest{
BaseRequest: &tchttp.BaseRequest{},
@@ -1152,6 +1386,7 @@ func (c *Client) CreatePostCKafkaFlowWithContext(ctx context.Context, request *C
if request == nil {
request = NewCreatePostCKafkaFlowRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "CreatePostCKafkaFlow")
if c.GetCredential() == nil {
return nil, errors.New("CreatePostCKafkaFlow require credential")
@@ -1235,6 +1470,7 @@ func (c *Client) CreatePostCLSFlowWithContext(ctx context.Context, request *Crea
if request == nil {
request = NewCreatePostCLSFlowRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "CreatePostCLSFlow")
if c.GetCredential() == nil {
return nil, errors.New("CreatePostCLSFlow require credential")
@@ -1322,6 +1558,7 @@ func (c *Client) DeleteAccessExportWithContext(ctx context.Context, request *Del
if request == nil {
request = NewDeleteAccessExportRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DeleteAccessExport")
if c.GetCredential() == nil {
return nil, errors.New("DeleteAccessExport require credential")
@@ -1375,6 +1612,7 @@ func (c *Client) DeleteAntiFakeUrlWithContext(ctx context.Context, request *Dele
if request == nil {
request = NewDeleteAntiFakeUrlRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DeleteAntiFakeUrl")
if c.GetCredential() == nil {
return nil, errors.New("DeleteAntiFakeUrl require credential")
@@ -1426,6 +1664,7 @@ func (c *Client) DeleteAntiInfoLeakRuleWithContext(ctx context.Context, request
if request == nil {
request = NewDeleteAntiInfoLeakRuleRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DeleteAntiInfoLeakRule")
if c.GetCredential() == nil {
return nil, errors.New("DeleteAntiInfoLeakRule require credential")
@@ -1481,6 +1720,7 @@ func (c *Client) DeleteAttackDownloadRecordWithContext(ctx context.Context, requ
if request == nil {
request = NewDeleteAttackDownloadRecordRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DeleteAttackDownloadRecord")
if c.GetCredential() == nil {
return nil, errors.New("DeleteAttackDownloadRecord require credential")
@@ -1568,6 +1808,7 @@ func (c *Client) DeleteAttackWhiteRuleWithContext(ctx context.Context, request *
if request == nil {
request = NewDeleteAttackWhiteRuleRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DeleteAttackWhiteRule")
if c.GetCredential() == nil {
return nil, errors.New("DeleteAttackWhiteRule require credential")
@@ -1580,6 +1821,64 @@ func (c *Client) DeleteAttackWhiteRuleWithContext(ctx context.Context, request *
return
}
+func NewDeleteBatchIpAccessControlRequest() (request *DeleteBatchIpAccessControlRequest) {
+ request = &DeleteBatchIpAccessControlRequest{
+ BaseRequest: &tchttp.BaseRequest{},
+ }
+
+ request.Init().WithApiInfo("waf", APIVersion, "DeleteBatchIpAccessControl")
+
+
+ return
+}
+
+func NewDeleteBatchIpAccessControlResponse() (response *DeleteBatchIpAccessControlResponse) {
+ response = &DeleteBatchIpAccessControlResponse{
+ BaseResponse: &tchttp.BaseResponse{},
+ }
+ return
+
+}
+
+// DeleteBatchIpAccessControl
+// 批量黑白名单删除接口
+//
+// 可能返回的错误码:
+// FAILEDOPERATION_THENUMBEROFONETIMEDELETIONSREACHEDTHEUPPERLIMIT = "FailedOperation.TheNumberOfOneTimeDeletionsReachedTheUpperLimit"
+// INTERNALERROR = "InternalError"
+// INTERNALERROR_DBERR = "InternalError.DBErr"
+// INVALIDPARAMETER = "InvalidParameter"
+// UNSUPPORTEDOPERATION = "UnsupportedOperation"
+func (c *Client) DeleteBatchIpAccessControl(request *DeleteBatchIpAccessControlRequest) (response *DeleteBatchIpAccessControlResponse, err error) {
+ return c.DeleteBatchIpAccessControlWithContext(context.Background(), request)
+}
+
+// DeleteBatchIpAccessControl
+// 批量黑白名单删除接口
+//
+// 可能返回的错误码:
+// FAILEDOPERATION_THENUMBEROFONETIMEDELETIONSREACHEDTHEUPPERLIMIT = "FailedOperation.TheNumberOfOneTimeDeletionsReachedTheUpperLimit"
+// INTERNALERROR = "InternalError"
+// INTERNALERROR_DBERR = "InternalError.DBErr"
+// INVALIDPARAMETER = "InvalidParameter"
+// UNSUPPORTEDOPERATION = "UnsupportedOperation"
+func (c *Client) DeleteBatchIpAccessControlWithContext(ctx context.Context, request *DeleteBatchIpAccessControlRequest) (response *DeleteBatchIpAccessControlResponse, err error) {
+ if request == nil {
+ request = NewDeleteBatchIpAccessControlRequest()
+ }
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DeleteBatchIpAccessControl")
+
+ if c.GetCredential() == nil {
+ return nil, errors.New("DeleteBatchIpAccessControl require credential")
+ }
+
+ request.SetContext(ctx)
+
+ response = NewDeleteBatchIpAccessControlResponse()
+ err = c.Send(request, response)
+ return
+}
+
func NewDeleteBotSceneUCBRuleRequest() (request *DeleteBotSceneUCBRuleRequest) {
request = &DeleteBotSceneUCBRuleRequest{
BaseRequest: &tchttp.BaseRequest{},
@@ -1617,6 +1916,7 @@ func (c *Client) DeleteBotSceneUCBRuleWithContext(ctx context.Context, request *
if request == nil {
request = NewDeleteBotSceneUCBRuleRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DeleteBotSceneUCBRule")
if c.GetCredential() == nil {
return nil, errors.New("DeleteBotSceneUCBRule require credential")
@@ -1670,6 +1970,7 @@ func (c *Client) DeleteCCRuleWithContext(ctx context.Context, request *DeleteCCR
if request == nil {
request = NewDeleteCCRuleRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DeleteCCRule")
if c.GetCredential() == nil {
return nil, errors.New("DeleteCCRule require credential")
@@ -1721,6 +2022,7 @@ func (c *Client) DeleteCustomRuleWithContext(ctx context.Context, request *Delet
if request == nil {
request = NewDeleteCustomRuleRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DeleteCustomRule")
if c.GetCredential() == nil {
return nil, errors.New("DeleteCustomRule require credential")
@@ -1774,6 +2076,7 @@ func (c *Client) DeleteCustomWhiteRuleWithContext(ctx context.Context, request *
if request == nil {
request = NewDeleteCustomWhiteRuleRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DeleteCustomWhiteRule")
if c.GetCredential() == nil {
return nil, errors.New("DeleteCustomWhiteRule require credential")
@@ -1831,6 +2134,7 @@ func (c *Client) DeleteDomainWhiteRulesWithContext(ctx context.Context, request
if request == nil {
request = NewDeleteDomainWhiteRulesRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DeleteDomainWhiteRules")
if c.GetCredential() == nil {
return nil, errors.New("DeleteDomainWhiteRules require credential")
@@ -1843,6 +2147,72 @@ func (c *Client) DeleteDomainWhiteRulesWithContext(ctx context.Context, request
return
}
+func NewDeleteExportRequest() (request *DeleteExportRequest) {
+ request = &DeleteExportRequest{
+ BaseRequest: &tchttp.BaseRequest{},
+ }
+
+ request.Init().WithApiInfo("waf", APIVersion, "DeleteExport")
+
+
+ return
+}
+
+func NewDeleteExportResponse() (response *DeleteExportResponse) {
+ response = &DeleteExportResponse{
+ BaseResponse: &tchttp.BaseResponse{},
+ }
+ return
+
+}
+
+// DeleteExport
+// 本接口用于删除日志下载任务
+//
+// 可能返回的错误码:
+// FAILEDOPERATION = "FailedOperation"
+// INTERNALERROR = "InternalError"
+// INVALIDPARAMETER = "InvalidParameter"
+// MISSINGPARAMETER = "MissingParameter"
+// OPERATIONDENIED = "OperationDenied"
+// OPERATIONDENIED_ACCOUNTDESTROY = "OperationDenied.AccountDestroy"
+// OPERATIONDENIED_ACCOUNTISOLATE = "OperationDenied.AccountIsolate"
+// OPERATIONDENIED_ACCOUNTNOTEXISTS = "OperationDenied.AccountNotExists"
+// RESOURCENOTFOUND_EXPORTNOTEXIST = "ResourceNotFound.ExportNotExist"
+func (c *Client) DeleteExport(request *DeleteExportRequest) (response *DeleteExportResponse, err error) {
+ return c.DeleteExportWithContext(context.Background(), request)
+}
+
+// DeleteExport
+// 本接口用于删除日志下载任务
+//
+// 可能返回的错误码:
+// FAILEDOPERATION = "FailedOperation"
+// INTERNALERROR = "InternalError"
+// INVALIDPARAMETER = "InvalidParameter"
+// MISSINGPARAMETER = "MissingParameter"
+// OPERATIONDENIED = "OperationDenied"
+// OPERATIONDENIED_ACCOUNTDESTROY = "OperationDenied.AccountDestroy"
+// OPERATIONDENIED_ACCOUNTISOLATE = "OperationDenied.AccountIsolate"
+// OPERATIONDENIED_ACCOUNTNOTEXISTS = "OperationDenied.AccountNotExists"
+// RESOURCENOTFOUND_EXPORTNOTEXIST = "ResourceNotFound.ExportNotExist"
+func (c *Client) DeleteExportWithContext(ctx context.Context, request *DeleteExportRequest) (response *DeleteExportResponse, err error) {
+ if request == nil {
+ request = NewDeleteExportRequest()
+ }
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DeleteExport")
+
+ if c.GetCredential() == nil {
+ return nil, errors.New("DeleteExport require credential")
+ }
+
+ request.SetContext(ctx)
+
+ response = NewDeleteExportResponse()
+ err = c.Send(request, response)
+ return
+}
+
func NewDeleteHostRequest() (request *DeleteHostRequest) {
request = &DeleteHostRequest{
BaseRequest: &tchttp.BaseRequest{},
@@ -1904,6 +2274,7 @@ func (c *Client) DeleteHostWithContext(ctx context.Context, request *DeleteHostR
if request == nil {
request = NewDeleteHostRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DeleteHost")
if c.GetCredential() == nil {
return nil, errors.New("DeleteHost require credential")
@@ -1961,6 +2332,7 @@ func (c *Client) DeleteIpAccessControlWithContext(ctx context.Context, request *
if request == nil {
request = NewDeleteIpAccessControlRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DeleteIpAccessControl")
if c.GetCredential() == nil {
return nil, errors.New("DeleteIpAccessControl require credential")
@@ -2022,6 +2394,7 @@ func (c *Client) DeleteIpAccessControlV2WithContext(ctx context.Context, request
if request == nil {
request = NewDeleteIpAccessControlV2Request()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DeleteIpAccessControlV2")
if c.GetCredential() == nil {
return nil, errors.New("DeleteIpAccessControlV2 require credential")
@@ -2034,30 +2407,180 @@ func (c *Client) DeleteIpAccessControlV2WithContext(ctx context.Context, request
return
}
-func NewDeleteSessionRequest() (request *DeleteSessionRequest) {
- request = &DeleteSessionRequest{
+func NewDeleteOwaspRuleStatusRequest() (request *DeleteOwaspRuleStatusRequest) {
+ request = &DeleteOwaspRuleStatusRequest{
BaseRequest: &tchttp.BaseRequest{},
}
- request.Init().WithApiInfo("waf", APIVersion, "DeleteSession")
+ request.Init().WithApiInfo("waf", APIVersion, "DeleteOwaspRuleStatus")
return
}
-func NewDeleteSessionResponse() (response *DeleteSessionResponse) {
- response = &DeleteSessionResponse{
+func NewDeleteOwaspRuleStatusResponse() (response *DeleteOwaspRuleStatusResponse) {
+ response = &DeleteOwaspRuleStatusResponse{
BaseResponse: &tchttp.BaseResponse{},
}
return
}
-// DeleteSession
-// 删除CC攻击的session设置
+// DeleteOwaspRuleStatus
+// 解除门神规则的状态锁
//
// 可能返回的错误码:
-// FAILEDOPERATION_SESSIONINUSED = "FailedOperation.SessionInUsed"
+// FAILEDOPERATION_THENUMBEROFONETIMEDELETIONSREACHEDTHEUPPERLIMIT = "FailedOperation.TheNumberOfOneTimeDeletionsReachedTheUpperLimit"
+// INTERNALERROR = "InternalError"
+// INTERNALERROR_DBERR = "InternalError.DBErr"
+// INVALIDPARAMETER = "InvalidParameter"
+// INVALIDPARAMETERVALUE = "InvalidParameterValue"
+// RESOURCENOTFOUND = "ResourceNotFound"
+// UNSUPPORTEDOPERATION = "UnsupportedOperation"
+func (c *Client) DeleteOwaspRuleStatus(request *DeleteOwaspRuleStatusRequest) (response *DeleteOwaspRuleStatusResponse, err error) {
+ return c.DeleteOwaspRuleStatusWithContext(context.Background(), request)
+}
+
+// DeleteOwaspRuleStatus
+// 解除门神规则的状态锁
+//
+// 可能返回的错误码:
+// FAILEDOPERATION_THENUMBEROFONETIMEDELETIONSREACHEDTHEUPPERLIMIT = "FailedOperation.TheNumberOfOneTimeDeletionsReachedTheUpperLimit"
+// INTERNALERROR = "InternalError"
+// INTERNALERROR_DBERR = "InternalError.DBErr"
+// INVALIDPARAMETER = "InvalidParameter"
+// INVALIDPARAMETERVALUE = "InvalidParameterValue"
+// RESOURCENOTFOUND = "ResourceNotFound"
+// UNSUPPORTEDOPERATION = "UnsupportedOperation"
+func (c *Client) DeleteOwaspRuleStatusWithContext(ctx context.Context, request *DeleteOwaspRuleStatusRequest) (response *DeleteOwaspRuleStatusResponse, err error) {
+ if request == nil {
+ request = NewDeleteOwaspRuleStatusRequest()
+ }
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DeleteOwaspRuleStatus")
+
+ if c.GetCredential() == nil {
+ return nil, errors.New("DeleteOwaspRuleStatus require credential")
+ }
+
+ request.SetContext(ctx)
+
+ response = NewDeleteOwaspRuleStatusResponse()
+ err = c.Send(request, response)
+ return
+}
+
+func NewDeleteOwaspWhiteRuleRequest() (request *DeleteOwaspWhiteRuleRequest) {
+ request = &DeleteOwaspWhiteRuleRequest{
+ BaseRequest: &tchttp.BaseRequest{},
+ }
+
+ request.Init().WithApiInfo("waf", APIVersion, "DeleteOwaspWhiteRule")
+
+
+ return
+}
+
+func NewDeleteOwaspWhiteRuleResponse() (response *DeleteOwaspWhiteRuleResponse) {
+ response = &DeleteOwaspWhiteRuleResponse{
+ BaseResponse: &tchttp.BaseResponse{},
+ }
+ return
+
+}
+
+// DeleteOwaspWhiteRule
+// 删除用户规则引擎白名单
+//
+// 可能返回的错误码:
+// AUTHFAILURE = "AuthFailure"
+// DRYRUNOPERATION = "DryRunOperation"
+// FAILEDOPERATION = "FailedOperation"
+// INTERNALERROR = "InternalError"
+// INVALIDPARAMETER = "InvalidParameter"
+// INVALIDPARAMETER_INVALIDCERTIFICATE = "InvalidParameter.InvalidCertificate"
+// INVALIDPARAMETER_QUERYCERTBYSSLIDFAILED = "InvalidParameter.QueryCertBySSLIDFailed"
+// 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) DeleteOwaspWhiteRule(request *DeleteOwaspWhiteRuleRequest) (response *DeleteOwaspWhiteRuleResponse, err error) {
+ return c.DeleteOwaspWhiteRuleWithContext(context.Background(), request)
+}
+
+// DeleteOwaspWhiteRule
+// 删除用户规则引擎白名单
+//
+// 可能返回的错误码:
+// AUTHFAILURE = "AuthFailure"
+// DRYRUNOPERATION = "DryRunOperation"
+// FAILEDOPERATION = "FailedOperation"
+// INTERNALERROR = "InternalError"
+// INVALIDPARAMETER = "InvalidParameter"
+// INVALIDPARAMETER_INVALIDCERTIFICATE = "InvalidParameter.InvalidCertificate"
+// INVALIDPARAMETER_QUERYCERTBYSSLIDFAILED = "InvalidParameter.QueryCertBySSLIDFailed"
+// 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) DeleteOwaspWhiteRuleWithContext(ctx context.Context, request *DeleteOwaspWhiteRuleRequest) (response *DeleteOwaspWhiteRuleResponse, err error) {
+ if request == nil {
+ request = NewDeleteOwaspWhiteRuleRequest()
+ }
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DeleteOwaspWhiteRule")
+
+ if c.GetCredential() == nil {
+ return nil, errors.New("DeleteOwaspWhiteRule require credential")
+ }
+
+ request.SetContext(ctx)
+
+ response = NewDeleteOwaspWhiteRuleResponse()
+ err = c.Send(request, response)
+ return
+}
+
+func NewDeleteSessionRequest() (request *DeleteSessionRequest) {
+ request = &DeleteSessionRequest{
+ BaseRequest: &tchttp.BaseRequest{},
+ }
+
+ request.Init().WithApiInfo("waf", APIVersion, "DeleteSession")
+
+
+ return
+}
+
+func NewDeleteSessionResponse() (response *DeleteSessionResponse) {
+ response = &DeleteSessionResponse{
+ BaseResponse: &tchttp.BaseResponse{},
+ }
+ return
+
+}
+
+// DeleteSession
+// 删除CC攻击的session设置
+//
+// 可能返回的错误码:
+// FAILEDOPERATION_SESSIONINUSED = "FailedOperation.SessionInUsed"
// INTERNALERROR = "InternalError"
// INTERNALERROR_DBERR = "InternalError.DBErr"
// UNSUPPORTEDOPERATION = "UnsupportedOperation"
@@ -2077,6 +2600,7 @@ func (c *Client) DeleteSessionWithContext(ctx context.Context, request *DeleteSe
if request == nil {
request = NewDeleteSessionRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DeleteSession")
if c.GetCredential() == nil {
return nil, errors.New("DeleteSession require credential")
@@ -2132,6 +2656,7 @@ func (c *Client) DeleteSpartaProtectionWithContext(ctx context.Context, request
if request == nil {
request = NewDeleteSpartaProtectionRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DeleteSpartaProtection")
if c.GetCredential() == nil {
return nil, errors.New("DeleteSpartaProtection require credential")
@@ -2219,6 +2744,7 @@ func (c *Client) DescribeAccessExportsWithContext(ctx context.Context, request *
if request == nil {
request = NewDescribeAccessExportsRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeAccessExports")
if c.GetCredential() == nil {
return nil, errors.New("DescribeAccessExports require credential")
@@ -2306,6 +2832,7 @@ func (c *Client) DescribeAccessFastAnalysisWithContext(ctx context.Context, requ
if request == nil {
request = NewDescribeAccessFastAnalysisRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeAccessFastAnalysis")
if c.GetCredential() == nil {
return nil, errors.New("DescribeAccessFastAnalysis require credential")
@@ -2403,6 +2930,7 @@ func (c *Client) DescribeAccessHistogramWithContext(ctx context.Context, request
if request == nil {
request = NewDescribeAccessHistogramRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeAccessHistogram")
if c.GetCredential() == nil {
return nil, errors.New("DescribeAccessHistogram require credential")
@@ -2490,6 +3018,7 @@ func (c *Client) DescribeAccessIndexWithContext(ctx context.Context, request *De
if request == nil {
request = NewDescribeAccessIndexRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeAccessIndex")
if c.GetCredential() == nil {
return nil, errors.New("DescribeAccessIndex require credential")
@@ -2541,6 +3070,7 @@ func (c *Client) DescribeAntiFakeRulesWithContext(ctx context.Context, request *
if request == nil {
request = NewDescribeAntiFakeRulesRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeAntiFakeRules")
if c.GetCredential() == nil {
return nil, errors.New("DescribeAntiFakeRules require credential")
@@ -2592,6 +3122,7 @@ func (c *Client) DescribeAntiInfoLeakageRulesWithContext(ctx context.Context, re
if request == nil {
request = NewDescribeAntiInfoLeakageRulesRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeAntiInfoLeakageRules")
if c.GetCredential() == nil {
return nil, errors.New("DescribeAntiInfoLeakageRules require credential")
@@ -2641,6 +3172,7 @@ func (c *Client) DescribeApiDetailWithContext(ctx context.Context, request *Desc
if request == nil {
request = NewDescribeApiDetailRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeApiDetail")
if c.GetCredential() == nil {
return nil, errors.New("DescribeApiDetail require credential")
@@ -2692,6 +3224,7 @@ func (c *Client) DescribeApiListVersionTwoWithContext(ctx context.Context, reque
if request == nil {
request = NewDescribeApiListVersionTwoRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeApiListVersionTwo")
if c.GetCredential() == nil {
return nil, errors.New("DescribeApiListVersionTwo require credential")
@@ -2743,6 +3276,7 @@ func (c *Client) DescribeAreaBanAreasWithContext(ctx context.Context, request *D
if request == nil {
request = NewDescribeAreaBanAreasRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeAreaBanAreas")
if c.GetCredential() == nil {
return nil, errors.New("DescribeAreaBanAreas require credential")
@@ -2794,6 +3328,7 @@ func (c *Client) DescribeAreaBanRuleWithContext(ctx context.Context, request *De
if request == nil {
request = NewDescribeAreaBanRuleRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeAreaBanRule")
if c.GetCredential() == nil {
return nil, errors.New("DescribeAreaBanRule require credential")
@@ -2843,6 +3378,7 @@ func (c *Client) DescribeAreaBanSupportAreasWithContext(ctx context.Context, req
if request == nil {
request = NewDescribeAreaBanSupportAreasRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeAreaBanSupportAreas")
if c.GetCredential() == nil {
return nil, errors.New("DescribeAreaBanSupportAreas require credential")
@@ -2930,6 +3466,7 @@ func (c *Client) DescribeAttackOverviewWithContext(ctx context.Context, request
if request == nil {
request = NewDescribeAttackOverviewRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeAttackOverview")
if c.GetCredential() == nil {
return nil, errors.New("DescribeAttackOverview require credential")
@@ -2987,6 +3524,7 @@ func (c *Client) DescribeAttackTypeWithContext(ctx context.Context, request *Des
if request == nil {
request = NewDescribeAttackTypeRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeAttackType")
if c.GetCredential() == nil {
return nil, errors.New("DescribeAttackType require credential")
@@ -3076,6 +3614,7 @@ func (c *Client) DescribeAttackWhiteRuleWithContext(ctx context.Context, request
if request == nil {
request = NewDescribeAttackWhiteRuleRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeAttackWhiteRule")
if c.GetCredential() == nil {
return nil, errors.New("DescribeAttackWhiteRule require credential")
@@ -3127,6 +3666,7 @@ func (c *Client) DescribeAutoDenyIPWithContext(ctx context.Context, request *Des
if request == nil {
request = NewDescribeAutoDenyIPRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeAutoDenyIP")
if c.GetCredential() == nil {
return nil, errors.New("DescribeAutoDenyIP require credential")
@@ -3182,6 +3722,7 @@ func (c *Client) DescribeBatchIpAccessControlWithContext(ctx context.Context, re
if request == nil {
request = NewDescribeBatchIpAccessControlRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeBatchIpAccessControl")
if c.GetCredential() == nil {
return nil, errors.New("DescribeBatchIpAccessControl require credential")
@@ -3239,6 +3780,7 @@ func (c *Client) DescribeBotSceneListWithContext(ctx context.Context, request *D
if request == nil {
request = NewDescribeBotSceneListRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeBotSceneList")
if c.GetCredential() == nil {
return nil, errors.New("DescribeBotSceneList require credential")
@@ -3292,6 +3834,7 @@ func (c *Client) DescribeBotSceneOverviewWithContext(ctx context.Context, reques
if request == nil {
request = NewDescribeBotSceneOverviewRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeBotSceneOverview")
if c.GetCredential() == nil {
return nil, errors.New("DescribeBotSceneOverview require credential")
@@ -3351,6 +3894,7 @@ func (c *Client) DescribeBotSceneUCBRuleWithContext(ctx context.Context, request
if request == nil {
request = NewDescribeBotSceneUCBRuleRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeBotSceneUCBRule")
if c.GetCredential() == nil {
return nil, errors.New("DescribeBotSceneUCBRule require credential")
@@ -3402,6 +3946,7 @@ func (c *Client) DescribeCCAutoStatusWithContext(ctx context.Context, request *D
if request == nil {
request = NewDescribeCCAutoStatusRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeCCAutoStatus")
if c.GetCredential() == nil {
return nil, errors.New("DescribeCCAutoStatus require credential")
@@ -3451,6 +3996,7 @@ func (c *Client) DescribeCCRuleWithContext(ctx context.Context, request *Describ
if request == nil {
request = NewDescribeCCRuleRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeCCRule")
if c.GetCredential() == nil {
return nil, errors.New("DescribeCCRule require credential")
@@ -3502,6 +4048,7 @@ func (c *Client) DescribeCCRuleListWithContext(ctx context.Context, request *Des
if request == nil {
request = NewDescribeCCRuleListRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeCCRuleList")
if c.GetCredential() == nil {
return nil, errors.New("DescribeCCRuleList require credential")
@@ -3571,6 +4118,7 @@ func (c *Client) DescribeCertificateVerifyResultWithContext(ctx context.Context,
if request == nil {
request = NewDescribeCertificateVerifyResultRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeCertificateVerifyResult")
if c.GetCredential() == nil {
return nil, errors.New("DescribeCertificateVerifyResult require credential")
@@ -3658,6 +4206,7 @@ func (c *Client) DescribeCiphersDetailWithContext(ctx context.Context, request *
if request == nil {
request = NewDescribeCiphersDetailRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeCiphersDetail")
if c.GetCredential() == nil {
return nil, errors.New("DescribeCiphersDetail require credential")
@@ -3713,6 +4262,7 @@ func (c *Client) DescribeCustomRuleListWithContext(ctx context.Context, request
if request == nil {
request = NewDescribeCustomRuleListRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeCustomRuleList")
if c.GetCredential() == nil {
return nil, errors.New("DescribeCustomRuleList require credential")
@@ -3768,6 +4318,7 @@ func (c *Client) DescribeCustomWhiteRuleWithContext(ctx context.Context, request
if request == nil {
request = NewDescribeCustomWhiteRuleRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeCustomWhiteRule")
if c.GetCredential() == nil {
return nil, errors.New("DescribeCustomWhiteRule require credential")
@@ -3855,6 +4406,7 @@ func (c *Client) DescribeDomainCountInfoWithContext(ctx context.Context, request
if request == nil {
request = NewDescribeDomainCountInfoRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeDomainCountInfo")
if c.GetCredential() == nil {
return nil, errors.New("DescribeDomainCountInfo require credential")
@@ -3942,6 +4494,7 @@ func (c *Client) DescribeDomainDetailsClbWithContext(ctx context.Context, reques
if request == nil {
request = NewDescribeDomainDetailsClbRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeDomainDetailsClb")
if c.GetCredential() == nil {
return nil, errors.New("DescribeDomainDetailsClb require credential")
@@ -4031,6 +4584,7 @@ func (c *Client) DescribeDomainDetailsSaasWithContext(ctx context.Context, reque
if request == nil {
request = NewDescribeDomainDetailsSaasRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeDomainDetailsSaas")
if c.GetCredential() == nil {
return nil, errors.New("DescribeDomainDetailsSaas require credential")
@@ -4086,6 +4640,7 @@ func (c *Client) DescribeDomainRulesWithContext(ctx context.Context, request *De
if request == nil {
request = NewDescribeDomainRulesRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeDomainRules")
if c.GetCredential() == nil {
return nil, errors.New("DescribeDomainRules require credential")
@@ -4147,6 +4702,7 @@ func (c *Client) DescribeDomainVerifyResultWithContext(ctx context.Context, requ
if request == nil {
request = NewDescribeDomainVerifyResultRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeDomainVerifyResult")
if c.GetCredential() == nil {
return nil, errors.New("DescribeDomainVerifyResult require credential")
@@ -4200,6 +4756,7 @@ func (c *Client) DescribeDomainWhiteRulesWithContext(ctx context.Context, reques
if request == nil {
request = NewDescribeDomainWhiteRulesRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeDomainWhiteRules")
if c.GetCredential() == nil {
return nil, errors.New("DescribeDomainWhiteRules require credential")
@@ -4287,6 +4844,7 @@ func (c *Client) DescribeDomainsWithContext(ctx context.Context, request *Descri
if request == nil {
request = NewDescribeDomainsRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeDomains")
if c.GetCredential() == nil {
return nil, errors.New("DescribeDomains require credential")
@@ -4299,6 +4857,78 @@ func (c *Client) DescribeDomainsWithContext(ctx context.Context, request *Descri
return
}
+func NewDescribeExportsRequest() (request *DescribeExportsRequest) {
+ request = &DescribeExportsRequest{
+ BaseRequest: &tchttp.BaseRequest{},
+ }
+
+ request.Init().WithApiInfo("waf", APIVersion, "DescribeExports")
+
+
+ return
+}
+
+func NewDescribeExportsResponse() (response *DescribeExportsResponse) {
+ response = &DescribeExportsResponse{
+ BaseResponse: &tchttp.BaseResponse{},
+ }
+ return
+
+}
+
+// DescribeExports
+// 本接口用于获取日志下载任务列表
+//
+// 可能返回的错误码:
+// FAILEDOPERATION = "FailedOperation"
+// FAILEDOPERATION_TOPICCLOSED = "FailedOperation.TopicClosed"
+// INTERNALERROR = "InternalError"
+// INVALIDPARAMETER = "InvalidParameter"
+// MISSINGPARAMETER = "MissingParameter"
+// OPERATIONDENIED = "OperationDenied"
+// OPERATIONDENIED_ACCOUNTDESTROY = "OperationDenied.AccountDestroy"
+// OPERATIONDENIED_ACCOUNTISOLATE = "OperationDenied.AccountIsolate"
+// OPERATIONDENIED_ACCOUNTNOTEXISTS = "OperationDenied.AccountNotExists"
+// RESOURCENOTFOUND_EXPORTNOTEXIST = "ResourceNotFound.ExportNotExist"
+// RESOURCENOTFOUND_TOPICNOTEXIST = "ResourceNotFound.TopicNotExist"
+// UNSUPPORTEDOPERATION = "UnsupportedOperation"
+func (c *Client) DescribeExports(request *DescribeExportsRequest) (response *DescribeExportsResponse, err error) {
+ return c.DescribeExportsWithContext(context.Background(), request)
+}
+
+// DescribeExports
+// 本接口用于获取日志下载任务列表
+//
+// 可能返回的错误码:
+// FAILEDOPERATION = "FailedOperation"
+// FAILEDOPERATION_TOPICCLOSED = "FailedOperation.TopicClosed"
+// INTERNALERROR = "InternalError"
+// INVALIDPARAMETER = "InvalidParameter"
+// MISSINGPARAMETER = "MissingParameter"
+// OPERATIONDENIED = "OperationDenied"
+// OPERATIONDENIED_ACCOUNTDESTROY = "OperationDenied.AccountDestroy"
+// OPERATIONDENIED_ACCOUNTISOLATE = "OperationDenied.AccountIsolate"
+// OPERATIONDENIED_ACCOUNTNOTEXISTS = "OperationDenied.AccountNotExists"
+// RESOURCENOTFOUND_EXPORTNOTEXIST = "ResourceNotFound.ExportNotExist"
+// RESOURCENOTFOUND_TOPICNOTEXIST = "ResourceNotFound.TopicNotExist"
+// UNSUPPORTEDOPERATION = "UnsupportedOperation"
+func (c *Client) DescribeExportsWithContext(ctx context.Context, request *DescribeExportsRequest) (response *DescribeExportsResponse, err error) {
+ if request == nil {
+ request = NewDescribeExportsRequest()
+ }
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeExports")
+
+ if c.GetCredential() == nil {
+ return nil, errors.New("DescribeExports require credential")
+ }
+
+ request.SetContext(ctx)
+
+ response = NewDescribeExportsResponse()
+ err = c.Send(request, response)
+ return
+}
+
func NewDescribeFindDomainListRequest() (request *DescribeFindDomainListRequest) {
request = &DescribeFindDomainListRequest{
BaseRequest: &tchttp.BaseRequest{},
@@ -4374,6 +5004,7 @@ func (c *Client) DescribeFindDomainListWithContext(ctx context.Context, request
if request == nil {
request = NewDescribeFindDomainListRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeFindDomainList")
if c.GetCredential() == nil {
return nil, errors.New("DescribeFindDomainList require credential")
@@ -4435,6 +5066,7 @@ func (c *Client) DescribeFlowTrendWithContext(ctx context.Context, request *Desc
if request == nil {
request = NewDescribeFlowTrendRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeFlowTrend")
if c.GetCredential() == nil {
return nil, errors.New("DescribeFlowTrend require credential")
@@ -4492,6 +5124,7 @@ func (c *Client) DescribeHistogramWithContext(ctx context.Context, request *Desc
if request == nil {
request = NewDescribeHistogramRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeHistogram")
if c.GetCredential() == nil {
return nil, errors.New("DescribeHistogram require credential")
@@ -4565,6 +5198,7 @@ func (c *Client) DescribeHostWithContext(ctx context.Context, request *DescribeH
if request == nil {
request = NewDescribeHostRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeHost")
if c.GetCredential() == nil {
return nil, errors.New("DescribeHost require credential")
@@ -4638,6 +5272,7 @@ func (c *Client) DescribeHostLimitWithContext(ctx context.Context, request *Desc
if request == nil {
request = NewDescribeHostLimitRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeHostLimit")
if c.GetCredential() == nil {
return nil, errors.New("DescribeHostLimit require credential")
@@ -4711,6 +5346,7 @@ func (c *Client) DescribeHostsWithContext(ctx context.Context, request *Describe
if request == nil {
request = NewDescribeHostsRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeHosts")
if c.GetCredential() == nil {
return nil, errors.New("DescribeHosts require credential")
@@ -4798,6 +5434,7 @@ func (c *Client) DescribeInstancesWithContext(ctx context.Context, request *Desc
if request == nil {
request = NewDescribeInstancesRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeInstances")
if c.GetCredential() == nil {
return nil, errors.New("DescribeInstances require credential")
@@ -4853,6 +5490,7 @@ func (c *Client) DescribeIpAccessControlWithContext(ctx context.Context, request
if request == nil {
request = NewDescribeIpAccessControlRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeIpAccessControl")
if c.GetCredential() == nil {
return nil, errors.New("DescribeIpAccessControl require credential")
@@ -4906,6 +5544,7 @@ func (c *Client) DescribeIpHitItemsWithContext(ctx context.Context, request *Des
if request == nil {
request = NewDescribeIpHitItemsRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeIpHitItems")
if c.GetCredential() == nil {
return nil, errors.New("DescribeIpHitItems require credential")
@@ -4918,6 +5557,96 @@ func (c *Client) DescribeIpHitItemsWithContext(ctx context.Context, request *Des
return
}
+func NewDescribeLogHistogramRequest() (request *DescribeLogHistogramRequest) {
+ request = &DescribeLogHistogramRequest{
+ BaseRequest: &tchttp.BaseRequest{},
+ }
+
+ request.Init().WithApiInfo("waf", APIVersion, "DescribeLogHistogram")
+
+
+ return
+}
+
+func NewDescribeLogHistogramResponse() (response *DescribeLogHistogramResponse) {
+ response = &DescribeLogHistogramResponse{
+ BaseResponse: &tchttp.BaseResponse{},
+ }
+ return
+
+}
+
+// DescribeLogHistogram
+// 本接口用于构建日志数量直方图
+//
+// 可能返回的错误码:
+// FAILEDOPERATION = "FailedOperation"
+// FAILEDOPERATION_CLSRESOURCESNOTFOUND = "FailedOperation.CLSResourcesNotFound"
+// FAILEDOPERATION_INVALIDCONTEXT = "FailedOperation.InvalidContext"
+// FAILEDOPERATION_QUERYERROR = "FailedOperation.QueryError"
+// FAILEDOPERATION_SEARCHTIMEOUT = "FailedOperation.SearchTimeout"
+// FAILEDOPERATION_SYNTAXERROR = "FailedOperation.SyntaxError"
+// FAILEDOPERATION_TAGQPSLIMIT = "FailedOperation.TagQpsLimit"
+// FAILEDOPERATION_TOPICISOLATED = "FailedOperation.TopicIsolated"
+// INTERNALERROR = "InternalError"
+// INTERNALERROR_SEARCHERROR = "InternalError.SearchError"
+// INTERNALERROR_SEARCHFAILED = "InternalError.SearchFailed"
+// INTERNALERROR_SERVERBUSY = "InternalError.ServerBusy"
+// INVALIDPARAMETER = "InvalidParameter"
+// LIMITEXCEEDED_LOGSEARCH = "LimitExceeded.LogSearch"
+// MISSINGPARAMETER = "MissingParameter"
+// OPERATIONDENIED = "OperationDenied"
+// OPERATIONDENIED_ACCOUNTDESTROY = "OperationDenied.AccountDestroy"
+// OPERATIONDENIED_ACCOUNTISOLATE = "OperationDenied.AccountIsolate"
+// OPERATIONDENIED_ACCOUNTNOTEXISTS = "OperationDenied.AccountNotExists"
+// OPERATIONDENIED_NEWSYNTAXNOTSUPPORTED = "OperationDenied.NewSyntaxNotSupported"
+// RESOURCENOTFOUND_TOPICNOTEXIST = "ResourceNotFound.TopicNotExist"
+func (c *Client) DescribeLogHistogram(request *DescribeLogHistogramRequest) (response *DescribeLogHistogramResponse, err error) {
+ return c.DescribeLogHistogramWithContext(context.Background(), request)
+}
+
+// DescribeLogHistogram
+// 本接口用于构建日志数量直方图
+//
+// 可能返回的错误码:
+// FAILEDOPERATION = "FailedOperation"
+// FAILEDOPERATION_CLSRESOURCESNOTFOUND = "FailedOperation.CLSResourcesNotFound"
+// FAILEDOPERATION_INVALIDCONTEXT = "FailedOperation.InvalidContext"
+// FAILEDOPERATION_QUERYERROR = "FailedOperation.QueryError"
+// FAILEDOPERATION_SEARCHTIMEOUT = "FailedOperation.SearchTimeout"
+// FAILEDOPERATION_SYNTAXERROR = "FailedOperation.SyntaxError"
+// FAILEDOPERATION_TAGQPSLIMIT = "FailedOperation.TagQpsLimit"
+// FAILEDOPERATION_TOPICISOLATED = "FailedOperation.TopicIsolated"
+// INTERNALERROR = "InternalError"
+// INTERNALERROR_SEARCHERROR = "InternalError.SearchError"
+// INTERNALERROR_SEARCHFAILED = "InternalError.SearchFailed"
+// INTERNALERROR_SERVERBUSY = "InternalError.ServerBusy"
+// INVALIDPARAMETER = "InvalidParameter"
+// LIMITEXCEEDED_LOGSEARCH = "LimitExceeded.LogSearch"
+// MISSINGPARAMETER = "MissingParameter"
+// OPERATIONDENIED = "OperationDenied"
+// OPERATIONDENIED_ACCOUNTDESTROY = "OperationDenied.AccountDestroy"
+// OPERATIONDENIED_ACCOUNTISOLATE = "OperationDenied.AccountIsolate"
+// OPERATIONDENIED_ACCOUNTNOTEXISTS = "OperationDenied.AccountNotExists"
+// OPERATIONDENIED_NEWSYNTAXNOTSUPPORTED = "OperationDenied.NewSyntaxNotSupported"
+// RESOURCENOTFOUND_TOPICNOTEXIST = "ResourceNotFound.TopicNotExist"
+func (c *Client) DescribeLogHistogramWithContext(ctx context.Context, request *DescribeLogHistogramRequest) (response *DescribeLogHistogramResponse, err error) {
+ if request == nil {
+ request = NewDescribeLogHistogramRequest()
+ }
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeLogHistogram")
+
+ if c.GetCredential() == nil {
+ return nil, errors.New("DescribeLogHistogram require credential")
+ }
+
+ request.SetContext(ctx)
+
+ response = NewDescribeLogHistogramResponse()
+ err = c.Send(request, response)
+ return
+}
+
func NewDescribeModuleStatusRequest() (request *DescribeModuleStatusRequest) {
request = &DescribeModuleStatusRequest{
BaseRequest: &tchttp.BaseRequest{},
@@ -4959,6 +5688,7 @@ func (c *Client) DescribeModuleStatusWithContext(ctx context.Context, request *D
if request == nil {
request = NewDescribeModuleStatusRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeModuleStatus")
if c.GetCredential() == nil {
return nil, errors.New("DescribeModuleStatus require credential")
@@ -5012,6 +5742,7 @@ func (c *Client) DescribeObjectsWithContext(ctx context.Context, request *Descri
if request == nil {
request = NewDescribeObjectsRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeObjects")
if c.GetCredential() == nil {
return nil, errors.New("DescribeObjects require credential")
@@ -5024,32 +5755,86 @@ func (c *Client) DescribeObjectsWithContext(ctx context.Context, request *Descri
return
}
-func NewDescribePeakPointsRequest() (request *DescribePeakPointsRequest) {
- request = &DescribePeakPointsRequest{
+func NewDescribeOwaspRuleTypesRequest() (request *DescribeOwaspRuleTypesRequest) {
+ request = &DescribeOwaspRuleTypesRequest{
BaseRequest: &tchttp.BaseRequest{},
}
- request.Init().WithApiInfo("waf", APIVersion, "DescribePeakPoints")
+ request.Init().WithApiInfo("waf", APIVersion, "DescribeOwaspRuleTypes")
return
}
-func NewDescribePeakPointsResponse() (response *DescribePeakPointsResponse) {
- response = &DescribePeakPointsResponse{
+func NewDescribeOwaspRuleTypesResponse() (response *DescribeOwaspRuleTypesResponse) {
+ response = &DescribeOwaspRuleTypesResponse{
BaseResponse: &tchttp.BaseResponse{},
}
return
}
-// DescribePeakPoints
-// 查询业务和攻击概要趋势
+// DescribeOwaspRuleTypes
+// 查询规则引擎的规则类型列表
+//
+// 可能返回的错误码:
+// INTERNALERROR_UNKNOWN = "InternalError.Unknown"
+// INVALIDPARAMETERVALUE_INVALIDREQUEST = "InvalidParameterValue.InvalidRequest"
+// RESOURCENOTFOUND_NOTFOUND = "ResourceNotFound.NotFound"
+func (c *Client) DescribeOwaspRuleTypes(request *DescribeOwaspRuleTypesRequest) (response *DescribeOwaspRuleTypesResponse, err error) {
+ return c.DescribeOwaspRuleTypesWithContext(context.Background(), request)
+}
+
+// DescribeOwaspRuleTypes
+// 查询规则引擎的规则类型列表
+//
+// 可能返回的错误码:
+// INTERNALERROR_UNKNOWN = "InternalError.Unknown"
+// INVALIDPARAMETERVALUE_INVALIDREQUEST = "InvalidParameterValue.InvalidRequest"
+// RESOURCENOTFOUND_NOTFOUND = "ResourceNotFound.NotFound"
+func (c *Client) DescribeOwaspRuleTypesWithContext(ctx context.Context, request *DescribeOwaspRuleTypesRequest) (response *DescribeOwaspRuleTypesResponse, err error) {
+ if request == nil {
+ request = NewDescribeOwaspRuleTypesRequest()
+ }
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeOwaspRuleTypes")
+
+ if c.GetCredential() == nil {
+ return nil, errors.New("DescribeOwaspRuleTypes require credential")
+ }
+
+ request.SetContext(ctx)
+
+ response = NewDescribeOwaspRuleTypesResponse()
+ err = c.Send(request, response)
+ return
+}
+
+func NewDescribeOwaspRulesRequest() (request *DescribeOwaspRulesRequest) {
+ request = &DescribeOwaspRulesRequest{
+ BaseRequest: &tchttp.BaseRequest{},
+ }
+
+ request.Init().WithApiInfo("waf", APIVersion, "DescribeOwaspRules")
+
+
+ return
+}
+
+func NewDescribeOwaspRulesResponse() (response *DescribeOwaspRulesResponse) {
+ response = &DescribeOwaspRulesResponse{
+ BaseResponse: &tchttp.BaseResponse{},
+ }
+ return
+
+}
+
+// DescribeOwaspRules
+// 查询规则引擎的规则列表
//
// 可能返回的错误码:
// AUTHFAILURE = "AuthFailure"
+// DRYRUNOPERATION = "DryRunOperation"
// FAILEDOPERATION = "FailedOperation"
-// FAILEDOPERATION_CLSINTERNALERROR = "FailedOperation.CLSInternalError"
// INTERNALERROR = "InternalError"
// INVALIDPARAMETER = "InvalidParameter"
// INVALIDPARAMETER_INVALIDCERTIFICATE = "InvalidParameter.InvalidCertificate"
@@ -5067,12 +5852,190 @@ func NewDescribePeakPointsResponse() (response *DescribePeakPointsResponse) {
// UNAUTHORIZEDOPERATION = "UnauthorizedOperation"
// UNKNOWNPARAMETER = "UnknownParameter"
// UNSUPPORTEDOPERATION = "UnsupportedOperation"
-func (c *Client) DescribePeakPoints(request *DescribePeakPointsRequest) (response *DescribePeakPointsResponse, err error) {
- return c.DescribePeakPointsWithContext(context.Background(), request)
+func (c *Client) DescribeOwaspRules(request *DescribeOwaspRulesRequest) (response *DescribeOwaspRulesResponse, err error) {
+ return c.DescribeOwaspRulesWithContext(context.Background(), request)
}
-// DescribePeakPoints
-// 查询业务和攻击概要趋势
+// DescribeOwaspRules
+// 查询规则引擎的规则列表
+//
+// 可能返回的错误码:
+// AUTHFAILURE = "AuthFailure"
+// DRYRUNOPERATION = "DryRunOperation"
+// FAILEDOPERATION = "FailedOperation"
+// INTERNALERROR = "InternalError"
+// INVALIDPARAMETER = "InvalidParameter"
+// INVALIDPARAMETER_INVALIDCERTIFICATE = "InvalidParameter.InvalidCertificate"
+// INVALIDPARAMETER_QUERYCERTBYSSLIDFAILED = "InvalidParameter.QueryCertBySSLIDFailed"
+// 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) DescribeOwaspRulesWithContext(ctx context.Context, request *DescribeOwaspRulesRequest) (response *DescribeOwaspRulesResponse, err error) {
+ if request == nil {
+ request = NewDescribeOwaspRulesRequest()
+ }
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeOwaspRules")
+
+ if c.GetCredential() == nil {
+ return nil, errors.New("DescribeOwaspRules require credential")
+ }
+
+ request.SetContext(ctx)
+
+ response = NewDescribeOwaspRulesResponse()
+ err = c.Send(request, response)
+ return
+}
+
+func NewDescribeOwaspWhiteRulesRequest() (request *DescribeOwaspWhiteRulesRequest) {
+ request = &DescribeOwaspWhiteRulesRequest{
+ BaseRequest: &tchttp.BaseRequest{},
+ }
+
+ request.Init().WithApiInfo("waf", APIVersion, "DescribeOwaspWhiteRules")
+
+
+ return
+}
+
+func NewDescribeOwaspWhiteRulesResponse() (response *DescribeOwaspWhiteRulesResponse) {
+ response = &DescribeOwaspWhiteRulesResponse{
+ BaseResponse: &tchttp.BaseResponse{},
+ }
+ return
+
+}
+
+// DescribeOwaspWhiteRules
+// 获取规则引擎白名单列表
+//
+// 可能返回的错误码:
+// AUTHFAILURE = "AuthFailure"
+// DRYRUNOPERATION = "DryRunOperation"
+// FAILEDOPERATION = "FailedOperation"
+// INTERNALERROR = "InternalError"
+// INTERNALERROR_DBERR = "InternalError.DBErr"
+// INVALIDPARAMETER = "InvalidParameter"
+// INVALIDPARAMETER_INVALIDCERTIFICATE = "InvalidParameter.InvalidCertificate"
+// INVALIDPARAMETER_QUERYCERTBYSSLIDFAILED = "InvalidParameter.QueryCertBySSLIDFailed"
+// 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) DescribeOwaspWhiteRules(request *DescribeOwaspWhiteRulesRequest) (response *DescribeOwaspWhiteRulesResponse, err error) {
+ return c.DescribeOwaspWhiteRulesWithContext(context.Background(), request)
+}
+
+// DescribeOwaspWhiteRules
+// 获取规则引擎白名单列表
+//
+// 可能返回的错误码:
+// AUTHFAILURE = "AuthFailure"
+// DRYRUNOPERATION = "DryRunOperation"
+// FAILEDOPERATION = "FailedOperation"
+// INTERNALERROR = "InternalError"
+// INTERNALERROR_DBERR = "InternalError.DBErr"
+// INVALIDPARAMETER = "InvalidParameter"
+// INVALIDPARAMETER_INVALIDCERTIFICATE = "InvalidParameter.InvalidCertificate"
+// INVALIDPARAMETER_QUERYCERTBYSSLIDFAILED = "InvalidParameter.QueryCertBySSLIDFailed"
+// 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) DescribeOwaspWhiteRulesWithContext(ctx context.Context, request *DescribeOwaspWhiteRulesRequest) (response *DescribeOwaspWhiteRulesResponse, err error) {
+ if request == nil {
+ request = NewDescribeOwaspWhiteRulesRequest()
+ }
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeOwaspWhiteRules")
+
+ if c.GetCredential() == nil {
+ return nil, errors.New("DescribeOwaspWhiteRules require credential")
+ }
+
+ request.SetContext(ctx)
+
+ response = NewDescribeOwaspWhiteRulesResponse()
+ err = c.Send(request, response)
+ return
+}
+
+func NewDescribePeakPointsRequest() (request *DescribePeakPointsRequest) {
+ request = &DescribePeakPointsRequest{
+ BaseRequest: &tchttp.BaseRequest{},
+ }
+
+ request.Init().WithApiInfo("waf", APIVersion, "DescribePeakPoints")
+
+
+ return
+}
+
+func NewDescribePeakPointsResponse() (response *DescribePeakPointsResponse) {
+ response = &DescribePeakPointsResponse{
+ BaseResponse: &tchttp.BaseResponse{},
+ }
+ return
+
+}
+
+// DescribePeakPoints
+// 查询业务和攻击概要趋势
+//
+// 可能返回的错误码:
+// AUTHFAILURE = "AuthFailure"
+// FAILEDOPERATION = "FailedOperation"
+// FAILEDOPERATION_CLSINTERNALERROR = "FailedOperation.CLSInternalError"
+// INTERNALERROR = "InternalError"
+// INVALIDPARAMETER = "InvalidParameter"
+// INVALIDPARAMETER_INVALIDCERTIFICATE = "InvalidParameter.InvalidCertificate"
+// INVALIDPARAMETER_QUERYCERTBYSSLIDFAILED = "InvalidParameter.QueryCertBySSLIDFailed"
+// 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) DescribePeakPoints(request *DescribePeakPointsRequest) (response *DescribePeakPointsResponse, err error) {
+ return c.DescribePeakPointsWithContext(context.Background(), request)
+}
+
+// DescribePeakPoints
+// 查询业务和攻击概要趋势
//
// 可能返回的错误码:
// AUTHFAILURE = "AuthFailure"
@@ -5099,6 +6062,7 @@ func (c *Client) DescribePeakPointsWithContext(ctx context.Context, request *Des
if request == nil {
request = NewDescribePeakPointsRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribePeakPoints")
if c.GetCredential() == nil {
return nil, errors.New("DescribePeakPoints require credential")
@@ -5186,6 +6150,7 @@ func (c *Client) DescribePeakValueWithContext(ctx context.Context, request *Desc
if request == nil {
request = NewDescribePeakValueRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribePeakValue")
if c.GetCredential() == nil {
return nil, errors.New("DescribePeakValue require credential")
@@ -5237,6 +6202,7 @@ func (c *Client) DescribePolicyStatusWithContext(ctx context.Context, request *D
if request == nil {
request = NewDescribePolicyStatusRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribePolicyStatus")
if c.GetCredential() == nil {
return nil, errors.New("DescribePolicyStatus require credential")
@@ -5286,6 +6252,7 @@ func (c *Client) DescribePortsWithContext(ctx context.Context, request *Describe
if request == nil {
request = NewDescribePortsRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribePorts")
if c.GetCredential() == nil {
return nil, errors.New("DescribePorts require credential")
@@ -5369,6 +6336,7 @@ func (c *Client) DescribePostCKafkaFlowsWithContext(ctx context.Context, request
if request == nil {
request = NewDescribePostCKafkaFlowsRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribePostCKafkaFlows")
if c.GetCredential() == nil {
return nil, errors.New("DescribePostCKafkaFlows require credential")
@@ -5452,6 +6420,7 @@ func (c *Client) DescribePostCLSFlowsWithContext(ctx context.Context, request *D
if request == nil {
request = NewDescribePostCLSFlowsRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribePostCLSFlows")
if c.GetCredential() == nil {
return nil, errors.New("DescribePostCLSFlows require credential")
@@ -5535,6 +6504,7 @@ func (c *Client) DescribeProtectionModesWithContext(ctx context.Context, request
if request == nil {
request = NewDescribeProtectionModesRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeProtectionModes")
if c.GetCredential() == nil {
return nil, errors.New("DescribeProtectionModes require credential")
@@ -5588,6 +6558,7 @@ func (c *Client) DescribeRuleLimitWithContext(ctx context.Context, request *Desc
if request == nil {
request = NewDescribeRuleLimitRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeRuleLimit")
if c.GetCredential() == nil {
return nil, errors.New("DescribeRuleLimit require credential")
@@ -5637,6 +6608,7 @@ func (c *Client) DescribeScanIpWithContext(ctx context.Context, request *Describ
if request == nil {
request = NewDescribeScanIpRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeScanIp")
if c.GetCredential() == nil {
return nil, errors.New("DescribeScanIp require credential")
@@ -5688,6 +6660,7 @@ func (c *Client) DescribeSessionWithContext(ctx context.Context, request *Descri
if request == nil {
request = NewDescribeSessionRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeSession")
if c.GetCredential() == nil {
return nil, errors.New("DescribeSession require credential")
@@ -5737,6 +6710,7 @@ func (c *Client) DescribeSpartaProtectionInfoWithContext(ctx context.Context, re
if request == nil {
request = NewDescribeSpartaProtectionInfoRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeSpartaProtectionInfo")
if c.GetCredential() == nil {
return nil, errors.New("DescribeSpartaProtectionInfo require credential")
@@ -5822,6 +6796,7 @@ func (c *Client) DescribeTlsVersionWithContext(ctx context.Context, request *Des
if request == nil {
request = NewDescribeTlsVersionRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeTlsVersion")
if c.GetCredential() == nil {
return nil, errors.New("DescribeTlsVersion require credential")
@@ -5875,6 +6850,7 @@ func (c *Client) DescribeTopAttackDomainWithContext(ctx context.Context, request
if request == nil {
request = NewDescribeTopAttackDomainRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeTopAttackDomain")
if c.GetCredential() == nil {
return nil, errors.New("DescribeTopAttackDomain require credential")
@@ -5887,6 +6863,86 @@ func (c *Client) DescribeTopAttackDomainWithContext(ctx context.Context, request
return
}
+func NewDescribeTopicsRequest() (request *DescribeTopicsRequest) {
+ request = &DescribeTopicsRequest{
+ BaseRequest: &tchttp.BaseRequest{},
+ }
+
+ request.Init().WithApiInfo("waf", APIVersion, "DescribeTopics")
+
+
+ return
+}
+
+func NewDescribeTopicsResponse() (response *DescribeTopicsResponse) {
+ response = &DescribeTopicsResponse{
+ BaseResponse: &tchttp.BaseResponse{},
+ }
+ return
+
+}
+
+// DescribeTopics
+// 本接口用于获取日志主题列表,支持分页
+//
+// 可能返回的错误码:
+// FAILEDOPERATION = "FailedOperation"
+// FAILEDOPERATION_CLSRESOURCESNOTFOUND = "FailedOperation.CLSResourcesNotFound"
+// FAILEDOPERATION_TAGQPSLIMIT = "FailedOperation.TagQpsLimit"
+// INTERNALERROR = "InternalError"
+// INVALIDPARAMETER = "InvalidParameter"
+// INVALIDPARAMETERVALUE = "InvalidParameterValue"
+// MISSINGPARAMETER = "MissingParameter"
+// OPERATIONDENIED = "OperationDenied"
+// OPERATIONDENIED_ACLFAILED = "OperationDenied.ACLFailed"
+// OPERATIONDENIED_ACCOUNTDESTROY = "OperationDenied.AccountDestroy"
+// OPERATIONDENIED_ACCOUNTISOLATE = "OperationDenied.AccountIsolate"
+// OPERATIONDENIED_ACCOUNTNOTEXISTS = "OperationDenied.AccountNotExists"
+// OPERATIONDENIED_ANALYSISSWITCHCLOSE = "OperationDenied.AnalysisSwitchClose"
+// RESOURCENOTFOUND_LOGSETNOTEXIST = "ResourceNotFound.LogsetNotExist"
+// RESOURCENOTFOUND_TOPICNOTEXIST = "ResourceNotFound.TopicNotExist"
+// UNSUPPORTEDOPERATION = "UnsupportedOperation"
+func (c *Client) DescribeTopics(request *DescribeTopicsRequest) (response *DescribeTopicsResponse, err error) {
+ return c.DescribeTopicsWithContext(context.Background(), request)
+}
+
+// DescribeTopics
+// 本接口用于获取日志主题列表,支持分页
+//
+// 可能返回的错误码:
+// FAILEDOPERATION = "FailedOperation"
+// FAILEDOPERATION_CLSRESOURCESNOTFOUND = "FailedOperation.CLSResourcesNotFound"
+// FAILEDOPERATION_TAGQPSLIMIT = "FailedOperation.TagQpsLimit"
+// INTERNALERROR = "InternalError"
+// INVALIDPARAMETER = "InvalidParameter"
+// INVALIDPARAMETERVALUE = "InvalidParameterValue"
+// MISSINGPARAMETER = "MissingParameter"
+// OPERATIONDENIED = "OperationDenied"
+// OPERATIONDENIED_ACLFAILED = "OperationDenied.ACLFailed"
+// OPERATIONDENIED_ACCOUNTDESTROY = "OperationDenied.AccountDestroy"
+// OPERATIONDENIED_ACCOUNTISOLATE = "OperationDenied.AccountIsolate"
+// OPERATIONDENIED_ACCOUNTNOTEXISTS = "OperationDenied.AccountNotExists"
+// OPERATIONDENIED_ANALYSISSWITCHCLOSE = "OperationDenied.AnalysisSwitchClose"
+// RESOURCENOTFOUND_LOGSETNOTEXIST = "ResourceNotFound.LogsetNotExist"
+// RESOURCENOTFOUND_TOPICNOTEXIST = "ResourceNotFound.TopicNotExist"
+// UNSUPPORTEDOPERATION = "UnsupportedOperation"
+func (c *Client) DescribeTopicsWithContext(ctx context.Context, request *DescribeTopicsRequest) (response *DescribeTopicsResponse, err error) {
+ if request == nil {
+ request = NewDescribeTopicsRequest()
+ }
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeTopics")
+
+ if c.GetCredential() == nil {
+ return nil, errors.New("DescribeTopics require credential")
+ }
+
+ request.SetContext(ctx)
+
+ response = NewDescribeTopicsResponse()
+ err = c.Send(request, response)
+ return
+}
+
func NewDescribeUserCdcClbWafRegionsRequest() (request *DescribeUserCdcClbWafRegionsRequest) {
request = &DescribeUserCdcClbWafRegionsRequest{
BaseRequest: &tchttp.BaseRequest{},
@@ -5911,8 +6967,21 @@ func NewDescribeUserCdcClbWafRegionsResponse() (response *DescribeUserCdcClbWafR
//
// 可能返回的错误码:
// FAILEDOPERATION = "FailedOperation"
+// FAILEDOPERATION_CLSRESOURCESNOTFOUND = "FailedOperation.CLSResourcesNotFound"
+// FAILEDOPERATION_TAGQPSLIMIT = "FailedOperation.TagQpsLimit"
// INTERNALERROR = "InternalError"
// INVALIDPARAMETER = "InvalidParameter"
+// INVALIDPARAMETERVALUE = "InvalidParameterValue"
+// MISSINGPARAMETER = "MissingParameter"
+// OPERATIONDENIED = "OperationDenied"
+// OPERATIONDENIED_ACLFAILED = "OperationDenied.ACLFailed"
+// OPERATIONDENIED_ACCOUNTDESTROY = "OperationDenied.AccountDestroy"
+// OPERATIONDENIED_ACCOUNTISOLATE = "OperationDenied.AccountIsolate"
+// OPERATIONDENIED_ACCOUNTNOTEXISTS = "OperationDenied.AccountNotExists"
+// OPERATIONDENIED_ANALYSISSWITCHCLOSE = "OperationDenied.AnalysisSwitchClose"
+// RESOURCENOTFOUND_LOGSETNOTEXIST = "ResourceNotFound.LogsetNotExist"
+// RESOURCENOTFOUND_TOPICNOTEXIST = "ResourceNotFound.TopicNotExist"
+// UNSUPPORTEDOPERATION = "UnsupportedOperation"
func (c *Client) DescribeUserCdcClbWafRegions(request *DescribeUserCdcClbWafRegionsRequest) (response *DescribeUserCdcClbWafRegionsResponse, err error) {
return c.DescribeUserCdcClbWafRegionsWithContext(context.Background(), request)
}
@@ -5922,12 +6991,26 @@ func (c *Client) DescribeUserCdcClbWafRegions(request *DescribeUserCdcClbWafRegi
//
// 可能返回的错误码:
// FAILEDOPERATION = "FailedOperation"
+// FAILEDOPERATION_CLSRESOURCESNOTFOUND = "FailedOperation.CLSResourcesNotFound"
+// FAILEDOPERATION_TAGQPSLIMIT = "FailedOperation.TagQpsLimit"
// INTERNALERROR = "InternalError"
// INVALIDPARAMETER = "InvalidParameter"
+// INVALIDPARAMETERVALUE = "InvalidParameterValue"
+// MISSINGPARAMETER = "MissingParameter"
+// OPERATIONDENIED = "OperationDenied"
+// OPERATIONDENIED_ACLFAILED = "OperationDenied.ACLFailed"
+// OPERATIONDENIED_ACCOUNTDESTROY = "OperationDenied.AccountDestroy"
+// OPERATIONDENIED_ACCOUNTISOLATE = "OperationDenied.AccountIsolate"
+// OPERATIONDENIED_ACCOUNTNOTEXISTS = "OperationDenied.AccountNotExists"
+// OPERATIONDENIED_ANALYSISSWITCHCLOSE = "OperationDenied.AnalysisSwitchClose"
+// RESOURCENOTFOUND_LOGSETNOTEXIST = "ResourceNotFound.LogsetNotExist"
+// RESOURCENOTFOUND_TOPICNOTEXIST = "ResourceNotFound.TopicNotExist"
+// UNSUPPORTEDOPERATION = "UnsupportedOperation"
func (c *Client) DescribeUserCdcClbWafRegionsWithContext(ctx context.Context, request *DescribeUserCdcClbWafRegionsRequest) (response *DescribeUserCdcClbWafRegionsResponse, err error) {
if request == nil {
request = NewDescribeUserCdcClbWafRegionsRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeUserCdcClbWafRegions")
if c.GetCredential() == nil {
return nil, errors.New("DescribeUserCdcClbWafRegions require credential")
@@ -6005,6 +7088,7 @@ func (c *Client) DescribeUserClbWafRegionsWithContext(ctx context.Context, reque
if request == nil {
request = NewDescribeUserClbWafRegionsRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeUserClbWafRegions")
if c.GetCredential() == nil {
return nil, errors.New("DescribeUserClbWafRegions require credential")
@@ -6092,6 +7176,7 @@ func (c *Client) DescribeUserDomainInfoWithContext(ctx context.Context, request
if request == nil {
request = NewDescribeUserDomainInfoRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeUserDomainInfo")
if c.GetCredential() == nil {
return nil, errors.New("DescribeUserDomainInfo require credential")
@@ -6155,6 +7240,7 @@ func (c *Client) DescribeUserLevelWithContext(ctx context.Context, request *Desc
if request == nil {
request = NewDescribeUserLevelRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeUserLevel")
if c.GetCredential() == nil {
return nil, errors.New("DescribeUserLevel require credential")
@@ -6218,6 +7304,7 @@ func (c *Client) DescribeUserSignatureClassWithContext(ctx context.Context, requ
if request == nil {
request = NewDescribeUserSignatureClassRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeUserSignatureClass")
if c.GetCredential() == nil {
return nil, errors.New("DescribeUserSignatureClass require credential")
@@ -6305,6 +7392,7 @@ func (c *Client) DescribeUserSignatureRuleWithContext(ctx context.Context, reque
if request == nil {
request = NewDescribeUserSignatureRuleRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeUserSignatureRule")
if c.GetCredential() == nil {
return nil, errors.New("DescribeUserSignatureRule require credential")
@@ -6392,6 +7480,7 @@ func (c *Client) DescribeUserSignatureRuleV2WithContext(ctx context.Context, req
if request == nil {
request = NewDescribeUserSignatureRuleV2Request()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeUserSignatureRuleV2")
if c.GetCredential() == nil {
return nil, errors.New("DescribeUserSignatureRuleV2 require credential")
@@ -6479,6 +7568,7 @@ func (c *Client) DescribeVipInfoWithContext(ctx context.Context, request *Descri
if request == nil {
request = NewDescribeVipInfoRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeVipInfo")
if c.GetCredential() == nil {
return nil, errors.New("DescribeVipInfo require credential")
@@ -6530,6 +7620,7 @@ func (c *Client) DescribeWafAutoDenyRulesWithContext(ctx context.Context, reques
if request == nil {
request = NewDescribeWafAutoDenyRulesRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeWafAutoDenyRules")
if c.GetCredential() == nil {
return nil, errors.New("DescribeWafAutoDenyRules require credential")
@@ -6589,6 +7680,7 @@ func (c *Client) DescribeWafAutoDenyStatusWithContext(ctx context.Context, reque
if request == nil {
request = NewDescribeWafAutoDenyStatusRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeWafAutoDenyStatus")
if c.GetCredential() == nil {
return nil, errors.New("DescribeWafAutoDenyStatus require credential")
@@ -6642,6 +7734,7 @@ func (c *Client) DescribeWafThreatenIntelligenceWithContext(ctx context.Context,
if request == nil {
request = NewDescribeWafThreatenIntelligenceRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeWafThreatenIntelligence")
if c.GetCredential() == nil {
return nil, errors.New("DescribeWafThreatenIntelligence require credential")
@@ -6717,6 +7810,7 @@ func (c *Client) DescribeWebshellStatusWithContext(ctx context.Context, request
if request == nil {
request = NewDescribeWebshellStatusRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DescribeWebshellStatus")
if c.GetCredential() == nil {
return nil, errors.New("DescribeWebshellStatus require credential")
@@ -6800,6 +7894,7 @@ func (c *Client) DestroyPostCKafkaFlowWithContext(ctx context.Context, request *
if request == nil {
request = NewDestroyPostCKafkaFlowRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DestroyPostCKafkaFlow")
if c.GetCredential() == nil {
return nil, errors.New("DestroyPostCKafkaFlow require credential")
@@ -6883,6 +7978,7 @@ func (c *Client) DestroyPostCLSFlowWithContext(ctx context.Context, request *Des
if request == nil {
request = NewDestroyPostCLSFlowRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "DestroyPostCLSFlow")
if c.GetCredential() == nil {
return nil, errors.New("DestroyPostCLSFlow require credential")
@@ -6932,6 +8028,7 @@ func (c *Client) FreshAntiFakeUrlWithContext(ctx context.Context, request *Fresh
if request == nil {
request = NewFreshAntiFakeUrlRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "FreshAntiFakeUrl")
if c.GetCredential() == nil {
return nil, errors.New("FreshAntiFakeUrl require credential")
@@ -7021,6 +8118,7 @@ func (c *Client) GenerateDealsAndPayNewWithContext(ctx context.Context, request
if request == nil {
request = NewGenerateDealsAndPayNewRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "GenerateDealsAndPayNew")
if c.GetCredential() == nil {
return nil, errors.New("GenerateDealsAndPayNew require credential")
@@ -7076,6 +8174,7 @@ func (c *Client) GetAttackDownloadRecordsWithContext(ctx context.Context, reques
if request == nil {
request = NewGetAttackDownloadRecordsRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "GetAttackDownloadRecords")
if c.GetCredential() == nil {
return nil, errors.New("GetAttackDownloadRecords require credential")
@@ -7141,6 +8240,7 @@ func (c *Client) GetAttackHistogramWithContext(ctx context.Context, request *Get
if request == nil {
request = NewGetAttackHistogramRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "GetAttackHistogram")
if c.GetCredential() == nil {
return nil, errors.New("GetAttackHistogram require credential")
@@ -7206,6 +8306,7 @@ func (c *Client) GetAttackTotalCountWithContext(ctx context.Context, request *Ge
if request == nil {
request = NewGetAttackTotalCountRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "GetAttackTotalCount")
if c.GetCredential() == nil {
return nil, errors.New("GetAttackTotalCount require credential")
@@ -7271,6 +8372,7 @@ func (c *Client) GetInstanceQpsLimitWithContext(ctx context.Context, request *Ge
if request == nil {
request = NewGetInstanceQpsLimitRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "GetInstanceQpsLimit")
if c.GetCredential() == nil {
return nil, errors.New("GetInstanceQpsLimit require credential")
@@ -7336,6 +8438,7 @@ func (c *Client) ImportIpAccessControlWithContext(ctx context.Context, request *
if request == nil {
request = NewImportIpAccessControlRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ImportIpAccessControl")
if c.GetCredential() == nil {
return nil, errors.New("ImportIpAccessControl require credential")
@@ -7385,6 +8488,7 @@ func (c *Client) ModifyAntiFakeUrlWithContext(ctx context.Context, request *Modi
if request == nil {
request = NewModifyAntiFakeUrlRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyAntiFakeUrl")
if c.GetCredential() == nil {
return nil, errors.New("ModifyAntiFakeUrl require credential")
@@ -7438,6 +8542,7 @@ func (c *Client) ModifyAntiFakeUrlStatusWithContext(ctx context.Context, request
if request == nil {
request = NewModifyAntiFakeUrlStatusRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyAntiFakeUrlStatus")
if c.GetCredential() == nil {
return nil, errors.New("ModifyAntiFakeUrlStatus require credential")
@@ -7487,6 +8592,7 @@ func (c *Client) ModifyAntiInfoLeakRuleStatusWithContext(ctx context.Context, re
if request == nil {
request = NewModifyAntiInfoLeakRuleStatusRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyAntiInfoLeakRuleStatus")
if c.GetCredential() == nil {
return nil, errors.New("ModifyAntiInfoLeakRuleStatus require credential")
@@ -7536,6 +8642,7 @@ func (c *Client) ModifyAntiInfoLeakRulesWithContext(ctx context.Context, request
if request == nil {
request = NewModifyAntiInfoLeakRulesRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyAntiInfoLeakRules")
if c.GetCredential() == nil {
return nil, errors.New("ModifyAntiInfoLeakRules require credential")
@@ -7585,6 +8692,7 @@ func (c *Client) ModifyApiAnalyzeStatusWithContext(ctx context.Context, request
if request == nil {
request = NewModifyApiAnalyzeStatusRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyApiAnalyzeStatus")
if c.GetCredential() == nil {
return nil, errors.New("ModifyApiAnalyzeStatus require credential")
@@ -7634,6 +8742,7 @@ func (c *Client) ModifyApiSecEventChangeWithContext(ctx context.Context, request
if request == nil {
request = NewModifyApiSecEventChangeRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyApiSecEventChange")
if c.GetCredential() == nil {
return nil, errors.New("ModifyApiSecEventChange require credential")
@@ -7709,6 +8818,7 @@ func (c *Client) ModifyAreaBanAreasWithContext(ctx context.Context, request *Mod
if request == nil {
request = NewModifyAreaBanAreasRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyAreaBanAreas")
if c.GetCredential() == nil {
return nil, errors.New("ModifyAreaBanAreas require credential")
@@ -7786,6 +8896,7 @@ func (c *Client) ModifyAreaBanRuleWithContext(ctx context.Context, request *Modi
if request == nil {
request = NewModifyAreaBanRuleRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyAreaBanRule")
if c.GetCredential() == nil {
return nil, errors.New("ModifyAreaBanRule require credential")
@@ -7835,6 +8946,7 @@ func (c *Client) ModifyAreaBanStatusWithContext(ctx context.Context, request *Mo
if request == nil {
request = NewModifyAreaBanStatusRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyAreaBanStatus")
if c.GetCredential() == nil {
return nil, errors.New("ModifyAreaBanStatus require credential")
@@ -7924,6 +9036,7 @@ func (c *Client) ModifyAttackWhiteRuleWithContext(ctx context.Context, request *
if request == nil {
request = NewModifyAttackWhiteRuleRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyAttackWhiteRule")
if c.GetCredential() == nil {
return nil, errors.New("ModifyAttackWhiteRule require credential")
@@ -7936,6 +9049,66 @@ func (c *Client) ModifyAttackWhiteRuleWithContext(ctx context.Context, request *
return
}
+func NewModifyBatchIpAccessControlRequest() (request *ModifyBatchIpAccessControlRequest) {
+ request = &ModifyBatchIpAccessControlRequest{
+ BaseRequest: &tchttp.BaseRequest{},
+ }
+
+ request.Init().WithApiInfo("waf", APIVersion, "ModifyBatchIpAccessControl")
+
+
+ return
+}
+
+func NewModifyBatchIpAccessControlResponse() (response *ModifyBatchIpAccessControlResponse) {
+ response = &ModifyBatchIpAccessControlResponse{
+ BaseResponse: &tchttp.BaseResponse{},
+ }
+ return
+
+}
+
+// ModifyBatchIpAccessControl
+// 批量IP黑白名单新增接口
+//
+// 可能返回的错误码:
+// FAILEDOPERATION_THENUMBEROFADDEDBLACKANDWHITELISTEXCEEDSTHEUPPERLIMIT = "FailedOperation.TheNumberOfAddedBlackAndWhiteListExceedsTheUpperLimit"
+// INTERNALERROR = "InternalError"
+// INTERNALERROR_DBERR = "InternalError.DBErr"
+// LIMITEXCEEDED = "LimitExceeded"
+// LIMITEXCEEDED_SPECIFICATIONERR = "LimitExceeded.SpecificationErr"
+// UNSUPPORTEDOPERATION = "UnsupportedOperation"
+func (c *Client) ModifyBatchIpAccessControl(request *ModifyBatchIpAccessControlRequest) (response *ModifyBatchIpAccessControlResponse, err error) {
+ return c.ModifyBatchIpAccessControlWithContext(context.Background(), request)
+}
+
+// ModifyBatchIpAccessControl
+// 批量IP黑白名单新增接口
+//
+// 可能返回的错误码:
+// FAILEDOPERATION_THENUMBEROFADDEDBLACKANDWHITELISTEXCEEDSTHEUPPERLIMIT = "FailedOperation.TheNumberOfAddedBlackAndWhiteListExceedsTheUpperLimit"
+// INTERNALERROR = "InternalError"
+// INTERNALERROR_DBERR = "InternalError.DBErr"
+// LIMITEXCEEDED = "LimitExceeded"
+// LIMITEXCEEDED_SPECIFICATIONERR = "LimitExceeded.SpecificationErr"
+// UNSUPPORTEDOPERATION = "UnsupportedOperation"
+func (c *Client) ModifyBatchIpAccessControlWithContext(ctx context.Context, request *ModifyBatchIpAccessControlRequest) (response *ModifyBatchIpAccessControlResponse, err error) {
+ if request == nil {
+ request = NewModifyBatchIpAccessControlRequest()
+ }
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyBatchIpAccessControl")
+
+ if c.GetCredential() == nil {
+ return nil, errors.New("ModifyBatchIpAccessControl require credential")
+ }
+
+ request.SetContext(ctx)
+
+ response = NewModifyBatchIpAccessControlResponse()
+ err = c.Send(request, response)
+ return
+}
+
func NewModifyBotSceneStatusRequest() (request *ModifyBotSceneStatusRequest) {
request = &ModifyBotSceneStatusRequest{
BaseRequest: &tchttp.BaseRequest{},
@@ -7979,6 +9152,7 @@ func (c *Client) ModifyBotSceneStatusWithContext(ctx context.Context, request *M
if request == nil {
request = NewModifyBotSceneStatusRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyBotSceneStatus")
if c.GetCredential() == nil {
return nil, errors.New("ModifyBotSceneStatus require credential")
@@ -8030,6 +9204,7 @@ func (c *Client) ModifyBotSceneUCBRuleWithContext(ctx context.Context, request *
if request == nil {
request = NewModifyBotSceneUCBRuleRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyBotSceneUCBRule")
if c.GetCredential() == nil {
return nil, errors.New("ModifyBotSceneUCBRule require credential")
@@ -8083,6 +9258,7 @@ func (c *Client) ModifyBotStatusWithContext(ctx context.Context, request *Modify
if request == nil {
request = NewModifyBotStatusRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyBotStatus")
if c.GetCredential() == nil {
return nil, errors.New("ModifyBotStatus require credential")
@@ -8164,6 +9340,7 @@ func (c *Client) ModifyCustomRuleWithContext(ctx context.Context, request *Modif
if request == nil {
request = NewModifyCustomRuleRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyCustomRule")
if c.GetCredential() == nil {
return nil, errors.New("ModifyCustomRule require credential")
@@ -8217,6 +9394,7 @@ func (c *Client) ModifyCustomRuleStatusWithContext(ctx context.Context, request
if request == nil {
request = NewModifyCustomRuleStatusRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyCustomRuleStatus")
if c.GetCredential() == nil {
return nil, errors.New("ModifyCustomRuleStatus require credential")
@@ -8272,6 +9450,7 @@ func (c *Client) ModifyCustomWhiteRuleWithContext(ctx context.Context, request *
if request == nil {
request = NewModifyCustomWhiteRuleRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyCustomWhiteRule")
if c.GetCredential() == nil {
return nil, errors.New("ModifyCustomWhiteRule require credential")
@@ -8325,6 +9504,7 @@ func (c *Client) ModifyCustomWhiteRuleStatusWithContext(ctx context.Context, req
if request == nil {
request = NewModifyCustomWhiteRuleStatusRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyCustomWhiteRuleStatus")
if c.GetCredential() == nil {
return nil, errors.New("ModifyCustomWhiteRuleStatus require credential")
@@ -8414,6 +9594,7 @@ func (c *Client) ModifyDomainIpv6StatusWithContext(ctx context.Context, request
if request == nil {
request = NewModifyDomainIpv6StatusRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyDomainIpv6Status")
if c.GetCredential() == nil {
return nil, errors.New("ModifyDomainIpv6Status require credential")
@@ -8499,6 +9680,7 @@ func (c *Client) ModifyDomainPostActionWithContext(ctx context.Context, request
if request == nil {
request = NewModifyDomainPostActionRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyDomainPostAction")
if c.GetCredential() == nil {
return nil, errors.New("ModifyDomainPostAction require credential")
@@ -8531,7 +9713,7 @@ func NewModifyDomainWhiteRuleResponse() (response *ModifyDomainWhiteRuleResponse
}
// ModifyDomainWhiteRule
-// 更改某一条规则
+// 修改域名规则白名单
//
// 可能返回的错误码:
// FAILEDOPERATION = "FailedOperation"
@@ -8544,7 +9726,7 @@ func (c *Client) ModifyDomainWhiteRule(request *ModifyDomainWhiteRuleRequest) (r
}
// ModifyDomainWhiteRule
-// 更改某一条规则
+// 修改域名规则白名单
//
// 可能返回的错误码:
// FAILEDOPERATION = "FailedOperation"
@@ -8556,6 +9738,7 @@ func (c *Client) ModifyDomainWhiteRuleWithContext(ctx context.Context, request *
if request == nil {
request = NewModifyDomainWhiteRuleRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyDomainWhiteRule")
if c.GetCredential() == nil {
return nil, errors.New("ModifyDomainWhiteRule require credential")
@@ -8645,6 +9828,7 @@ func (c *Client) ModifyDomainsCLSStatusWithContext(ctx context.Context, request
if request == nil {
request = NewModifyDomainsCLSStatusRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyDomainsCLSStatus")
if c.GetCredential() == nil {
return nil, errors.New("ModifyDomainsCLSStatus require credential")
@@ -8677,7 +9861,7 @@ func NewModifyGenerateDealsResponse() (response *ModifyGenerateDealsResponse) {
}
// ModifyGenerateDeals
-// 提供给clb等使用的waf实例下单接口,目前只支持clb旗舰版实例的下单,该接口会进行入参校验,然后调用是否为收购用户,然后调用计费接口下单。目前只支持预付费下单,计费侧接口:https://tcb.woa.com/magical-brush/docs/754661947
+// 提供给clb等使用的waf实例下单接口,目前只支持clb旗舰版实例的下单,该接口会进行入参校验,然后调用是否为收购用户,然后调用计费接口下单。目前只支持预付费下单
//
// 可能返回的错误码:
// AUTHFAILURE = "AuthFailure"
@@ -8706,7 +9890,7 @@ func (c *Client) ModifyGenerateDeals(request *ModifyGenerateDealsRequest) (respo
}
// ModifyGenerateDeals
-// 提供给clb等使用的waf实例下单接口,目前只支持clb旗舰版实例的下单,该接口会进行入参校验,然后调用是否为收购用户,然后调用计费接口下单。目前只支持预付费下单,计费侧接口:https://tcb.woa.com/magical-brush/docs/754661947
+// 提供给clb等使用的waf实例下单接口,目前只支持clb旗舰版实例的下单,该接口会进行入参校验,然后调用是否为收购用户,然后调用计费接口下单。目前只支持预付费下单
//
// 可能返回的错误码:
// AUTHFAILURE = "AuthFailure"
@@ -8734,6 +9918,7 @@ func (c *Client) ModifyGenerateDealsWithContext(ctx context.Context, request *Mo
if request == nil {
request = NewModifyGenerateDealsRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyGenerateDeals")
if c.GetCredential() == nil {
return nil, errors.New("ModifyGenerateDeals require credential")
@@ -8809,6 +9994,7 @@ func (c *Client) ModifyHostWithContext(ctx context.Context, request *ModifyHostR
if request == nil {
request = NewModifyHostRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyHost")
if c.GetCredential() == nil {
return nil, errors.New("ModifyHost require credential")
@@ -8882,6 +10068,7 @@ func (c *Client) ModifyHostFlowModeWithContext(ctx context.Context, request *Mod
if request == nil {
request = NewModifyHostFlowModeRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyHostFlowMode")
if c.GetCredential() == nil {
return nil, errors.New("ModifyHostFlowMode require credential")
@@ -8957,6 +10144,7 @@ func (c *Client) ModifyHostModeWithContext(ctx context.Context, request *ModifyH
if request == nil {
request = NewModifyHostModeRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyHostMode")
if c.GetCredential() == nil {
return nil, errors.New("ModifyHostMode require credential")
@@ -9034,6 +10222,7 @@ func (c *Client) ModifyHostStatusWithContext(ctx context.Context, request *Modif
if request == nil {
request = NewModifyHostStatusRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyHostStatus")
if c.GetCredential() == nil {
return nil, errors.New("ModifyHostStatus require credential")
@@ -9107,6 +10296,7 @@ func (c *Client) ModifyInstanceAttackLogPostWithContext(ctx context.Context, req
if request == nil {
request = NewModifyInstanceAttackLogPostRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyInstanceAttackLogPost")
if c.GetCredential() == nil {
return nil, errors.New("ModifyInstanceAttackLogPost require credential")
@@ -9194,6 +10384,7 @@ func (c *Client) ModifyInstanceElasticModeWithContext(ctx context.Context, reque
if request == nil {
request = NewModifyInstanceElasticModeRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyInstanceElasticMode")
if c.GetCredential() == nil {
return nil, errors.New("ModifyInstanceElasticMode require credential")
@@ -9253,6 +10444,7 @@ func (c *Client) ModifyInstanceNameWithContext(ctx context.Context, request *Mod
if request == nil {
request = NewModifyInstanceNameRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyInstanceName")
if c.GetCredential() == nil {
return nil, errors.New("ModifyInstanceName require credential")
@@ -9312,6 +10504,7 @@ func (c *Client) ModifyInstanceQpsLimitWithContext(ctx context.Context, request
if request == nil {
request = NewModifyInstanceQpsLimitRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyInstanceQpsLimit")
if c.GetCredential() == nil {
return nil, errors.New("ModifyInstanceQpsLimit require credential")
@@ -9399,6 +10592,7 @@ func (c *Client) ModifyInstanceRenewFlagWithContext(ctx context.Context, request
if request == nil {
request = NewModifyInstanceRenewFlagRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyInstanceRenewFlag")
if c.GetCredential() == nil {
return nil, errors.New("ModifyInstanceRenewFlag require credential")
@@ -9458,6 +10652,7 @@ func (c *Client) ModifyIpAccessControlWithContext(ctx context.Context, request *
if request == nil {
request = NewModifyIpAccessControlRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyIpAccessControl")
if c.GetCredential() == nil {
return nil, errors.New("ModifyIpAccessControl require credential")
@@ -9507,6 +10702,7 @@ func (c *Client) ModifyModuleStatusWithContext(ctx context.Context, request *Mod
if request == nil {
request = NewModifyModuleStatusRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyModuleStatus")
if c.GetCredential() == nil {
return nil, errors.New("ModifyModuleStatus require credential")
@@ -9564,6 +10760,7 @@ func (c *Client) ModifyObjectWithContext(ctx context.Context, request *ModifyObj
if request == nil {
request = NewModifyObjectRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyObject")
if c.GetCredential() == nil {
return nil, errors.New("ModifyObject require credential")
@@ -9576,8 +10773,358 @@ func (c *Client) ModifyObjectWithContext(ctx context.Context, request *ModifyObj
return
}
-func NewModifyProtectionStatusRequest() (request *ModifyProtectionStatusRequest) {
- request = &ModifyProtectionStatusRequest{
+func NewModifyOwaspRuleStatusRequest() (request *ModifyOwaspRuleStatusRequest) {
+ request = &ModifyOwaspRuleStatusRequest{
+ BaseRequest: &tchttp.BaseRequest{},
+ }
+
+ request.Init().WithApiInfo("waf", APIVersion, "ModifyOwaspRuleStatus")
+
+
+ return
+}
+
+func NewModifyOwaspRuleStatusResponse() (response *ModifyOwaspRuleStatusResponse) {
+ response = &ModifyOwaspRuleStatusResponse{
+ BaseResponse: &tchttp.BaseResponse{},
+ }
+ return
+
+}
+
+// ModifyOwaspRuleStatus
+// 更新规则的开关
+//
+// 可能返回的错误码:
+// INTERNALERROR_DBERR = "InternalError.DBErr"
+func (c *Client) ModifyOwaspRuleStatus(request *ModifyOwaspRuleStatusRequest) (response *ModifyOwaspRuleStatusResponse, err error) {
+ return c.ModifyOwaspRuleStatusWithContext(context.Background(), request)
+}
+
+// ModifyOwaspRuleStatus
+// 更新规则的开关
+//
+// 可能返回的错误码:
+// INTERNALERROR_DBERR = "InternalError.DBErr"
+func (c *Client) ModifyOwaspRuleStatusWithContext(ctx context.Context, request *ModifyOwaspRuleStatusRequest) (response *ModifyOwaspRuleStatusResponse, err error) {
+ if request == nil {
+ request = NewModifyOwaspRuleStatusRequest()
+ }
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyOwaspRuleStatus")
+
+ if c.GetCredential() == nil {
+ return nil, errors.New("ModifyOwaspRuleStatus require credential")
+ }
+
+ request.SetContext(ctx)
+
+ response = NewModifyOwaspRuleStatusResponse()
+ err = c.Send(request, response)
+ return
+}
+
+func NewModifyOwaspRuleTypeActionRequest() (request *ModifyOwaspRuleTypeActionRequest) {
+ request = &ModifyOwaspRuleTypeActionRequest{
+ BaseRequest: &tchttp.BaseRequest{},
+ }
+
+ request.Init().WithApiInfo("waf", APIVersion, "ModifyOwaspRuleTypeAction")
+
+
+ return
+}
+
+func NewModifyOwaspRuleTypeActionResponse() (response *ModifyOwaspRuleTypeActionResponse) {
+ response = &ModifyOwaspRuleTypeActionResponse{
+ BaseResponse: &tchttp.BaseResponse{},
+ }
+ return
+
+}
+
+// ModifyOwaspRuleTypeAction
+// 更新规则类型的防护模式
+//
+// 可能返回的错误码:
+// INTERNALERROR_DBERR = "InternalError.DBErr"
+func (c *Client) ModifyOwaspRuleTypeAction(request *ModifyOwaspRuleTypeActionRequest) (response *ModifyOwaspRuleTypeActionResponse, err error) {
+ return c.ModifyOwaspRuleTypeActionWithContext(context.Background(), request)
+}
+
+// ModifyOwaspRuleTypeAction
+// 更新规则类型的防护模式
+//
+// 可能返回的错误码:
+// INTERNALERROR_DBERR = "InternalError.DBErr"
+func (c *Client) ModifyOwaspRuleTypeActionWithContext(ctx context.Context, request *ModifyOwaspRuleTypeActionRequest) (response *ModifyOwaspRuleTypeActionResponse, err error) {
+ if request == nil {
+ request = NewModifyOwaspRuleTypeActionRequest()
+ }
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyOwaspRuleTypeAction")
+
+ if c.GetCredential() == nil {
+ return nil, errors.New("ModifyOwaspRuleTypeAction require credential")
+ }
+
+ request.SetContext(ctx)
+
+ response = NewModifyOwaspRuleTypeActionResponse()
+ err = c.Send(request, response)
+ return
+}
+
+func NewModifyOwaspRuleTypeLevelRequest() (request *ModifyOwaspRuleTypeLevelRequest) {
+ request = &ModifyOwaspRuleTypeLevelRequest{
+ BaseRequest: &tchttp.BaseRequest{},
+ }
+
+ request.Init().WithApiInfo("waf", APIVersion, "ModifyOwaspRuleTypeLevel")
+
+
+ return
+}
+
+func NewModifyOwaspRuleTypeLevelResponse() (response *ModifyOwaspRuleTypeLevelResponse) {
+ response = &ModifyOwaspRuleTypeLevelResponse{
+ BaseResponse: &tchttp.BaseResponse{},
+ }
+ return
+
+}
+
+// ModifyOwaspRuleTypeLevel
+// 更新规则类型的防护等级
+//
+// 可能返回的错误码:
+// INTERNALERROR_DBERR = "InternalError.DBErr"
+func (c *Client) ModifyOwaspRuleTypeLevel(request *ModifyOwaspRuleTypeLevelRequest) (response *ModifyOwaspRuleTypeLevelResponse, err error) {
+ return c.ModifyOwaspRuleTypeLevelWithContext(context.Background(), request)
+}
+
+// ModifyOwaspRuleTypeLevel
+// 更新规则类型的防护等级
+//
+// 可能返回的错误码:
+// INTERNALERROR_DBERR = "InternalError.DBErr"
+func (c *Client) ModifyOwaspRuleTypeLevelWithContext(ctx context.Context, request *ModifyOwaspRuleTypeLevelRequest) (response *ModifyOwaspRuleTypeLevelResponse, err error) {
+ if request == nil {
+ request = NewModifyOwaspRuleTypeLevelRequest()
+ }
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyOwaspRuleTypeLevel")
+
+ if c.GetCredential() == nil {
+ return nil, errors.New("ModifyOwaspRuleTypeLevel require credential")
+ }
+
+ request.SetContext(ctx)
+
+ response = NewModifyOwaspRuleTypeLevelResponse()
+ err = c.Send(request, response)
+ return
+}
+
+func NewModifyOwaspRuleTypeStatusRequest() (request *ModifyOwaspRuleTypeStatusRequest) {
+ request = &ModifyOwaspRuleTypeStatusRequest{
+ BaseRequest: &tchttp.BaseRequest{},
+ }
+
+ request.Init().WithApiInfo("waf", APIVersion, "ModifyOwaspRuleTypeStatus")
+
+
+ return
+}
+
+func NewModifyOwaspRuleTypeStatusResponse() (response *ModifyOwaspRuleTypeStatusResponse) {
+ response = &ModifyOwaspRuleTypeStatusResponse{
+ BaseResponse: &tchttp.BaseResponse{},
+ }
+ return
+
+}
+
+// ModifyOwaspRuleTypeStatus
+// 更新规则类型的开关
+//
+// 可能返回的错误码:
+// INTERNALERROR_DBERR = "InternalError.DBErr"
+func (c *Client) ModifyOwaspRuleTypeStatus(request *ModifyOwaspRuleTypeStatusRequest) (response *ModifyOwaspRuleTypeStatusResponse, err error) {
+ return c.ModifyOwaspRuleTypeStatusWithContext(context.Background(), request)
+}
+
+// ModifyOwaspRuleTypeStatus
+// 更新规则类型的开关
+//
+// 可能返回的错误码:
+// INTERNALERROR_DBERR = "InternalError.DBErr"
+func (c *Client) ModifyOwaspRuleTypeStatusWithContext(ctx context.Context, request *ModifyOwaspRuleTypeStatusRequest) (response *ModifyOwaspRuleTypeStatusResponse, err error) {
+ if request == nil {
+ request = NewModifyOwaspRuleTypeStatusRequest()
+ }
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyOwaspRuleTypeStatus")
+
+ if c.GetCredential() == nil {
+ return nil, errors.New("ModifyOwaspRuleTypeStatus require credential")
+ }
+
+ request.SetContext(ctx)
+
+ response = NewModifyOwaspRuleTypeStatusResponse()
+ err = c.Send(request, response)
+ return
+}
+
+func NewModifyOwaspWhiteRuleRequest() (request *ModifyOwaspWhiteRuleRequest) {
+ request = &ModifyOwaspWhiteRuleRequest{
+ BaseRequest: &tchttp.BaseRequest{},
+ }
+
+ request.Init().WithApiInfo("waf", APIVersion, "ModifyOwaspWhiteRule")
+
+
+ return
+}
+
+func NewModifyOwaspWhiteRuleResponse() (response *ModifyOwaspWhiteRuleResponse) {
+ response = &ModifyOwaspWhiteRuleResponse{
+ BaseResponse: &tchttp.BaseResponse{},
+ }
+ return
+
+}
+
+// ModifyOwaspWhiteRule
+// 编辑规则引擎白名单
+//
+// 可能返回的错误码:
+// AUTHFAILURE = "AuthFailure"
+// DRYRUNOPERATION = "DryRunOperation"
+// FAILEDOPERATION = "FailedOperation"
+// INTERNALERROR = "InternalError"
+// INVALIDPARAMETER = "InvalidParameter"
+// INVALIDPARAMETER_INVALIDCERTIFICATE = "InvalidParameter.InvalidCertificate"
+// INVALIDPARAMETER_QUERYCERTBYSSLIDFAILED = "InvalidParameter.QueryCertBySSLIDFailed"
+// INVALIDPARAMETERVALUE = "InvalidParameterValue"
+// INVALIDPARAMETERVALUE_INVALIDREQUEST = "InvalidParameterValue.InvalidRequest"
+// 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) ModifyOwaspWhiteRule(request *ModifyOwaspWhiteRuleRequest) (response *ModifyOwaspWhiteRuleResponse, err error) {
+ return c.ModifyOwaspWhiteRuleWithContext(context.Background(), request)
+}
+
+// ModifyOwaspWhiteRule
+// 编辑规则引擎白名单
+//
+// 可能返回的错误码:
+// AUTHFAILURE = "AuthFailure"
+// DRYRUNOPERATION = "DryRunOperation"
+// FAILEDOPERATION = "FailedOperation"
+// INTERNALERROR = "InternalError"
+// INVALIDPARAMETER = "InvalidParameter"
+// INVALIDPARAMETER_INVALIDCERTIFICATE = "InvalidParameter.InvalidCertificate"
+// INVALIDPARAMETER_QUERYCERTBYSSLIDFAILED = "InvalidParameter.QueryCertBySSLIDFailed"
+// INVALIDPARAMETERVALUE = "InvalidParameterValue"
+// INVALIDPARAMETERVALUE_INVALIDREQUEST = "InvalidParameterValue.InvalidRequest"
+// 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) ModifyOwaspWhiteRuleWithContext(ctx context.Context, request *ModifyOwaspWhiteRuleRequest) (response *ModifyOwaspWhiteRuleResponse, err error) {
+ if request == nil {
+ request = NewModifyOwaspWhiteRuleRequest()
+ }
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyOwaspWhiteRule")
+
+ if c.GetCredential() == nil {
+ return nil, errors.New("ModifyOwaspWhiteRule require credential")
+ }
+
+ request.SetContext(ctx)
+
+ response = NewModifyOwaspWhiteRuleResponse()
+ err = c.Send(request, response)
+ return
+}
+
+func NewModifyProtectionLevelRequest() (request *ModifyProtectionLevelRequest) {
+ request = &ModifyProtectionLevelRequest{
+ BaseRequest: &tchttp.BaseRequest{},
+ }
+
+ request.Init().WithApiInfo("waf", APIVersion, "ModifyProtectionLevel")
+
+
+ return
+}
+
+func NewModifyProtectionLevelResponse() (response *ModifyProtectionLevelResponse) {
+ response = &ModifyProtectionLevelResponse{
+ BaseResponse: &tchttp.BaseResponse{},
+ }
+ return
+
+}
+
+// ModifyProtectionLevel
+// 更改防护等级
+//
+// 可能返回的错误码:
+// FAILEDOPERATION = "FailedOperation"
+// FAILEDOPERATION_MYSQLDBOPERATIONFAILED = "FailedOperation.MysqlDBOperationFailed"
+// INVALIDPARAMETER = "InvalidParameter"
+// INVALIDPARAMETERVALUE = "InvalidParameterValue"
+// RESOURCENOTFOUND = "ResourceNotFound"
+// UNSUPPORTEDOPERATION_INVALIDREQUEST = "UnsupportedOperation.InvalidRequest"
+func (c *Client) ModifyProtectionLevel(request *ModifyProtectionLevelRequest) (response *ModifyProtectionLevelResponse, err error) {
+ return c.ModifyProtectionLevelWithContext(context.Background(), request)
+}
+
+// ModifyProtectionLevel
+// 更改防护等级
+//
+// 可能返回的错误码:
+// FAILEDOPERATION = "FailedOperation"
+// FAILEDOPERATION_MYSQLDBOPERATIONFAILED = "FailedOperation.MysqlDBOperationFailed"
+// INVALIDPARAMETER = "InvalidParameter"
+// INVALIDPARAMETERVALUE = "InvalidParameterValue"
+// RESOURCENOTFOUND = "ResourceNotFound"
+// UNSUPPORTEDOPERATION_INVALIDREQUEST = "UnsupportedOperation.InvalidRequest"
+func (c *Client) ModifyProtectionLevelWithContext(ctx context.Context, request *ModifyProtectionLevelRequest) (response *ModifyProtectionLevelResponse, err error) {
+ if request == nil {
+ request = NewModifyProtectionLevelRequest()
+ }
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyProtectionLevel")
+
+ if c.GetCredential() == nil {
+ return nil, errors.New("ModifyProtectionLevel require credential")
+ }
+
+ request.SetContext(ctx)
+
+ response = NewModifyProtectionLevelResponse()
+ err = c.Send(request, response)
+ return
+}
+
+func NewModifyProtectionStatusRequest() (request *ModifyProtectionStatusRequest) {
+ request = &ModifyProtectionStatusRequest{
BaseRequest: &tchttp.BaseRequest{},
}
@@ -9619,6 +11166,7 @@ func (c *Client) ModifyProtectionStatusWithContext(ctx context.Context, request
if request == nil {
request = NewModifyProtectionStatusRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyProtectionStatus")
if c.GetCredential() == nil {
return nil, errors.New("ModifyProtectionStatus require credential")
@@ -9708,6 +11256,7 @@ func (c *Client) ModifySpartaProtectionWithContext(ctx context.Context, request
if request == nil {
request = NewModifySpartaProtectionRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifySpartaProtection")
if c.GetCredential() == nil {
return nil, errors.New("ModifySpartaProtection require credential")
@@ -9787,6 +11336,7 @@ func (c *Client) ModifySpartaProtectionModeWithContext(ctx context.Context, requ
if request == nil {
request = NewModifySpartaProtectionModeRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifySpartaProtectionMode")
if c.GetCredential() == nil {
return nil, errors.New("ModifySpartaProtectionMode require credential")
@@ -9850,6 +11400,7 @@ func (c *Client) ModifyUserLevelWithContext(ctx context.Context, request *Modify
if request == nil {
request = NewModifyUserLevelRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyUserLevel")
if c.GetCredential() == nil {
return nil, errors.New("ModifyUserLevel require credential")
@@ -9913,6 +11464,7 @@ func (c *Client) ModifyUserSignatureClassWithContext(ctx context.Context, reques
if request == nil {
request = NewModifyUserSignatureClassRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyUserSignatureClass")
if c.GetCredential() == nil {
return nil, errors.New("ModifyUserSignatureClass require credential")
@@ -9978,6 +11530,7 @@ func (c *Client) ModifyUserSignatureRuleWithContext(ctx context.Context, request
if request == nil {
request = NewModifyUserSignatureRuleRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyUserSignatureRule")
if c.GetCredential() == nil {
return nil, errors.New("ModifyUserSignatureRule require credential")
@@ -10043,6 +11596,7 @@ func (c *Client) ModifyUserSignatureRuleV2WithContext(ctx context.Context, reque
if request == nil {
request = NewModifyUserSignatureRuleV2Request()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyUserSignatureRuleV2")
if c.GetCredential() == nil {
return nil, errors.New("ModifyUserSignatureRuleV2 require credential")
@@ -10092,6 +11646,7 @@ func (c *Client) ModifyWafAutoDenyRulesWithContext(ctx context.Context, request
if request == nil {
request = NewModifyWafAutoDenyRulesRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyWafAutoDenyRules")
if c.GetCredential() == nil {
return nil, errors.New("ModifyWafAutoDenyRules require credential")
@@ -10153,6 +11708,7 @@ func (c *Client) ModifyWafThreatenIntelligenceWithContext(ctx context.Context, r
if request == nil {
request = NewModifyWafThreatenIntelligenceRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyWafThreatenIntelligence")
if c.GetCredential() == nil {
return nil, errors.New("ModifyWafThreatenIntelligence require credential")
@@ -10228,6 +11784,7 @@ func (c *Client) ModifyWebshellStatusWithContext(ctx context.Context, request *M
if request == nil {
request = NewModifyWebshellStatusRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "ModifyWebshellStatus")
if c.GetCredential() == nil {
return nil, errors.New("ModifyWebshellStatus require credential")
@@ -10283,6 +11840,7 @@ func (c *Client) PostAttackDownloadTaskWithContext(ctx context.Context, request
if request == nil {
request = NewPostAttackDownloadTaskRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "PostAttackDownloadTask")
if c.GetCredential() == nil {
return nil, errors.New("PostAttackDownloadTask require credential")
@@ -10338,6 +11896,7 @@ func (c *Client) RefreshAccessCheckResultWithContext(ctx context.Context, reques
if request == nil {
request = NewRefreshAccessCheckResultRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "RefreshAccessCheckResult")
if c.GetCredential() == nil {
return nil, errors.New("RefreshAccessCheckResult require credential")
@@ -10435,6 +11994,7 @@ func (c *Client) SearchAccessLogWithContext(ctx context.Context, request *Search
if request == nil {
request = NewSearchAccessLogRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "SearchAccessLog")
if c.GetCredential() == nil {
return nil, errors.New("SearchAccessLog require credential")
@@ -10500,6 +12060,7 @@ func (c *Client) SearchAttackLogWithContext(ctx context.Context, request *Search
if request == nil {
request = NewSearchAttackLogRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "SearchAttackLog")
if c.GetCredential() == nil {
return nil, errors.New("SearchAttackLog require credential")
@@ -10512,6 +12073,114 @@ func (c *Client) SearchAttackLogWithContext(ctx context.Context, request *Search
return
}
+func NewSearchLogRequest() (request *SearchLogRequest) {
+ request = &SearchLogRequest{
+ BaseRequest: &tchttp.BaseRequest{},
+ }
+
+ request.Init().WithApiInfo("waf", APIVersion, "SearchLog")
+
+
+ return
+}
+
+func NewSearchLogResponse() (response *SearchLogResponse) {
+ response = &SearchLogResponse{
+ BaseResponse: &tchttp.BaseResponse{},
+ }
+ return
+
+}
+
+// SearchLog
+// 本接口用于检索分析日志,使用该接口时请注意如下事项:
+//
+// 1. 该接口除受默认接口请求频率限制外,针对单个日志主题,查询并发数不能超过15。
+//
+// 2. 检索语法建议使用CQL语法规则,请使用SyntaxRule参数,将值设置为1。
+//
+// 3. API返回数据包最大49MB,建议启用 gzip 压缩(HTTP Request Header Accept-Encoding:gzip)。
+//
+// 可能返回的错误码:
+// FAILEDOPERATION = "FailedOperation"
+// FAILEDOPERATION_CLSRESOURCESNOTFOUND = "FailedOperation.CLSResourcesNotFound"
+// FAILEDOPERATION_INVALIDCONTEXT = "FailedOperation.InvalidContext"
+// FAILEDOPERATION_QUERYERROR = "FailedOperation.QueryError"
+// FAILEDOPERATION_SEARCHTIMEOUT = "FailedOperation.SearchTimeout"
+// FAILEDOPERATION_SYNTAXERROR = "FailedOperation.SyntaxError"
+// FAILEDOPERATION_TIMEOUT = "FailedOperation.Timeout"
+// FAILEDOPERATION_TOPICISOLATED = "FailedOperation.TopicIsolated"
+// INTERNALERROR = "InternalError"
+// INTERNALERROR_SEARCHERROR = "InternalError.SearchError"
+// INTERNALERROR_SEARCHFAILED = "InternalError.SearchFailed"
+// INTERNALERROR_SERVERBUSY = "InternalError.ServerBusy"
+// INVALIDPARAMETER = "InvalidParameter"
+// LIMITEXCEEDED_LOGSEARCH = "LimitExceeded.LogSearch"
+// LIMITEXCEEDED_SEARCHRESOURCES = "LimitExceeded.SearchResources"
+// LIMITEXCEEDED_SEARCHRESULTTOOLARGE = "LimitExceeded.SearchResultTooLarge"
+// MISSINGPARAMETER = "MissingParameter"
+// OPERATIONDENIED = "OperationDenied"
+// OPERATIONDENIED_ACCOUNTDESTROY = "OperationDenied.AccountDestroy"
+// OPERATIONDENIED_ACCOUNTISOLATE = "OperationDenied.AccountIsolate"
+// OPERATIONDENIED_ACCOUNTNOTEXISTS = "OperationDenied.AccountNotExists"
+// OPERATIONDENIED_NEWSYNTAXNOTSUPPORTED = "OperationDenied.NewSyntaxNotSupported"
+// OPERATIONDENIED_OPERATIONNOTSUPPORTINSEARCHLOW = "OperationDenied.OperationNotSupportInSearchLow"
+// RESOURCENOTFOUND_TOPICNOTEXIST = "ResourceNotFound.TopicNotExist"
+func (c *Client) SearchLog(request *SearchLogRequest) (response *SearchLogResponse, err error) {
+ return c.SearchLogWithContext(context.Background(), request)
+}
+
+// SearchLog
+// 本接口用于检索分析日志,使用该接口时请注意如下事项:
+//
+// 1. 该接口除受默认接口请求频率限制外,针对单个日志主题,查询并发数不能超过15。
+//
+// 2. 检索语法建议使用CQL语法规则,请使用SyntaxRule参数,将值设置为1。
+//
+// 3. API返回数据包最大49MB,建议启用 gzip 压缩(HTTP Request Header Accept-Encoding:gzip)。
+//
+// 可能返回的错误码:
+// FAILEDOPERATION = "FailedOperation"
+// FAILEDOPERATION_CLSRESOURCESNOTFOUND = "FailedOperation.CLSResourcesNotFound"
+// FAILEDOPERATION_INVALIDCONTEXT = "FailedOperation.InvalidContext"
+// FAILEDOPERATION_QUERYERROR = "FailedOperation.QueryError"
+// FAILEDOPERATION_SEARCHTIMEOUT = "FailedOperation.SearchTimeout"
+// FAILEDOPERATION_SYNTAXERROR = "FailedOperation.SyntaxError"
+// FAILEDOPERATION_TIMEOUT = "FailedOperation.Timeout"
+// FAILEDOPERATION_TOPICISOLATED = "FailedOperation.TopicIsolated"
+// INTERNALERROR = "InternalError"
+// INTERNALERROR_SEARCHERROR = "InternalError.SearchError"
+// INTERNALERROR_SEARCHFAILED = "InternalError.SearchFailed"
+// INTERNALERROR_SERVERBUSY = "InternalError.ServerBusy"
+// INVALIDPARAMETER = "InvalidParameter"
+// LIMITEXCEEDED_LOGSEARCH = "LimitExceeded.LogSearch"
+// LIMITEXCEEDED_SEARCHRESOURCES = "LimitExceeded.SearchResources"
+// LIMITEXCEEDED_SEARCHRESULTTOOLARGE = "LimitExceeded.SearchResultTooLarge"
+// MISSINGPARAMETER = "MissingParameter"
+// OPERATIONDENIED = "OperationDenied"
+// OPERATIONDENIED_ACCOUNTDESTROY = "OperationDenied.AccountDestroy"
+// OPERATIONDENIED_ACCOUNTISOLATE = "OperationDenied.AccountIsolate"
+// OPERATIONDENIED_ACCOUNTNOTEXISTS = "OperationDenied.AccountNotExists"
+// OPERATIONDENIED_NEWSYNTAXNOTSUPPORTED = "OperationDenied.NewSyntaxNotSupported"
+// OPERATIONDENIED_OPERATIONNOTSUPPORTINSEARCHLOW = "OperationDenied.OperationNotSupportInSearchLow"
+// RESOURCENOTFOUND_TOPICNOTEXIST = "ResourceNotFound.TopicNotExist"
+func (c *Client) SearchLogWithContext(ctx context.Context, request *SearchLogRequest) (response *SearchLogResponse, err error) {
+ if request == nil {
+ request = NewSearchLogRequest()
+ }
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "SearchLog")
+
+ if c.GetCredential() == nil {
+ return nil, errors.New("SearchLog require credential")
+ }
+
+ request.SetContext(ctx)
+
+ response = NewSearchLogResponse()
+ err = c.Send(request, response)
+ return
+}
+
func NewSwitchDomainRulesRequest() (request *SwitchDomainRulesRequest) {
request = &SwitchDomainRulesRequest{
BaseRequest: &tchttp.BaseRequest{},
@@ -10561,6 +12230,7 @@ func (c *Client) SwitchDomainRulesWithContext(ctx context.Context, request *Swit
if request == nil {
request = NewSwitchDomainRulesRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "SwitchDomainRules")
if c.GetCredential() == nil {
return nil, errors.New("SwitchDomainRules require credential")
@@ -10616,6 +12286,7 @@ func (c *Client) SwitchElasticModeWithContext(ctx context.Context, request *Swit
if request == nil {
request = NewSwitchElasticModeRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "SwitchElasticMode")
if c.GetCredential() == nil {
return nil, errors.New("SwitchElasticMode require credential")
@@ -10671,6 +12342,7 @@ func (c *Client) UpdateProtectionModesWithContext(ctx context.Context, request *
if request == nil {
request = NewUpdateProtectionModesRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "UpdateProtectionModes")
if c.GetCredential() == nil {
return nil, errors.New("UpdateProtectionModes require credential")
@@ -10724,6 +12396,7 @@ func (c *Client) UpsertCCAutoStatusWithContext(ctx context.Context, request *Ups
if request == nil {
request = NewUpsertCCAutoStatusRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "UpsertCCAutoStatus")
if c.GetCredential() == nil {
return nil, errors.New("UpsertCCAutoStatus require credential")
@@ -10777,6 +12450,7 @@ func (c *Client) UpsertCCRuleWithContext(ctx context.Context, request *UpsertCCR
if request == nil {
request = NewUpsertCCRuleRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "UpsertCCRule")
if c.GetCredential() == nil {
return nil, errors.New("UpsertCCRule require credential")
@@ -10836,6 +12510,7 @@ func (c *Client) UpsertIpAccessControlWithContext(ctx context.Context, request *
if request == nil {
request = NewUpsertIpAccessControlRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "UpsertIpAccessControl")
if c.GetCredential() == nil {
return nil, errors.New("UpsertIpAccessControl require credential")
@@ -10887,6 +12562,7 @@ func (c *Client) UpsertSessionWithContext(ctx context.Context, request *UpsertSe
if request == nil {
request = NewUpsertSessionRequest()
}
+ c.InitBaseRequest(&request.BaseRequest, "waf", APIVersion, "UpsertSession")
if c.GetCredential() == nil {
return nil, errors.New("UpsertSession require credential")
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 edeaa4317f..1ea4d95e3f 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
@@ -1,4 +1,4 @@
-// Copyright (c) 2017-2018 THL A29 Limited, a Tencent company. All Rights Reserved.
+// Copyright (c) 2017-2025 Tencent. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -38,30 +38,57 @@ const (
// CLS内部错误。
FAILEDOPERATION_CLSINTERNALERROR = "FailedOperation.CLSInternalError"
+ // 日志主题正在清空中
+ FAILEDOPERATION_CLSRESOURCESNOTFOUND = "FailedOperation.CLSResourcesNotFound"
+
// 证书不存在
FAILEDOPERATION_CERTIFICATENOTFOUND = "FailedOperation.CertificateNotFound"
// 操作CH数据库失败
FAILEDOPERATION_CLICKHOUSEOPERATIONFAILED = "FailedOperation.ClickHouseOperationFailed"
+ // FailedOperation.InvalidContext
+ FAILEDOPERATION_INVALIDCONTEXT = "FailedOperation.InvalidContext"
+
// 操作Mongo数据库失败
FAILEDOPERATION_MONGOOPERATIONFAILED = "FailedOperation.MongoOperationFailed"
// 操作Mysql数据库失败
FAILEDOPERATION_MYSQLDBOPERATIONFAILED = "FailedOperation.MysqlDBOperationFailed"
+ // FailedOperation.QueryError
+ FAILEDOPERATION_QUERYERROR = "FailedOperation.QueryError"
+
// 操作Redis数据库失败
FAILEDOPERATION_REDISOPERATIONFAILED = "FailedOperation.RedisOperationFailed"
+ // FailedOperation.SearchTimeout
+ FAILEDOPERATION_SEARCHTIMEOUT = "FailedOperation.SearchTimeout"
+
// 删除的Session正在被启用
FAILEDOPERATION_SESSIONINUSED = "FailedOperation.SessionInUsed"
+ // FailedOperation.SyntaxError
+ FAILEDOPERATION_SYNTAXERROR = "FailedOperation.SyntaxError"
+
+ // FailedOperation.TagQpsLimit
+ FAILEDOPERATION_TAGQPSLIMIT = "FailedOperation.TagQpsLimit"
+
// 黑白名单添加数超过上限
FAILEDOPERATION_THENUMBEROFADDEDBLACKANDWHITELISTEXCEEDSTHEUPPERLIMIT = "FailedOperation.TheNumberOfAddedBlackAndWhiteListExceedsTheUpperLimit"
// 一次性删除数量达到上限
FAILEDOPERATION_THENUMBEROFONETIMEDELETIONSREACHEDTHEUPPERLIMIT = "FailedOperation.TheNumberOfOneTimeDeletionsReachedTheUpperLimit"
+ // FailedOperation.Timeout
+ FAILEDOPERATION_TIMEOUT = "FailedOperation.Timeout"
+
+ // FailedOperation.TopicClosed
+ FAILEDOPERATION_TOPICCLOSED = "FailedOperation.TopicClosed"
+
+ // FailedOperation.TopicIsolated
+ FAILEDOPERATION_TOPICISOLATED = "FailedOperation.TopicIsolated"
+
// 内部错误。
INTERNALERROR = "InternalError"
@@ -74,6 +101,18 @@ const (
// 调用SSL证书接口发生内部错误
INTERNALERROR_SSLCALLFAILED = "InternalError.SSLCallFailed"
+ // InternalError.SearchError
+ INTERNALERROR_SEARCHERROR = "InternalError.SearchError"
+
+ // InternalError.SearchFailed
+ INTERNALERROR_SEARCHFAILED = "InternalError.SearchFailed"
+
+ // InternalError.ServerBusy
+ INTERNALERROR_SERVERBUSY = "InternalError.ServerBusy"
+
+ // InternalError.Unknown
+ INTERNALERROR_UNKNOWN = "InternalError.Unknown"
+
// 存在内部错误,请联系我们
INTERNALERROR_UNKNOWNERR = "InternalError.UnknownErr"
@@ -155,6 +194,18 @@ const (
// 超过配额限制。
LIMITEXCEEDED = "LimitExceeded"
+ // LimitExceeded.Export
+ LIMITEXCEEDED_EXPORT = "LimitExceeded.Export"
+
+ // LimitExceeded.LogSearch
+ LIMITEXCEEDED_LOGSEARCH = "LimitExceeded.LogSearch"
+
+ // LimitExceeded.SearchResources
+ LIMITEXCEEDED_SEARCHRESOURCES = "LimitExceeded.SearchResources"
+
+ // LimitExceeded.SearchResultTooLarge
+ LIMITEXCEEDED_SEARCHRESULTTOOLARGE = "LimitExceeded.SearchResultTooLarge"
+
// SpecificationErr
LIMITEXCEEDED_SPECIFICATIONERR = "LimitExceeded.SpecificationErr"
@@ -164,6 +215,27 @@ const (
// 操作被拒绝。
OPERATIONDENIED = "OperationDenied"
+ // OperationDenied.ACLFailed
+ OPERATIONDENIED_ACLFAILED = "OperationDenied.ACLFailed"
+
+ // OperationDenied.AccountDestroy
+ OPERATIONDENIED_ACCOUNTDESTROY = "OperationDenied.AccountDestroy"
+
+ // OperationDenied.AccountIsolate
+ OPERATIONDENIED_ACCOUNTISOLATE = "OperationDenied.AccountIsolate"
+
+ // OperationDenied.AccountNotExists
+ OPERATIONDENIED_ACCOUNTNOTEXISTS = "OperationDenied.AccountNotExists"
+
+ // OperationDenied.AnalysisSwitchClose
+ OPERATIONDENIED_ANALYSISSWITCHCLOSE = "OperationDenied.AnalysisSwitchClose"
+
+ // OperationDenied.NewSyntaxNotSupported
+ OPERATIONDENIED_NEWSYNTAXNOTSUPPORTED = "OperationDenied.NewSyntaxNotSupported"
+
+ // OperationDenied.OperationNotSupportInSearchLow
+ OPERATIONDENIED_OPERATIONNOTSUPPORTINSEARCHLOW = "OperationDenied.OperationNotSupportInSearchLow"
+
// 请求的次数超过了频率限制。
REQUESTLIMITEXCEEDED = "RequestLimitExceeded"
@@ -179,6 +251,18 @@ const (
// 资源不存在。
RESOURCENOTFOUND = "ResourceNotFound"
+ // ResourceNotFound.ExportNotExist
+ RESOURCENOTFOUND_EXPORTNOTEXIST = "ResourceNotFound.ExportNotExist"
+
+ // ResourceNotFound.LogsetNotExist
+ RESOURCENOTFOUND_LOGSETNOTEXIST = "ResourceNotFound.LogsetNotExist"
+
+ // ResourceNotFound.NotFound
+ RESOURCENOTFOUND_NOTFOUND = "ResourceNotFound.NotFound"
+
+ // ResourceNotFound.TopicNotExist
+ RESOURCENOTFOUND_TOPICNOTEXIST = "ResourceNotFound.TopicNotExist"
+
// 资源不可用。
RESOURCEUNAVAILABLE = "ResourceUnavailable"
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 4e4f648739..6198fec510 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
@@ -1,4 +1,4 @@
-// Copyright (c) 2017-2018 THL A29 Limited, a Tencent company. All Rights Reserved.
+// Copyright (c) 2017-2025 Tencent. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -557,6 +557,9 @@ type AddCustomRuleRequestParams struct {
// 匹配条件的逻辑关系,支持and、or,分别表示多个逻辑匹配条件是与、或的关系
LogicalOp *string `json:"LogicalOp,omitnil,omitempty" name:"LogicalOp"`
+
+ // 按照动作灰度的比例,默认是100
+ ActionRatio *uint64 `json:"ActionRatio,omitnil,omitempty" name:"ActionRatio"`
}
type AddCustomRuleRequest struct {
@@ -612,6 +615,9 @@ type AddCustomRuleRequest struct {
// 匹配条件的逻辑关系,支持and、or,分别表示多个逻辑匹配条件是与、或的关系
LogicalOp *string `json:"LogicalOp,omitnil,omitempty" name:"LogicalOp"`
+
+ // 按照动作灰度的比例,默认是100
+ ActionRatio *uint64 `json:"ActionRatio,omitnil,omitempty" name:"ActionRatio"`
}
func (r *AddCustomRuleRequest) ToJsonString() string {
@@ -643,6 +649,7 @@ func (r *AddCustomRuleRequest) FromJsonString(s string) error {
delete(f, "Status")
delete(f, "PageId")
delete(f, "LogicalOp")
+ delete(f, "ActionRatio")
if len(f) > 0 {
return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "AddCustomRuleRequest has unknown keys!", "")
}
@@ -928,6 +935,18 @@ type AddSpartaProtectionRequestParams struct {
// 必填项,域名所属实例id
InstanceID *string `json:"InstanceID,omitnil,omitempty" name:"InstanceID"`
+ // 是否开启HTTP强制跳转到HTTPS。0:不强制跳转1:开启强制跳转
+ HttpsRewrite *int64 `json:"HttpsRewrite,omitnil,omitempty" name:"HttpsRewrite"`
+
+ // 是否开启HTTP2,需要开启HTTPS协议支持。0:关闭1:开启
+ IsHttp2 *int64 `json:"IsHttp2,omitnil,omitempty" name:"IsHttp2"`
+
+ // 是否开启主动健康检测。0:不开启1:开启
+ ActiveCheck *int64 `json:"ActiveCheck,omitnil,omitempty" name:"ActiveCheck"`
+
+ // 加密套件模板。0:不支持选择,使用默认模板 1:通用型模板 2:安全型模板3:自定义模板
+ CipherTemplate *int64 `json:"CipherTemplate,omitnil,omitempty" name:"CipherTemplate"`
+
// CertType为1时,需要填充此参数,表示自有证书的证书链
Cert *string `json:"Cert,omitnil,omitempty" name:"Cert"`
@@ -937,7 +956,9 @@ type AddSpartaProtectionRequestParams struct {
// CertType为2时,需要填充此参数,表示腾讯云SSL平台托管的证书id
SSLId *string `json:"SSLId,omitnil,omitempty" name:"SSLId"`
- // 待废弃,可不填。Waf的资源ID。
+ // Waf的资源ID。
+ //
+ // Deprecated: ResourceId is deprecated.
ResourceId *string `json:"ResourceId,omitnil,omitempty" name:"ResourceId"`
// IsCdn为3时,需要填此参数,表示自定义header
@@ -951,58 +972,47 @@ type AddSpartaProtectionRequestParams struct {
// HTTPS回源端口,仅UpstreamScheme为http时需要填当前字段
HttpsUpstreamPort *string `json:"HttpsUpstreamPort,omitnil,omitempty" name:"HttpsUpstreamPort"`
- // 待废弃,可不填。是否开启灰度,0表示不开启灰度。
+ // 是否开启灰度,0表示不开启灰度。
+ //
+ // Deprecated: IsGray is deprecated.
IsGray *int64 `json:"IsGray,omitnil,omitempty" name:"IsGray"`
- // 待废弃,可不填。灰度的地区
+ // 灰度的地区
+ //
+ // Deprecated: GrayAreas is deprecated.
GrayAreas []*string `json:"GrayAreas,omitnil,omitempty" name:"GrayAreas"`
- // 必填项,是否开启HTTP强制跳转到HTTPS。
- // 0:不强制跳转
- // 1:开启强制跳转
- HttpsRewrite *int64 `json:"HttpsRewrite,omitnil,omitempty" name:"HttpsRewrite"`
-
// 域名回源时的回源域名。UpstreamType为1时,需要填充此字段
UpstreamDomain *string `json:"UpstreamDomain,omitnil,omitempty" name:"UpstreamDomain"`
// IP回源时的回源IP列表。UpstreamType为0时,需要填充此字段
SrcList []*string `json:"SrcList,omitnil,omitempty" name:"SrcList"`
- // 必填项,是否开启HTTP2,需要开启HTTPS协议支持。
- // 0:关闭
- // 1:开启
- IsHttp2 *int64 `json:"IsHttp2,omitnil,omitempty" name:"IsHttp2"`
-
- // 待废弃,可不填。WAF实例类型。
+ // WAF实例类型。
// sparta-waf:SAAS型WAF
// clb-waf:负载均衡型WAF
// cdn-waf:CDN上的Web防护能力
+ //
+ // Deprecated: Edition is deprecated.
Edition *string `json:"Edition,omitnil,omitempty" name:"Edition"`
- // 待废弃,目前填0即可。anycast IP类型开关: 0 普通IP 1 Anycast IP
+ // 目前填0即可。anycast IP类型开关: 0 普通IP 1 Anycast IP
+ //
+ // Deprecated: Anycast is deprecated.
Anycast *int64 `json:"Anycast,omitnil,omitempty" name:"Anycast"`
// 回源IP列表各IP的权重,和SrcList一一对应。当且仅当UpstreamType为0,并且SrcList有多个IP,并且LoadBalance为2时需要填写,否则填 []
Weights []*int64 `json:"Weights,omitnil,omitempty" name:"Weights"`
- // 必填项,是否开启主动健康检测。
- // 0:不开启
- // 1:开启
- ActiveCheck *int64 `json:"ActiveCheck,omitnil,omitempty" name:"ActiveCheck"`
-
// TLS版本信息
TLSVersion *int64 `json:"TLSVersion,omitnil,omitempty" name:"TLSVersion"`
- // 必填项,加密套件模板。
- // 0:不支持选择,使用默认模板
- // 1:通用型模板
- // 2:安全型模板
- // 3:自定义模板
- CipherTemplate *int64 `json:"CipherTemplate,omitnil,omitempty" name:"CipherTemplate"`
-
// 自定义的加密套件列表。CipherTemplate为3时需要填此字段,表示自定义的加密套件,值通过DescribeCiphersDetail接口获取。
Ciphers []*int64 `json:"Ciphers,omitnil,omitempty" name:"Ciphers"`
+ // WAF与源站的连接超时,默认10s。
+ ProxyConnectTimeout *int64 `json:"ProxyConnectTimeout,omitnil,omitempty" name:"ProxyConnectTimeout"`
+
// WAF与源站的读超时时间,默认300s。
ProxyReadTimeout *int64 `json:"ProxyReadTimeout,omitnil,omitempty" name:"ProxyReadTimeout"`
@@ -1060,6 +1070,12 @@ type AddSpartaProtectionRequestParams struct {
// 分流回源时生效,分流回源的规则。
UpstreamRules []*UpstreamRule `json:"UpstreamRules,omitnil,omitempty" name:"UpstreamRules"`
+
+ // 业务场景。0:默认值,表示常规业务场景 1:大模型业务场景
+ UseCase *int64 `json:"UseCase,omitnil,omitempty" name:"UseCase"`
+
+ // gzip开关。0:关闭 1:默认值,打开。
+ Gzip *int64 `json:"Gzip,omitnil,omitempty" name:"Gzip"`
}
type AddSpartaProtectionRequest struct {
@@ -1113,6 +1129,18 @@ type AddSpartaProtectionRequest struct {
// 必填项,域名所属实例id
InstanceID *string `json:"InstanceID,omitnil,omitempty" name:"InstanceID"`
+ // 是否开启HTTP强制跳转到HTTPS。0:不强制跳转1:开启强制跳转
+ HttpsRewrite *int64 `json:"HttpsRewrite,omitnil,omitempty" name:"HttpsRewrite"`
+
+ // 是否开启HTTP2,需要开启HTTPS协议支持。0:关闭1:开启
+ IsHttp2 *int64 `json:"IsHttp2,omitnil,omitempty" name:"IsHttp2"`
+
+ // 是否开启主动健康检测。0:不开启1:开启
+ ActiveCheck *int64 `json:"ActiveCheck,omitnil,omitempty" name:"ActiveCheck"`
+
+ // 加密套件模板。0:不支持选择,使用默认模板 1:通用型模板 2:安全型模板3:自定义模板
+ CipherTemplate *int64 `json:"CipherTemplate,omitnil,omitempty" name:"CipherTemplate"`
+
// CertType为1时,需要填充此参数,表示自有证书的证书链
Cert *string `json:"Cert,omitnil,omitempty" name:"Cert"`
@@ -1122,7 +1150,7 @@ type AddSpartaProtectionRequest struct {
// CertType为2时,需要填充此参数,表示腾讯云SSL平台托管的证书id
SSLId *string `json:"SSLId,omitnil,omitempty" name:"SSLId"`
- // 待废弃,可不填。Waf的资源ID。
+ // Waf的资源ID。
ResourceId *string `json:"ResourceId,omitnil,omitempty" name:"ResourceId"`
// IsCdn为3时,需要填此参数,表示自定义header
@@ -1136,58 +1164,39 @@ type AddSpartaProtectionRequest struct {
// HTTPS回源端口,仅UpstreamScheme为http时需要填当前字段
HttpsUpstreamPort *string `json:"HttpsUpstreamPort,omitnil,omitempty" name:"HttpsUpstreamPort"`
- // 待废弃,可不填。是否开启灰度,0表示不开启灰度。
+ // 是否开启灰度,0表示不开启灰度。
IsGray *int64 `json:"IsGray,omitnil,omitempty" name:"IsGray"`
- // 待废弃,可不填。灰度的地区
+ // 灰度的地区
GrayAreas []*string `json:"GrayAreas,omitnil,omitempty" name:"GrayAreas"`
- // 必填项,是否开启HTTP强制跳转到HTTPS。
- // 0:不强制跳转
- // 1:开启强制跳转
- HttpsRewrite *int64 `json:"HttpsRewrite,omitnil,omitempty" name:"HttpsRewrite"`
-
// 域名回源时的回源域名。UpstreamType为1时,需要填充此字段
UpstreamDomain *string `json:"UpstreamDomain,omitnil,omitempty" name:"UpstreamDomain"`
// IP回源时的回源IP列表。UpstreamType为0时,需要填充此字段
SrcList []*string `json:"SrcList,omitnil,omitempty" name:"SrcList"`
- // 必填项,是否开启HTTP2,需要开启HTTPS协议支持。
- // 0:关闭
- // 1:开启
- IsHttp2 *int64 `json:"IsHttp2,omitnil,omitempty" name:"IsHttp2"`
-
- // 待废弃,可不填。WAF实例类型。
+ // WAF实例类型。
// sparta-waf:SAAS型WAF
// clb-waf:负载均衡型WAF
// cdn-waf:CDN上的Web防护能力
Edition *string `json:"Edition,omitnil,omitempty" name:"Edition"`
- // 待废弃,目前填0即可。anycast IP类型开关: 0 普通IP 1 Anycast IP
+ // 目前填0即可。anycast IP类型开关: 0 普通IP 1 Anycast IP
Anycast *int64 `json:"Anycast,omitnil,omitempty" name:"Anycast"`
// 回源IP列表各IP的权重,和SrcList一一对应。当且仅当UpstreamType为0,并且SrcList有多个IP,并且LoadBalance为2时需要填写,否则填 []
Weights []*int64 `json:"Weights,omitnil,omitempty" name:"Weights"`
- // 必填项,是否开启主动健康检测。
- // 0:不开启
- // 1:开启
- ActiveCheck *int64 `json:"ActiveCheck,omitnil,omitempty" name:"ActiveCheck"`
-
// TLS版本信息
TLSVersion *int64 `json:"TLSVersion,omitnil,omitempty" name:"TLSVersion"`
- // 必填项,加密套件模板。
- // 0:不支持选择,使用默认模板
- // 1:通用型模板
- // 2:安全型模板
- // 3:自定义模板
- CipherTemplate *int64 `json:"CipherTemplate,omitnil,omitempty" name:"CipherTemplate"`
-
// 自定义的加密套件列表。CipherTemplate为3时需要填此字段,表示自定义的加密套件,值通过DescribeCiphersDetail接口获取。
Ciphers []*int64 `json:"Ciphers,omitnil,omitempty" name:"Ciphers"`
+ // WAF与源站的连接超时,默认10s。
+ ProxyConnectTimeout *int64 `json:"ProxyConnectTimeout,omitnil,omitempty" name:"ProxyConnectTimeout"`
+
// WAF与源站的读超时时间,默认300s。
ProxyReadTimeout *int64 `json:"ProxyReadTimeout,omitnil,omitempty" name:"ProxyReadTimeout"`
@@ -1245,6 +1254,12 @@ type AddSpartaProtectionRequest struct {
// 分流回源时生效,分流回源的规则。
UpstreamRules []*UpstreamRule `json:"UpstreamRules,omitnil,omitempty" name:"UpstreamRules"`
+
+ // 业务场景。0:默认值,表示常规业务场景 1:大模型业务场景
+ UseCase *int64 `json:"UseCase,omitnil,omitempty" name:"UseCase"`
+
+ // gzip开关。0:关闭 1:默认值,打开。
+ Gzip *int64 `json:"Gzip,omitnil,omitempty" name:"Gzip"`
}
func (r *AddSpartaProtectionRequest) ToJsonString() string {
@@ -1268,6 +1283,10 @@ func (r *AddSpartaProtectionRequest) FromJsonString(s string) error {
delete(f, "Ports")
delete(f, "IsKeepAlive")
delete(f, "InstanceID")
+ delete(f, "HttpsRewrite")
+ delete(f, "IsHttp2")
+ delete(f, "ActiveCheck")
+ delete(f, "CipherTemplate")
delete(f, "Cert")
delete(f, "PrivateKey")
delete(f, "SSLId")
@@ -1277,17 +1296,14 @@ func (r *AddSpartaProtectionRequest) FromJsonString(s string) error {
delete(f, "HttpsUpstreamPort")
delete(f, "IsGray")
delete(f, "GrayAreas")
- delete(f, "HttpsRewrite")
delete(f, "UpstreamDomain")
delete(f, "SrcList")
- delete(f, "IsHttp2")
delete(f, "Edition")
delete(f, "Anycast")
delete(f, "Weights")
- delete(f, "ActiveCheck")
delete(f, "TLSVersion")
- delete(f, "CipherTemplate")
delete(f, "Ciphers")
+ delete(f, "ProxyConnectTimeout")
delete(f, "ProxyReadTimeout")
delete(f, "ProxySendTimeout")
delete(f, "SniType")
@@ -1306,6 +1322,8 @@ func (r *AddSpartaProtectionRequest) FromJsonString(s string) error {
delete(f, "GmSSLId")
delete(f, "UpstreamPolicy")
delete(f, "UpstreamRules")
+ delete(f, "UseCase")
+ delete(f, "Gzip")
if len(f) > 0 {
return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "AddSpartaProtectionRequest has unknown keys!", "")
}
@@ -1334,6 +1352,14 @@ func (r *AddSpartaProtectionResponse) FromJsonString(s string) error {
return json.Unmarshal([]byte(s), &r)
}
+type AnonymousInfo struct {
+ // 操作列表,支持trackLog(JS/HTTP上传日志 )和realtimeProducer(kafka协议上传日志)
+ Operations []*string `json:"Operations,omitnil,omitempty" name:"Operations"`
+
+ // 条件列表
+ Conditions []*ConditionInfo `json:"Conditions,omitnil,omitempty" name:"Conditions"`
+}
+
type ApiAsset struct {
// 域名
Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
@@ -1393,6 +1419,9 @@ type ApiDataFilter struct {
// 日期,手机号,邮箱等
Value *string `json:"Value,omitnil,omitempty" name:"Value"`
+
+ // 风险等级
+ ValueList []*string `json:"ValueList,omitnil,omitempty" name:"ValueList"`
}
type ApiDetailSampleHistory struct {
@@ -1546,6 +1575,14 @@ type AutoDenyDetail struct {
LastUpdateTime *string `json:"LastUpdateTime,omitnil,omitempty" name:"LastUpdateTime"`
}
+type BatchDomainResult struct {
+ // 批量操作中失败的域名
+ Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
+
+ // 操作失败的原因
+ Message *string `json:"Message,omitnil,omitempty" name:"Message"`
+}
+
type BatchIpAccessControlData struct {
// 总数
TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`
@@ -1986,6 +2023,9 @@ type BotToken struct {
// 优先级
Priority *int64 `json:"Priority,omitnil,omitempty" name:"Priority"`
+
+ // token有效性配置信息
+ TokenValidation *TokenValidation `json:"TokenValidation,omitnil,omitempty" name:"TokenValidation"`
}
type CCRuleData struct {
@@ -2083,7 +2123,7 @@ type CCRuleItems struct {
// 版本
TsVersion *uint64 `json:"TsVersion,omitnil,omitempty" name:"TsVersion"`
- // 规则详情
+ // key为匹配字段;args为base64编码后的参数,等于号前为匹配参数,等于号后为匹配内容;match为逻辑符号;encodeflag为参数内容是否编码
Options *string `json:"Options,omitnil,omitempty" name:"Options"`
// 规则ID
@@ -2106,6 +2146,12 @@ type CCRuleItems struct {
// 逻辑操作符
LogicalOp *string `json:"LogicalOp,omitnil,omitempty" name:"LogicalOp"`
+
+ // 页面ID
+ PageId *string `json:"PageId,omitnil,omitempty" name:"PageId"`
+
+ // 动作灰度比例,默认值100
+ ActionRatio *uint64 `json:"ActionRatio,omitnil,omitempty" name:"ActionRatio"`
}
type CCRuleLists struct {
@@ -2203,6 +2249,9 @@ type ClbDomainsInfo struct {
// 域名标签
Labels []*string `json:"Labels,omitnil,omitempty" name:"Labels"`
+
+ // clbwaf接入状态,0代表“尚无流量接入”,1代表“流量接入”,2代表“CLB监听器已注销”,3代表“配置生效中”,4代表“配置下发失败中”
+ AccessStatus *int64 `json:"AccessStatus,omitnil,omitempty" name:"AccessStatus"`
}
type ClbObject struct {
@@ -2296,6 +2345,14 @@ type ClbWafRegionItem struct {
Code *string `json:"Code,omitnil,omitempty" name:"Code"`
}
+type Column struct {
+ // 列的名字
+ Name *string `json:"Name,omitnil,omitempty" name:"Name"`
+
+ // 列的属性
+ Type *string `json:"Type,omitnil,omitempty" name:"Type"`
+}
+
type CommonRspData struct {
// 操作结果
Code *int64 `json:"Code,omitnil,omitempty" name:"Code"`
@@ -2304,6 +2361,17 @@ type CommonRspData struct {
Msg *string `json:"Msg,omitnil,omitempty" name:"Msg"`
}
+type ConditionInfo struct {
+ // 条件属性,目前只支持VpcID
+ Attributes *string `json:"Attributes,omitnil,omitempty" name:"Attributes"`
+
+ // 条件规则,1:等于,2:不等于
+ Rule *uint64 `json:"Rule,omitnil,omitempty" name:"Rule"`
+
+ // 对应条件属性的值
+ ConditionValue *string `json:"ConditionValue,omitnil,omitempty" name:"ConditionValue"`
+}
+
// Predefined struct for user
type CreateAccessExportRequestParams struct {
// 客户要查询的日志主题ID,每个客户都有对应的一个主题
@@ -2485,6 +2553,108 @@ func (r *CreateAreaBanRuleResponse) FromJsonString(s string) error {
return json.Unmarshal([]byte(s), &r)
}
+// Predefined struct for user
+type CreateBatchIpAccessControlRequestParams struct {
+ // IP参数列表
+ IpList []*string `json:"IpList,omitnil,omitempty" name:"IpList"`
+
+ // 规则执行的方式,TimedJob为定时执行,CronJob为周期执行
+ JobType *string `json:"JobType,omitnil,omitempty" name:"JobType"`
+
+ // 定时任务配置
+ JobDateTime *JobDateTime `json:"JobDateTime,omitnil,omitempty" name:"JobDateTime"`
+
+ // 42为黑名单,40为白名单
+ ActionType *int64 `json:"ActionType,omitnil,omitempty" name:"ActionType"`
+
+ // 防护对象组ID列表,如果绑定的是防护对象组,和Domains参数二选一
+ GroupIds []*uint64 `json:"GroupIds,omitnil,omitempty" name:"GroupIds"`
+
+ // 域名列表,如果绑定的是批量域名,和GroupIds参数二选一
+ Domains []*string `json:"Domains,omitnil,omitempty" name:"Domains"`
+
+ // 备注
+ Note *string `json:"Note,omitnil,omitempty" name:"Note"`
+}
+
+type CreateBatchIpAccessControlRequest struct {
+ *tchttp.BaseRequest
+
+ // IP参数列表
+ IpList []*string `json:"IpList,omitnil,omitempty" name:"IpList"`
+
+ // 规则执行的方式,TimedJob为定时执行,CronJob为周期执行
+ JobType *string `json:"JobType,omitnil,omitempty" name:"JobType"`
+
+ // 定时任务配置
+ JobDateTime *JobDateTime `json:"JobDateTime,omitnil,omitempty" name:"JobDateTime"`
+
+ // 42为黑名单,40为白名单
+ ActionType *int64 `json:"ActionType,omitnil,omitempty" name:"ActionType"`
+
+ // 防护对象组ID列表,如果绑定的是防护对象组,和Domains参数二选一
+ GroupIds []*uint64 `json:"GroupIds,omitnil,omitempty" name:"GroupIds"`
+
+ // 域名列表,如果绑定的是批量域名,和GroupIds参数二选一
+ Domains []*string `json:"Domains,omitnil,omitempty" name:"Domains"`
+
+ // 备注
+ Note *string `json:"Note,omitnil,omitempty" name:"Note"`
+}
+
+func (r *CreateBatchIpAccessControlRequest) 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 *CreateBatchIpAccessControlRequest) FromJsonString(s string) error {
+ f := make(map[string]interface{})
+ if err := json.Unmarshal([]byte(s), &f); err != nil {
+ return err
+ }
+ delete(f, "IpList")
+ delete(f, "JobType")
+ delete(f, "JobDateTime")
+ delete(f, "ActionType")
+ delete(f, "GroupIds")
+ delete(f, "Domains")
+ delete(f, "Note")
+ if len(f) > 0 {
+ return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateBatchIpAccessControlRequest has unknown keys!", "")
+ }
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type CreateBatchIpAccessControlResponseParams struct {
+ // 添加失败的域名列表,如果非空则表示有域名添加失败,整个批量规则添加失败,否则则表示批量规则添加成功。
+ Failed []*BatchDomainResult `json:"Failed,omitnil,omitempty" name:"Failed"`
+
+ // 添加成功的批量规则ID
+ RuleId *uint64 `json:"RuleId,omitnil,omitempty" name:"RuleId"`
+
+ // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
+ RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
+}
+
+type CreateBatchIpAccessControlResponse struct {
+ *tchttp.BaseResponse
+ Response *CreateBatchIpAccessControlResponseParams `json:"Response"`
+}
+
+func (r *CreateBatchIpAccessControlResponse) 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 *CreateBatchIpAccessControlResponse) FromJsonString(s string) error {
+ return json.Unmarshal([]byte(s), &r)
+}
+
type CreateDealsGoods struct {
// 商品数量
GoodsNum *int64 `json:"GoodsNum,omitnil,omitempty" name:"GoodsNum"`
@@ -2653,74 +2823,189 @@ func (r *CreateDealsResponse) FromJsonString(s string) error {
}
// Predefined struct for user
-type CreateHostRequestParams struct {
- // 防护域名配置信息。内网负载均衡器必须携带对应的NumericalVpcId。
- Host *HostRecord `json:"Host,omitnil,omitempty" name:"Host"`
+type CreateExportRequestParams struct {
+ // 日志主题ID,可以通过DescribeTopics接口获取,访问日志主题ID和攻击日志主题ID方式不同,注意DescribeTopics接口使用方法
+ TopicId *string `json:"TopicId,omitnil,omitempty" name:"TopicId"`
- // 实例id
- InstanceID *string `json:"InstanceID,omitnil,omitempty" name:"InstanceID"`
+ // 日志导出数量, 最大值5000万
+ Count *uint64 `json:"Count,omitnil,omitempty" name:"Count"`
+
+ // 日志导出检索语句,需要进行base64编码,不支持[SQL语句]
+ Query *string `json:"Query,omitnil,omitempty" name:"Query"`
+
+ // 日志导出起始时间,毫秒时间戳
+ From *int64 `json:"From,omitnil,omitempty" name:"From"`
+
+ // 日志导出结束时间,毫秒时间戳
+ To *int64 `json:"To,omitnil,omitempty" name:"To"`
+
+ // 日志导出时间排序。desc,asc,默认为desc
+ Order *string `json:"Order,omitnil,omitempty" name:"Order"`
+
+ // 日志导出数据格式。json,csv,默认为json
+ Format *string `json:"Format,omitnil,omitempty" name:"Format"`
+
+ // 语法规则, 默认值为0。
+ // 0:Lucene语法,1:CQL语法。
+ SyntaxRule *uint64 `json:"SyntaxRule,omitnil,omitempty" name:"SyntaxRule"`
+
+ // 导出字段
+ DerivedFields []*string `json:"DerivedFields,omitnil,omitempty" name:"DerivedFields"`
}
-type CreateHostRequest struct {
+type CreateExportRequest struct {
*tchttp.BaseRequest
- // 防护域名配置信息。内网负载均衡器必须携带对应的NumericalVpcId。
- Host *HostRecord `json:"Host,omitnil,omitempty" name:"Host"`
+ // 日志主题ID,可以通过DescribeTopics接口获取,访问日志主题ID和攻击日志主题ID方式不同,注意DescribeTopics接口使用方法
+ TopicId *string `json:"TopicId,omitnil,omitempty" name:"TopicId"`
- // 实例id
- InstanceID *string `json:"InstanceID,omitnil,omitempty" name:"InstanceID"`
+ // 日志导出数量, 最大值5000万
+ Count *uint64 `json:"Count,omitnil,omitempty" name:"Count"`
+
+ // 日志导出检索语句,需要进行base64编码,不支持[SQL语句]
+ Query *string `json:"Query,omitnil,omitempty" name:"Query"`
+
+ // 日志导出起始时间,毫秒时间戳
+ From *int64 `json:"From,omitnil,omitempty" name:"From"`
+
+ // 日志导出结束时间,毫秒时间戳
+ To *int64 `json:"To,omitnil,omitempty" name:"To"`
+
+ // 日志导出时间排序。desc,asc,默认为desc
+ Order *string `json:"Order,omitnil,omitempty" name:"Order"`
+
+ // 日志导出数据格式。json,csv,默认为json
+ Format *string `json:"Format,omitnil,omitempty" name:"Format"`
+
+ // 语法规则, 默认值为0。
+ // 0:Lucene语法,1:CQL语法。
+ SyntaxRule *uint64 `json:"SyntaxRule,omitnil,omitempty" name:"SyntaxRule"`
+
+ // 导出字段
+ DerivedFields []*string `json:"DerivedFields,omitnil,omitempty" name:"DerivedFields"`
}
-func (r *CreateHostRequest) ToJsonString() string {
+func (r *CreateExportRequest) 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 *CreateHostRequest) FromJsonString(s string) error {
+func (r *CreateExportRequest) FromJsonString(s string) error {
f := make(map[string]interface{})
if err := json.Unmarshal([]byte(s), &f); err != nil {
return err
}
- delete(f, "Host")
- delete(f, "InstanceID")
+ delete(f, "TopicId")
+ delete(f, "Count")
+ delete(f, "Query")
+ delete(f, "From")
+ delete(f, "To")
+ delete(f, "Order")
+ delete(f, "Format")
+ delete(f, "SyntaxRule")
+ delete(f, "DerivedFields")
if len(f) > 0 {
- return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateHostRequest has unknown keys!", "")
+ return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateExportRequest has unknown keys!", "")
}
return json.Unmarshal([]byte(s), &r)
}
// Predefined struct for user
-type CreateHostResponseParams struct {
- // 新增防护域名ID
- DomainId *string `json:"DomainId,omitnil,omitempty" name:"DomainId"`
+type CreateExportResponseParams struct {
+ // 日志导出ID。
+ ExportId *string `json:"ExportId,omitnil,omitempty" name:"ExportId"`
// 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}
-type CreateHostResponse struct {
+type CreateExportResponse struct {
*tchttp.BaseResponse
- Response *CreateHostResponseParams `json:"Response"`
+ Response *CreateExportResponseParams `json:"Response"`
}
-func (r *CreateHostResponse) ToJsonString() string {
+func (r *CreateExportResponse) 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 *CreateHostResponse) FromJsonString(s string) error {
+func (r *CreateExportResponse) FromJsonString(s string) error {
return json.Unmarshal([]byte(s), &r)
}
// Predefined struct for user
-type CreateIpAccessControlRequestParams struct {
- // 具体域名如:test.qcloudwaf.com
- // 全局域名为:global
- Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
+type CreateHostRequestParams struct {
+ // 防护域名配置信息。内网负载均衡器必须携带对应的NumericalVpcId。
+ Host *HostRecord `json:"Host,omitnil,omitempty" name:"Host"`
+
+ // 实例id
+ InstanceID *string `json:"InstanceID,omitnil,omitempty" name:"InstanceID"`
+}
+
+type CreateHostRequest struct {
+ *tchttp.BaseRequest
+
+ // 防护域名配置信息。内网负载均衡器必须携带对应的NumericalVpcId。
+ Host *HostRecord `json:"Host,omitnil,omitempty" name:"Host"`
+
+ // 实例id
+ InstanceID *string `json:"InstanceID,omitnil,omitempty" name:"InstanceID"`
+}
+
+func (r *CreateHostRequest) 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 *CreateHostRequest) FromJsonString(s string) error {
+ f := make(map[string]interface{})
+ if err := json.Unmarshal([]byte(s), &f); err != nil {
+ return err
+ }
+ delete(f, "Host")
+ delete(f, "InstanceID")
+ if len(f) > 0 {
+ return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateHostRequest has unknown keys!", "")
+ }
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type CreateHostResponseParams struct {
+ // 新增防护域名ID
+ DomainId *string `json:"DomainId,omitnil,omitempty" name:"DomainId"`
+
+ // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
+ RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
+}
+
+type CreateHostResponse struct {
+ *tchttp.BaseResponse
+ Response *CreateHostResponseParams `json:"Response"`
+}
+
+func (r *CreateHostResponse) 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 *CreateHostResponse) FromJsonString(s string) error {
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type CreateIpAccessControlRequestParams struct {
+ // 具体域名如:test.qcloudwaf.com
+ // 全局域名为:global
+ Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
// ip参数列表
IpList []*string `json:"IpList,omitnil,omitempty" name:"IpList"`
@@ -2840,6 +3125,119 @@ func (r *CreateIpAccessControlResponse) FromJsonString(s string) error {
return json.Unmarshal([]byte(s), &r)
}
+// Predefined struct for user
+type CreateOwaspWhiteRuleRequestParams struct {
+ // 规则名称
+ Name *string `json:"Name,omitnil,omitempty" name:"Name"`
+
+ // 域名
+ Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
+
+ // 规则匹配策略列表
+ Strategies []*Strategy `json:"Strategies,omitnil,omitempty" name:"Strategies"`
+
+ // 加白的规则ID列表
+ Ids []*uint64 `json:"Ids,omitnil,omitempty" name:"Ids"`
+
+ // 加白的类型,0:按照特定规则ID加白, 1:按照规则类型加白
+ Type *int64 `json:"Type,omitnil,omitempty" name:"Type"`
+
+ // 规则执行的方式,TimedJob为定时执行,CronJob为周期执行
+ JobType *string `json:"JobType,omitnil,omitempty" name:"JobType"`
+
+ // 定时任务配置
+ JobDateTime *JobDateTime `json:"JobDateTime,omitnil,omitempty" name:"JobDateTime"`
+
+ // 如果没有设置JobDateTime字段则用此字段,0表示永久生效,其它表示定时生效的截止时间(单位为秒)
+ ExpireTime *uint64 `json:"ExpireTime,omitnil,omitempty" name:"ExpireTime"`
+
+ // 规则状态,0:关闭、1:开启,默认为开启
+ Status *uint64 `json:"Status,omitnil,omitempty" name:"Status"`
+}
+
+type CreateOwaspWhiteRuleRequest struct {
+ *tchttp.BaseRequest
+
+ // 规则名称
+ Name *string `json:"Name,omitnil,omitempty" name:"Name"`
+
+ // 域名
+ Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
+
+ // 规则匹配策略列表
+ Strategies []*Strategy `json:"Strategies,omitnil,omitempty" name:"Strategies"`
+
+ // 加白的规则ID列表
+ Ids []*uint64 `json:"Ids,omitnil,omitempty" name:"Ids"`
+
+ // 加白的类型,0:按照特定规则ID加白, 1:按照规则类型加白
+ Type *int64 `json:"Type,omitnil,omitempty" name:"Type"`
+
+ // 规则执行的方式,TimedJob为定时执行,CronJob为周期执行
+ JobType *string `json:"JobType,omitnil,omitempty" name:"JobType"`
+
+ // 定时任务配置
+ JobDateTime *JobDateTime `json:"JobDateTime,omitnil,omitempty" name:"JobDateTime"`
+
+ // 如果没有设置JobDateTime字段则用此字段,0表示永久生效,其它表示定时生效的截止时间(单位为秒)
+ ExpireTime *uint64 `json:"ExpireTime,omitnil,omitempty" name:"ExpireTime"`
+
+ // 规则状态,0:关闭、1:开启,默认为开启
+ Status *uint64 `json:"Status,omitnil,omitempty" name:"Status"`
+}
+
+func (r *CreateOwaspWhiteRuleRequest) 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 *CreateOwaspWhiteRuleRequest) FromJsonString(s string) error {
+ f := make(map[string]interface{})
+ if err := json.Unmarshal([]byte(s), &f); err != nil {
+ return err
+ }
+ delete(f, "Name")
+ delete(f, "Domain")
+ delete(f, "Strategies")
+ delete(f, "Ids")
+ delete(f, "Type")
+ delete(f, "JobType")
+ delete(f, "JobDateTime")
+ delete(f, "ExpireTime")
+ delete(f, "Status")
+ if len(f) > 0 {
+ return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateOwaspWhiteRuleRequest has unknown keys!", "")
+ }
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type CreateOwaspWhiteRuleResponseParams struct {
+ // 规则ID
+ RuleId *uint64 `json:"RuleId,omitnil,omitempty" name:"RuleId"`
+
+ // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
+ RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
+}
+
+type CreateOwaspWhiteRuleResponse struct {
+ *tchttp.BaseResponse
+ Response *CreateOwaspWhiteRuleResponseParams `json:"Response"`
+}
+
+func (r *CreateOwaspWhiteRuleResponse) 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 *CreateOwaspWhiteRuleResponse) FromJsonString(s string) error {
+ return json.Unmarshal([]byte(s), &r)
+}
+
// Predefined struct for user
type CreatePostCKafkaFlowRequestParams struct {
// 投递的CKafka所在区域
@@ -3369,6 +3767,60 @@ func (r *DeleteAttackWhiteRuleResponse) FromJsonString(s string) error {
return json.Unmarshal([]byte(s), &r)
}
+// Predefined struct for user
+type DeleteBatchIpAccessControlRequestParams struct {
+ // 规则ID列表,支持批量删除
+ Ids []*uint64 `json:"Ids,omitnil,omitempty" name:"Ids"`
+}
+
+type DeleteBatchIpAccessControlRequest struct {
+ *tchttp.BaseRequest
+
+ // 规则ID列表,支持批量删除
+ Ids []*uint64 `json:"Ids,omitnil,omitempty" name:"Ids"`
+}
+
+func (r *DeleteBatchIpAccessControlRequest) 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 *DeleteBatchIpAccessControlRequest) FromJsonString(s string) error {
+ f := make(map[string]interface{})
+ if err := json.Unmarshal([]byte(s), &f); err != nil {
+ return err
+ }
+ delete(f, "Ids")
+ if len(f) > 0 {
+ return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteBatchIpAccessControlRequest has unknown keys!", "")
+ }
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type DeleteBatchIpAccessControlResponseParams struct {
+ // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
+ RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
+}
+
+type DeleteBatchIpAccessControlResponse struct {
+ *tchttp.BaseResponse
+ Response *DeleteBatchIpAccessControlResponseParams `json:"Response"`
+}
+
+func (r *DeleteBatchIpAccessControlResponse) 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 *DeleteBatchIpAccessControlResponse) FromJsonString(s string) error {
+ return json.Unmarshal([]byte(s), &r)
+}
+
// Predefined struct for user
type DeleteBotSceneUCBRuleRequestParams struct {
// 域名
@@ -3727,6 +4179,60 @@ func (r *DeleteDomainWhiteRulesResponse) FromJsonString(s string) error {
return json.Unmarshal([]byte(s), &r)
}
+// Predefined struct for user
+type DeleteExportRequestParams struct {
+ // 日志导出ID
+ ExportId *string `json:"ExportId,omitnil,omitempty" name:"ExportId"`
+}
+
+type DeleteExportRequest struct {
+ *tchttp.BaseRequest
+
+ // 日志导出ID
+ ExportId *string `json:"ExportId,omitnil,omitempty" name:"ExportId"`
+}
+
+func (r *DeleteExportRequest) 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 *DeleteExportRequest) FromJsonString(s string) error {
+ f := make(map[string]interface{})
+ if err := json.Unmarshal([]byte(s), &f); err != nil {
+ return err
+ }
+ delete(f, "ExportId")
+ if len(f) > 0 {
+ return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteExportRequest has unknown keys!", "")
+ }
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type DeleteExportResponseParams struct {
+ // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
+ RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
+}
+
+type DeleteExportResponse struct {
+ *tchttp.BaseResponse
+ Response *DeleteExportResponseParams `json:"Response"`
+}
+
+func (r *DeleteExportResponse) 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 *DeleteExportResponse) FromJsonString(s string) error {
+ return json.Unmarshal([]byte(s), &r)
+}
+
// Predefined struct for user
type DeleteHostRequestParams struct {
// 删除的域名列表
@@ -3965,12 +4471,134 @@ func (r *DeleteIpAccessControlV2Response) FromJsonString(s string) error {
}
// Predefined struct for user
-type DeleteSessionRequestParams struct {
+type DeleteOwaspRuleStatusRequestParams struct {
// 域名
Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
- // clb-waf 或者 sprta-waf
- Edition *string `json:"Edition,omitnil,omitempty" name:"Edition"`
+ // 规则ID列表
+ RuleIDs []*string `json:"RuleIDs,omitnil,omitempty" name:"RuleIDs"`
+}
+
+type DeleteOwaspRuleStatusRequest struct {
+ *tchttp.BaseRequest
+
+ // 域名
+ Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
+
+ // 规则ID列表
+ RuleIDs []*string `json:"RuleIDs,omitnil,omitempty" name:"RuleIDs"`
+}
+
+func (r *DeleteOwaspRuleStatusRequest) 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 *DeleteOwaspRuleStatusRequest) 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, "RuleIDs")
+ if len(f) > 0 {
+ return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteOwaspRuleStatusRequest has unknown keys!", "")
+ }
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type DeleteOwaspRuleStatusResponseParams struct {
+ // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
+ RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
+}
+
+type DeleteOwaspRuleStatusResponse struct {
+ *tchttp.BaseResponse
+ Response *DeleteOwaspRuleStatusResponseParams `json:"Response"`
+}
+
+func (r *DeleteOwaspRuleStatusResponse) 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 *DeleteOwaspRuleStatusResponse) FromJsonString(s string) error {
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type DeleteOwaspWhiteRuleRequestParams struct {
+ // 规则白名单ID列表
+ Ids []*uint64 `json:"Ids,omitnil,omitempty" name:"Ids"`
+
+ // 域名
+ Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
+}
+
+type DeleteOwaspWhiteRuleRequest struct {
+ *tchttp.BaseRequest
+
+ // 规则白名单ID列表
+ Ids []*uint64 `json:"Ids,omitnil,omitempty" name:"Ids"`
+
+ // 域名
+ Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
+}
+
+func (r *DeleteOwaspWhiteRuleRequest) 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 *DeleteOwaspWhiteRuleRequest) FromJsonString(s string) error {
+ f := make(map[string]interface{})
+ if err := json.Unmarshal([]byte(s), &f); err != nil {
+ return err
+ }
+ delete(f, "Ids")
+ delete(f, "Domain")
+ if len(f) > 0 {
+ return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteOwaspWhiteRuleRequest has unknown keys!", "")
+ }
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type DeleteOwaspWhiteRuleResponseParams struct {
+ // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
+ RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
+}
+
+type DeleteOwaspWhiteRuleResponse struct {
+ *tchttp.BaseResponse
+ Response *DeleteOwaspWhiteRuleResponseParams `json:"Response"`
+}
+
+func (r *DeleteOwaspWhiteRuleResponse) 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 *DeleteOwaspWhiteRuleResponse) FromJsonString(s string) error {
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type DeleteSessionRequestParams struct {
+ // 域名
+ Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
+
+ // clb-waf 或者 sprta-waf
+ Edition *string `json:"Edition,omitnil,omitempty" name:"Edition"`
// 要删除的SessionID
SessionID *int64 `json:"SessionID,omitnil,omitempty" name:"SessionID"`
@@ -4040,11 +4668,11 @@ type DeleteSpartaProtectionRequestParams struct {
// 域名列表
Domains []*string `json:"Domains,omitnil,omitempty" name:"Domains"`
- // 实例类型
- Edition *string `json:"Edition,omitnil,omitempty" name:"Edition"`
-
// 必填项。域名所属实例ID
InstanceID *string `json:"InstanceID,omitnil,omitempty" name:"InstanceID"`
+
+ // 实例类型
+ Edition *string `json:"Edition,omitnil,omitempty" name:"Edition"`
}
type DeleteSpartaProtectionRequest struct {
@@ -4053,11 +4681,11 @@ type DeleteSpartaProtectionRequest struct {
// 域名列表
Domains []*string `json:"Domains,omitnil,omitempty" name:"Domains"`
- // 实例类型
- Edition *string `json:"Edition,omitnil,omitempty" name:"Edition"`
-
// 必填项。域名所属实例ID
InstanceID *string `json:"InstanceID,omitnil,omitempty" name:"InstanceID"`
+
+ // 实例类型
+ Edition *string `json:"Edition,omitnil,omitempty" name:"Edition"`
}
func (r *DeleteSpartaProtectionRequest) ToJsonString() string {
@@ -4073,8 +4701,8 @@ func (r *DeleteSpartaProtectionRequest) FromJsonString(s string) error {
return err
}
delete(f, "Domains")
- delete(f, "Edition")
delete(f, "InstanceID")
+ delete(f, "Edition")
if len(f) > 0 {
return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteSpartaProtectionRequest has unknown keys!", "")
}
@@ -5755,6 +6383,9 @@ type DescribeBotSceneOverviewResponseParams struct {
// 自定义规则总数,不包括BOT白名单
CustomRuleNums *int64 `json:"CustomRuleNums,omitnil,omitempty" name:"CustomRuleNums"`
+ // 图灵盾开关状态
+ TldStatus *bool `json:"TldStatus,omitnil,omitempty" name:"TldStatus"`
+
// 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}
@@ -6512,6 +7143,9 @@ type DescribeCustomRulesRspRuleListItem struct {
// 匹配条件的逻辑关系,支持and、or,分别表示多个逻辑匹配条件是与、或的关系
LogicalOp *string `json:"LogicalOp,omitnil,omitempty" name:"LogicalOp"`
+
+ // 规则灰度的比例,默认是100,不灰度
+ ActionRatio *uint64 `json:"ActionRatio,omitnil,omitempty" name:"ActionRatio"`
}
// Predefined struct for user
@@ -7110,6 +7744,80 @@ func (r *DescribeDomainsResponse) FromJsonString(s string) error {
return json.Unmarshal([]byte(s), &r)
}
+// Predefined struct for user
+type DescribeExportsRequestParams struct {
+ // 日志主题ID,可以通过DescribeTopics接口获取,访问日志主题ID和攻击日志主题ID方式不同,注意DescribeTopics接口使用方法
+ TopicId *string `json:"TopicId,omitnil,omitempty" name:"TopicId"`
+
+ // 分页的偏移量,默认值为0
+ Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`
+
+ // 分页单页限制数目,默认值为20,最大值100
+ Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
+}
+
+type DescribeExportsRequest struct {
+ *tchttp.BaseRequest
+
+ // 日志主题ID,可以通过DescribeTopics接口获取,访问日志主题ID和攻击日志主题ID方式不同,注意DescribeTopics接口使用方法
+ TopicId *string `json:"TopicId,omitnil,omitempty" name:"TopicId"`
+
+ // 分页的偏移量,默认值为0
+ Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`
+
+ // 分页单页限制数目,默认值为20,最大值100
+ Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
+}
+
+func (r *DescribeExportsRequest) 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 *DescribeExportsRequest) FromJsonString(s string) error {
+ f := make(map[string]interface{})
+ if err := json.Unmarshal([]byte(s), &f); err != nil {
+ return err
+ }
+ delete(f, "TopicId")
+ delete(f, "Offset")
+ delete(f, "Limit")
+ if len(f) > 0 {
+ return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeExportsRequest has unknown keys!", "")
+ }
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type DescribeExportsResponseParams struct {
+ // 日志导出列表
+ Exports []*ExportInfo `json:"Exports,omitnil,omitempty" name:"Exports"`
+
+ // 总数目
+ TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`
+
+ // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
+ RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
+}
+
+type DescribeExportsResponse struct {
+ *tchttp.BaseResponse
+ Response *DescribeExportsResponseParams `json:"Response"`
+}
+
+func (r *DescribeExportsResponse) 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 *DescribeExportsResponse) FromJsonString(s string) error {
+ return json.Unmarshal([]byte(s), &r)
+}
+
// Predefined struct for user
type DescribeFindDomainListRequestParams struct {
// 分页
@@ -8021,6 +8729,108 @@ func (r *DescribeIpHitItemsResponse) FromJsonString(s string) error {
return json.Unmarshal([]byte(s), &r)
}
+// Predefined struct for user
+type DescribeLogHistogramRequestParams struct {
+ // 要查询的日志的起始时间,Unix时间戳,单位ms
+ From *int64 `json:"From,omitnil,omitempty" name:"From"`
+
+ // 要查询的日志的结束时间,Unix时间戳,单位ms
+ To *int64 `json:"To,omitnil,omitempty" name:"To"`
+
+ // 查询语句,进行base64编码
+ Query *string `json:"Query,omitnil,omitempty" name:"Query"`
+
+ // 日志主题ID,可以通过DescribeTopics接口获取,访问日志主题ID和攻击日志主题ID方式不同,注意DescribeTopics接口使用方法
+ TopicId *string `json:"TopicId,omitnil,omitempty" name:"TopicId"`
+
+ // 时间间隔: 单位ms 限制性条件:(To-From) / interval <= 200
+ Interval *int64 `json:"Interval,omitnil,omitempty" name:"Interval"`
+
+ // 检索语法规则,默认值为0。
+ // 0:Lucene语法,1:CQL语法。
+ // 详细说明参见检索条件语法规则
+ SyntaxRule *uint64 `json:"SyntaxRule,omitnil,omitempty" name:"SyntaxRule"`
+}
+
+type DescribeLogHistogramRequest struct {
+ *tchttp.BaseRequest
+
+ // 要查询的日志的起始时间,Unix时间戳,单位ms
+ From *int64 `json:"From,omitnil,omitempty" name:"From"`
+
+ // 要查询的日志的结束时间,Unix时间戳,单位ms
+ To *int64 `json:"To,omitnil,omitempty" name:"To"`
+
+ // 查询语句,进行base64编码
+ Query *string `json:"Query,omitnil,omitempty" name:"Query"`
+
+ // 日志主题ID,可以通过DescribeTopics接口获取,访问日志主题ID和攻击日志主题ID方式不同,注意DescribeTopics接口使用方法
+ TopicId *string `json:"TopicId,omitnil,omitempty" name:"TopicId"`
+
+ // 时间间隔: 单位ms 限制性条件:(To-From) / interval <= 200
+ Interval *int64 `json:"Interval,omitnil,omitempty" name:"Interval"`
+
+ // 检索语法规则,默认值为0。
+ // 0:Lucene语法,1:CQL语法。
+ // 详细说明参见检索条件语法规则
+ SyntaxRule *uint64 `json:"SyntaxRule,omitnil,omitempty" name:"SyntaxRule"`
+}
+
+func (r *DescribeLogHistogramRequest) 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 *DescribeLogHistogramRequest) FromJsonString(s string) error {
+ f := make(map[string]interface{})
+ if err := json.Unmarshal([]byte(s), &f); err != nil {
+ return err
+ }
+ delete(f, "From")
+ delete(f, "To")
+ delete(f, "Query")
+ delete(f, "TopicId")
+ delete(f, "Interval")
+ delete(f, "SyntaxRule")
+ if len(f) > 0 {
+ return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeLogHistogramRequest has unknown keys!", "")
+ }
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type DescribeLogHistogramResponseParams struct {
+ // 统计周期: 单位ms
+ Interval *int64 `json:"Interval,omitnil,omitempty" name:"Interval"`
+
+ // 命中关键字的日志总条数
+ TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`
+
+ // 周期内统计结果详情
+ HistogramInfos []*HistogramInfo `json:"HistogramInfos,omitnil,omitempty" name:"HistogramInfos"`
+
+ // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
+ RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
+}
+
+type DescribeLogHistogramResponse struct {
+ *tchttp.BaseResponse
+ Response *DescribeLogHistogramResponseParams `json:"Response"`
+}
+
+func (r *DescribeLogHistogramResponse) 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 *DescribeLogHistogramResponse) FromJsonString(s string) error {
+ return json.Unmarshal([]byte(s), &r)
+}
+
// Predefined struct for user
type DescribeModuleStatusRequestParams struct {
// 要查询状态的域名
@@ -8076,6 +8886,9 @@ type DescribeModuleStatusResponseParams struct {
// 限流模块开关
RateLimit *uint64 `json:"RateLimit,omitnil,omitempty" name:"RateLimit"`
+ // gzip 开关
+ GzipAnalysis *uint64 `json:"GzipAnalysis,omitnil,omitempty" name:"GzipAnalysis"`
+
// 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}
@@ -8168,12 +8981,283 @@ func (r *DescribeObjectsResponse) FromJsonString(s string) error {
}
// Predefined struct for user
-type DescribePeakPointsRequestParams struct {
- // 查询起始时间
- FromTime *string `json:"FromTime,omitnil,omitempty" name:"FromTime"`
+type DescribeOwaspRuleTypesRequestParams struct {
+ // 查询域名
+ Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
- // 查询终止时间
- ToTime *string `json:"ToTime,omitnil,omitempty" name:"ToTime"`
+ // 分页页数,默认为0
+ Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
+
+ // 每页容量,默认为10
+ Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`
+
+ // 筛选条件,支持 RuleId:规则ID、CveID:CVE编号、Desc:描述
+ Filters []*FiltersItemNew `json:"Filters,omitnil,omitempty" name:"Filters"`
+}
+
+type DescribeOwaspRuleTypesRequest struct {
+ *tchttp.BaseRequest
+
+ // 查询域名
+ Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
+
+ // 分页页数,默认为0
+ Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
+
+ // 每页容量,默认为10
+ Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`
+
+ // 筛选条件,支持 RuleId:规则ID、CveID:CVE编号、Desc:描述
+ Filters []*FiltersItemNew `json:"Filters,omitnil,omitempty" name:"Filters"`
+}
+
+func (r *DescribeOwaspRuleTypesRequest) 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 *DescribeOwaspRuleTypesRequest) 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, "Offset")
+ delete(f, "Limit")
+ delete(f, "Filters")
+ if len(f) > 0 {
+ return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeOwaspRuleTypesRequest has unknown keys!", "")
+ }
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type DescribeOwaspRuleTypesResponseParams struct {
+ // 规则类型数量
+ Total *int64 `json:"Total,omitnil,omitempty" name:"Total"`
+
+ // 规则类型列表及信息
+ List []*OwaspRuleType `json:"List,omitnil,omitempty" name:"List"`
+
+ // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
+ RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
+}
+
+type DescribeOwaspRuleTypesResponse struct {
+ *tchttp.BaseResponse
+ Response *DescribeOwaspRuleTypesResponseParams `json:"Response"`
+}
+
+func (r *DescribeOwaspRuleTypesResponse) 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 *DescribeOwaspRuleTypesResponse) FromJsonString(s string) error {
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type DescribeOwaspRulesRequestParams struct {
+ // 需要查询的域名
+ Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
+
+ // 分页页数,默认为0
+ Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
+
+ // 每页容量,默认为10
+ Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`
+
+ // 排序字段,支持 RuleId, UpdateTime
+ By *string `json:"By,omitnil,omitempty" name:"By"`
+
+ // 排序方式,支持asc、desc
+ Order *string `json:"Order,omitnil,omitempty" name:"Order"`
+
+ // 筛选条件,支持 RuleId:规则ID、TypeId:规则类型、Desc:规则描述 、CveID:CVE编号、Status:规则状态、VulLevel:威胁等级
+ Filters []*FiltersItemNew `json:"Filters,omitnil,omitempty" name:"Filters"`
+}
+
+type DescribeOwaspRulesRequest struct {
+ *tchttp.BaseRequest
+
+ // 需要查询的域名
+ Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
+
+ // 分页页数,默认为0
+ Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
+
+ // 每页容量,默认为10
+ Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`
+
+ // 排序字段,支持 RuleId, UpdateTime
+ By *string `json:"By,omitnil,omitempty" name:"By"`
+
+ // 排序方式,支持asc、desc
+ Order *string `json:"Order,omitnil,omitempty" name:"Order"`
+
+ // 筛选条件,支持 RuleId:规则ID、TypeId:规则类型、Desc:规则描述 、CveID:CVE编号、Status:规则状态、VulLevel:威胁等级
+ Filters []*FiltersItemNew `json:"Filters,omitnil,omitempty" name:"Filters"`
+}
+
+func (r *DescribeOwaspRulesRequest) 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 *DescribeOwaspRulesRequest) 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, "Offset")
+ delete(f, "Limit")
+ delete(f, "By")
+ delete(f, "Order")
+ delete(f, "Filters")
+ if len(f) > 0 {
+ return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeOwaspRulesRequest has unknown keys!", "")
+ }
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type DescribeOwaspRulesResponseParams struct {
+ // 规则总数
+ Total *uint64 `json:"Total,omitnil,omitempty" name:"Total"`
+
+ // 规则列表
+ List []*OwaspRule `json:"List,omitnil,omitempty" name:"List"`
+
+ // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
+ RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
+}
+
+type DescribeOwaspRulesResponse struct {
+ *tchttp.BaseResponse
+ Response *DescribeOwaspRulesResponseParams `json:"Response"`
+}
+
+func (r *DescribeOwaspRulesResponse) 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 *DescribeOwaspRulesResponse) FromJsonString(s string) error {
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type DescribeOwaspWhiteRulesRequestParams struct {
+ // 需要查询的域名
+ Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
+
+ // 分页分页,默认为0
+ Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
+
+ // 每页容量,默认为10
+ Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`
+
+ // 排序的字段,支持CreateTime:新建时间、UpdateTime:修改时间
+ By *string `json:"By,omitnil,omitempty" name:"By"`
+
+ // 排序方式,支持asc、desc
+ Order *string `json:"Order,omitnil,omitempty" name:"Order"`
+
+ // 筛选条件,支持RuleId:加白规则ID、 Name:规则名称、RuleType:加白的规则类型、Status:规则开关状态、ValidStatus:规则生效状态、TimerType:生效方式、ID:具体的加白id,根据RuleType来判断是规则id还是类型id
+ Filters []*FiltersItemNew `json:"Filters,omitnil,omitempty" name:"Filters"`
+}
+
+type DescribeOwaspWhiteRulesRequest struct {
+ *tchttp.BaseRequest
+
+ // 需要查询的域名
+ Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
+
+ // 分页分页,默认为0
+ Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
+
+ // 每页容量,默认为10
+ Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`
+
+ // 排序的字段,支持CreateTime:新建时间、UpdateTime:修改时间
+ By *string `json:"By,omitnil,omitempty" name:"By"`
+
+ // 排序方式,支持asc、desc
+ Order *string `json:"Order,omitnil,omitempty" name:"Order"`
+
+ // 筛选条件,支持RuleId:加白规则ID、 Name:规则名称、RuleType:加白的规则类型、Status:规则开关状态、ValidStatus:规则生效状态、TimerType:生效方式、ID:具体的加白id,根据RuleType来判断是规则id还是类型id
+ Filters []*FiltersItemNew `json:"Filters,omitnil,omitempty" name:"Filters"`
+}
+
+func (r *DescribeOwaspWhiteRulesRequest) 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 *DescribeOwaspWhiteRulesRequest) 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, "Offset")
+ delete(f, "Limit")
+ delete(f, "By")
+ delete(f, "Order")
+ delete(f, "Filters")
+ if len(f) > 0 {
+ return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeOwaspWhiteRulesRequest has unknown keys!", "")
+ }
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type DescribeOwaspWhiteRulesResponseParams struct {
+ // 规则总数
+ Total *uint64 `json:"Total,omitnil,omitempty" name:"Total"`
+
+ // 规则白名单列表
+ List []*OwaspWhiteRule `json:"List,omitnil,omitempty" name:"List"`
+
+ // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
+ RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
+}
+
+type DescribeOwaspWhiteRulesResponse struct {
+ *tchttp.BaseResponse
+ Response *DescribeOwaspWhiteRulesResponseParams `json:"Response"`
+}
+
+func (r *DescribeOwaspWhiteRulesResponse) 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 *DescribeOwaspWhiteRulesResponse) FromJsonString(s string) error {
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type DescribePeakPointsRequestParams struct {
+ // 查询起始时间
+ FromTime *string `json:"FromTime,omitnil,omitempty" name:"FromTime"`
+
+ // 查询终止时间
+ ToTime *string `json:"ToTime,omitnil,omitempty" name:"ToTime"`
// 查询的域名,如果查询所有域名数据,该参数不填写
Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
@@ -9213,73 +10297,173 @@ func (r *DescribeTopAttackDomainResponse) FromJsonString(s string) error {
}
// Predefined struct for user
-type DescribeUserCdcClbWafRegionsRequestParams struct {
+type DescribeTopicsRequestParams struct {
+ // - topicName 按照【日志主题名称】进行过滤,默认为模糊匹配,Filter.Values 当要查询访问日志时为access,查询攻击日志时为attack
注意:每次请求的 Filters 的上限为10,Filter.Values 的上限为100。
+ Filters []*FilterCls `json:"Filters,omitnil,omitempty" name:"Filters"`
+ // 分页的偏移量,默认值为0。
+ Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`
+
+ // 分页单页限制数目,默认值为20,最大值100。
+ Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
+
+ // 控制Filters相关字段是否为精确匹配。
+ // - 0: 默认值,topicName 和 logsetName 模糊匹配
+ // - 1: topicName 精确匹配
+ // - 2: logsetName精确匹配
+ // - 3: topicName 和logsetName 都精确匹配
+ PreciseSearch *uint64 `json:"PreciseSearch,omitnil,omitempty" name:"PreciseSearch"`
+
+ // 主题类型
+ //
+ BizType *uint64 `json:"BizType,omitnil,omitempty" name:"BizType"`
}
-type DescribeUserCdcClbWafRegionsRequest struct {
+type DescribeTopicsRequest struct {
*tchttp.BaseRequest
+ // - topicName 按照【日志主题名称】进行过滤,默认为模糊匹配,Filter.Values 当要查询访问日志时为access,查询攻击日志时为attack
注意:每次请求的 Filters 的上限为10,Filter.Values 的上限为100。
+ Filters []*FilterCls `json:"Filters,omitnil,omitempty" name:"Filters"`
+
+ // 分页的偏移量,默认值为0。
+ Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`
+
+ // 分页单页限制数目,默认值为20,最大值100。
+ Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
+
+ // 控制Filters相关字段是否为精确匹配。
+ // - 0: 默认值,topicName 和 logsetName 模糊匹配
+ // - 1: topicName 精确匹配
+ // - 2: logsetName精确匹配
+ // - 3: topicName 和logsetName 都精确匹配
+ PreciseSearch *uint64 `json:"PreciseSearch,omitnil,omitempty" name:"PreciseSearch"`
+
+ // 主题类型
+ //
+ BizType *uint64 `json:"BizType,omitnil,omitempty" name:"BizType"`
}
-func (r *DescribeUserCdcClbWafRegionsRequest) ToJsonString() string {
+func (r *DescribeTopicsRequest) 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 *DescribeUserCdcClbWafRegionsRequest) FromJsonString(s string) error {
+func (r *DescribeTopicsRequest) FromJsonString(s string) error {
f := make(map[string]interface{})
if err := json.Unmarshal([]byte(s), &f); err != nil {
return err
}
-
+ delete(f, "Filters")
+ delete(f, "Offset")
+ delete(f, "Limit")
+ delete(f, "PreciseSearch")
+ delete(f, "BizType")
if len(f) > 0 {
- return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeUserCdcClbWafRegionsRequest has unknown keys!", "")
+ return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeTopicsRequest has unknown keys!", "")
}
return json.Unmarshal([]byte(s), &r)
}
// Predefined struct for user
-type DescribeUserCdcClbWafRegionsResponseParams struct {
- // CdcRegion的类型描述
- Data []*CdcRegion `json:"Data,omitnil,omitempty" name:"Data"`
+type DescribeTopicsResponseParams struct {
+ // 日志主题列表
+ Topics []*TopicInfo `json:"Topics,omitnil,omitempty" name:"Topics"`
+
+ // 总数目
+ TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`
// 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}
-type DescribeUserCdcClbWafRegionsResponse struct {
+type DescribeTopicsResponse struct {
*tchttp.BaseResponse
- Response *DescribeUserCdcClbWafRegionsResponseParams `json:"Response"`
+ Response *DescribeTopicsResponseParams `json:"Response"`
}
-func (r *DescribeUserCdcClbWafRegionsResponse) ToJsonString() string {
+func (r *DescribeTopicsResponse) 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 *DescribeUserCdcClbWafRegionsResponse) FromJsonString(s string) error {
+func (r *DescribeTopicsResponse) FromJsonString(s string) error {
return json.Unmarshal([]byte(s), &r)
}
// Predefined struct for user
-type DescribeUserClbWafRegionsRequestParams struct {
- // 流量来源,不填默认clb。clb:负载均衡器,tsegw:云原生API网关,scf:云函数,apisix:腾讯云上其他网关
- AlbType *string `json:"AlbType,omitnil,omitempty" name:"AlbType"`
+type DescribeUserCdcClbWafRegionsRequestParams struct {
+
}
-type DescribeUserClbWafRegionsRequest struct {
+type DescribeUserCdcClbWafRegionsRequest struct {
*tchttp.BaseRequest
- // 流量来源,不填默认clb。clb:负载均衡器,tsegw:云原生API网关,scf:云函数,apisix:腾讯云上其他网关
- AlbType *string `json:"AlbType,omitnil,omitempty" name:"AlbType"`
}
-func (r *DescribeUserClbWafRegionsRequest) ToJsonString() string {
+func (r *DescribeUserCdcClbWafRegionsRequest) 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 *DescribeUserCdcClbWafRegionsRequest) FromJsonString(s string) error {
+ f := make(map[string]interface{})
+ if err := json.Unmarshal([]byte(s), &f); err != nil {
+ return err
+ }
+
+ if len(f) > 0 {
+ return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeUserCdcClbWafRegionsRequest has unknown keys!", "")
+ }
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type DescribeUserCdcClbWafRegionsResponseParams struct {
+ // CdcRegion的类型描述
+ Data []*CdcRegion `json:"Data,omitnil,omitempty" name:"Data"`
+
+ // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
+ RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
+}
+
+type DescribeUserCdcClbWafRegionsResponse struct {
+ *tchttp.BaseResponse
+ Response *DescribeUserCdcClbWafRegionsResponseParams `json:"Response"`
+}
+
+func (r *DescribeUserCdcClbWafRegionsResponse) 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 *DescribeUserCdcClbWafRegionsResponse) FromJsonString(s string) error {
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type DescribeUserClbWafRegionsRequestParams struct {
+ // 流量来源,不填默认clb。clb:负载均衡器,tsegw:云原生API网关,scf:云函数,apisix:腾讯云上其他网关
+ AlbType *string `json:"AlbType,omitnil,omitempty" name:"AlbType"`
+}
+
+type DescribeUserClbWafRegionsRequest struct {
+ *tchttp.BaseRequest
+
+ // 流量来源,不填默认clb。clb:负载均衡器,tsegw:云原生API网关,scf:云函数,apisix:腾讯云上其他网关
+ AlbType *string `json:"AlbType,omitnil,omitempty" name:"AlbType"`
+}
+
+func (r *DescribeUserClbWafRegionsRequest) ToJsonString() string {
b, _ := json.Marshal(r)
return string(b)
}
@@ -10293,7 +11477,7 @@ type DomainInfo struct {
// 安全组ID
SgID *string `json:"SgID,omitnil,omitempty" name:"SgID"`
- // clbwaf接入状态
+ // clbwaf接入状态,0代表“尚无流量接入”,1代表“流量接入”,2代表“CLB监听器已注销”,3代表“配置生效中”,4代表“配置下发失败中”
AccessStatus *int64 `json:"AccessStatus,omitnil,omitempty" name:"AccessStatus"`
// 域名标签
@@ -10383,7 +11567,9 @@ type DomainsPartInfo struct {
// 3:有部署代理服务,waf将使用ip_headers中的自定义header获取客户端IP
IsCdn *uint64 `json:"IsCdn,omitnil,omitempty" name:"IsCdn"`
- // 是否开启灰度,已废弃。
+ // 是否开启灰度。
+ //
+ // Deprecated: IsGray is deprecated.
IsGray *uint64 `json:"IsGray,omitnil,omitempty" name:"IsGray"`
// 是否开启HTTP2,需要开启HTTPS协议支持。
@@ -10469,6 +11655,9 @@ type DomainsPartInfo struct {
// 3:自定义模板
CipherTemplate *int64 `json:"CipherTemplate,omitnil,omitempty" name:"CipherTemplate"`
+ // WAF与源站的连接超时,默认10s。
+ ProxyConnectTimeout *int64 `json:"ProxyConnectTimeout,omitnil,omitempty" name:"ProxyConnectTimeout"`
+
// WAF与源站的读超时时间,默认300s。
ProxyReadTimeout *int64 `json:"ProxyReadTimeout,omitnil,omitempty" name:"ProxyReadTimeout"`
@@ -10542,6 +11731,12 @@ type DomainsPartInfo struct {
// 分流回源策略
UpstreamRules []*UpstreamRule `json:"UpstreamRules,omitnil,omitempty" name:"UpstreamRules"`
+
+ // 业务场景。0:默认值,表示常规业务场景 1:大模型业务场景
+ UseCase *int64 `json:"UseCase,omitnil,omitempty" name:"UseCase"`
+
+ // gzip开关。0:关闭 1:默认值,打开。
+ Gzip *int64 `json:"Gzip,omitnil,omitempty" name:"Gzip"`
}
type DownloadAttackRecordInfo struct {
@@ -10617,6 +11812,55 @@ type ExportAccessInfo struct {
CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`
}
+type ExportInfo struct {
+ // 日志主题ID
+ TopicId *string `json:"TopicId,omitnil,omitempty" name:"TopicId"`
+
+ // 日志导出任务ID
+ ExportId *string `json:"ExportId,omitnil,omitempty" name:"ExportId"`
+
+ // 日志导出查询语句
+ Query *string `json:"Query,omitnil,omitempty" name:"Query"`
+
+ // 日志导出文件名
+ FileName *string `json:"FileName,omitnil,omitempty" name:"FileName"`
+
+ // 日志文件大小
+ FileSize *uint64 `json:"FileSize,omitnil,omitempty" name:"FileSize"`
+
+ // 日志导出时间排序
+ Order *string `json:"Order,omitnil,omitempty" name:"Order"`
+
+ // 日志导出格式
+ Format *string `json:"Format,omitnil,omitempty" name:"Format"`
+
+ // 日志导出数量
+ Count *uint64 `json:"Count,omitnil,omitempty" name:"Count"`
+
+ // 日志下载状态。Processing:导出正在进行中,Completed:导出完成,Failed:导出失败,Expired:日志导出已过期(三天有效期), Queuing 排队中
+ Status *string `json:"Status,omitnil,omitempty" name:"Status"`
+
+ // 日志导出起始时间
+ From *int64 `json:"From,omitnil,omitempty" name:"From"`
+
+ // 日志导出结束时间
+ To *int64 `json:"To,omitnil,omitempty" name:"To"`
+
+ // 日志导出路径,有效期一个小时,请尽快使用该路径下载。
+ CosPath *string `json:"CosPath,omitnil,omitempty" name:"CosPath"`
+
+ // 日志导出创建时间
+ CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`
+
+ // 语法规则。 默认值为0。
+ // 0:Lucene语法,1:CQL语法。
+ SyntaxRule *uint64 `json:"SyntaxRule,omitnil,omitempty" name:"SyntaxRule"`
+
+ // 导出字段
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ DerivedFields []*string `json:"DerivedFields,omitnil,omitempty" name:"DerivedFields"`
+}
+
type FieldWriteConfig struct {
// 1:开启 0:不开启
EnableHeaders *int64 `json:"EnableHeaders,omitnil,omitempty" name:"EnableHeaders"`
@@ -10628,6 +11872,14 @@ type FieldWriteConfig struct {
EnableBot *int64 `json:"EnableBot,omitnil,omitempty" name:"EnableBot"`
}
+type FilterCls struct {
+ // 需要过滤的字段。
+ Key *string `json:"Key,omitnil,omitempty" name:"Key"`
+
+ // 需要过滤的值。
+ Values []*string `json:"Values,omitnil,omitempty" name:"Values"`
+}
+
type FiltersItemNew struct {
// 字段名; 过滤
// 子订单号过滤通过name 为:DealName; value为子订单号
@@ -11296,6 +12548,14 @@ type GoodsDetailNew struct {
MicroVersion *string `json:"MicroVersion,omitnil,omitempty" name:"MicroVersion"`
}
+type HistogramInfo struct {
+ // 统计周期内的日志条数
+ Count *int64 `json:"Count,omitnil,omitempty" name:"Count"`
+
+ // 按 period 取整后的 unix timestamp: 单位毫秒
+ BTime *int64 `json:"BTime,omitnil,omitempty" name:"BTime"`
+}
+
type HostDel struct {
// 域名
Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
@@ -11767,6 +13027,22 @@ type InstanceInfo struct {
// 1是基础2025版本;0不是
BasicFlag *uint64 `json:"BasicFlag,omitnil,omitempty" name:"BasicFlag"`
+
+ // 实例的网络配置
+ NetworkConfig *NetworkConfig `json:"NetworkConfig,omitnil,omitempty" name:"NetworkConfig"`
+
+ // RCE设备安全信息包
+ RCEPkg *RCEPkg `json:"RCEPkg,omitnil,omitempty" name:"RCEPkg"`
+
+ // 超量策略。0:超量沙箱
+ // 1:超量限流
+ ExceedPolicy *int64 `json:"ExceedPolicy,omitnil,omitempty" name:"ExceedPolicy"`
+
+ // 大模型安全信息包
+ LLMPkg *LLMPkg `json:"LLMPkg,omitnil,omitempty" name:"LLMPkg"`
+
+ // 弹性资源Id
+ ElasticResourceId *string `json:"ElasticResourceId,omitnil,omitempty" name:"ElasticResourceId"`
}
type IpAccessControlData struct {
@@ -11863,6 +13139,14 @@ type IpHitItemsData struct {
TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`
}
+type JWTConfig struct {
+ // 密钥信息
+ SecretInfo *SecretInfo `json:"SecretInfo,omitnil,omitempty" name:"SecretInfo"`
+
+ // Payload校验规则集合
+ PayloadRule []*TokenRuleEntry `json:"PayloadRule,omitnil,omitempty" name:"PayloadRule"`
+}
+
type JobDateTime struct {
// 定时执行的时间参数
Timed []*TimedJob `json:"Timed,omitnil,omitempty" name:"Timed"`
@@ -11882,6 +13166,26 @@ type KVInt struct {
Value *uint64 `json:"Value,omitnil,omitempty" name:"Value"`
}
+type LLMPkg struct {
+ // 资源id
+ ResourceIds *string `json:"ResourceIds,omitnil,omitempty" name:"ResourceIds"`
+
+ // 状态
+ Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`
+
+ // 地域
+ Region *int64 `json:"Region,omitnil,omitempty" name:"Region"`
+
+ // 开始时间
+ BeginTime *string `json:"BeginTime,omitnil,omitempty" name:"BeginTime"`
+
+ // 结束时间
+ EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`
+
+ // 计费项
+ InquireKey *string `json:"InquireKey,omitnil,omitempty" name:"InquireKey"`
+}
+
type LoadBalancer struct {
// 负载均衡LD的ID
LoadBalancerId *string `json:"LoadBalancerId,omitnil,omitempty" name:"LoadBalancerId"`
@@ -11937,7 +13241,7 @@ type LoadBalancerPackageNew struct {
Protocol *string `json:"Protocol,omitnil,omitempty" name:"Protocol"`
// 地区
- // "多伦多": "ca",
+ // "多伦多": "ca",
// "广州": "gz",
// "成都": "cd",
// "福州": "fzec",
@@ -11964,7 +13268,8 @@ type LoadBalancerPackageNew struct {
// "首尔": "kr",
// "上海": "sh",
// "新加坡": "sg",
- // "清远": "qy"
+ // "清远": "qy",
+ // "雅加达": "jkt"
Region *string `json:"Region,omitnil,omitempty" name:"Region"`
// 接入IP
@@ -11994,6 +13299,58 @@ type LogHistogramInfo struct {
TimeStamp *int64 `json:"TimeStamp,omitnil,omitempty" name:"TimeStamp"`
}
+type LogInfo struct {
+ // 日志时间,单位ms
+ Time *int64 `json:"Time,omitnil,omitempty" name:"Time"`
+
+ // 日志主题ID
+ TopicId *string `json:"TopicId,omitnil,omitempty" name:"TopicId"`
+
+ // 日志主题名称
+ TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`
+
+ // 日志来源IP
+ Source *string `json:"Source,omitnil,omitempty" name:"Source"`
+
+ // 日志文件名称
+ FileName *string `json:"FileName,omitnil,omitempty" name:"FileName"`
+
+ // 日志上报请求包的ID
+ PkgId *string `json:"PkgId,omitnil,omitempty" name:"PkgId"`
+
+ // 请求包内日志的ID
+ PkgLogId *string `json:"PkgLogId,omitnil,omitempty" name:"PkgLogId"`
+
+ // 日志内容的Json序列化字符串
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ LogJson *string `json:"LogJson,omitnil,omitempty" name:"LogJson"`
+
+ // 日志来源主机名称
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ HostName *string `json:"HostName,omitnil,omitempty" name:"HostName"`
+
+ // 原始日志(仅在日志创建索引异常时有值)
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ RawLog *string `json:"RawLog,omitnil,omitempty" name:"RawLog"`
+
+ // 日志创建索引异常原因(仅在日志创建索引异常时有值)
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ IndexStatus *string `json:"IndexStatus,omitnil,omitempty" name:"IndexStatus"`
+}
+
+type LogItem struct {
+ // 日志Key
+ Key *string `json:"Key,omitnil,omitempty" name:"Key"`
+
+ // 日志Value
+ Value *string `json:"Value,omitnil,omitempty" name:"Value"`
+}
+
+type LogItems struct {
+ // 分析结果返回的KV数据对
+ Data []*LogItem `json:"Data,omitnil,omitempty" name:"Data"`
+}
+
type MajorEventsPkg struct {
// 资源id
ResourceIds *string `json:"ResourceIds,omitnil,omitempty" name:"ResourceIds"`
@@ -12915,86 +14272,192 @@ func (r *ModifyAttackWhiteRuleResponse) FromJsonString(s string) error {
}
// Predefined struct for user
-type ModifyBotSceneStatusRequestParams struct {
- // 域名
- Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
+type ModifyBatchIpAccessControlRequestParams struct {
+ // 编辑的批量规则ID
+ RuleId *uint64 `json:"RuleId,omitnil,omitempty" name:"RuleId"`
- // 场景ID
- SceneId *string `json:"SceneId,omitnil,omitempty" name:"SceneId"`
+ // IP参数列表
+ IpList []*string `json:"IpList,omitnil,omitempty" name:"IpList"`
- // true-开启 false-关闭
- Status *bool `json:"Status,omitnil,omitempty" name:"Status"`
+ // 规则执行的方式,TimedJob为定时执行,CronJob为周期执行
+ JobType *string `json:"JobType,omitnil,omitempty" name:"JobType"`
+
+ // 定时任务配置
+ JobDateTime *JobDateTime `json:"JobDateTime,omitnil,omitempty" name:"JobDateTime"`
+
+ // 42为黑名单,40为白名单
+ ActionType *int64 `json:"ActionType,omitnil,omitempty" name:"ActionType"`
+
+ // 防护对象组ID列表,如果绑定的是防护对象组,和Domains参数二选一
+ GroupIds []*uint64 `json:"GroupIds,omitnil,omitempty" name:"GroupIds"`
+
+ // 域名列表,如果绑定的是批量域名,和GroupIds参数二选一
+ Domains []*string `json:"Domains,omitnil,omitempty" name:"Domains"`
+
+ // 备注
+ Note *string `json:"Note,omitnil,omitempty" name:"Note"`
}
-type ModifyBotSceneStatusRequest struct {
+type ModifyBatchIpAccessControlRequest struct {
*tchttp.BaseRequest
- // 域名
- Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
+ // 编辑的批量规则ID
+ RuleId *uint64 `json:"RuleId,omitnil,omitempty" name:"RuleId"`
- // 场景ID
- SceneId *string `json:"SceneId,omitnil,omitempty" name:"SceneId"`
+ // IP参数列表
+ IpList []*string `json:"IpList,omitnil,omitempty" name:"IpList"`
- // true-开启 false-关闭
- Status *bool `json:"Status,omitnil,omitempty" name:"Status"`
+ // 规则执行的方式,TimedJob为定时执行,CronJob为周期执行
+ JobType *string `json:"JobType,omitnil,omitempty" name:"JobType"`
+
+ // 定时任务配置
+ JobDateTime *JobDateTime `json:"JobDateTime,omitnil,omitempty" name:"JobDateTime"`
+
+ // 42为黑名单,40为白名单
+ ActionType *int64 `json:"ActionType,omitnil,omitempty" name:"ActionType"`
+
+ // 防护对象组ID列表,如果绑定的是防护对象组,和Domains参数二选一
+ GroupIds []*uint64 `json:"GroupIds,omitnil,omitempty" name:"GroupIds"`
+
+ // 域名列表,如果绑定的是批量域名,和GroupIds参数二选一
+ Domains []*string `json:"Domains,omitnil,omitempty" name:"Domains"`
+
+ // 备注
+ Note *string `json:"Note,omitnil,omitempty" name:"Note"`
}
-func (r *ModifyBotSceneStatusRequest) ToJsonString() string {
+func (r *ModifyBatchIpAccessControlRequest) 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 *ModifyBotSceneStatusRequest) FromJsonString(s string) error {
+func (r *ModifyBatchIpAccessControlRequest) 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, "SceneId")
- delete(f, "Status")
+ delete(f, "RuleId")
+ delete(f, "IpList")
+ delete(f, "JobType")
+ delete(f, "JobDateTime")
+ delete(f, "ActionType")
+ delete(f, "GroupIds")
+ delete(f, "Domains")
+ delete(f, "Note")
if len(f) > 0 {
- return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyBotSceneStatusRequest has unknown keys!", "")
+ return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyBatchIpAccessControlRequest has unknown keys!", "")
}
return json.Unmarshal([]byte(s), &r)
}
// Predefined struct for user
-type ModifyBotSceneStatusResponseParams struct {
+type ModifyBatchIpAccessControlResponseParams struct {
+ // 编辑失败的域名列表,如果非空则表示有域名编辑失败,整个批量规则编辑失败,否则则表示批量规则编辑成功。
+ Failed []*BatchDomainResult `json:"Failed,omitnil,omitempty" name:"Failed"`
+
// 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}
-type ModifyBotSceneStatusResponse struct {
+type ModifyBatchIpAccessControlResponse struct {
*tchttp.BaseResponse
- Response *ModifyBotSceneStatusResponseParams `json:"Response"`
+ Response *ModifyBatchIpAccessControlResponseParams `json:"Response"`
}
-func (r *ModifyBotSceneStatusResponse) ToJsonString() string {
+func (r *ModifyBatchIpAccessControlResponse) 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 *ModifyBotSceneStatusResponse) FromJsonString(s string) error {
+func (r *ModifyBatchIpAccessControlResponse) FromJsonString(s string) error {
return json.Unmarshal([]byte(s), &r)
}
// Predefined struct for user
-type ModifyBotSceneUCBRuleRequestParams struct {
+type ModifyBotSceneStatusRequestParams struct {
// 域名
Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
- // 1.BOT全局白名单处调用时,传"global";2.BOT场景配置时,传具体的场景ID
+ // 场景ID
SceneId *string `json:"SceneId,omitnil,omitempty" name:"SceneId"`
- // 规则内容, 增加编码SceneId信息,1.BOT全局白名单处调用时,SceneId为"global", RuleType传10, Action为"permit";2.BOT场景配置时,SceneId为场景ID
- Rule *InOutputBotUCBRule `json:"Rule,omitnil,omitempty" name:"Rule"`
-
- // 530改批量操作
- BatchRules []*InOutputBotUCBRule `json:"BatchRules,omitnil,omitempty" name:"BatchRules"`
+ // true-开启 false-关闭
+ Status *bool `json:"Status,omitnil,omitempty" name:"Status"`
+}
+
+type ModifyBotSceneStatusRequest struct {
+ *tchttp.BaseRequest
+
+ // 域名
+ Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
+
+ // 场景ID
+ SceneId *string `json:"SceneId,omitnil,omitempty" name:"SceneId"`
+
+ // true-开启 false-关闭
+ Status *bool `json:"Status,omitnil,omitempty" name:"Status"`
+}
+
+func (r *ModifyBotSceneStatusRequest) 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 *ModifyBotSceneStatusRequest) 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, "SceneId")
+ delete(f, "Status")
+ if len(f) > 0 {
+ return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyBotSceneStatusRequest has unknown keys!", "")
+ }
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type ModifyBotSceneStatusResponseParams struct {
+ // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
+ RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
+}
+
+type ModifyBotSceneStatusResponse struct {
+ *tchttp.BaseResponse
+ Response *ModifyBotSceneStatusResponseParams `json:"Response"`
+}
+
+func (r *ModifyBotSceneStatusResponse) 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 *ModifyBotSceneStatusResponse) FromJsonString(s string) error {
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type ModifyBotSceneUCBRuleRequestParams struct {
+ // 域名
+ Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
+
+ // 1.BOT全局白名单处调用时,传"global";2.BOT场景配置时,传具体的场景ID
+ SceneId *string `json:"SceneId,omitnil,omitempty" name:"SceneId"`
+
+ // 规则内容, 增加编码SceneId信息,1.BOT全局白名单处调用时,SceneId为"global", RuleType传10, Action为"permit";2.BOT场景配置时,SceneId为场景ID
+ Rule *InOutputBotUCBRule `json:"Rule,omitnil,omitempty" name:"Rule"`
+
+ // 530改批量操作
+ BatchRules []*InOutputBotUCBRule `json:"BatchRules,omitnil,omitempty" name:"BatchRules"`
}
type ModifyBotSceneUCBRuleRequest struct {
@@ -13225,6 +14688,9 @@ type ModifyCustomRuleRequestParams struct {
// 匹配条件的逻辑关系,支持and、or,分别表示多个逻辑匹配条件是与、或的关系
LogicalOp *string `json:"LogicalOp,omitnil,omitempty" name:"LogicalOp"`
+
+ // 规则生效比例
+ ActionRatio *uint64 `json:"ActionRatio,omitnil,omitempty" name:"ActionRatio"`
}
type ModifyCustomRuleRequest struct {
@@ -13280,6 +14746,9 @@ type ModifyCustomRuleRequest struct {
// 匹配条件的逻辑关系,支持and、or,分别表示多个逻辑匹配条件是与、或的关系
LogicalOp *string `json:"LogicalOp,omitnil,omitempty" name:"LogicalOp"`
+
+ // 规则生效比例
+ ActionRatio *uint64 `json:"ActionRatio,omitnil,omitempty" name:"ActionRatio"`
}
func (r *ModifyCustomRuleRequest) ToJsonString() string {
@@ -13310,6 +14779,7 @@ func (r *ModifyCustomRuleRequest) FromJsonString(s string) error {
delete(f, "Status")
delete(f, "PageId")
delete(f, "LogicalOp")
+ delete(f, "ActionRatio")
if len(f) > 0 {
return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyCustomRuleRequest has unknown keys!", "")
}
@@ -14691,222 +16161,700 @@ func (r *ModifyIpAccessControlRequest) FromJsonString(s string) error {
delete(f, "JobType")
delete(f, "JobDateTime")
if len(f) > 0 {
- return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyIpAccessControlRequest has unknown keys!", "")
+ return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyIpAccessControlRequest has unknown keys!", "")
+ }
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type ModifyIpAccessControlResponseParams struct {
+ // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
+ RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
+}
+
+type ModifyIpAccessControlResponse struct {
+ *tchttp.BaseResponse
+ Response *ModifyIpAccessControlResponseParams `json:"Response"`
+}
+
+func (r *ModifyIpAccessControlResponse) 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 *ModifyIpAccessControlResponse) FromJsonString(s string) error {
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type ModifyModuleStatusRequestParams struct {
+ // 需要设置的domain
+ Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
+
+ // Web 安全模块开关,0或1
+ WebSecurity *uint64 `json:"WebSecurity,omitnil,omitempty" name:"WebSecurity"`
+
+ // 访问控制模块开关,0或者1
+ AccessControl *uint64 `json:"AccessControl,omitnil,omitempty" name:"AccessControl"`
+
+ // CC模块开关,0或者1
+ CcProtection *uint64 `json:"CcProtection,omitnil,omitempty" name:"CcProtection"`
+
+ // API安全模块开关,0或者1
+ ApiProtection *uint64 `json:"ApiProtection,omitnil,omitempty" name:"ApiProtection"`
+
+ // 防篡改模块开关,0或者1
+ AntiTamper *uint64 `json:"AntiTamper,omitnil,omitempty" name:"AntiTamper"`
+
+ // 防泄漏模块开关,0或者1
+ AntiLeakage *uint64 `json:"AntiLeakage,omitnil,omitempty" name:"AntiLeakage"`
+
+ // 限流模块开关,0或1
+ RateLimit *uint64 `json:"RateLimit,omitnil,omitempty" name:"RateLimit"`
+
+ // gzip 开关
+ GzipAnalysis *uint64 `json:"GzipAnalysis,omitnil,omitempty" name:"GzipAnalysis"`
+}
+
+type ModifyModuleStatusRequest struct {
+ *tchttp.BaseRequest
+
+ // 需要设置的domain
+ Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
+
+ // Web 安全模块开关,0或1
+ WebSecurity *uint64 `json:"WebSecurity,omitnil,omitempty" name:"WebSecurity"`
+
+ // 访问控制模块开关,0或者1
+ AccessControl *uint64 `json:"AccessControl,omitnil,omitempty" name:"AccessControl"`
+
+ // CC模块开关,0或者1
+ CcProtection *uint64 `json:"CcProtection,omitnil,omitempty" name:"CcProtection"`
+
+ // API安全模块开关,0或者1
+ ApiProtection *uint64 `json:"ApiProtection,omitnil,omitempty" name:"ApiProtection"`
+
+ // 防篡改模块开关,0或者1
+ AntiTamper *uint64 `json:"AntiTamper,omitnil,omitempty" name:"AntiTamper"`
+
+ // 防泄漏模块开关,0或者1
+ AntiLeakage *uint64 `json:"AntiLeakage,omitnil,omitempty" name:"AntiLeakage"`
+
+ // 限流模块开关,0或1
+ RateLimit *uint64 `json:"RateLimit,omitnil,omitempty" name:"RateLimit"`
+
+ // gzip 开关
+ GzipAnalysis *uint64 `json:"GzipAnalysis,omitnil,omitempty" name:"GzipAnalysis"`
+}
+
+func (r *ModifyModuleStatusRequest) 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 *ModifyModuleStatusRequest) 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, "WebSecurity")
+ delete(f, "AccessControl")
+ delete(f, "CcProtection")
+ delete(f, "ApiProtection")
+ delete(f, "AntiTamper")
+ delete(f, "AntiLeakage")
+ delete(f, "RateLimit")
+ delete(f, "GzipAnalysis")
+ if len(f) > 0 {
+ return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyModuleStatusRequest has unknown keys!", "")
+ }
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type ModifyModuleStatusResponseParams struct {
+ // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
+ RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
+}
+
+type ModifyModuleStatusResponse struct {
+ *tchttp.BaseResponse
+ Response *ModifyModuleStatusResponseParams `json:"Response"`
+}
+
+func (r *ModifyModuleStatusResponse) 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 *ModifyModuleStatusResponse) FromJsonString(s string) error {
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type ModifyObjectRequestParams struct {
+ // 修改对象标识
+ ObjectId *string `json:"ObjectId,omitnil,omitempty" name:"ObjectId"`
+
+ // 改动作类型:Status修改开关,InstanceId绑定实例, Proxy设置代理状态
+ OpType *string `json:"OpType,omitnil,omitempty" name:"OpType"`
+
+ // 新的Waf开关状态,如果和已有状态相同认为修改成功
+ Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`
+
+ // 新的实例ID,如果和已绑定的实例相同认为修改成功
+ InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
+
+ // 是否开启代理,0:不开启,1:以XFF的第一个IP地址作为客户端IP,2:以remote_addr作为客户端IP,3:从指定的头部字段获取客户端IP,字段通过IpHeaders字段给出(OpType为Status或Proxy时,该值有效)
+ Proxy *uint64 `json:"Proxy,omitnil,omitempty" name:"Proxy"`
+
+ // IsCdn=3时,需要填此参数,表示自定义header(OpType为Status或Proxy时,该值有效)
+ IpHeaders []*string `json:"IpHeaders,omitnil,omitempty" name:"IpHeaders"`
+}
+
+type ModifyObjectRequest struct {
+ *tchttp.BaseRequest
+
+ // 修改对象标识
+ ObjectId *string `json:"ObjectId,omitnil,omitempty" name:"ObjectId"`
+
+ // 改动作类型:Status修改开关,InstanceId绑定实例, Proxy设置代理状态
+ OpType *string `json:"OpType,omitnil,omitempty" name:"OpType"`
+
+ // 新的Waf开关状态,如果和已有状态相同认为修改成功
+ Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`
+
+ // 新的实例ID,如果和已绑定的实例相同认为修改成功
+ InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
+
+ // 是否开启代理,0:不开启,1:以XFF的第一个IP地址作为客户端IP,2:以remote_addr作为客户端IP,3:从指定的头部字段获取客户端IP,字段通过IpHeaders字段给出(OpType为Status或Proxy时,该值有效)
+ Proxy *uint64 `json:"Proxy,omitnil,omitempty" name:"Proxy"`
+
+ // IsCdn=3时,需要填此参数,表示自定义header(OpType为Status或Proxy时,该值有效)
+ IpHeaders []*string `json:"IpHeaders,omitnil,omitempty" name:"IpHeaders"`
+}
+
+func (r *ModifyObjectRequest) 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 *ModifyObjectRequest) FromJsonString(s string) error {
+ f := make(map[string]interface{})
+ if err := json.Unmarshal([]byte(s), &f); err != nil {
+ return err
+ }
+ delete(f, "ObjectId")
+ 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!", "")
+ }
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type ModifyObjectResponseParams struct {
+ // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
+ RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
+}
+
+type ModifyObjectResponse struct {
+ *tchttp.BaseResponse
+ Response *ModifyObjectResponseParams `json:"Response"`
+}
+
+func (r *ModifyObjectResponse) 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 *ModifyObjectResponse) FromJsonString(s string) error {
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type ModifyOwaspRuleStatusRequestParams struct {
+ // 域名
+ Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
+
+ // 规则开关,0:关闭、1:开启、2:只观察
+ RuleStatus *int64 `json:"RuleStatus,omitnil,omitempty" name:"RuleStatus"`
+
+ // 是否全选
+ SelectAll *bool `json:"SelectAll,omitnil,omitempty" name:"SelectAll"`
+
+ // 规则ID列表
+ RuleIDs []*string `json:"RuleIDs,omitnil,omitempty" name:"RuleIDs"`
+
+ // 如果反转需要传入类型
+ TypeId *uint64 `json:"TypeId,omitnil,omitempty" name:"TypeId"`
+
+ // 修改原因 0:无(兼容记录为空) 1:业务自身特性误报避免 2:规则误报上报 3:核心业务规则灰度 4:其它
+ Reason *int64 `json:"Reason,omitnil,omitempty" name:"Reason"`
+}
+
+type ModifyOwaspRuleStatusRequest struct {
+ *tchttp.BaseRequest
+
+ // 域名
+ Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
+
+ // 规则开关,0:关闭、1:开启、2:只观察
+ RuleStatus *int64 `json:"RuleStatus,omitnil,omitempty" name:"RuleStatus"`
+
+ // 是否全选
+ SelectAll *bool `json:"SelectAll,omitnil,omitempty" name:"SelectAll"`
+
+ // 规则ID列表
+ RuleIDs []*string `json:"RuleIDs,omitnil,omitempty" name:"RuleIDs"`
+
+ // 如果反转需要传入类型
+ TypeId *uint64 `json:"TypeId,omitnil,omitempty" name:"TypeId"`
+
+ // 修改原因 0:无(兼容记录为空) 1:业务自身特性误报避免 2:规则误报上报 3:核心业务规则灰度 4:其它
+ Reason *int64 `json:"Reason,omitnil,omitempty" name:"Reason"`
+}
+
+func (r *ModifyOwaspRuleStatusRequest) 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 *ModifyOwaspRuleStatusRequest) 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, "RuleStatus")
+ delete(f, "SelectAll")
+ delete(f, "RuleIDs")
+ delete(f, "TypeId")
+ delete(f, "Reason")
+ if len(f) > 0 {
+ return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyOwaspRuleStatusRequest has unknown keys!", "")
+ }
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type ModifyOwaspRuleStatusResponseParams struct {
+ // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
+ RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
+}
+
+type ModifyOwaspRuleStatusResponse struct {
+ *tchttp.BaseResponse
+ Response *ModifyOwaspRuleStatusResponseParams `json:"Response"`
+}
+
+func (r *ModifyOwaspRuleStatusResponse) 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 *ModifyOwaspRuleStatusResponse) FromJsonString(s string) error {
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type ModifyOwaspRuleTypeActionRequestParams struct {
+ // 域名
+ Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
+
+ // 规则类型ID列表
+ TypeIDs []*string `json:"TypeIDs,omitnil,omitempty" name:"TypeIDs"`
+
+ // 规则类型的防护模式,0:观察、1:拦截
+ RuleTypeAction *int64 `json:"RuleTypeAction,omitnil,omitempty" name:"RuleTypeAction"`
+}
+
+type ModifyOwaspRuleTypeActionRequest struct {
+ *tchttp.BaseRequest
+
+ // 域名
+ Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
+
+ // 规则类型ID列表
+ TypeIDs []*string `json:"TypeIDs,omitnil,omitempty" name:"TypeIDs"`
+
+ // 规则类型的防护模式,0:观察、1:拦截
+ RuleTypeAction *int64 `json:"RuleTypeAction,omitnil,omitempty" name:"RuleTypeAction"`
+}
+
+func (r *ModifyOwaspRuleTypeActionRequest) 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 *ModifyOwaspRuleTypeActionRequest) 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, "TypeIDs")
+ delete(f, "RuleTypeAction")
+ if len(f) > 0 {
+ return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyOwaspRuleTypeActionRequest has unknown keys!", "")
+ }
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type ModifyOwaspRuleTypeActionResponseParams struct {
+ // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
+ RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
+}
+
+type ModifyOwaspRuleTypeActionResponse struct {
+ *tchttp.BaseResponse
+ Response *ModifyOwaspRuleTypeActionResponseParams `json:"Response"`
+}
+
+func (r *ModifyOwaspRuleTypeActionResponse) 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 *ModifyOwaspRuleTypeActionResponse) FromJsonString(s string) error {
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type ModifyOwaspRuleTypeLevelRequestParams struct {
+ // 域名
+ Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
+
+ // 规则类型ID列表
+ TypeIDs []*string `json:"TypeIDs,omitnil,omitempty" name:"TypeIDs"`
+
+ // 规则的防护等级,100:宽松、200:正常、300:严格、400:超严格
+ RuleTypeLevel *int64 `json:"RuleTypeLevel,omitnil,omitempty" name:"RuleTypeLevel"`
+}
+
+type ModifyOwaspRuleTypeLevelRequest struct {
+ *tchttp.BaseRequest
+
+ // 域名
+ Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
+
+ // 规则类型ID列表
+ TypeIDs []*string `json:"TypeIDs,omitnil,omitempty" name:"TypeIDs"`
+
+ // 规则的防护等级,100:宽松、200:正常、300:严格、400:超严格
+ RuleTypeLevel *int64 `json:"RuleTypeLevel,omitnil,omitempty" name:"RuleTypeLevel"`
+}
+
+func (r *ModifyOwaspRuleTypeLevelRequest) 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 *ModifyOwaspRuleTypeLevelRequest) 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, "TypeIDs")
+ delete(f, "RuleTypeLevel")
+ if len(f) > 0 {
+ return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyOwaspRuleTypeLevelRequest has unknown keys!", "")
+ }
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type ModifyOwaspRuleTypeLevelResponseParams struct {
+ // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
+ RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
+}
+
+type ModifyOwaspRuleTypeLevelResponse struct {
+ *tchttp.BaseResponse
+ Response *ModifyOwaspRuleTypeLevelResponseParams `json:"Response"`
+}
+
+func (r *ModifyOwaspRuleTypeLevelResponse) 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 *ModifyOwaspRuleTypeLevelResponse) FromJsonString(s string) error {
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type ModifyOwaspRuleTypeStatusRequestParams struct {
+ // 域名
+ Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
+
+ // 规则类型ID列表
+ TypeIDs []*string `json:"TypeIDs,omitnil,omitempty" name:"TypeIDs"`
+
+ // 规则类型的开关状态,0:关闭、1:开启
+ RuleTypeStatus *int64 `json:"RuleTypeStatus,omitnil,omitempty" name:"RuleTypeStatus"`
+}
+
+type ModifyOwaspRuleTypeStatusRequest struct {
+ *tchttp.BaseRequest
+
+ // 域名
+ Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
+
+ // 规则类型ID列表
+ TypeIDs []*string `json:"TypeIDs,omitnil,omitempty" name:"TypeIDs"`
+
+ // 规则类型的开关状态,0:关闭、1:开启
+ RuleTypeStatus *int64 `json:"RuleTypeStatus,omitnil,omitempty" name:"RuleTypeStatus"`
+}
+
+func (r *ModifyOwaspRuleTypeStatusRequest) 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 *ModifyOwaspRuleTypeStatusRequest) 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, "TypeIDs")
+ delete(f, "RuleTypeStatus")
+ if len(f) > 0 {
+ return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyOwaspRuleTypeStatusRequest has unknown keys!", "")
}
return json.Unmarshal([]byte(s), &r)
}
// Predefined struct for user
-type ModifyIpAccessControlResponseParams struct {
+type ModifyOwaspRuleTypeStatusResponseParams struct {
// 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}
-type ModifyIpAccessControlResponse struct {
+type ModifyOwaspRuleTypeStatusResponse struct {
*tchttp.BaseResponse
- Response *ModifyIpAccessControlResponseParams `json:"Response"`
+ Response *ModifyOwaspRuleTypeStatusResponseParams `json:"Response"`
}
-func (r *ModifyIpAccessControlResponse) ToJsonString() string {
+func (r *ModifyOwaspRuleTypeStatusResponse) 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 *ModifyIpAccessControlResponse) FromJsonString(s string) error {
+func (r *ModifyOwaspRuleTypeStatusResponse) FromJsonString(s string) error {
return json.Unmarshal([]byte(s), &r)
}
// Predefined struct for user
-type ModifyModuleStatusRequestParams struct {
- // 需要设置的domain
+type ModifyOwaspWhiteRuleRequestParams struct {
+ // 规则ID
+ RuleId *uint64 `json:"RuleId,omitnil,omitempty" name:"RuleId"`
+
+ // 规则名称
+ Name *string `json:"Name,omitnil,omitempty" name:"Name"`
+
+ // 域名
Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
- // Web 安全模块开关,0或1
- WebSecurity *uint64 `json:"WebSecurity,omitnil,omitempty" name:"WebSecurity"`
+ // 规则匹配策略列表
+ Strategies []*Strategy `json:"Strategies,omitnil,omitempty" name:"Strategies"`
- // 访问控制模块开关,0或者1
- AccessControl *uint64 `json:"AccessControl,omitnil,omitempty" name:"AccessControl"`
+ // 加白的规则ID列表
+ Ids []*uint64 `json:"Ids,omitnil,omitempty" name:"Ids"`
- // CC模块开关,0或者1
- CcProtection *uint64 `json:"CcProtection,omitnil,omitempty" name:"CcProtection"`
+ // 加白的类型,0:按照特定规则ID加白, 1:按照规则类型加白
+ Type *int64 `json:"Type,omitnil,omitempty" name:"Type"`
- // API安全模块开关,0或者1
- ApiProtection *uint64 `json:"ApiProtection,omitnil,omitempty" name:"ApiProtection"`
+ // 规则执行的方式,TimedJob为定时执行,CronJob为周期执行
+ JobType *string `json:"JobType,omitnil,omitempty" name:"JobType"`
- // 防篡改模块开关,0或者1
- AntiTamper *uint64 `json:"AntiTamper,omitnil,omitempty" name:"AntiTamper"`
+ // 定时任务配置
+ JobDateTime *JobDateTime `json:"JobDateTime,omitnil,omitempty" name:"JobDateTime"`
- // 防泄漏模块开关,0或者1
- AntiLeakage *uint64 `json:"AntiLeakage,omitnil,omitempty" name:"AntiLeakage"`
+ // 如果没有设置JobDateTime字段则用此字段,0表示永久生效,其它表示定时生效的截止时间(单位为秒)
+ ExpireTime *uint64 `json:"ExpireTime,omitnil,omitempty" name:"ExpireTime"`
- // 限流模块开关,0或1
- RateLimit *uint64 `json:"RateLimit,omitnil,omitempty" name:"RateLimit"`
+ // 规则状态,0:关闭、1:开启,默认为开启
+ Status *uint64 `json:"Status,omitnil,omitempty" name:"Status"`
}
-type ModifyModuleStatusRequest struct {
+type ModifyOwaspWhiteRuleRequest struct {
*tchttp.BaseRequest
- // 需要设置的domain
+ // 规则ID
+ RuleId *uint64 `json:"RuleId,omitnil,omitempty" name:"RuleId"`
+
+ // 规则名称
+ Name *string `json:"Name,omitnil,omitempty" name:"Name"`
+
+ // 域名
Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
- // Web 安全模块开关,0或1
- WebSecurity *uint64 `json:"WebSecurity,omitnil,omitempty" name:"WebSecurity"`
+ // 规则匹配策略列表
+ Strategies []*Strategy `json:"Strategies,omitnil,omitempty" name:"Strategies"`
- // 访问控制模块开关,0或者1
- AccessControl *uint64 `json:"AccessControl,omitnil,omitempty" name:"AccessControl"`
+ // 加白的规则ID列表
+ Ids []*uint64 `json:"Ids,omitnil,omitempty" name:"Ids"`
- // CC模块开关,0或者1
- CcProtection *uint64 `json:"CcProtection,omitnil,omitempty" name:"CcProtection"`
+ // 加白的类型,0:按照特定规则ID加白, 1:按照规则类型加白
+ Type *int64 `json:"Type,omitnil,omitempty" name:"Type"`
- // API安全模块开关,0或者1
- ApiProtection *uint64 `json:"ApiProtection,omitnil,omitempty" name:"ApiProtection"`
+ // 规则执行的方式,TimedJob为定时执行,CronJob为周期执行
+ JobType *string `json:"JobType,omitnil,omitempty" name:"JobType"`
- // 防篡改模块开关,0或者1
- AntiTamper *uint64 `json:"AntiTamper,omitnil,omitempty" name:"AntiTamper"`
+ // 定时任务配置
+ JobDateTime *JobDateTime `json:"JobDateTime,omitnil,omitempty" name:"JobDateTime"`
- // 防泄漏模块开关,0或者1
- AntiLeakage *uint64 `json:"AntiLeakage,omitnil,omitempty" name:"AntiLeakage"`
+ // 如果没有设置JobDateTime字段则用此字段,0表示永久生效,其它表示定时生效的截止时间(单位为秒)
+ ExpireTime *uint64 `json:"ExpireTime,omitnil,omitempty" name:"ExpireTime"`
- // 限流模块开关,0或1
- RateLimit *uint64 `json:"RateLimit,omitnil,omitempty" name:"RateLimit"`
+ // 规则状态,0:关闭、1:开启,默认为开启
+ Status *uint64 `json:"Status,omitnil,omitempty" name:"Status"`
}
-func (r *ModifyModuleStatusRequest) ToJsonString() string {
+func (r *ModifyOwaspWhiteRuleRequest) 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 *ModifyModuleStatusRequest) FromJsonString(s string) error {
+func (r *ModifyOwaspWhiteRuleRequest) FromJsonString(s string) error {
f := make(map[string]interface{})
if err := json.Unmarshal([]byte(s), &f); err != nil {
return err
}
+ delete(f, "RuleId")
+ delete(f, "Name")
delete(f, "Domain")
- delete(f, "WebSecurity")
- delete(f, "AccessControl")
- delete(f, "CcProtection")
- delete(f, "ApiProtection")
- delete(f, "AntiTamper")
- delete(f, "AntiLeakage")
- delete(f, "RateLimit")
+ delete(f, "Strategies")
+ delete(f, "Ids")
+ delete(f, "Type")
+ delete(f, "JobType")
+ delete(f, "JobDateTime")
+ delete(f, "ExpireTime")
+ delete(f, "Status")
if len(f) > 0 {
- return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyModuleStatusRequest has unknown keys!", "")
+ return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyOwaspWhiteRuleRequest has unknown keys!", "")
}
return json.Unmarshal([]byte(s), &r)
}
// Predefined struct for user
-type ModifyModuleStatusResponseParams struct {
+type ModifyOwaspWhiteRuleResponseParams struct {
// 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}
-type ModifyModuleStatusResponse struct {
+type ModifyOwaspWhiteRuleResponse struct {
*tchttp.BaseResponse
- Response *ModifyModuleStatusResponseParams `json:"Response"`
+ Response *ModifyOwaspWhiteRuleResponseParams `json:"Response"`
}
-func (r *ModifyModuleStatusResponse) ToJsonString() string {
+func (r *ModifyOwaspWhiteRuleResponse) 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 *ModifyModuleStatusResponse) FromJsonString(s string) error {
+func (r *ModifyOwaspWhiteRuleResponse) FromJsonString(s string) error {
return json.Unmarshal([]byte(s), &r)
}
// Predefined struct for user
-type ModifyObjectRequestParams struct {
- // 修改对象标识
- ObjectId *string `json:"ObjectId,omitnil,omitempty" name:"ObjectId"`
-
- // 改动作类型:Status修改开关,InstanceId绑定实例, Proxy设置代理状态
- OpType *string `json:"OpType,omitnil,omitempty" name:"OpType"`
-
- // 新的Waf开关状态,如果和已有状态相同认为修改成功
- Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`
-
- // 新的实例ID,如果和已绑定的实例相同认为修改成功
- InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
-
- // 是否开启代理,0:不开启,1:以XFF的第一个IP地址作为客户端IP,2:以remote_addr作为客户端IP,3:从指定的头部字段获取客户端IP,字段通过IpHeaders字段给出(OpType为Status或Proxy时,该值有效)
- Proxy *uint64 `json:"Proxy,omitnil,omitempty" name:"Proxy"`
+type ModifyProtectionLevelRequestParams struct {
+ // 客户域名
+ Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
- // IsCdn=3时,需要填此参数,表示自定义header(OpType为Status或Proxy时,该值有效)
- IpHeaders []*string `json:"IpHeaders,omitnil,omitempty" name:"IpHeaders"`
+ // 防护等级,100,200,300
+ Level *int64 `json:"Level,omitnil,omitempty" name:"Level"`
}
-type ModifyObjectRequest struct {
+type ModifyProtectionLevelRequest struct {
*tchttp.BaseRequest
- // 修改对象标识
- ObjectId *string `json:"ObjectId,omitnil,omitempty" name:"ObjectId"`
-
- // 改动作类型:Status修改开关,InstanceId绑定实例, Proxy设置代理状态
- OpType *string `json:"OpType,omitnil,omitempty" name:"OpType"`
-
- // 新的Waf开关状态,如果和已有状态相同认为修改成功
- Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`
-
- // 新的实例ID,如果和已绑定的实例相同认为修改成功
- InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
-
- // 是否开启代理,0:不开启,1:以XFF的第一个IP地址作为客户端IP,2:以remote_addr作为客户端IP,3:从指定的头部字段获取客户端IP,字段通过IpHeaders字段给出(OpType为Status或Proxy时,该值有效)
- Proxy *uint64 `json:"Proxy,omitnil,omitempty" name:"Proxy"`
+ // 客户域名
+ Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`
- // IsCdn=3时,需要填此参数,表示自定义header(OpType为Status或Proxy时,该值有效)
- IpHeaders []*string `json:"IpHeaders,omitnil,omitempty" name:"IpHeaders"`
+ // 防护等级,100,200,300
+ Level *int64 `json:"Level,omitnil,omitempty" name:"Level"`
}
-func (r *ModifyObjectRequest) ToJsonString() string {
+func (r *ModifyProtectionLevelRequest) 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 *ModifyObjectRequest) FromJsonString(s string) error {
+func (r *ModifyProtectionLevelRequest) FromJsonString(s string) error {
f := make(map[string]interface{})
if err := json.Unmarshal([]byte(s), &f); err != nil {
return err
}
- delete(f, "ObjectId")
- delete(f, "OpType")
- delete(f, "Status")
- delete(f, "InstanceId")
- delete(f, "Proxy")
- delete(f, "IpHeaders")
+ delete(f, "Domain")
+ delete(f, "Level")
if len(f) > 0 {
- return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyObjectRequest has unknown keys!", "")
+ return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyProtectionLevelRequest has unknown keys!", "")
}
return json.Unmarshal([]byte(s), &r)
}
// Predefined struct for user
-type ModifyObjectResponseParams struct {
+type ModifyProtectionLevelResponseParams struct {
// 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}
-type ModifyObjectResponse struct {
+type ModifyProtectionLevelResponse struct {
*tchttp.BaseResponse
- Response *ModifyObjectResponseParams `json:"Response"`
+ Response *ModifyProtectionLevelResponseParams `json:"Response"`
}
-func (r *ModifyObjectResponse) ToJsonString() string {
+func (r *ModifyProtectionLevelResponse) 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 *ModifyObjectResponse) FromJsonString(s string) error {
+func (r *ModifyProtectionLevelResponse) FromJsonString(s string) error {
return json.Unmarshal([]byte(s), &r)
}
@@ -15119,7 +17067,9 @@ type ModifySpartaProtectionRequestParams struct {
// 回源负载均衡策略。0:轮询1:IP hash2:加权轮询
LoadBalance *int64 `json:"LoadBalance,omitnil,omitempty" name:"LoadBalance"`
- // 待废弃,可不填。是否开启灰度,0表示不开启灰度。
+ // 是否开启灰度,0表示不开启灰度。
+ //
+ // Deprecated: IsGray is deprecated.
IsGray *int64 `json:"IsGray,omitnil,omitempty" name:"IsGray"`
// 域名所属实例类型
@@ -15131,7 +17081,9 @@ type ModifySpartaProtectionRequestParams struct {
// 是否开启长连接。0: 短连接1: 长连接
IsKeepAlive *string `json:"IsKeepAlive,omitnil,omitempty" name:"IsKeepAlive"`
- // 待废弃。目前填0即可。anycast IP类型开关: 0 普通IP 1 Anycast IP
+ // 目前填0即可。anycast IP类型开关: 0 普通IP 1 Anycast IP
+ //
+ // Deprecated: Anycast is deprecated.
Anycast *int64 `json:"Anycast,omitnil,omitempty" name:"Anycast"`
// 回源IP列表各IP的权重,和SrcList一一对应。当且仅当UpstreamType为0,并且SrcList有多个IP,并且LoadBalance为2时需要填写,否则填 []
@@ -15149,6 +17101,9 @@ type ModifySpartaProtectionRequestParams struct {
// 加密套件模板。0:不支持选择,使用默认模板 1:通用型模板 2:安全型模板3:自定义模板
CipherTemplate *int64 `json:"CipherTemplate,omitnil,omitempty" name:"CipherTemplate"`
+ // WAF与源站的连接超时时间,默认10s。
+ ProxyConnectTimeout *int64 `json:"ProxyConnectTimeout,omitnil,omitempty" name:"ProxyConnectTimeout"`
+
// WAF与源站的读超时时间,默认300s。
ProxyReadTimeout *int64 `json:"ProxyReadTimeout,omitnil,omitempty" name:"ProxyReadTimeout"`
@@ -15209,6 +17164,12 @@ type ModifySpartaProtectionRequestParams struct {
// 分流回源时生效,分流回源的规则。
UpstreamRules []*UpstreamRule `json:"UpstreamRules,omitnil,omitempty" name:"UpstreamRules"`
+
+ // 业务场景。0:默认值,表示常规业务场景 1:大模型业务场景
+ UseCase *int64 `json:"UseCase,omitnil,omitempty" name:"UseCase"`
+
+ // gzip开关。0:关闭 1:默认值,打开
+ Gzip *int64 `json:"Gzip,omitnil,omitempty" name:"Gzip"`
}
type ModifySpartaProtectionRequest struct {
@@ -15267,7 +17228,7 @@ type ModifySpartaProtectionRequest struct {
// 回源负载均衡策略。0:轮询1:IP hash2:加权轮询
LoadBalance *int64 `json:"LoadBalance,omitnil,omitempty" name:"LoadBalance"`
- // 待废弃,可不填。是否开启灰度,0表示不开启灰度。
+ // 是否开启灰度,0表示不开启灰度。
IsGray *int64 `json:"IsGray,omitnil,omitempty" name:"IsGray"`
// 域名所属实例类型
@@ -15279,7 +17240,7 @@ type ModifySpartaProtectionRequest struct {
// 是否开启长连接。0: 短连接1: 长连接
IsKeepAlive *string `json:"IsKeepAlive,omitnil,omitempty" name:"IsKeepAlive"`
- // 待废弃。目前填0即可。anycast IP类型开关: 0 普通IP 1 Anycast IP
+ // 目前填0即可。anycast IP类型开关: 0 普通IP 1 Anycast IP
Anycast *int64 `json:"Anycast,omitnil,omitempty" name:"Anycast"`
// 回源IP列表各IP的权重,和SrcList一一对应。当且仅当UpstreamType为0,并且SrcList有多个IP,并且LoadBalance为2时需要填写,否则填 []
@@ -15297,6 +17258,9 @@ type ModifySpartaProtectionRequest struct {
// 加密套件模板。0:不支持选择,使用默认模板 1:通用型模板 2:安全型模板3:自定义模板
CipherTemplate *int64 `json:"CipherTemplate,omitnil,omitempty" name:"CipherTemplate"`
+ // WAF与源站的连接超时时间,默认10s。
+ ProxyConnectTimeout *int64 `json:"ProxyConnectTimeout,omitnil,omitempty" name:"ProxyConnectTimeout"`
+
// WAF与源站的读超时时间,默认300s。
ProxyReadTimeout *int64 `json:"ProxyReadTimeout,omitnil,omitempty" name:"ProxyReadTimeout"`
@@ -15357,6 +17321,12 @@ type ModifySpartaProtectionRequest struct {
// 分流回源时生效,分流回源的规则。
UpstreamRules []*UpstreamRule `json:"UpstreamRules,omitnil,omitempty" name:"UpstreamRules"`
+
+ // 业务场景。0:默认值,表示常规业务场景 1:大模型业务场景
+ UseCase *int64 `json:"UseCase,omitnil,omitempty" name:"UseCase"`
+
+ // gzip开关。0:关闭 1:默认值,打开
+ Gzip *int64 `json:"Gzip,omitnil,omitempty" name:"Gzip"`
}
func (r *ModifySpartaProtectionRequest) ToJsonString() string {
@@ -15398,6 +17368,7 @@ func (r *ModifySpartaProtectionRequest) FromJsonString(s string) error {
delete(f, "TLSVersion")
delete(f, "Ciphers")
delete(f, "CipherTemplate")
+ delete(f, "ProxyConnectTimeout")
delete(f, "ProxyReadTimeout")
delete(f, "ProxySendTimeout")
delete(f, "SniType")
@@ -15417,6 +17388,8 @@ func (r *ModifySpartaProtectionRequest) FromJsonString(s string) error {
delete(f, "GmSSLId")
delete(f, "UpstreamPolicy")
delete(f, "UpstreamRules")
+ delete(f, "UseCase")
+ delete(f, "Gzip")
if len(f) > 0 {
return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifySpartaProtectionRequest has unknown keys!", "")
}
@@ -15909,24 +17882,146 @@ type ModifyWebshellStatusResponseParams struct {
// 成功的状态码,需要JSON解码后再使用,返回的格式是{"域名":"状态"},成功的状态码为Success,其它的为失败的状态码(yunapi定义的错误码)
Success *ResponseCode `json:"Success,omitnil,omitempty" name:"Success"`
- // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
- RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
-}
+ // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
+ RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
+}
+
+type ModifyWebshellStatusResponse struct {
+ *tchttp.BaseResponse
+ Response *ModifyWebshellStatusResponseParams `json:"Response"`
+}
+
+func (r *ModifyWebshellStatusResponse) 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 *ModifyWebshellStatusResponse) FromJsonString(s string) error {
+ return json.Unmarshal([]byte(s), &r)
+}
+
+type NetworkConfig struct {
+ // 高防EIP地址
+ AntiDDosEip *string `json:"AntiDDosEip,omitnil,omitempty" name:"AntiDDosEip"`
+
+ // 高防EIP绑定状态。
+ // 0:解绑
+ // 1:绑定
+ AntiDDosEipStatus *uint64 `json:"AntiDDosEipStatus,omitnil,omitempty" name:"AntiDDosEipStatus"`
+
+ // WAF原生VIP绑定状态。
+ // 0:解绑
+ // 1:绑定
+ VipStatus *uint64 `json:"VipStatus,omitnil,omitempty" name:"VipStatus"`
+}
+
+type OwaspRule struct {
+ // 规则ID
+ RuleId *uint64 `json:"RuleId,omitnil,omitempty" name:"RuleId"`
+
+ // 规则描述
+ Description *string `json:"Description,omitnil,omitempty" name:"Description"`
+
+ // 规则开关,0:关闭、1:开启、2:只观察
+ Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`
+
+ // 规则的防护等级,100:宽松、200:正常、300:严格、400:超严格
+ Level *int64 `json:"Level,omitnil,omitempty" name:"Level"`
+
+ // 威胁等级,0:未知,100:低危,200:中危,300:高危,400:危急
+ VulLevel *int64 `json:"VulLevel,omitnil,omitempty" name:"VulLevel"`
+
+ // CVE ID
+ CveID *string `json:"CveID,omitnil,omitempty" name:"CveID"`
+
+ // 规则所属的类型ID
+ TypeId *uint64 `json:"TypeId,omitnil,omitempty" name:"TypeId"`
+
+ // 创建时间
+ CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`
+
+ // 更新时间
+ ModifyTime *string `json:"ModifyTime,omitnil,omitempty" name:"ModifyTime"`
+
+ // 是否被锁定
+ Locked *int64 `json:"Locked,omitnil,omitempty" name:"Locked"`
+
+ // 修改原因
+ // 0:无(兼容记录为空)
+ // 1:业务自身特性误报避免
+ // 2:规则误报上报
+ // 3:核心业务规则灰度
+ // 4:其它
+ Reason *int64 `json:"Reason,omitnil,omitempty" name:"Reason"`
+}
+
+type OwaspRuleType struct {
+ // 类型ID
+ TypeId *uint64 `json:"TypeId,omitnil,omitempty" name:"TypeId"`
+
+ // 类型名称
+ TypeName *string `json:"TypeName,omitnil,omitempty" name:"TypeName"`
+
+ // 类型描述
+ Description *string `json:"Description,omitnil,omitempty" name:"Description"`
+
+ // 类型分类
+ Classification *string `json:"Classification,omitnil,omitempty" name:"Classification"`
+
+ // 规则类型的防护模式,0:观察、1:拦截
+ Action *int64 `json:"Action,omitnil,omitempty" name:"Action"`
+
+ // 规则类型的防护等级,100:宽松、200:正常、300:严格、400:超严格
+ Level *int64 `json:"Level,omitnil,omitempty" name:"Level"`
+
+ // 规则类型的开关状态,0:关闭、1:开启
+ Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`
+
+ // 规则类型下的所有规则总是
+ TotalRule *uint64 `json:"TotalRule,omitnil,omitempty" name:"TotalRule"`
+
+ // 规则类型下的启用的规则总数
+ ActiveRule *uint64 `json:"ActiveRule,omitnil,omitempty" name:"ActiveRule"`
+}
+
+type OwaspWhiteRule struct {
+ // 白名单的规则ID
+ RuleId *uint64 `json:"RuleId,omitnil,omitempty" name:"RuleId"`
+
+ // 规则名
+ Name *string `json:"Name,omitnil,omitempty" name:"Name"`
+
+ // 加白的规则ID列表
+ Ids []*uint64 `json:"Ids,omitnil,omitempty" name:"Ids"`
+
+ // 白名单规则的状态,0:关闭、1:开启
+ Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`
+
+ // 加白的类型,0:按照特定规则ID加白、1:按照规则类型加白
+ Type *int64 `json:"Type,omitnil,omitempty" name:"Type"`
+
+ // 规则匹配策略列表
+ Strategies []*Strategy `json:"Strategies,omitnil,omitempty" name:"Strategies"`
+
+ // 创建时间
+ CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`
+
+ // 修改时间
+ UpdateTime *string `json:"UpdateTime,omitnil,omitempty" name:"UpdateTime"`
+
+ // 定时任务类型
+ JobType *string `json:"JobType,omitnil,omitempty" name:"JobType"`
-type ModifyWebshellStatusResponse struct {
- *tchttp.BaseResponse
- Response *ModifyWebshellStatusResponseParams `json:"Response"`
-}
+ // 定时任务配置
+ JobDateTime *JobDateTime `json:"JobDateTime,omitnil,omitempty" name:"JobDateTime"`
-func (r *ModifyWebshellStatusResponse) ToJsonString() string {
- b, _ := json.Marshal(r)
- return string(b)
-}
+ // 周期任务粒度
+ CronType *string `json:"CronType,omitnil,omitempty" name:"CronType"`
-// FromJsonString It is highly **NOT** recommended to use this function
-// because it has no param check, nor strict type check
-func (r *ModifyWebshellStatusResponse) FromJsonString(s string) error {
- return json.Unmarshal([]byte(s), &r)
+ // 当前是否有效
+ ValidStatus *bool `json:"ValidStatus,omitnil,omitempty" name:"ValidStatus"`
}
type ParamCompareList struct {
@@ -16264,6 +18359,35 @@ type QpsData struct {
QPSExtendIntlMax *uint64 `json:"QPSExtendIntlMax,omitnil,omitempty" name:"QPSExtendIntlMax"`
}
+type RCEPkg struct {
+ // 资源id
+ ResourceIds *string `json:"ResourceIds,omitnil,omitempty" name:"ResourceIds"`
+
+ // 状态
+ Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`
+
+ // 地域
+ Region *int64 `json:"Region,omitnil,omitempty" name:"Region"`
+
+ // 开始时间
+ BeginTime *string `json:"BeginTime,omitnil,omitempty" name:"BeginTime"`
+
+ // 结束时间
+ EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`
+
+ // 申请数量
+ InquireNum *int64 `json:"InquireNum,omitnil,omitempty" name:"InquireNum"`
+
+ // 使用数量
+ UsedNum *int64 `json:"UsedNum,omitnil,omitempty" name:"UsedNum"`
+
+ // 续费标志
+ RenewFlag *uint64 `json:"RenewFlag,omitnil,omitempty" name:"RenewFlag"`
+
+ // 计费项
+ BillingItem *string `json:"BillingItem,omitnil,omitempty" name:"BillingItem"`
+}
+
// Predefined struct for user
type RefreshAccessCheckResultRequestParams struct {
// 域名
@@ -16691,6 +18815,233 @@ type SearchItem struct {
FlowMode *string `json:"FlowMode,omitnil,omitempty" name:"FlowMode"`
}
+// Predefined struct for user
+type SearchLogRequestParams struct {
+ // 要检索分析的日志的起始时间,Unix时间戳(毫秒)
+ From *int64 `json:"From,omitnil,omitempty" name:"From"`
+
+ // 要检索分析的日志的结束时间,Unix时间戳(毫秒)
+ To *int64 `json:"To,omitnil,omitempty" name:"To"`
+
+ // 检索分析语句,需要进行base64编码,最大长度为12KB语句由 [检索条件] | [SQL语句]构成,无需对日志进行统计分析时,可省略其中的管道符 | 及SQL语句使用*或空字符串可查询所有日志
+ Query *string `json:"Query,omitnil,omitempty" name:"Query"`
+
+ // 检索语法规则,默认值为0,推荐使用1 (CQL语法)。
+ // 0:Lucene语法,1:CQL语法。
+ // 详细说明参见检索条件语法规则
+ SyntaxRule *uint64 `json:"SyntaxRule,omitnil,omitempty" name:"SyntaxRule"`
+
+ // 日志主题ID,可以通过DescribeTopics接口获取,访问日志主题ID和攻击日志主题ID方式不同,注意DescribeTopics接口使用方法
+ TopicId *string `json:"TopicId,omitnil,omitempty" name:"TopicId"`
+
+ // 原始日志是否按时间排序返回;可选值:asc(升序)、desc(降序),默认为 desc
+ // 注意:
+ // * 仅当检索分析语句(Query)不包含SQL时有效
+ // * SQL结果排序方式参考SQL ORDER BY语法
+ Sort *string `json:"Sort,omitnil,omitempty" name:"Sort"`
+
+ // 表示单次查询返回的原始日志条数,默认为100,最大值为1000。
+ // 注意:
+ // * 仅当检索分析语句(Query)不包含SQL时有效
+ // * SQL结果条数指定方式参考SQL LIMIT语法
+ //
+ // 可通过两种方式获取后续更多日志:
+ // * Context:透传上次接口返回的Context值,获取后续更多日志,总计最多可获取1万条原始日志
+ // * Offset:偏移量,表示从第几行开始返回原始日志,无日志条数限制
+ Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
+
+ // 查询原始日志的偏移量,表示从第几行开始返回原始日志,默认为0。
+ // 注意:
+ // * 仅当检索分析语句(Query)不包含SQL时有效
+ // * 不能与Context参数同时使用
+ // * 仅适用于单日志主题检索
+ Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
+
+ // 透传上次接口返回的Context值,可获取后续更多日志,总计最多可获取1万条原始日志,过期时间1小时。
+ // 注意:
+ // * 透传该参数时,请勿修改除该参数外的其它参数
+ // * 仅适用于单日志主题检索,检索多个日志主题时,请使用Topics中的Context
+ // * 仅当检索分析语句(Query)不包含SQL时有效,SQL获取后续结果参考SQL LIMIT语法
+ Context *string `json:"Context,omitnil,omitempty" name:"Context"`
+
+ // 执行统计分析(Query中包含SQL)时,是否对原始日志先进行采样,再进行统计分析。
+ // 0:自动采样;
+ // 0~1:按指定采样率采样,例如0.02;
+ // 1:不采样,即精确分析
+ // 默认值为1
+ SamplingRate *float64 `json:"SamplingRate,omitnil,omitempty" name:"SamplingRate"`
+
+ // 为true代表使用新的检索结果返回方式,输出参数AnalysisRecords和Columns有效
+ // 为false时代表使用老的检索结果返回方式, 输出AnalysisResults和ColNames有效
+ // 两种返回方式在编码格式上有少量区别,建议使用true
+ UseNewAnalysis *bool `json:"UseNewAnalysis,omitnil,omitempty" name:"UseNewAnalysis"`
+}
+
+type SearchLogRequest struct {
+ *tchttp.BaseRequest
+
+ // 要检索分析的日志的起始时间,Unix时间戳(毫秒)
+ From *int64 `json:"From,omitnil,omitempty" name:"From"`
+
+ // 要检索分析的日志的结束时间,Unix时间戳(毫秒)
+ To *int64 `json:"To,omitnil,omitempty" name:"To"`
+
+ // 检索分析语句,需要进行base64编码,最大长度为12KB语句由 [检索条件] | [SQL语句]构成,无需对日志进行统计分析时,可省略其中的管道符 | 及SQL语句使用*或空字符串可查询所有日志
+ Query *string `json:"Query,omitnil,omitempty" name:"Query"`
+
+ // 检索语法规则,默认值为0,推荐使用1 (CQL语法)。
+ // 0:Lucene语法,1:CQL语法。
+ // 详细说明参见检索条件语法规则
+ SyntaxRule *uint64 `json:"SyntaxRule,omitnil,omitempty" name:"SyntaxRule"`
+
+ // 日志主题ID,可以通过DescribeTopics接口获取,访问日志主题ID和攻击日志主题ID方式不同,注意DescribeTopics接口使用方法
+ TopicId *string `json:"TopicId,omitnil,omitempty" name:"TopicId"`
+
+ // 原始日志是否按时间排序返回;可选值:asc(升序)、desc(降序),默认为 desc
+ // 注意:
+ // * 仅当检索分析语句(Query)不包含SQL时有效
+ // * SQL结果排序方式参考SQL ORDER BY语法
+ Sort *string `json:"Sort,omitnil,omitempty" name:"Sort"`
+
+ // 表示单次查询返回的原始日志条数,默认为100,最大值为1000。
+ // 注意:
+ // * 仅当检索分析语句(Query)不包含SQL时有效
+ // * SQL结果条数指定方式参考SQL LIMIT语法
+ //
+ // 可通过两种方式获取后续更多日志:
+ // * Context:透传上次接口返回的Context值,获取后续更多日志,总计最多可获取1万条原始日志
+ // * Offset:偏移量,表示从第几行开始返回原始日志,无日志条数限制
+ Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
+
+ // 查询原始日志的偏移量,表示从第几行开始返回原始日志,默认为0。
+ // 注意:
+ // * 仅当检索分析语句(Query)不包含SQL时有效
+ // * 不能与Context参数同时使用
+ // * 仅适用于单日志主题检索
+ Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
+
+ // 透传上次接口返回的Context值,可获取后续更多日志,总计最多可获取1万条原始日志,过期时间1小时。
+ // 注意:
+ // * 透传该参数时,请勿修改除该参数外的其它参数
+ // * 仅适用于单日志主题检索,检索多个日志主题时,请使用Topics中的Context
+ // * 仅当检索分析语句(Query)不包含SQL时有效,SQL获取后续结果参考SQL LIMIT语法
+ Context *string `json:"Context,omitnil,omitempty" name:"Context"`
+
+ // 执行统计分析(Query中包含SQL)时,是否对原始日志先进行采样,再进行统计分析。
+ // 0:自动采样;
+ // 0~1:按指定采样率采样,例如0.02;
+ // 1:不采样,即精确分析
+ // 默认值为1
+ SamplingRate *float64 `json:"SamplingRate,omitnil,omitempty" name:"SamplingRate"`
+
+ // 为true代表使用新的检索结果返回方式,输出参数AnalysisRecords和Columns有效
+ // 为false时代表使用老的检索结果返回方式, 输出AnalysisResults和ColNames有效
+ // 两种返回方式在编码格式上有少量区别,建议使用true
+ UseNewAnalysis *bool `json:"UseNewAnalysis,omitnil,omitempty" name:"UseNewAnalysis"`
+}
+
+func (r *SearchLogRequest) 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 *SearchLogRequest) FromJsonString(s string) error {
+ f := make(map[string]interface{})
+ if err := json.Unmarshal([]byte(s), &f); err != nil {
+ return err
+ }
+ delete(f, "From")
+ delete(f, "To")
+ delete(f, "Query")
+ delete(f, "SyntaxRule")
+ delete(f, "TopicId")
+ delete(f, "Sort")
+ delete(f, "Limit")
+ delete(f, "Offset")
+ delete(f, "Context")
+ delete(f, "SamplingRate")
+ delete(f, "UseNewAnalysis")
+ if len(f) > 0 {
+ return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "SearchLogRequest has unknown keys!", "")
+ }
+ return json.Unmarshal([]byte(s), &r)
+}
+
+// Predefined struct for user
+type SearchLogResponseParams struct {
+ // 透传本次接口返回的Context值,可获取后续更多日志,过期时间1小时。
+ // 注意:
+ // * 仅适用于单日志主题检索,检索多个日志主题时,请使用Topics中的Context
+ Context *string `json:"Context,omitnil,omitempty" name:"Context"`
+
+ // 符合检索条件的日志是否已全部返回,如未全部返回可使用Context参数获取后续更多日志
+ // 注意:仅当检索分析语句(Query)不包含SQL时有效
+ ListOver *bool `json:"ListOver,omitnil,omitempty" name:"ListOver"`
+
+ // 返回的是否为统计分析(即SQL)结果
+ Analysis *bool `json:"Analysis,omitnil,omitempty" name:"Analysis"`
+
+ // 匹配检索条件的原始日志
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ Results []*LogInfo `json:"Results,omitnil,omitempty" name:"Results"`
+
+ // 日志统计分析结果的列名
+ // 当UseNewAnalysis为false时生效
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ ColNames []*string `json:"ColNames,omitnil,omitempty" name:"ColNames"`
+
+ // 日志统计分析结果
+ // 当UseNewAnalysis为false时生效
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ AnalysisResults []*LogItems `json:"AnalysisResults,omitnil,omitempty" name:"AnalysisResults"`
+
+ // 日志统计分析结果
+ // 当UseNewAnalysis为true时生效
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ AnalysisRecords []*string `json:"AnalysisRecords,omitnil,omitempty" name:"AnalysisRecords"`
+
+ // 日志统计分析结果的列属性
+ // 当UseNewAnalysis为true时生效
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ Columns []*Column `json:"Columns,omitnil,omitempty" name:"Columns"`
+
+ // 本次统计分析使用的采样率
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ SamplingRate *float64 `json:"SamplingRate,omitnil,omitempty" name:"SamplingRate"`
+
+ // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
+ RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
+}
+
+type SearchLogResponse struct {
+ *tchttp.BaseResponse
+ Response *SearchLogResponseParams `json:"Response"`
+}
+
+func (r *SearchLogResponse) 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 *SearchLogResponse) FromJsonString(s string) error {
+ return json.Unmarshal([]byte(s), &r)
+}
+
+type SecretInfo struct {
+ // 密钥上传方式,可选值:manual、upload
+ SecretSource *string `json:"SecretSource,omitnil,omitempty" name:"SecretSource"`
+
+ // 密钥内容(用户手动输入/前端从密钥文件提取出的密钥内容)
+ SecretKey *string `json:"SecretKey,omitnil,omitempty" name:"SecretKey"`
+
+ // 上传的密钥文件文件名
+ FileName *string `json:"FileName,omitnil,omitempty" name:"FileName"`
+}
+
type SessionData struct {
// session定义
Res []*SessionItem `json:"Res,omitnil,omitempty" name:"Res"`
@@ -16729,6 +19080,9 @@ type SessionItem struct {
// Session关联的CC规则ID
RelatedRuleID []*int64 `json:"RelatedRuleID,omitnil,omitempty" name:"RelatedRuleID"`
+
+ // 精准匹配时,配置的key
+ Key *string `json:"Key,omitnil,omitempty" name:"Key"`
}
type SpartaProtectionPort struct {
@@ -16753,7 +19107,7 @@ type Strategy struct {
//
// 匹配字段不同,相应的匹配参数、逻辑符号、匹配内容有所不同
// 具体如下所示:
- // | 匹配字段 | 匹配参数 | 逻辑符号 | 匹配内容 |
|---|
| IP(来源IP) | 不支持参数 | ipmatch(匹配) ipnmatch(不匹配) | 多个IP以英文逗号隔开,最多20个 |
| IPV6(来源IPv6) | 不支持参数 | ipmatch(匹配) ipnmatch(不匹配) | 支持单个IPV6地址 |
| Referer(Referer) | 不支持参数 | empty(内容为空) null(不存在) eq(等于) neq(不等于) contains(包含) ncontains(不包含) len_eq(长度等于) len_gt(长度大于) len_lt(长度小于) strprefix(前缀匹配) strsuffix(后缀匹配) rematch(正则匹配) | 请输入内容,512个字符以内 |
| URL(请求路径) | 不支持参数 | eq(等于) neq(不等于) contains(包含) ncontains(不包含) len_eq(长度等于) len_gt(长度大于) len_lt(长度小于) strprefix(前缀匹配) strsuffix(后缀匹配) rematch(正则匹配)
| 请以/开头,512个字符以内 |
| UserAgent(UserAgent) | 不支持参数 | 同匹配字段Referer逻辑符号 | 请输入内容,512个字符以内 |
| HTTP_METHOD(HTTP请求方法) | 不支持参数 | eq(等于) neq(不等于) | 请输入方法名称,建议大写 |
| QUERY_STRING(请求字符串) | 不支持参数 | 同匹配字段请求路径逻辑符号 | 请输入内容,512个字符以内 |
| GET(GET参数值) | 支持参数录入 | contains(包含) ncontains(不包含) len_eq(长度等于) len_gt(长度大于) len_lt(长度小于) strprefix(前缀匹配) strsuffix(后缀匹配) | 请输入内容,512个字符以内 |
| GET_PARAMS_NAMES(GET参数名) | 不支持参数 | exsit(存在参数) nexsit(不存在参数) len_eq(长度等于) len_gt(长度大于) len_lt(长度小于) strprefix(前缀匹配) strsuffix(后缀匹配) | 请输入内容,512个字符以内 |
| POST(POST参数值) | 支持参数录入 | 同匹配字段GET参数值逻辑符号 | 请输入内容,512个字符以内 |
| GET_POST_NAMES(POST参数名) | 不支持参数 | 同匹配字段GET参数名逻辑符号 | 请输入内容,512个字符以内 |
| POST_BODY(完整BODY) | 不支持参数 | 同匹配字段请求路径逻辑符号 | 请输入BODY内容,512个字符以内 |
| COOKIE(Cookie) | 不支持参数 | empty(内容为空) null(不存在) rematch(正则匹配) | 暂不支持 |
| GET_COOKIES_NAMES(Cookie参数名) | 不支持参数 | 同匹配字段GET参数名逻辑符号 | 请输入内容,512个字符以内 |
| ARGS_COOKIE(Cookie参数值) | 支持参数录入 | 同匹配字段GET参数值逻辑符号 | 请输入内容,512个字符以内 |
| GET_HEADERS_NAMES(Header参数名) | 不支持参数 | exsit(存在参数) nexsit(不存在参数) len_eq(长度等于) len_gt(长度大于) len_lt(长度小于) strprefix(前缀匹配) strsuffix(后缀匹配) rematch(正则匹配) | 请输入内容,建议小写,512个字符以内 |
| ARGS_HEADER(Header参数值) | 支持参数录入 | contains(包含) ncontains(不包含) len_eq(长度等于) len_gt(长度大于) len_lt(长度小于) strprefix(前缀匹配) strsuffix(后缀匹配) rematch(正则匹配) | 请输入内容,512个字符以内 |
| CONTENT_LENGTH(Content-length) | 支持参数录入 | numgt(数值大于) numlt(数值小于) numeq(数值等于)
| 请输入0-9999999999999之间的整数 |
| IP_GEO(来源IP归属地) | 支持参数录入 | geo_in(属于) geo_not_in(不属于)
| 请输入内容,10240字符以内,格式为序列化的JSON,格式为:[{"Country":"中国","Region":"广东","City":"深圳"}] |
+ // | 匹配字段 | 匹配参数 | 逻辑符号 | 匹配内容 |
|---|
| IP(来源IP) | 不支持参数 | ipmatch(匹配) ipnmatch(不匹配) | 多个IP以英文逗号隔开,最多20个 |
| IPV6(来源IPv6) | 不支持参数 | ipmatch(匹配) ipnmatch(不匹配) | 支持单个IPV6地址 |
| Referer(Referer) | 不支持参数 | empty(内容为空) null(不存在) eq(等于) neq(不等于) contains(包含) ncontains(不包含) len_eq(长度等于) len_gt(长度大于) len_lt(长度小于) strprefix(前缀匹配) strsuffix(后缀匹配) rematch(正则匹配) | 请输入内容,512个字符以内 |
| URL(请求路径) | 不支持参数 | eq(等于) neq(不等于) contains(包含) ncontains(不包含) len_eq(长度等于) len_gt(长度大于) len_lt(长度小于) strprefix(前缀匹配) strsuffix(后缀匹配) rematch(正则匹配)
| 请以/开头,512个字符以内 |
| UserAgent(UserAgent) | 不支持参数 | 同匹配字段Referer逻辑符号 | 请输入内容,512个字符以内 |
| HTTP_METHOD(HTTP请求方法) | 不支持参数 | eq(等于) neq(不等于) | 请输入方法名称,建议大写 |
| QUERY_STRING(请求字符串) | 不支持参数 | 同匹配字段请求路径逻辑符号 | 请输入内容,512个字符以内 |
| GET(GET参数值) | 支持参数录入 | contains(包含) ncontains(不包含) len_eq(长度等于) len_gt(长度大于) len_lt(长度小于) strprefix(前缀匹配) strsuffix(后缀匹配) | 请输入内容,512个字符以内 |
| GET_PARAMS_NAMES(GET参数名) | 不支持参数 | exsit(存在参数) nexsit(不存在参数) len_eq(长度等于) len_gt(长度大于) len_lt(长度小于) strprefix(前缀匹配) strsuffix(后缀匹配) | 请输入内容,512个字符以内 |
| POST(POST参数值) | 支持参数录入 | 同匹配字段GET参数值逻辑符号 | 请输入内容,512个字符以内 |
| GET_POST_NAMES(POST参数名) | 不支持参数 | 同匹配字段GET参数名逻辑符号 | 请输入内容,512个字符以内 |
| POST_BODY(完整BODY) | 不支持参数 | 同匹配字段请求路径逻辑符号 | 请输入BODY内容,512个字符以内 |
| COOKIE(Cookie) | 不支持参数 | empty(内容为空) null(不存在) rematch(正则匹配) | 暂不支持 |
| GET_COOKIES_NAMES(Cookie参数名) | 不支持参数 | 同匹配字段GET参数名逻辑符号 | 请输入内容,512个字符以内 |
| ARGS_COOKIE(Cookie参数值) | 支持参数录入 | 同匹配字段GET参数值逻辑符号 | 请输入内容,512个字符以内 |
| GET_HEADERS_NAMES(Header参数名) | 不支持参数 | exsit(存在参数) nexsit(不存在参数) len_eq(长度等于) len_gt(长度大于) len_lt(长度小于) strprefix(前缀匹配) strsuffix(后缀匹配) rematch(正则匹配) | 请输入内容,建议小写,512个字符以内 |
| ARGS_HEADER(Header参数值) | 支持参数录入 | contains(包含) ncontains(不包含) len_eq(长度等于) len_gt(长度大于) len_lt(长度小于) strprefix(前缀匹配) strsuffix(后缀匹配) rematch(正则匹配) | 请输入内容,512个字符以内 |
| CONTENT_LENGTH(Content-length) | 支持参数录入 | numgt(数值大于) numlt(数值小于) numeq(数值等于)
| 请输入0-9999999999999之间的整数 |
| IP_GEO(来源IP归属地) | 支持参数录入 | geo_in(属于) geo_not_in(不属于)
| 请输入内容,10240字符以内,格式为序列化的JSON,格式为:[{"Country":"中国","Region":"广东","City":"深圳"}] |
| CAPTCHA_RISK(验证码风险) | 不支持参数 | eq(等于) neq(不等于) belong(属于) not_belong(不属于) null(不存在) exist(存在) | 请输入风险等级值,支持数值范围0-255 |
| CAPTCHA_DEVICE_RISK(验证码设备风险) | 不支持参数 | eq(等于) neq(不等于) belong(属于) not_belong(不属于) null(不存在) exist(存在) | 请输入设备风险代码,支持取值:101、201、301、401、501、601、701 |
| CAPTCHAR_SCORE(验证码风险评估分) | 不支持参数 | numeq(数值等于) numgt(数值大于) numlt(数值小于) numle(数值小于等于) numge(数值大于等于) null(不存在) exist(存在) | 请输入评估分数,支持数值范围0-100 |
//
Field *string `json:"Field,omitnil,omitempty" name:"Field"`
@@ -16776,6 +19130,9 @@ type Strategy struct {
// numgt ( 数值大于)
// numlt ( 数值小于)
// numeq ( 数值等于)
+ // numneq ( 数值不等于)
+ // numle ( 数值小于等于)
+ // numge ( 数值大于等于)
// geo_in ( IP地理属于)
// geo_not_in ( IP地理不属于)
// 各匹配字段对应的逻辑符号不同,详见上述匹配字段表格
@@ -16985,6 +19342,10 @@ type TLSVersion struct {
VersionName *string `json:"VersionName,omitnil,omitempty" name:"VersionName"`
}
+type Tag struct {
+
+}
+
type TargetEntity struct {
// 实例ID
InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
@@ -17009,6 +19370,159 @@ type TimedJob struct {
EndDateTime *uint64 `json:"EndDateTime,omitnil,omitempty" name:"EndDateTime"`
}
+type TokenDisplaySetting struct {
+ // 是否使用payload字段作为显示token
+ DisplayWithPayloadEnable *bool `json:"DisplayWithPayloadEnable,omitnil,omitempty" name:"DisplayWithPayloadEnable"`
+
+ // 用于显示的payload字段名
+ FieldName *string `json:"FieldName,omitnil,omitempty" name:"FieldName"`
+}
+
+type TokenRuleEntry struct {
+ // 校验方式,可选值:验签校验、字段校验
+ Type *string `json:"Type,omitnil,omitempty" name:"Type"`
+
+ // 键
+ Key *string `json:"Key,omitnil,omitempty" name:"Key"`
+
+ // 操作符
+ Op *string `json:"Op,omitnil,omitempty" name:"Op"`
+
+ // 值
+ Value *TokenRuleEntryValue `json:"Value,omitnil,omitempty" name:"Value"`
+}
+
+type TokenRuleEntryValue struct {
+ // 布尔类型值
+ LogicValue *bool `json:"LogicValue,omitnil,omitempty" name:"LogicValue"`
+
+ // 数组类型值
+ // 可以存储字符串/数值
+ // 如果只有一个元素,则为长度为1的数组
+ MultiValue []*string `json:"MultiValue,omitnil,omitempty" name:"MultiValue"`
+
+ // 指示有效的字段
+ ValidKey *string `json:"ValidKey,omitnil,omitempty" name:"ValidKey"`
+}
+
+type TokenValidation struct {
+ // 是否开启token有效性校验
+ Enable *bool `json:"Enable,omitnil,omitempty" name:"Enable"`
+
+ // token有效性的校验方式,可选值为:jws、jwe、contains、len、regex
+ VerifyType *string `json:"VerifyType,omitnil,omitempty" name:"VerifyType"`
+
+ // 有效性校验配置和规则
+ VerifyRule *TokenVerifyRule `json:"VerifyRule,omitnil,omitempty" name:"VerifyRule"`
+
+ // Token显示设置(只有当校验方式为jws/jwe的时候才会有该配置信息)
+ DisplaySetting *TokenDisplaySetting `json:"DisplaySetting,omitnil,omitempty" name:"DisplaySetting"`
+}
+
+type TokenVerifyRule struct {
+ // JWS、JWE专用校验规则
+ JWTRule *JWTConfig `json:"JWTRule,omitnil,omitempty" name:"JWTRule"`
+
+ // 其他会话有效性校验方式(contains、length、regex)的校验规则
+ GeneralRule *TokenRuleEntry `json:"GeneralRule,omitnil,omitempty" name:"GeneralRule"`
+}
+
+type TopicExtendInfo struct {
+ // 日志主题免鉴权配置信息
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ AnonymousAccess *AnonymousInfo `json:"AnonymousAccess,omitnil,omitempty" name:"AnonymousAccess"`
+}
+
+type TopicInfo struct {
+ // 日志集ID
+ LogsetId *string `json:"LogsetId,omitnil,omitempty" name:"LogsetId"`
+
+ // 主题ID
+ TopicId *string `json:"TopicId,omitnil,omitempty" name:"TopicId"`
+
+ // 主题名称
+ TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`
+
+ // 主题分区个数
+ PartitionCount *int64 `json:"PartitionCount,omitnil,omitempty" name:"PartitionCount"`
+
+ // 主题是否开启索引(主题类型需为日志主题)
+ Index *bool `json:"Index,omitnil,omitempty" name:"Index"`
+
+ // 云产品标识,主题由其它云产品创建时,该字段会显示云产品名称,例如CDN、TKE
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ AssumerName *string `json:"AssumerName,omitnil,omitempty" name:"AssumerName"`
+
+ // 创建时间
+ CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`
+
+ // 主题是否开启采集,true:开启采集;false:关闭采集。
+ // 创建日志主题时默认开启,可通过SDK调用ModifyTopic修改此字段。
+ // 控制台目前不支持修改此参数。
+ Status *bool `json:"Status,omitnil,omitempty" name:"Status"`
+
+ // 主题绑定的标签信息
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`
+
+ // 该主题是否开启自动分裂
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ AutoSplit *bool `json:"AutoSplit,omitnil,omitempty" name:"AutoSplit"`
+
+ // 若开启自动分裂的话,该主题能够允许的最大分区数
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ MaxSplitPartitions *int64 `json:"MaxSplitPartitions,omitnil,omitempty" name:"MaxSplitPartitions"`
+
+ // 主题的存储类型
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ StorageType *string `json:"StorageType,omitnil,omitempty" name:"StorageType"`
+
+ // 生命周期,单位天,可取值范围1~3600。取值为3640时代表永久保存
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ Period *int64 `json:"Period,omitnil,omitempty" name:"Period"`
+
+ // 云产品二级标识,日志主题由其它云产品创建时,该字段会显示云产品名称及其日志类型的二级分类,例如TKE-Audit、TKE-Event。部分云产品仅有云产品标识(AssumerName),无该字段。
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ SubAssumerName *string `json:"SubAssumerName,omitnil,omitempty" name:"SubAssumerName"`
+
+ // 主题描述
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ Describes *string `json:"Describes,omitnil,omitempty" name:"Describes"`
+
+ // 开启日志沉降,标准存储的生命周期, hotPeriod < Period。
+ // 标准存储为 hotPeriod, 低频存储则为 Period-hotPeriod。(主题类型需为日志主题)
+ // HotPeriod=0为没有开启日志沉降。
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ HotPeriod *uint64 `json:"HotPeriod,omitnil,omitempty" name:"HotPeriod"`
+
+ // 主题类型。
+ // - 0: 日志主题
+ // - 1: 指标主题
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ BizType *uint64 `json:"BizType,omitnil,omitempty" name:"BizType"`
+
+ // 免鉴权开关。 false:关闭; true:开启。
+ // 开启后将支持指定操作匿名访问该日志主题。详情请参见[日志主题](https://cloud.tencent.com/document/product/614/41035)。
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ IsWebTracking *bool `json:"IsWebTracking,omitnil,omitempty" name:"IsWebTracking"`
+
+ // 日志主题扩展信息
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ Extends *TopicExtendInfo `json:"Extends,omitnil,omitempty" name:"Extends"`
+
+ // 异步迁移任务ID
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ TopicAsyncTaskID *string `json:"TopicAsyncTaskID,omitnil,omitempty" name:"TopicAsyncTaskID"`
+
+ // 异步迁移状态
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ MigrationStatus *uint64 `json:"MigrationStatus,omitnil,omitempty" name:"MigrationStatus"`
+
+ // 异步迁移完成后,预计生效日期
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ EffectiveDate *string `json:"EffectiveDate,omitnil,omitempty" name:"EffectiveDate"`
+}
+
type UCBActionProportion struct {
// 动作
Action *string `json:"Action,omitnil,omitempty" name:"Action"`
@@ -17090,7 +19604,6 @@ func (r *UpdateProtectionModesRequest) FromJsonString(s string) error {
// Predefined struct for user
type UpdateProtectionModesResponseParams struct {
// 操作结果
- // 注意:此字段可能返回 null,表示取不到有效值。
CommonRsp *CommonRspData `json:"CommonRsp,omitnil,omitempty" name:"CommonRsp"`
// 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
@@ -17219,7 +19732,7 @@ type UpsertCCRuleRequestParams struct {
// 匹配方法,0表示等于,1表示前缀匹配,2表示包含,3表示不等于,6表示后缀匹配,7表示不包含
MatchFunc *int64 `json:"MatchFunc,omitnil,omitempty" name:"MatchFunc"`
- // CC的匹配条件JSON序列化的字符串,示例:[{\"key\":\"Method\",\"args\":[\"=R0VU\"],\"match\":\"0\",\"encodeflag\":true}] Key可选值为 Method、Post、Referer、Cookie、User-Agent、CustomHeader match可选值为,当Key为Method的时候可选值为0(等于)、3(不等于)。 Key为Post的时候可选值为0(等于)、3(不等于),Key为Cookie的时候可选值为0(等于)、2(包含),3(不等于)、7(不包含)、 当Key为Referer的时候可选值为0(等于)、3(不等于)、1(前缀匹配)、6(后缀匹配)、2(包含)、7(不包含)、12(存在)、5(不存在)、4(内容为空), 当Key为Cookie的时候可选值为0(等于)、3(不等于)、2(包含)、7(不包含)、12(存在)、5(不存在)、4(内容为空), 当Key为User-Agent的时候可选值为0(等于)、3(不等于)、1(前缀匹配)、6(后缀匹配)、2(包含)、7(不包含)、12(存在)、5(不存在)、4(内容为空), 当Key为CustomHeader的时候可选值为0(等于)、3(不等于)、2(包含)、7(不包含)、12(存在)、5(不存在)、4(内容为空)。 Key为IPLocation时,可选值为13(属于)、14(不属于)。args用来表示匹配内容,需要设置encodeflag为true,当Key为Post、Cookie、CustomHeader时,用等号=来分别串接Key和Value,并分别用Base64编码,类似YWJj=YWJj。当Key为Referer、User-Agent时,用等号=来串接Value,类似=YWJj。
+ // CC的匹配条件JSON序列化的字符串,示例:[{\"key\":\"Method\",\"args\":[\"=R0VU\"],\"match\":\"0\",\"encodeflag\":true}] Key可选值为 Method、Post、Referer、Cookie、User-Agent、CustomHeader、CaptchaRisk、CaptchaDeviceRisk、CaptchaScore match可选值为,当Key为Method的时候可选值为0(等于)、3(不等于)。 Key为Post的时候可选值为0(等于)、3(不等于),Key为Cookie的时候可选值为0(等于)、2(包含),3(不等于)、7(不包含)、 当Key为Referer的时候可选值为0(等于)、3(不等于)、1(前缀匹配)、6(后缀匹配)、2(包含)、7(不包含)、12(存在)、5(不存在)、4(内容为空), 当Key为Cookie的时候可选值为0(等于)、3(不等于)、2(包含)、7(不包含)、12(存在)、5(不存在)、4(内容为空), 当Key为User-Agent的时候可选值为0(等于)、3(不等于)、1(前缀匹配)、6(后缀匹配)、2(包含)、7(不包含)、12(存在)、5(不存在)、4(内容为空), 当Key为CustomHeader的时候可选值为0(等于)、3(不等于)、2(包含)、7(不包含)、12(存在)、5(不存在)、4(内容为空)。 Key为IPLocation时,可选值为13(属于)、14(不属于)。 Key为CaptchaRisk时,可选值为0(等于)、3(不等于)、13(属于)、14(不属于)、12(存在)、5(不存在)。 Key为CaptchaDeviceRisk时,可选值为0(等于)、3(不等于)、13(属于)、14(不属于)、12(存在)、5(不存在)。 Key为CaptchaScore时,可选值为15(数值等于)、16(数值不等于)、17(数值大于)、18(数值小于)、19(数值大于等于)、20(数值小于等于)、12(存在)、5(不存在)。args用来表示匹配内容,需要设置encodeflag为true,当Key为Post、Cookie、CustomHeader时,用等号=来分别串接Key和Value,并分别用Base64编码,类似YWJj=YWJj。当Key为Referer、User-Agent时,用等号=来串接Value,类似=YWJj。
OptionsArr *string `json:"OptionsArr,omitnil,omitempty" name:"OptionsArr"`
// waf版本,sparta-waf或者clb-waf
@@ -17251,6 +19764,12 @@ type UpsertCCRuleRequestParams struct {
// 配置方式的逻辑操作符,and或者or
LogicalOp *string `json:"LogicalOp,omitnil,omitempty" name:"LogicalOp"`
+
+ // 页面ID
+ PageId *string `json:"PageId,omitnil,omitempty" name:"PageId"`
+
+ // 动作灰度比例,默认值100
+ ActionRatio *uint64 `json:"ActionRatio,omitnil,omitempty" name:"ActionRatio"`
}
type UpsertCCRuleRequest struct {
@@ -17289,7 +19808,7 @@ type UpsertCCRuleRequest struct {
// 匹配方法,0表示等于,1表示前缀匹配,2表示包含,3表示不等于,6表示后缀匹配,7表示不包含
MatchFunc *int64 `json:"MatchFunc,omitnil,omitempty" name:"MatchFunc"`
- // CC的匹配条件JSON序列化的字符串,示例:[{\"key\":\"Method\",\"args\":[\"=R0VU\"],\"match\":\"0\",\"encodeflag\":true}] Key可选值为 Method、Post、Referer、Cookie、User-Agent、CustomHeader match可选值为,当Key为Method的时候可选值为0(等于)、3(不等于)。 Key为Post的时候可选值为0(等于)、3(不等于),Key为Cookie的时候可选值为0(等于)、2(包含),3(不等于)、7(不包含)、 当Key为Referer的时候可选值为0(等于)、3(不等于)、1(前缀匹配)、6(后缀匹配)、2(包含)、7(不包含)、12(存在)、5(不存在)、4(内容为空), 当Key为Cookie的时候可选值为0(等于)、3(不等于)、2(包含)、7(不包含)、12(存在)、5(不存在)、4(内容为空), 当Key为User-Agent的时候可选值为0(等于)、3(不等于)、1(前缀匹配)、6(后缀匹配)、2(包含)、7(不包含)、12(存在)、5(不存在)、4(内容为空), 当Key为CustomHeader的时候可选值为0(等于)、3(不等于)、2(包含)、7(不包含)、12(存在)、5(不存在)、4(内容为空)。 Key为IPLocation时,可选值为13(属于)、14(不属于)。args用来表示匹配内容,需要设置encodeflag为true,当Key为Post、Cookie、CustomHeader时,用等号=来分别串接Key和Value,并分别用Base64编码,类似YWJj=YWJj。当Key为Referer、User-Agent时,用等号=来串接Value,类似=YWJj。
+ // CC的匹配条件JSON序列化的字符串,示例:[{\"key\":\"Method\",\"args\":[\"=R0VU\"],\"match\":\"0\",\"encodeflag\":true}] Key可选值为 Method、Post、Referer、Cookie、User-Agent、CustomHeader、CaptchaRisk、CaptchaDeviceRisk、CaptchaScore match可选值为,当Key为Method的时候可选值为0(等于)、3(不等于)。 Key为Post的时候可选值为0(等于)、3(不等于),Key为Cookie的时候可选值为0(等于)、2(包含),3(不等于)、7(不包含)、 当Key为Referer的时候可选值为0(等于)、3(不等于)、1(前缀匹配)、6(后缀匹配)、2(包含)、7(不包含)、12(存在)、5(不存在)、4(内容为空), 当Key为Cookie的时候可选值为0(等于)、3(不等于)、2(包含)、7(不包含)、12(存在)、5(不存在)、4(内容为空), 当Key为User-Agent的时候可选值为0(等于)、3(不等于)、1(前缀匹配)、6(后缀匹配)、2(包含)、7(不包含)、12(存在)、5(不存在)、4(内容为空), 当Key为CustomHeader的时候可选值为0(等于)、3(不等于)、2(包含)、7(不包含)、12(存在)、5(不存在)、4(内容为空)。 Key为IPLocation时,可选值为13(属于)、14(不属于)。 Key为CaptchaRisk时,可选值为0(等于)、3(不等于)、13(属于)、14(不属于)、12(存在)、5(不存在)。 Key为CaptchaDeviceRisk时,可选值为0(等于)、3(不等于)、13(属于)、14(不属于)、12(存在)、5(不存在)。 Key为CaptchaScore时,可选值为15(数值等于)、16(数值不等于)、17(数值大于)、18(数值小于)、19(数值大于等于)、20(数值小于等于)、12(存在)、5(不存在)。args用来表示匹配内容,需要设置encodeflag为true,当Key为Post、Cookie、CustomHeader时,用等号=来分别串接Key和Value,并分别用Base64编码,类似YWJj=YWJj。当Key为Referer、User-Agent时,用等号=来串接Value,类似=YWJj。
OptionsArr *string `json:"OptionsArr,omitnil,omitempty" name:"OptionsArr"`
// waf版本,sparta-waf或者clb-waf
@@ -17321,6 +19840,12 @@ type UpsertCCRuleRequest struct {
// 配置方式的逻辑操作符,and或者or
LogicalOp *string `json:"LogicalOp,omitnil,omitempty" name:"LogicalOp"`
+
+ // 页面ID
+ PageId *string `json:"PageId,omitnil,omitempty" name:"PageId"`
+
+ // 动作灰度比例,默认值100
+ ActionRatio *uint64 `json:"ActionRatio,omitnil,omitempty" name:"ActionRatio"`
}
func (r *UpsertCCRuleRequest) ToJsonString() string {
@@ -17357,6 +19882,8 @@ func (r *UpsertCCRuleRequest) FromJsonString(s string) error {
delete(f, "LimitMethod")
delete(f, "CelRule")
delete(f, "LogicalOp")
+ delete(f, "PageId")
+ delete(f, "ActionRatio")
if len(f) > 0 {
return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "UpsertCCRuleRequest has unknown keys!", "")
}
@@ -17515,6 +20042,9 @@ type UpsertSessionRequestParams struct {
// Session对应ID
SessionID *int64 `json:"SessionID,omitnil,omitempty" name:"SessionID"`
+
+ // 精准匹配时配置的key
+ Key *string `json:"Key,omitnil,omitempty" name:"Key"`
}
type UpsertSessionRequest struct {
@@ -17549,6 +20079,9 @@ type UpsertSessionRequest struct {
// Session对应ID
SessionID *int64 `json:"SessionID,omitnil,omitempty" name:"SessionID"`
+
+ // 精准匹配时配置的key
+ Key *string `json:"Key,omitnil,omitempty" name:"Key"`
}
func (r *UpsertSessionRequest) ToJsonString() string {
@@ -17573,6 +20106,7 @@ func (r *UpsertSessionRequest) FromJsonString(s string) error {
delete(f, "Edition")
delete(f, "SessionName")
delete(f, "SessionID")
+ delete(f, "Key")
if len(f) > 0 {
return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "UpsertSessionRequest has unknown keys!", "")
}
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 21c60d1878..154e51339b 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -1356,7 +1356,7 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod/v20180717
# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.1.14
## explicit; go 1.14
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312
-# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.1170
+# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.1.36
## explicit; go 1.14
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf/v20180125
# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.1.45
diff --git a/website/docs/d/waf_owasp_rule_types.html.markdown b/website/docs/d/waf_owasp_rule_types.html.markdown
new file mode 100644
index 0000000000..726824ee12
--- /dev/null
+++ b/website/docs/d/waf_owasp_rule_types.html.markdown
@@ -0,0 +1,57 @@
+---
+subcategory: "Web Application Firewall(WAF)"
+layout: "tencentcloud"
+page_title: "TencentCloud: tencentcloud_waf_owasp_rule_types"
+sidebar_current: "docs-tencentcloud-datasource-waf_owasp_rule_types"
+description: |-
+ Use this data source to query detailed information of WAF owasp rule types
+---
+
+# tencentcloud_waf_owasp_rule_types
+
+Use this data source to query detailed information of WAF owasp rule types
+
+## Example Usage
+
+```hcl
+data "tencentcloud_waf_owasp_rule_types" "example" {
+ domain = "demo.com"
+ filters {
+ name = "RuleId"
+ values = ["10000001"]
+ exact_match = true
+ }
+}
+```
+
+## Argument Reference
+
+The following arguments are supported:
+
+* `domain` - (Required, String) Domain names to be queried.
+* `filters` - (Optional, List) Filter conditions. supports RuleId, CveID, and Desc.
+* `result_output_file` - (Optional, String) Used to save results.
+
+The `filters` object supports the following:
+
+* `exact_match` - (Required, Bool) Exact search or not.
+* `name` - (Required, String) Field name, used for filtering
+Filter the sub-order number (value) by DealName.
+* `values` - (Required, Set) Values after filtering.
+
+## Attributes Reference
+
+In addition to all arguments above, the following attributes are exported:
+
+* `list` - Rule type list and information.
+ * `action` - Protection mode of the rule type. valid values: 0 (observation), 1 (intercept).
+ * `active_rule` - Indicates the total number of rules enabled under the rule type.
+ * `classification` - Data type category.
+ * `description` - Type description.
+ * `level` - Protection level of the rule type. valid values: 100 (loose), 200 (normal), 300 (strict), 400 (ultra-strict).
+ * `status` - The switch status of the rule type. valid values: 0 (disabled), 1 (enabled).
+ * `total_rule` - Specifies all rules under the rule type. always.
+ * `type_id` - Type ID.
+ * `type_name` - Type name.
+
+
diff --git a/website/docs/d/waf_owasp_rules.html.markdown b/website/docs/d/waf_owasp_rules.html.markdown
new file mode 100644
index 0000000000..3b176f71a6
--- /dev/null
+++ b/website/docs/d/waf_owasp_rules.html.markdown
@@ -0,0 +1,69 @@
+---
+subcategory: "Web Application Firewall(WAF)"
+layout: "tencentcloud"
+page_title: "TencentCloud: tencentcloud_waf_owasp_rules"
+sidebar_current: "docs-tencentcloud-datasource-waf_owasp_rules"
+description: |-
+ Use this data source to query detailed information of WAF owasp rules
+---
+
+# tencentcloud_waf_owasp_rules
+
+Use this data source to query detailed information of WAF owasp rules
+
+## Example Usage
+
+```hcl
+data "tencentcloud_waf_owasp_rules" "example" {
+ domain = "example.qcloud.com"
+ by = "RuleId"
+ order = "desc"
+ filters {
+ name = "RuleId"
+ values = ["106251141"]
+ exact_match = true
+ }
+}
+```
+
+## Argument Reference
+
+The following arguments are supported:
+
+* `domain` - (Required, String) Domain to be queried.
+* `by` - (Optional, String) Specifies the field used to sort. valid values: RuleId, ModifyTime.
+* `filters` - (Optional, List) Specifies the criteria, support RuleId, TypeId, Desc, CveID, Status, and VulLevel.
+* `order` - (Optional, String) Sorting method. supports asc, desc.
+* `result_output_file` - (Optional, String) Used to save results.
+
+The `filters` object supports the following:
+
+* `exact_match` - (Required, Bool) Exact search or not.
+* `name` - (Required, String) Field name, used for filtering
+Filter the sub-order number (value) by DealName.
+* `values` - (Required, Set) Values after filtering.
+
+## Attributes Reference
+
+In addition to all arguments above, the following attributes are exported:
+
+* `list` - List of rules.
+ * `create_time` - Creation time.
+ * `cve_id` - CVE ID.
+ * `description` - Rule description.
+ * `level` - Protection level of the rule. valid values: 100 (loose), 200 (normal), 300 (strict), 400 (ultra-strict).
+ * `locked` - Whether the user is locked.
+ * `modify_time` - Update time.
+ * `reason` - Reason for modification
+
+0: none (compatibility records are empty).
+1: avoid false positives due to business characteristics.
+2: reporting of rule-based false positives.
+3: gray release of core business rules.
+4: others.
+ * `rule_id` - Rule ID.
+ * `status` - Rule switch. valid values: 0 (disabled), 1 (enabled), 2 (observation only).
+ * `type_id` - Specifies the rule type ID.
+ * `vul_level` - Threat level. valid values: 0 (unknown), 100 (low risk), 200 (medium risk), 300 (high risk), 400 (critical).
+
+
diff --git a/website/docs/r/waf_owasp_rule_status_config.html.markdown b/website/docs/r/waf_owasp_rule_status_config.html.markdown
new file mode 100644
index 0000000000..634b36e87b
--- /dev/null
+++ b/website/docs/r/waf_owasp_rule_status_config.html.markdown
@@ -0,0 +1,53 @@
+---
+subcategory: "Web Application Firewall(WAF)"
+layout: "tencentcloud"
+page_title: "TencentCloud: tencentcloud_waf_owasp_rule_status_config"
+sidebar_current: "docs-tencentcloud-resource-waf_owasp_rule_status_config"
+description: |-
+ Provides a resource to create a WAF owasp rule status config
+---
+
+# tencentcloud_waf_owasp_rule_status_config
+
+Provides a resource to create a WAF owasp rule status config
+
+## Example Usage
+
+```hcl
+resource "tencentcloud_waf_owasp_rule_status_config" "example" {
+ domain = "demo.com"
+ rule_id = "106251141"
+ rule_status = 1
+}
+```
+
+## Argument Reference
+
+The following arguments are supported:
+
+* `domain` - (Required, String, ForceNew) Domain name.
+* `rule_id` - (Required, String, ForceNew) Rule ID.
+* `rule_status` - (Required, Int) Rule switch. valid values: 0 (disabled), 1 (enabled), 2 (observation only).
+* `reason` - (Optional, Int) Reason for modification. valid values: 0: none (compatibility record is empty). 1: avoid false positives due to business characteristics. 2: reporting of rule-based false positives. 3: gray release of core business rules. 4: others.
+* `type_id` - (Optional, Int) If reverse requires the input of data type.
+
+## Attributes Reference
+
+In addition to all arguments above, the following attributes are exported:
+
+* `id` - ID of the resource.
+* `cve_id` - CVE ID.
+* `description` - Rule description.
+* `level` - Protection level of the rule. valid values: 100 (loose), 200 (normal), 300 (strict), 400 (ultra-strict).
+* `locked` - Whether the user is locked.
+* `vul_level` - Threat level. valid values: 0 (unknown), 100 (low risk), 200 (medium risk), 300 (high risk), 400 (critical).
+
+
+## Import
+
+WAF owasp rule status config can be imported using the domain#ruleId, e.g.
+
+```
+terraform import tencentcloud_waf_owasp_rule_status_config.example demo.com#106251141
+```
+
diff --git a/website/docs/r/waf_owasp_rule_type_config.html.markdown b/website/docs/r/waf_owasp_rule_type_config.html.markdown
new file mode 100644
index 0000000000..b0745fa641
--- /dev/null
+++ b/website/docs/r/waf_owasp_rule_type_config.html.markdown
@@ -0,0 +1,55 @@
+---
+subcategory: "Web Application Firewall(WAF)"
+layout: "tencentcloud"
+page_title: "TencentCloud: tencentcloud_waf_owasp_rule_type_config"
+sidebar_current: "docs-tencentcloud-resource-waf_owasp_rule_type_config"
+description: |-
+ Provides a resource to create a WAF owasp rule type config
+---
+
+# tencentcloud_waf_owasp_rule_type_config
+
+Provides a resource to create a WAF owasp rule type config
+
+## Example Usage
+
+```hcl
+resource "tencentcloud_waf_owasp_rule_type_config" "example" {
+ domain = "demo.com"
+ type_id = "30000000"
+ rule_type_status = 1
+ rule_type_action = 1
+ rule_type_level = 200
+}
+```
+
+## Argument Reference
+
+The following arguments are supported:
+
+* `domain` - (Required, String, ForceNew) Domain name.
+* `type_id` - (Required, String, ForceNew) Rule type ID.
+* `rule_type_action` - (Optional, Int) Protection mode of the rule type. valid values: 0 (observation), 1 (intercept).
+* `rule_type_level` - (Optional, Int) Protection level of the rule. valid values: 100 (loose), 200 (normal), 300 (strict), 400 (ultra-strict).
+* `rule_type_status` - (Optional, Int) The switch status of the rule type. valid values: 0 (disabled), 1 (enabled).
+
+## Attributes Reference
+
+In addition to all arguments above, the following attributes are exported:
+
+* `id` - ID of the resource.
+* `active_rule` - Indicates the total number of rules enabled under the rule type.
+* `classification` - Data type category.
+* `description` - Rule type description.
+* `rule_type_name` - Rule type name.
+* `total_rule` - Specifies all rules under the rule type. always.
+
+
+## Import
+
+WAF owasp rule type config can be imported using the domain#typeId, e.g.
+
+```
+terraform import tencentcloud_waf_owasp_rule_type_config.example demo.com#30000000
+```
+
diff --git a/website/docs/r/waf_owasp_white_rule.html.markdown b/website/docs/r/waf_owasp_white_rule.html.markdown
new file mode 100644
index 0000000000..1750474f43
--- /dev/null
+++ b/website/docs/r/waf_owasp_white_rule.html.markdown
@@ -0,0 +1,155 @@
+---
+subcategory: "Web Application Firewall(WAF)"
+layout: "tencentcloud"
+page_title: "TencentCloud: tencentcloud_waf_owasp_white_rule"
+sidebar_current: "docs-tencentcloud-resource-waf_owasp_white_rule"
+description: |-
+ Provides a resource to create a WAF owasp white rule
+---
+
+# tencentcloud_waf_owasp_white_rule
+
+Provides a resource to create a WAF owasp white rule
+
+## Example Usage
+
+```hcl
+resource "tencentcloud_waf_owasp_white_rule" "example" {
+ name = "tf-example"
+ domain = "example.qcloud.com"
+ strategies {
+ field = "IP"
+ compare_func = "ipmatch"
+ content = "1.1.1.1"
+ arg = ""
+ case_not_sensitive = 0
+ }
+ ids = [
+ 10000000,
+ 20000000,
+ 30000000,
+ 40000000,
+ 90000000,
+ 110000000,
+ 190000000,
+ 200000000,
+ 210000000,
+ 220000000,
+ 230000000,
+ 240000000,
+ 250000000,
+ 260000000,
+ 270000000,
+ 280000000,
+ 290000000,
+ 300000000,
+ 310000000,
+ 320000000,
+ 330000000,
+ 340000000,
+ 350000000,
+ 360000000,
+ 370000000
+ ]
+ type = 1
+ job_type = "TimedJob"
+ job_date_time {
+ timed {
+ start_date_time = 0
+ end_date_time = 0
+ }
+
+ time_t_zone = "UTC+8"
+ }
+ expire_time = 0
+ status = 1
+}
+```
+
+## Argument Reference
+
+The following arguments are supported:
+
+* `domain` - (Required, String, ForceNew) Domain name.
+* `expire_time` - (Required, Int) If the JobDateTime field is not set, this field is used. 0 means permanent, other values indicate the cutoff time for scheduled effect (unit: seconds).
+* `ids` - (Required, Set: [`Int`]) ID list of allowlisted rules.
+* `job_date_time` - (Required, List) Scheduled task configuration.
+* `job_type` - (Required, String) Rule execution mode: TimedJob indicates scheduled execution. CronJob indicates periodic execution.
+* `name` - (Required, String) Rule name.
+* `strategies` - (Required, List) Rule-Based matching policy list.
+* `type` - (Required, Int) Allowlist type. valid values: 0 (allowlisting by specific rule ID), 1 (allowlisting by rule type).
+* `status` - (Optional, Int) Rule status. valid values: 0 (disabled), 1 (enabled). enabled by default.
+
+The `cron` object of `job_date_time` supports the following:
+
+* `days` - (Optional, Set) Execution day of each month.
+* `end_time` - (Optional, String) End time.
+* `start_time` - (Optional, String) Start time.
+* `w_days` - (Optional, Set) Execution day of each week.
+
+The `job_date_time` object supports the following:
+
+* `cron` - (Optional, List) Time parameter for periodic execution.
+* `time_t_zone` - (Optional, String) Specifies the time zone.
+* `timed` - (Optional, List) Time parameter for scheduled execution.
+
+The `strategies` object supports the following:
+
+* `arg` - (Required, String) Specifies the matching parameter.
+
+Configuration parameters are divided into two data types: parameter not supported and support parameters.
+When the match field is one of the following four, the matching parameter can be entered, otherwise not supported.
+GET (get parameter value).
+POST (post parameter value).
+ARGS_COOKIE (COOKIE parameter value).
+ARGS_HEADER (HEADER parameter value).
+* `compare_func` - (Required, String) Specifies the logic symbol.
+
+Logical symbols are divided into the following types:.
+Empty (content is empty).
+null (not found).
+Eq (equal to).
+neq (not equal to).
+contains (contain).
+ncontains (do not contain).
+strprefix (prefix matching).
+strsuffix (suffix matching).
+Len_eq (length equals to).
+Len_gt (length greater than).
+Len_lt (length less than).
+ipmatch (belong).
+ipnmatch (not_in).
+numgt (value greater than).
+NumValue smaller than].
+Value equal to.
+numneq (value not equal to).
+numle (less than or equal to).
+numge (value is greater than or equal to).
+geo_in (IP geographic belong).
+geo_not_in (IP geographic not_in).
+Specifies different logical operators for matching fields. for details, see the matching field table above.
+* `content` - (Required, String) Specifies the match content.
+
+Currently, when the match field is COOKIE (COOKIE), match content is not required. all others are needed.
+* `field` - (Required, String) Specifies the matching field.
+
+Different matching fields result in different matching parameters, logical operators, and matching contents. the details are as follows:.
+| Matching Field | Matching Parameter | Logical Symbol | Matching Content |
| IP (source IP) | Parameters are not supported. | ipmatch (match) ipnmatch (mismatch) | Multiple IP addresses are separated by commas. A maximum of 20 IP addresses are allowed. |
| IPv6 (source IPv6) | Parameters are not supported. | ipmatch (match) ipnmatch (mismatch) | A single IPv6 address is supported. |
| Referer (referer) | Parameters are not supported. | empty (Content is empty.) null (do not exist) eq (equal to) neq (not equal to) contains (contain) ncontains (do not contain) len_eq (length equals to) len_gt (length is greater than) len_lt (length is less than) strprefix (prefix matching) strsuffix (suffix matching) rematch (regular expression matching) | Enter the content, with a maximum of 512 characters. |
| URL (request path) | Parameters are not supported. | eq (equal to) neq (not equal to) contains (contain) ncontains (do not contain) len_eq (length equals to) len_gt (length is greater than) len_lt (length is
+ less than) strprefix (prefix matching) strsuffix (suffix matching) rematch (regular expression matching) | Enter the content starting with /, with a maximum of 512 characters. |
| UserAgent (UserAgent) | Parameters are not supported. | Same logical symbols as the matching field Referer | Enter the content with a maximum of 512 characters. |
| HTTP_METHOD (HTTP request method) | Parameters are not supported. | eq (equal to) neq (not equal to) | Enter the method name. The uppercase is recommended. |
| QUERY_STRING (request string) | Parameters are not supported. | Same logical symbol as the matching field Request Path | Enter the content with a maximum of 512 characters. |
| GET (GET parameter value) | Parameter entry is supported. | contains (contain) ncontains (do not contain) len_eq (length equals to) len_gt (length is greater than) len_lt (length is less than) strprefix (prefix matching) strsuffix (suffix matching) | Enter the content with a maximum of 512 characters. |
| GET_PARAMS_NAMES (GET parameter name) | Parameters are not supported. | exist (Parameter exists.) nexist (Parameter does not exist.) len_eq (length equals to) len_gt (length is greater than) len_lt (length is less than) strprefix (prefix matching) strsuffix (suffix matching) | Enter the content with a maximum of 512 characters. |
| POST (POST parameter value) | Parameter entry is supported. | Same logical symbol as the matching field GET Parameter Value | Enter the content with a maximum of 512 characters. |
| GET_POST_NAMES (POST parameter name) | Parameters are not supported. | Same logical symbol as the matching field GET Parameter Name | Enter the content with a maximum of 512 characters. |
| POST_BODY (complete body) | Parameters are not supported. | Same logical symbol as the matching field Request Path | Enter the body content with a maximum of 512 characters. |
| COOKIE (cookie) | Parameters are not supported. | empty (Content is empty.) null (do not exist) rematch (regular expression matching) | Unsupported currently |
| GET_COOKIES_NAMES (cookie parameter name) | Parameters are not supported. | Same logical symbol as the matching field GET Parameter Name | Enter the content with a maximum of 512 characters. |
| ARGS_COOKIE (cookie parameter value) | Parameter entry is supported. | Same logical symbol as the matching field GET Parameter Value | Enter the content512 characters limit |
| GET_HEADERS_NAMES (Header parameter name) | parameter not supported | exsit (parameter exists) nexsit (parameter does not exist) len_eq (LENGTH equal) len_gt (LENGTH greater than) len_lt (LENGTH less than) strprefix (prefix match) strsuffix (suffix matching) rematch (regular expression matching) | enter CONTENT, lowercase is recommended, up to 512 characters |
| ARGS_Header (Header parameter value) | support parameter entry | contains (include) ncontains (does not include) len_eq (LENGTH equal) len_gt (LENGTH greater than) len_lt (LENGTH less than) strprefix (prefix match) strsuffix (suffix matching) rematch (regular expression matching) | enter CONTENT, up to 512 characters |
| CONTENT_LENGTH (CONTENT-LENGTH) | support parameter entry | numgt (value greater than) numlt (value smaller than) numeq (value equal to)
| enter an integer between 0-9999999999999 |
| IP_GEO (source IP geolocation) | support parameter entry | GEO_in (belong) GEO_not_in (not_in)
| enter CONTENT, up to 10240 characters, format: serialized JSON, format: [{"Country":"china","Region":"guangdong","City":"shenzhen"}] |
| CAPTCHA_RISK (CAPTCHA RISK) | parameter not supported | eq (equal) neq (not equal to) belong (belong) not_belong (not belong to) null (nonexistent) exist (exist) | enter RISK level value, value range 0-255 |
| CAPTCHA_DEVICE_RISK (CAPTCHA DEVICE RISK) | parameter not supported | eq (equal) neq (not equal to) belong (belong) not_belong (not belong to) null (nonexistent) exist (exist) | enter DEVICE RISK code, valid values: 101, 201, 301, 401, 501, 601, 701 |
| CAPTCHAR_SCORE (CAPTCHA RISK assessment SCORE) | parameter not supported | numeq (value equal to) numgt (value greater than) numlt (value smaller than) numle (less than or equal to) numge (value is greater than or equal to) null (nonexistent) exist (exist) | enter assessment SCORE, value range 0-100 |
.
+
.
+* `case_not_sensitive` - (Optional, Int) Case-Sensitive.
+Case-Insensitive.
+
+The `timed` object of `job_date_time` supports the following:
+
+* `end_date_time` - (Optional, Int) End timestamp, in seconds.
+* `start_date_time` - (Optional, Int) Start timestamp, in seconds.
+
+## Attributes Reference
+
+In addition to all arguments above, the following attributes are exported:
+
+* `id` - ID of the resource.
+* `rule_id` - Rule ID.
+
+
diff --git a/website/tencentcloud.erb b/website/tencentcloud.erb
index 824d7285ac..08223d919c 100644
--- a/website/tencentcloud.erb
+++ b/website/tencentcloud.erb
@@ -6942,6 +6942,12 @@
tencentcloud_waf_instance_qps_limit
+
+ tencentcloud_waf_owasp_rule_types
+
+
+ tencentcloud_waf_owasp_rules
+
tencentcloud_waf_peak_points
@@ -7025,6 +7031,15 @@
tencentcloud_waf_module_status
+
+ tencentcloud_waf_owasp_rule_status_config
+
+
+ tencentcloud_waf_owasp_rule_type_config
+
+
+ tencentcloud_waf_owasp_white_rule
+
tencentcloud_waf_protection_mode