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  }