github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/waf/v1/webtamperprotection_rules/requests.go (about) 1 package webtamperprotection_rules 2 3 import ( 4 "github.com/opentelekomcloud/gophertelekomcloud" 5 "github.com/opentelekomcloud/gophertelekomcloud/openstack" 6 ) 7 8 // CreateOptsBuilder allows extensions to add additional parameters to the 9 // Create request. 10 type CreateOptsBuilder interface { 11 ToWebTamperCreateMap() (map[string]interface{}, error) 12 } 13 14 // CreateOpts contains all the values needed to create a new web tamper protection rule. 15 type CreateOpts struct { 16 Hostname string `json:"hostname" required:"true"` 17 Path string `json:"path" required:"true"` 18 } 19 20 // ToWebTamperCreateMap builds a create request body from CreateOpts. 21 func (opts CreateOpts) ToWebTamperCreateMap() (map[string]interface{}, error) { 22 return golangsdk.BuildRequestBody(opts, "") 23 } 24 25 // Create will create a new web tamper protection rule based on the values in CreateOpts. 26 func Create(c *golangsdk.ServiceClient, policyID string, opts CreateOptsBuilder) (r CreateResult) { 27 b, err := opts.ToWebTamperCreateMap() 28 if err != nil { 29 r.Err = err 30 return 31 } 32 reqOpt := &golangsdk.RequestOpts{OkCodes: []int{200}} 33 _, r.Err = c.Post(rootURL(c, policyID), b, &r.Body, reqOpt) 34 return 35 } 36 37 // Get retrieves a particular web tamper protection rule based on its unique ID. 38 func Get(c *golangsdk.ServiceClient, policyID, ruleID string) (r GetResult) { 39 _, r.Err = c.Get(resourceURL(c, policyID, ruleID), &r.Body, openstack.StdRequestOpts()) 40 return 41 } 42 43 // Delete will permanently delete a particular web tamper protection rule based on its unique ID. 44 func Delete(c *golangsdk.ServiceClient, policyID, ruleID string) (r DeleteResult) { 45 reqOpt := &golangsdk.RequestOpts{OkCodes: []int{204}, 46 MoreHeaders: openstack.StdRequestOpts().MoreHeaders} 47 _, r.Err = c.Delete(resourceURL(c, policyID, ruleID), reqOpt) 48 return 49 }