github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/apigw/v2/key/Update.go (about)

     1  package key
     2  
     3  import (
     4  	golangsdk "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  	SignID        string `json:"-"`
    12  	Name          string `json:"name" required:"true"`
    13  	SignType      string `json:"sign_type,omitempty"`
    14  	SignKey       string `json:"sign_key,omitempty"`
    15  	SignSecret    string `json:"sign_secret,omitempty"`
    16  	SignAlgorithm string `json:"sign_algorithm,omitempty"`
    17  }
    18  
    19  func Update(client *golangsdk.ServiceClient, opts UpdateOpts) (*SignKeyResp, error) {
    20  	b, err := build.RequestBody(opts, "")
    21  	if err != nil {
    22  		return nil, err
    23  	}
    24  
    25  	raw, err := client.Put(client.ServiceURL("apigw", "instances", opts.GatewayID, "signs", opts.SignID),
    26  		b, nil, &golangsdk.RequestOpts{
    27  			OkCodes: []int{200},
    28  		})
    29  	if err != nil {
    30  		return nil, err
    31  	}
    32  
    33  	var res SignKeyResp
    34  
    35  	err = extract.Into(raw.Body, &res)
    36  	return &res, err
    37  }