github.com/IBM-Cloud/bluemix-go@v0.0.0-20240423071914-9e96525baef4/api/icd/icdv4/whitelist.go (about) 1 package icdv4 2 3 import ( 4 "fmt" 5 "github.com/IBM-Cloud/bluemix-go/client" 6 "github.com/IBM-Cloud/bluemix-go/utils" 7 ) 8 9 type Whitelist struct { 10 WhitelistEntrys []WhitelistEntry `json:"ip_addresses"` 11 } 12 13 type WhitelistEntry struct { 14 Address string `json:"address,omitempty"` 15 Description string `json:"description,omitempty"` 16 } 17 18 type WhitelistReq struct { 19 WhitelistEntry WhitelistEntry `json:"ip_address"` 20 } 21 22 type Whitelists interface { 23 CreateWhitelist(icdId string, whitelistReq WhitelistReq) (Task, error) 24 GetWhitelist(icdId string) (Whitelist, error) 25 DeleteWhitelist(icdId string, ipAddress string) (Task, error) 26 } 27 28 type whitelists struct { 29 client *client.Client 30 } 31 32 func newWhitelistAPI(c *client.Client) Whitelists { 33 return &whitelists{ 34 client: c, 35 } 36 } 37 38 func (r *whitelists) CreateWhitelist(icdId string, whitelistReq WhitelistReq) (Task, error) { 39 taskResult := TaskResult{} 40 rawURL := fmt.Sprintf("/v4/ibm/deployments/%s/whitelists/ip_addresses", utils.EscapeUrlParm(icdId)) 41 _, err := r.client.Post(rawURL, &whitelistReq, &taskResult) 42 if err != nil { 43 return taskResult.Task, err 44 } 45 return taskResult.Task, nil 46 } 47 48 func (r *whitelists) GetWhitelist(icdId string) (Whitelist, error) { 49 whitelist := Whitelist{} 50 rawURL := fmt.Sprintf("/v4/ibm/deployments/%s/whitelists/ip_addresses", utils.EscapeUrlParm(icdId)) 51 _, err := r.client.Get(rawURL, &whitelist) 52 if err != nil { 53 return whitelist, err 54 } 55 return whitelist, nil 56 } 57 58 func (r *whitelists) DeleteWhitelist(icdId string, ipAddress string) (Task, error) { 59 taskResult := TaskResult{} 60 rawURL := fmt.Sprintf("/v4/ibm/deployments/%s/whitelists/ip_addresses/%s", utils.EscapeUrlParm(icdId), utils.EscapeUrlParm(ipAddress)) 61 _, err := r.client.DeleteWithResp(rawURL, &taskResult) 62 if err != nil { 63 return taskResult.Task, err 64 } 65 return taskResult.Task, nil 66 }