internal/kibana/synthetics/update.go (45 lines of code) (raw):

package synthetics import ( "context" "fmt" "github.com/disaster37/go-kibana-rest/v8/kbapi" "github.com/hashicorp/terraform-plugin-framework/resource" ) func (r *Resource) Update(ctx context.Context, request resource.UpdateRequest, response *resource.UpdateResponse) { kibanaClient := GetKibanaClient(r, response.Diagnostics) if kibanaClient == nil { return } plan := new(tfModelV0) diags := request.Plan.Get(ctx, plan) response.Diagnostics.Append(diags...) if response.Diagnostics.HasError() { return } input, diags := plan.toKibanaAPIRequest(ctx) response.Diagnostics.Append(diags...) if response.Diagnostics.HasError() { return } monitorId, dg := GetCompositeId(plan.ID.ValueString()) response.Diagnostics.Append(dg...) if response.Diagnostics.HasError() { return } namespace := plan.SpaceID.ValueString() result, err := kibanaClient.KibanaSynthetics.Monitor.Update(ctx, kbapi.MonitorID(monitorId.ResourceId), input.config, input.fields, namespace) if err != nil { response.Diagnostics.AddError(fmt.Sprintf("Failed to update Kibana monitor `%s`, namespace %s", input.config.Name, namespace), err.Error()) return } plan, diags = plan.toModelV0(ctx, result) response.Diagnostics.Append(diags...) if response.Diagnostics.HasError() { return } diags = response.State.Set(ctx, plan) response.Diagnostics.Append(diags...) if response.Diagnostics.HasError() { return } }