func newFleetConfigFromSDK()

in internal/clients/config/fleet.go [16:57]


func newFleetConfigFromSDK(d *schema.ResourceData, kibanaCfg kibanaOapiConfig) (fleetConfig, sdkdiags.Diagnostics) {
	config := kibanaCfg.toFleetConfig()

	// Set variables from resource config.
	if fleetDataRaw, ok := d.GetOk("fleet"); ok {
		fleetData, ok := fleetDataRaw.([]interface{})[0].(map[string]any)
		if !ok {
			diags := sdkdiags.Diagnostics{
				sdkdiags.Diagnostic{
					Severity: sdkdiags.Error,
					Summary:  "Unable to parse Fleet configuration",
					Detail:   "Fleet configuration data has not been configured correctly or is empty",
				},
			}
			return fleetConfig{}, diags
		}
		if v, ok := fleetData["endpoint"].(string); ok && v != "" {
			config.URL = v
		}
		if v, ok := fleetData["username"].(string); ok && v != "" {
			config.Username = v
		}
		if v, ok := fleetData["password"].(string); ok && v != "" {
			config.Password = v
		}
		if v, ok := fleetData["api_key"].(string); ok && v != "" {
			config.APIKey = v
		}
		if v, ok := fleetData["ca_certs"].([]interface{}); ok && len(v) > 0 {
			for _, elem := range v {
				if vStr, elemOk := elem.(string); elemOk {
					config.CACerts = append(config.CACerts, vStr)
				}
			}
		}
		if v, ok := fleetData["insecure"].(bool); ok {
			config.Insecure = v
		}
	}

	return config.withEnvironmentOverrides(), nil
}