/
framework.go
42 lines (32 loc) · 1.05 KB
/
framework.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package config
import (
"context"
"github.com/disaster37/go-kibana-rest/v8"
"github.com/elastic/terraform-provider-elasticstack/internal/clients/fleet"
"github.com/elastic/terraform-provider-elasticstack/internal/utils"
"github.com/hashicorp/terraform-plugin-framework/diag"
)
func NewFromFramework(ctx context.Context, cfg ProviderConfiguration, version string) (Client, diag.Diagnostics) {
base := newBaseConfigFromFramework(cfg, version)
client := Client{
UserAgent: base.UserAgent,
}
esCfg, diags := newElasticsearchConfigFromFramework(ctx, cfg, base)
if diags.HasError() {
return Client{}, diags
}
if esCfg != nil {
client.Elasticsearch = utils.Pointer(esCfg.toElasticsearchConfiguration())
}
kibanaCfg, diags := newKibanaConfigFromFramework(ctx, cfg, base)
if diags.HasError() {
return Client{}, diags
}
client.Kibana = (*kibana.Config)(&kibanaCfg)
fleetCfg, diags := newFleetConfigFromFramework(ctx, cfg, kibanaCfg)
if diags.HasError() {
return Client{}, diags
}
client.Fleet = (*fleet.Config)(&fleetCfg)
return client, nil
}