internal/kibana/synthetics/read.go (47 lines of code) (raw):

package synthetics import ( "context" "errors" "fmt" "github.com/disaster37/go-kibana-rest/v8/kbapi" "github.com/hashicorp/terraform-plugin-framework/resource" ) func (r *Resource) Read(ctx context.Context, request resource.ReadRequest, response *resource.ReadResponse) { kibanaClient := GetKibanaClient(r, response.Diagnostics) if kibanaClient == nil { return } state := new(tfModelV0) diags := request.State.Get(ctx, state) response.Diagnostics.Append(diags...) if response.Diagnostics.HasError() { return } compositeId, dg := GetCompositeId(state.ID.ValueString()) response.Diagnostics.Append(dg...) if response.Diagnostics.HasError() { return } namespace := compositeId.ClusterId monitorId := kbapi.MonitorID(compositeId.ResourceId) result, err := kibanaClient.KibanaSynthetics.Monitor.Get(ctx, monitorId, namespace) if err != nil { var apiError *kbapi.APIError if errors.As(err, &apiError) && apiError.Code == 404 { response.State.RemoveResource(ctx) return } response.Diagnostics.AddError(fmt.Sprintf("Failed to get monitor `%s`, namespace %s", monitorId, namespace), err.Error()) return } state, diags = state.toModelV0(ctx, result) response.Diagnostics.Append(diags...) if response.Diagnostics.HasError() { return } // Set refreshed state diags = response.State.Set(ctx, state) response.Diagnostics.Append(diags...) if response.Diagnostics.HasError() { return } }