func()

in internal/provider/template_resource.go [336:386]


func (r *templateResource) Read(ctx context.Context, req resource.ReadRequest, resp *resource.ReadResponse) {
	// Get current state
	var state templateResourceModel
	diags := req.State.Get(ctx, &state)
	resp.Diagnostics.Append(diags...)
	if resp.Diagnostics.HasError() {
		return
	}

	// Get refreshed values for SLT
	respObject, _, err := r.client.SLATemplateApi.GetSlt(r.authCtx, state.ID.ValueString())
	if err != nil {
		resp.Diagnostics.AddError(
			"Error Reading SLT Template",
			"Could not read SLT Template with ID: "+state.ID.ValueString()+": "+err.Error(),
		)
		return
	}

	// Overwrite items with refreshed state
	state.ID = types.StringValue(respObject.Id)
	state.Href = types.StringValue(respObject.Href)
	state.OptionHref = types.StringValue(respObject.OptionHref)
	state.PolicyHref = types.StringValue(respObject.PolicyHref)

	// Get refreshed values for SLT Policy
	sltID, _ := strconv.Atoi(respObject.Id)
	respObjectPolicies, _, err := r.client.SLATemplateApi.ListPolicies(r.authCtx, int64(sltID))
	if err != nil {
		resp.Diagnostics.AddError(
			"Error Reading SLT Policy",
			"Could not read SLT policies ID: "+respObject.Id+": "+err.Error(),
		)
		return
	}
	if len(respObjectPolicies.Items) > 0 {
		for i, respPol := range respObjectPolicies.Items {
			if i < len(state.Policies) {
				state.Policies[i].ID = types.StringValue(respPol.Id)
				state.Policies[i].Href = types.StringValue(respPol.Href)
			}
		}
	}

	// Set refreshed state
	diags = resp.State.Set(ctx, &state)
	resp.Diagnostics.Append(diags...)
	if resp.Diagnostics.HasError() {
		return
	}
}