func DefaultConfig() *Config {
	return &Config{
		BaseURL:     DefaultBaseURL(),
		HTTPClient:  DefaultHTTPClient(),
		UserAgent:   DefaultUserAgent(),
		ContentType: DefaultContentType(),
		Credentials: credentials.NewChainCredentials(
			new(credentials.EnvProvider),
			new(credentials.FileProvider),
		),
	}
}
DefaultConfig returns a default configuration for the client. By default this
will pool and reuse idle connections to API. If you have a long-lived client
object, this is the desired behavior and should make the most efficient use
of the connections to API.
package spotinst
import (
	"net"
	"net/http"
	"net/url"
	"runtime"
	"strings"
	"time"
	"github.com/spotinst/spotinst-sdk-go/spotinst/credentials"
	"github.com/spotinst/spotinst-sdk-go/spotinst/log"
	"github.com/spotinst/spotinst-sdk-go/spotinst/util/useragent"
)
const (
	defaultBaseURL = "https://api.spotinst.io"
	defaultContentType = "application/json"
)
type Config struct {
	BaseURL *url.URL
	HTTPClient *http.Client
	Credentials *credentials.Credentials
	Logger log.Logger
	UserAgent, ContentType string
}
func DefaultBaseURL() *url.URL {
	baseURL, _ := url.Parse(defaultBaseURL)
	return baseURL
}
func DefaultUserAgent() string {
	return useragent.New(
		SDKName,
		SDKVersion,
		runtime.Version(),
		runtime.GOOS,
		runtime.GOARCH).String()
}
func DefaultContentType() string {
	return defaultContentType
}
func DefaultTransport() *http.Transport {
	return &http.Transport{
		Proxy: http.ProxyFromEnvironment,
		DialContext: (&net.Dialer{
			Timeout:   30 * time.Second,
			KeepAlive: 30 * time.Second,
		}).DialContext,
		TLSHandshakeTimeout: 10 * time.Second,
		DisableKeepAlives:   false,
		MaxIdleConnsPerHost: 1,
	}
}
func DefaultHTTPClient() *http.Client {
	return &http.Client{
		Transport: DefaultTransport(),
	}
}