github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/kms/v1/keys/Encrypt.go (about) 1 package keys 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 EncryptDataOpts struct { 10 KeyID string `json:"key_id" required:"true"` 11 PlainText string `json:"plain_text" required:"true"` 12 EncryptionAlgorithm string `json:"encryption_algorithm,omitempty"` 13 Sequence string `json:"sequence,omitempty"` 14 } 15 16 func EncryptData(client *golangsdk.ServiceClient, opts EncryptDataOpts) (*EncryptResp, error) { 17 b, err := build.RequestBody(opts, "") 18 if err != nil { 19 return nil, err 20 } 21 22 raw, err := client.Post(client.ServiceURL("kms", "encrypt-data"), b, nil, 23 &golangsdk.RequestOpts{ 24 OkCodes: []int{200}, 25 }) 26 if err != nil { 27 return nil, err 28 } 29 var res EncryptResp 30 err = extract.Into(raw.Body, &res) 31 return &res, err 32 } 33 34 type EncryptResp struct { 35 KeyID string `json:"key_id"` 36 CipherText string `json:"cipher_text"` 37 }