github.com/IBM-Cloud/bluemix-go@v0.0.0-20240423071914-9e96525baef4/api/icd/icdv4/cdb.go (about) 1 package icdv4 2 3 import ( 4 "fmt" 5 6 "github.com/IBM-Cloud/bluemix-go/client" 7 "github.com/IBM-Cloud/bluemix-go/utils" 8 ) 9 10 type CdbResult struct { 11 Cdb Cdb `json:"deployment"` 12 } 13 14 type Cdb struct { 15 Id string `json:"id"` 16 Name string `json:"name"` 17 Type string `json:"type"` 18 PlatformOptions PlatformOptions `json:"platform_options"` 19 Version string `json:"version"` 20 AdminUser string `json:"admin_username"` 21 } 22 23 type PlatformOptions struct { 24 KeyProtectKey string `json:"key_protect_key_id"` 25 DiskENcryptionKeyCrn string `json:"disk_encryption_key_crn"` 26 BackUpEncryptionKeyCrn string `json:"backup_encryption_key_crn"` 27 } 28 29 type Cdbs interface { 30 GetCdb(icdId string) (Cdb, error) 31 } 32 33 type cdbs struct { 34 client *client.Client 35 } 36 37 func newCdbAPI(c *client.Client) Cdbs { 38 return &cdbs{ 39 client: c, 40 } 41 } 42 43 func (r *cdbs) GetCdb(icdId string) (Cdb, error) { 44 cdbResult := CdbResult{} 45 rawURL := fmt.Sprintf("/v4/ibm/deployments/%s", utils.EscapeUrlParm(icdId)) 46 _, err := r.client.Get(rawURL, &cdbResult) 47 if err != nil { 48 return cdbResult.Cdb, err 49 } 50 return cdbResult.Cdb, nil 51 }