code: func (ci *ClusterID) GetFederationID() (string, bool, error) {
  	if err := ci.getOrInitialize(); err != nil {
  		return "", false, err
  	}
  
  	ci.idLock.RLock()
  	defer ci.idLock.RUnlock()
  	if ci.clusterID == nil {
  		return "", false, errors.New("could not retrieve cluster id")
  	}
  
  	// If provider ID is not set, return false
  	if ci.providerID == nil || *ci.clusterID == *ci.providerID {
  		return "", false, nil
  	}
  
  	return *ci.clusterID, true, nil
  }
docs: // GetFederationID returns the id which could represent the entire Federation
  // or just the cluster if not federated.