func (s *ClusterPutSettingsService) buildURL() (string, url.Values, error) {
	var path string
	path = "/_cluster/settings"
	params := url.Values{}
	if s.pretty {
		params.Set("pretty", "true")
	}
	if s.flatSettings != nil {
		params.Set("flat_settings", fmt.Sprintf("%v", *s.flatSettings))
	}
	if s.masterTimeout != "" {
		params.Set("master_timeout", s.masterTimeout)
	}
	if s.timeout != "" {
		params.Set("timeout", s.timeout)
	}
	return path, params, nil
}
buildURL builds the URL for the operation.
package elastic
import (
	"context"
	"fmt"
	"net/url"
)
type ClusterPutSettingsService struct {
	client        *Client
	pretty        bool
	flatSettings  *bool
	masterTimeout string
	timeout       string
	bodyJson      interface{}
	bodyString    string
}
func NewClusterPutSettingsService(client *Client) *ClusterPutSettingsService {
	return &ClusterPutSettingsService{
		client: client,
	}
}
func (s *ClusterPutSettingsService) Pretty(pretty bool) *ClusterPutSettingsService {
	s.pretty = pretty
	return s
}
func (s *ClusterPutSettingsService) FlatSettings(flatSettings bool) *ClusterPutSettingsService {
	s.flatSettings = &flatSettings
	return s
}
func (s *ClusterPutSettingsService) MasterTimeout(masterTimeout string) *ClusterPutSettingsService {
	s.masterTimeout = masterTimeout
	return s
}
func (s *ClusterPutSettingsService) Timeout(timeout string) *ClusterPutSettingsService {
	s.timeout = timeout
	return s
}
func (s *ClusterPutSettingsService) BodyJson(body interface{}) *ClusterPutSettingsService {
	s.bodyJson = body
	return s
}
func (s *ClusterPutSettingsService) BodyString(body string) *ClusterPutSettingsService {
	s.bodyString = body
	return s
}