code: func (g *gsuiteClient) fetchGroups() (jose.Claims, error) {
  	count := 0
  	var groups []string
  	var nextPageToken string
  collect:
  	for {
  		if count > MaxPages {
  			warningMessage := "Truncating list of teams used to populate claims: " +
  				"hit maximum number pages that can be fetched from GSuite."
  
  			// Print warning to Teleport logs as well as the Audit Log.
  			log.Warnf(warningMessage)
  			g.auditLog.EmitAuditEvent(events.UserSSOLoginFailure, events.EventFields{
  				events.LoginMethod:        events.LoginMethodOIDC,
  				events.AuthAttemptMessage: warningMessage,
  			})
  			break collect
  		}
  		response, err := g.fetchGroupsPage(nextPageToken)
  		if err != nil {
  			return nil, trace.Wrap(err)
  		}
  		groups = append(groups, response.groups()...)
  		if response.NextPageToken == "" {
  			break collect
  		}
  		count++
  		nextPageToken = response.NextPageToken
  	}
  	return jose.Claims{"groups": groups}, nil
  }
docs: // fetchGroups fetches GSuite groups a user belongs to and returns
  // "groups" claim with