internal/clients/config/env.go (27 lines of code) (raw):
package config
import (
"net/http"
"github.com/disaster37/go-kibana-rest/v8"
"github.com/elastic/terraform-provider-elasticstack/internal/clients/fleet"
"github.com/elastic/terraform-provider-elasticstack/internal/clients/kibana_oapi"
"github.com/elastic/terraform-provider-elasticstack/internal/utils"
)
func NewFromEnv(version string) Client {
ua := buildUserAgent(version)
base := baseConfig{
UserAgent: ua,
Header: http.Header{"User-Agent": []string{ua}},
}.withEnvironmentOverrides()
client := Client{
UserAgent: base.UserAgent,
}
esCfg := base.toElasticsearchConfig().withEnvironmentOverrides()
client.Elasticsearch = utils.Pointer(esCfg.toElasticsearchConfiguration())
kibanaCfg := base.toKibanaConfig().withEnvironmentOverrides()
client.Kibana = (*kibana.Config)(&kibanaCfg)
kibanaOapiCfg := base.toKibanaOapiConfig().withEnvironmentOverrides()
client.KibanaOapi = (*kibana_oapi.Config)(&kibanaOapiCfg)
fleetCfg := kibanaOapiCfg.toFleetConfig().withEnvironmentOverrides()
client.Fleet = (*fleet.Config)(&fleetCfg)
return client
}