github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/apigw/v2/tr_policy/Update.go (about) 1 package throttling_policy 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 UpdateOpts struct { 10 GatewayID string `json:"-"` 11 ThrottleID string `json:"-"` 12 Name string `json:"name" required:"true"` 13 AppCallLimits *int `json:"app_call_limits,omitempty"` 14 ApiCallLimits *int `json:"api_call_limits" required:"true"` 15 TimeInterval *int `json:"time_interval" required:"true"` 16 TimeUnit string `json:"time_unit" required:"true"` 17 Description string `json:"remark,omitempty"` 18 Type *int `json:"type,omitempty"` 19 IpCallLimits *int `json:"ip_call_limits,omitempty"` 20 UserCallLimits *int `json:"user_call_limits,omitempty"` 21 EnableAdaptiveControl string `json:"enable_adaptive_control,omitempty"` 22 } 23 24 func Update(client *golangsdk.ServiceClient, opts UpdateOpts) (*ThrottlingResp, error) { 25 b, err := build.RequestBody(opts, "") 26 if err != nil { 27 return nil, err 28 } 29 30 raw, err := client.Put(client.ServiceURL("apigw", "instances", opts.GatewayID, "throttles", opts.ThrottleID), 31 b, nil, &golangsdk.RequestOpts{ 32 OkCodes: []int{200}, 33 }) 34 if err != nil { 35 return nil, err 36 } 37 38 var res ThrottlingResp 39 40 err = extract.Into(raw.Body, &res) 41 return &res, err 42 }