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 }