github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/apigw/v2/key/BindKey.go (about) 1 package key 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 BindOpts struct { 10 GatewayID string `json:"-"` 11 SignID string `json:"sign_id" required:"true"` 12 PublishIds []string `json:"publish_ids" required:"true"` 13 } 14 15 func BindKey(client *golangsdk.ServiceClient, opts BindOpts) ([]BindSignResp, error) { 16 b, err := build.RequestBody(opts, "") 17 if err != nil { 18 return nil, err 19 } 20 21 raw, err := client.Post(client.ServiceURL("apigw", "instances", opts.GatewayID, "sign-bindings"), b, 22 nil, &golangsdk.RequestOpts{ 23 OkCodes: []int{201}, 24 }) 25 if err != nil { 26 return nil, err 27 } 28 29 var res []BindSignResp 30 31 err = extract.IntoSlicePtr(raw.Body, &res, "bindings") 32 return res, err 33 } 34 35 type BindSignResp struct { 36 PublishID string `json:"publish_id"` 37 ApiID string `json:"api_id"` 38 ApiType int `json:"api_type"` 39 ApiName string `json:"api_name"` 40 ApiDescription string `json:"api_remark"` 41 EnvID string `json:"env_id"` 42 EnvName string `json:"env_name"` 43 GroupName string `json:"group_name"` 44 Name string `json:"name"` 45 SignType string `json:"sign_type"` 46 SignKey string `json:"sign_key"` 47 SignSecret string `json:"sign_secret"` 48 SignAlgorithm string `json:"sign_algorithm"` 49 BindingTime string `json:"binding_time"` 50 ID string `json:"id"` 51 SignID string `json:"sign_id"` 52 SignName string `json:"sign_name"` 53 }