github.com/akamai/AkamaiOPEN-edgegrid-golang/v8@v8.1.0/pkg/cloudlets/v3/list_cloudlets.go (about) 1 package v3 2 3 import ( 4 "context" 5 "errors" 6 "fmt" 7 "net/http" 8 ) 9 10 type ( 11 // ListCloudletsItem contains the response data from ListCloudlets operation 12 ListCloudletsItem struct { 13 CloudletName string `json:"cloudletName"` 14 CloudletType CloudletType `json:"cloudletType"` 15 } 16 ) 17 18 var ( 19 // ErrListCloudlets is returned when ListCloudlets fails 20 ErrListCloudlets = errors.New("list cloudlets") 21 ) 22 23 func (c *cloudlets) ListCloudlets(ctx context.Context) ([]ListCloudletsItem, error) { 24 logger := c.Log(ctx) 25 logger.Debug("ListCloudlets") 26 27 uri := "/cloudlets/v3/cloudlet-info" 28 29 req, err := http.NewRequestWithContext(ctx, http.MethodGet, uri, nil) 30 if err != nil { 31 return nil, fmt.Errorf("%w: failed to create request: %s", ErrListCloudlets, err) 32 } 33 34 var result []ListCloudletsItem 35 resp, err := c.Exec(req, &result) 36 if err != nil { 37 return nil, fmt.Errorf("%w: request failed: %s", ErrListCloudlets, err) 38 } 39 40 if resp.StatusCode != http.StatusOK { 41 return nil, fmt.Errorf("%s: %w", ErrListCloudlets, c.Error(resp)) 42 } 43 44 return result, nil 45 }