code: func (cm *CheckManager) selectBroker() (*api.Broker, error) {
  	var brokerList *[]api.Broker
  	var err error
  	enterpriseType := "enterprise"
  
  	if len(cm.brokerSelectTag) > 0 {
  		filter := api.SearchFilterType{
  			"f__tags_has": cm.brokerSelectTag,
  		}
  		brokerList, err = cm.apih.SearchBrokers(nil, &filter)
  		if err != nil {
  			return nil, err
  		}
  	} else {
  		brokerList, err = cm.apih.FetchBrokers()
  		if err != nil {
  			return nil, err
  		}
  	}
  
  	if len(*brokerList) == 0 {
  		return nil, fmt.Errorf("zero brokers found")
  	}
  
  	validBrokers := make(map[string]api.Broker)
  	haveEnterprise := false
  
  	for _, broker := range *brokerList {
  		broker := broker
  		if cm.isValidBroker(&broker) {
  			validBrokers[broker.CID] = broker
  			if broker.Type == enterpriseType {
  				haveEnterprise = true
  			}
  		}
  	}
  
  	if haveEnterprise { // eliminate non-enterprise brokers from valid brokers
  		for k, v := range validBrokers {
  			if v.Type != enterpriseType {
  				delete(validBrokers, k)
  			}
  		}
  	}
  
  	if len(validBrokers) == 0 {
  		return nil, fmt.Errorf("found %d broker(s), zero are valid", len(*brokerList))
  	}
  
  	validBrokerKeys := reflect.ValueOf(validBrokers).MapKeys()
  	selectedBroker := validBrokers[validBrokerKeys[rand.Intn(len(validBrokerKeys))].String()]
  
  	if cm.Debug {
  		cm.Log.Printf("[DEBUG] Selected broker '%s'\n", selectedBroker.Name)
  	}
  
  	return &selectedBroker, nil
  
  }
docs: // Select a broker for use when creating a check, if a specific broker
  // was not specified.