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 }