github.com/IBM-Cloud/bluemix-go@v0.0.0-20240423071914-9e96525baef4/api/icd/icdv4/configuration.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 ConfigurationReq struct {
    11  	Configuration interface{} `json:"configuration"`
    12  }
    13  
    14  type Configurations interface {
    15  	UpdateConfiguration(icdId string, configurationReq ConfigurationReq) (Task, error)
    16  	GetConfiguration(icdId string) (interface{}, error)
    17  }
    18  
    19  type configurations struct {
    20  	client *client.Client
    21  }
    22  
    23  func newConfigurationsAPI(c *client.Client) Configurations {
    24  	return &configurations{
    25  		client: c,
    26  	}
    27  }
    28  
    29  func (r *configurations) UpdateConfiguration(icdId string, configurationReq ConfigurationReq) (Task, error) {
    30  	taskResult := TaskResult{}
    31  	rawURL := fmt.Sprintf("/v4/ibm/deployments/%s/configuration", utils.EscapeUrlParm(icdId))
    32  	_, err := r.client.Patch(rawURL, &configurationReq, &taskResult)
    33  	if err != nil {
    34  		return taskResult.Task, err
    35  	}
    36  	return taskResult.Task, nil
    37  }
    38  
    39  func (r *configurations) GetConfiguration(icdId string) (interface{}, error) {
    40  	var taskResult interface{}
    41  	rawURL := fmt.Sprintf("/v4/ibm/deployments/%s/configuration/schema", utils.EscapeUrlParm(icdId))
    42  	_, err := r.client.Get(rawURL, &taskResult)
    43  	if err != nil {
    44  		return taskResult, err
    45  	}
    46  	return taskResult, nil
    47  }