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
}
}