internal/fleet/integration_policy/read.go (41 lines of code) (raw):

package integration_policy import ( "context" "github.com/elastic/terraform-provider-elasticstack/internal/clients/fleet" "github.com/hashicorp/terraform-plugin-framework/resource" ) func (r *integrationPolicyResource) Read(ctx context.Context, req resource.ReadRequest, resp *resource.ReadResponse) { var stateModel integrationPolicyModel diags := req.State.Get(ctx, &stateModel) resp.Diagnostics.Append(diags...) if resp.Diagnostics.HasError() { return } client, err := r.client.GetFleetClient() if err != nil { resp.Diagnostics.AddError(err.Error(), "") return } policyID := stateModel.PolicyID.ValueString() policy, diags := fleet.GetPackagePolicy(ctx, client, policyID) resp.Diagnostics.Append(diags...) if resp.Diagnostics.HasError() { return } if policy == nil { resp.State.RemoveResource(ctx) return } diags = HandleRespSecrets(ctx, policy, resp.Private) resp.Diagnostics.Append(diags...) if resp.Diagnostics.HasError() { return } diags = stateModel.populateFromAPI(ctx, policy) resp.Diagnostics.Append(diags...) if resp.Diagnostics.HasError() { return } diags = resp.State.Set(ctx, stateModel) resp.Diagnostics.Append(diags...) }