github.com/chnsz/golangsdk@v0.0.0-20240506093406-85a3fbfa605b/openstack/apigw/dedicated/v2/certificates/requests.go (about) 1 package certificates 2 3 import "github.com/chnsz/golangsdk" 4 5 type CertOpts struct { 6 // The certificate name. 7 Name string `json:"name" required:"true"` 8 // The certificate content. 9 Content string `json:"cert_content" required:"true"` 10 // The private key of the certificate. 11 PrivateKey string `json:"private_key" required:"true"` 12 // The certificate type. The valid values are as follows: 13 // + instance 14 // + global 15 Type string `json:"type,omitempty"` 16 // The dedicated instance ID to which the certificate belongs. 17 // If the certificate type is global and the instance ID is omitted, the value 'common' will be used by default. 18 InstanceId string `json:"instance_id,omitempty"` 19 // The trusted root certificate (CA). 20 TrustedRootCA string `json:"trusted_root_ca,omitempty"` 21 } 22 23 var requestOpts = golangsdk.RequestOpts{ 24 MoreHeaders: map[string]string{"Content-Type": "application/json", "X-Language": "en-us"}, 25 } 26 27 // Create is a method used to create a new certificate using given parameters. 28 func Create(client *golangsdk.ServiceClient, opts CertOpts) (*Certificate, error) { 29 b, err := golangsdk.BuildRequestBody(opts, "") 30 if err != nil { 31 return nil, err 32 } 33 34 var r Certificate 35 _, err = client.Post(rootURL(client), b, &r, &golangsdk.RequestOpts{ 36 MoreHeaders: requestOpts.MoreHeaders, 37 }) 38 return &r, err 39 } 40 41 // Get is a method to obtain an existing certificate by its ID. 42 func Get(client *golangsdk.ServiceClient, certificateId string) (*Certificate, error) { 43 var r Certificate 44 _, err := client.Get(resourceURL(client, certificateId), &r, &golangsdk.RequestOpts{ 45 MoreHeaders: requestOpts.MoreHeaders, 46 }) 47 return &r, err 48 } 49 50 // Update is a method used to update the configuration of an existing certificate using given parameters. 51 func Update(client *golangsdk.ServiceClient, certificateId string, opts CertOpts) (*Certificate, error) { 52 b, err := golangsdk.BuildRequestBody(opts, "") 53 if err != nil { 54 return nil, err 55 } 56 57 var r Certificate 58 _, err = client.Put(resourceURL(client, certificateId), b, &r, &golangsdk.RequestOpts{ 59 MoreHeaders: requestOpts.MoreHeaders, 60 }) 61 return &r, err 62 } 63 64 // Delete is a method to delete an existing certificate using its ID. 65 func Delete(client *golangsdk.ServiceClient, certificateId string) error { 66 _, err := client.Delete(resourceURL(client, certificateId), nil) 67 return err 68 }