func elasticsearchConfigPayload()

in ec/ecresource/deploymentresource/elasticsearch/v2/elasticsearch_config.go [83:125]


func elasticsearchConfigPayload(ctx context.Context, cfgObj attr.Value, model *models.ElasticsearchConfiguration) (*models.ElasticsearchConfiguration, diag.Diagnostics) {
	if cfgObj.IsNull() || cfgObj.IsUnknown() {
		return model, nil
	}

	var cfg v1.ElasticsearchConfigTF

	diags := tfsdk.ValueAs(ctx, cfgObj, &cfg)

	if diags.HasError() {
		return nil, diags
	}

	if cfg.UserSettingsJson.ValueString() != "" {
		if err := json.Unmarshal([]byte(cfg.UserSettingsJson.ValueString()), &model.UserSettingsJSON); err != nil {
			diags.AddError("failed expanding elasticsearch user_settings_json", err.Error())
		}
	}

	if cfg.UserSettingsOverrideJson.ValueString() != "" {
		if err := json.Unmarshal([]byte(cfg.UserSettingsOverrideJson.ValueString()), &model.UserSettingsOverrideJSON); err != nil {
			diags.AddError("failed expanding elasticsearch user_settings_override_json", err.Error())
		}
	}

	if !cfg.UserSettingsYaml.IsNull() {
		model.UserSettingsYaml = cfg.UserSettingsYaml.ValueString()
	}

	if !cfg.UserSettingsOverrideYaml.IsNull() {
		model.UserSettingsOverrideYaml = cfg.UserSettingsOverrideYaml.ValueString()
	}

	ds := cfg.Plugins.ElementsAs(ctx, &model.EnabledBuiltInPlugins, true)

	diags = append(diags, ds...)

	if !cfg.DockerImage.IsNull() {
		model.DockerImage = cfg.DockerImage.ValueString()
	}

	return model, diags
}