github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/waf-premium/v1/rules/UpdateAntiCrawler.go (about)

     1  package rules
     2  
     3  import (
     4  	"github.com/opentelekomcloud/gophertelekomcloud"
     5  	"github.com/opentelekomcloud/gophertelekomcloud/internal/build"
     6  	"github.com/opentelekomcloud/gophertelekomcloud/internal/extract"
     7  )
     8  
     9  type UpdateAntiCrawlerOpts struct {
    10  	// URL to which the rule applies.
    11  	Url string `json:"url" required:"true"`
    12  	// Rule matching logic
    13  	// 1: Include
    14  	// 2: Not include
    15  	// 3: Equal
    16  	// 4: Not equal
    17  	// 5: Prefix is
    18  	// 6: Prefix is not
    19  	// 7: Suffix is
    20  	// 8: Suffix is not
    21  	Logic int `json:"logic" required:"true"`
    22  	// Rule name.
    23  	Name string `json:"name" required:"true"`
    24  }
    25  
    26  // UpdateAntiCrawler is used to update a JavaScript anti-crawler rule.
    27  func UpdateAntiCrawler(client *golangsdk.ServiceClient, policyId, ruleId string, opts UpdateAntiCrawlerOpts) (*AntiCrawlerRule, error) {
    28  	b, err := build.RequestBody(opts, "")
    29  	if err != nil {
    30  		return nil, err
    31  	}
    32  
    33  	// PUT /v1/{project_id}/waf/policy/{policy_id}/anticrawler/{rule_id}
    34  	raw, err := client.Put(client.ServiceURL("waf", "policy", policyId, "anticrawler", ruleId), b, nil, &golangsdk.RequestOpts{
    35  		OkCodes:     []int{200},
    36  		MoreHeaders: map[string]string{"Content-Type": "application/json;charset=utf8"},
    37  	})
    38  	if err != nil {
    39  		return nil, err
    40  	}
    41  	var res AntiCrawlerRule
    42  	return &res, extract.Into(raw.Body, &res)
    43  }