code: func (s *ClusterRerouteService) buildURL() (string, url.Values, error) {
  	// Build URL
  	path := "/_cluster/reroute"
  
  	// Add query string parameters
  	params := url.Values{}
  	if s.pretty {
  		params.Set("pretty", "true")
  	}
  	if v := s.dryRun; v != nil {
  		params.Set("dry_run", fmt.Sprint(*v))
  	}
  	if v := s.explain; v != nil {
  		params.Set("explain", fmt.Sprint(*v))
  	}
  	if v := s.retryFailed; v != nil {
  		params.Set("retry_failed", fmt.Sprint(*v))
  	}
  	if len(s.metrics) > 0 {
  		params.Set("metric", strings.Join(s.metrics, ","))
  	}
  	if s.masterTimeout != "" {
  		params.Set("master_timeout", s.masterTimeout)
  	}
  	if s.timeout != "" {
  		params.Set("timeout", s.timeout)
  	}
  	if s.pretty {
  		params.Set("pretty", "true")
  	}
  	return path, params, nil
  }
docs: // buildURL builds the URL for the operation.