func ListDistributions(cfr *cloudfront.CloudFront) ([]*Distribution, error) { req := cloudfront.ListDistributionsRequest{} req.MaxItems = aws.String(strconv.Itoa(listBatchSize)) ret := make([]*Distribution, 0, listBatchSize) for { resp, err := cfr.ListDistributions(&req) if err != nil { return nil, err } nitems := *resp.DistributionList.Quantity for i := 0; i < nitems; i++ { cfrDist := resp.DistributionList.Items[i] dist := Distribution{ Status: *cfrDist.Status, Domain: *cfrDist.DomainName, InstanceId: *cfrDist.DefaultCacheBehavior.TargetOriginID, Comment: *cfrDist.Comment, Enabled: *cfrDist.Enabled, distributionId: cfrDist.ID, } ret = append(ret, &dist) } if resp.DistributionList.NextMarker == nil { break } req.Marker = resp.DistributionList.NextMarker } return ret, nil }