github.com/IBM-Cloud/bluemix-go@v0.0.0-20240314082800-4e02a69b84b2/api/cis/cisv1/settings.go (about)

     1  package cisv1
     2  
     3  import (
     4  	"fmt"
     5  	"github.com/IBM-Cloud/bluemix-go/client"
     6  )
     7  
     8  type SettingsResult struct {
     9  	Result   SettingsResObj `json:"result"`
    10  	Success  bool           `json:"success"`
    11  	Errors   []Error        `json:"errors"`
    12  	Messages []string       `json:"messages"`
    13  }
    14  
    15  type SettingsResObj struct {
    16  	Id                string `json:"id"`
    17  	Value             string `json:"value"`
    18  	Editable          bool   `json:"editable"`
    19  	ModifiedDate      string `json:"modified_on"`
    20  	CertificateStatus string `json:"certificate_status"`
    21  }
    22  
    23  type SettingsBody struct {
    24  	Value string `json:"value"`
    25  }
    26  
    27  type Settings interface {
    28  	GetSetting(cisId string, zoneId string, setting string) (*SettingsResObj, error)
    29  	UpdateSetting(cisId string, zoneId string, setting string, settingsBody SettingsBody) (*SettingsResObj, error)
    30  }
    31  
    32  type settings struct {
    33  	client *client.Client
    34  }
    35  
    36  func newSettingsAPI(c *client.Client) Settings {
    37  	return &settings{
    38  		client: c,
    39  	}
    40  }
    41  
    42  func (r *settings) GetSetting(cisId string, zoneId string, setting string) (*SettingsResObj, error) {
    43  	settingsResult := SettingsResult{}
    44  	rawURL := fmt.Sprintf("/v1/%s/zones/%s/settings/%s", cisId, zoneId, setting)
    45  	_, err := r.client.Get(rawURL, &settingsResult)
    46  	if err != nil {
    47  		return nil, err
    48  	}
    49  	return &settingsResult.Result, nil
    50  }
    51  
    52  func (r *settings) UpdateSetting(cisId string, zoneId string, setting string, settingsBody SettingsBody) (*SettingsResObj, error) {
    53  	settingsResult := SettingsResult{}
    54  	rawURL := fmt.Sprintf("/v1/%s/zones/%s/settings/%s", cisId, zoneId, setting)
    55  	_, err := r.client.Patch(rawURL, &settingsBody, &settingsResult)
    56  	if err != nil {
    57  		return nil, err
    58  	}
    59  	return &settingsResult.Result, nil
    60  }