internal/clients/config/sdk.go (52 lines of code) (raw):

package config import ( "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" "github.com/hashicorp/terraform-plugin-sdk/v2/diag" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) const ( esKey string = "elasticsearch" esConnectionKey string = "elasticsearch_connection" ) func NewFromSDK(d *schema.ResourceData, version string) (Client, diag.Diagnostics) { return newFromSDK(d, version, esKey) } func NewFromSDKResource(d *schema.ResourceData, version string) (*Client, diag.Diagnostics) { if _, ok := d.GetOk(esConnectionKey); !ok { return nil, nil } client, diags := newFromSDK(d, version, esConnectionKey) return &client, diags } func newFromSDK(d *schema.ResourceData, version, esConfigKey string) (Client, diag.Diagnostics) { base := newBaseConfigFromSDK(d, version, esConfigKey) client := Client{ UserAgent: base.UserAgent, } esCfg, diags := newElasticsearchConfigFromSDK(d, base, esConfigKey, true) if diags.HasError() { return Client{}, diags } if esCfg != nil { client.Elasticsearch = utils.Pointer(esCfg.toElasticsearchConfiguration()) } kibanaCfg, diags := newKibanaConfigFromSDK(d, base) if diags.HasError() { return Client{}, diags } client.Kibana = (*kibana.Config)(&kibanaCfg) kibanaOapiCfg, diags := newKibanaOapiConfigFromSDK(d, base) if diags.HasError() { return Client{}, diags } client.KibanaOapi = (*kibana_oapi.Config)(&kibanaOapiCfg) fleetCfg, diags := newFleetConfigFromSDK(d, kibanaOapiCfg) if diags.HasError() { return Client{}, diags } client.Fleet = (*fleet.Config)(&fleetCfg) return client, nil }