// ListGroupMembers lists the monitored resources that are members of a group. func (c *GroupClient) ListGroupMembers(ctx context.Context, req *monitoringpb.ListGroupMembersRequest) *MonitoredResourceIterator { md, _ := metadata.FromContext(ctx) ctx = metadata.NewContext(ctx, metadata.Join(md, c.metadata)) it := &MonitoredResourceIterator{} it.InternalFetch = func(pageSize int, pageToken string) ([]*monitoredrespb.MonitoredResource, string, error) { var resp *monitoringpb.ListGroupMembersResponse req.PageToken = pageToken if pageSize > math.MaxInt32 { req.PageSize = math.MaxInt32 } else { req.PageSize = int32(pageSize) } err := gax.Invoke(ctx, func(ctx context.Context) error { var err error resp, err = c.groupClient.ListGroupMembers(ctx, req) return err }, c.CallOptions.ListGroupMembers...) if err != nil { return nil, "", err } return resp.Members, resp.NextPageToken, nil } fetch := func(pageSize int, pageToken string) (string, error) { items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) if err != nil { return "", err } it.items = append(it.items, items...) return nextPageToken, nil } it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) return it }
// ListGroupMembers lists the monitored resources that are members of a group. The project ID // in the URL path must refer to a Stackdriver account. func (c *GroupClient) ListGroupMembers(ctx context.Context, req *monitoringpb.ListGroupMembersRequest) *MonitoredResourceIterator { ctx = metadata.NewContext(ctx, c.metadata) it := &MonitoredResourceIterator{} it.apiCall = func() error { var resp *monitoringpb.ListGroupMembersResponse err := gax.Invoke(ctx, func(ctx context.Context) error { var err error req.PageToken = it.nextPageToken req.PageSize = it.pageSize resp, err = c.client.ListGroupMembers(ctx, req) return err }, c.CallOptions.ListGroupMembers...) if err != nil { return err } if resp.NextPageToken == "" { it.atLastPage = true } it.nextPageToken = resp.NextPageToken it.items = resp.Members return nil } return it }