code: func (c *CredentialGraphClient) List(ctx context.Context, path string,
  	pathExp *pathexp.PathExp, ownerID *identity.ID, teamIDs []identity.ID) ([]CredentialGraph, error) {
  
  	query := url.Values{}
  
  	if path != "" && pathExp != nil {
  		return nil, errors.New("cannot provide path and pathexp at the same time")
  	}
  	if path != "" {
  		query.Set("path", path)
  	}
  	if pathExp != nil {
  		query.Set("pathexp", pathExp.String())
  	}
  	if ownerID != nil {
  		query.Set("owner_id", ownerID.String())
  	}
  	for _, id := range teamIDs {
  		query.Add("team_id", id.String())
  	}
  
  	return c.getGraph(ctx, query)
  }
docs: // List returns back all segments of the CredentialGraph (Keyring, Keyring
  // Members, and Credentials) that match the given name, path, or path
  // expression.