in internal/provider/profiles_data_source.go [194:276]
func (d *profileAllDataSource) Read(ctx context.Context, req datasource.ReadRequest, resp *datasource.ReadResponse) {
var state allProfileResourceModel
// Read Terraform configuration data into the model
resp.Diagnostics.Append(req.Config.Get(ctx, &state)...)
slp, res, err := d.client.SLAProfileApi.ListSlps(d.authCtx, nil)
if err != nil {
resp.Diagnostics.AddError(
"Unable to Read BackupDR SLA Profiles",
err.Error(),
)
return
}
if res.StatusCode != 200 {
resp.Diagnostics.AddError(
"Unable to Read BackupDR SLA Profiles",
res.Status,
)
}
var slps = []profileResourceModel{}
// Map response body to model
for _, v := range slp.Items {
slpState := profileResourceModel{
ID: types.StringValue(v.Id),
Href: types.StringValue(v.Href),
Name: types.StringValue(v.Name),
Description: types.StringValue(v.Description),
Srcid: types.StringValue(v.Srcid),
Clusterid: types.StringValue(v.Clusterid),
Cid: types.StringValue(v.Cid),
Performancepool: types.StringValue(v.Performancepool),
Remotenode: types.StringValue(v.Remotenode),
Dedupasyncnode: types.StringValue(v.Dedupasyncnode),
Localnode: types.StringValue(v.Localnode),
Createdate: types.Int64Value(v.Createdate),
Modifydate: types.Int64Value(v.Modifydate),
Syncdate: types.Int64Value(v.Syncdate),
Stale: types.BoolValue(v.Stale),
}
if v.Vaultpool != nil {
slpState.Vaultpool = &profileDiskPoolResourceModel{
ID: types.StringValue(v.Vaultpool.Id),
Href: types.StringValue(v.Vaultpool.Href),
Name: types.StringValue(v.Vaultpool.Name),
}
}
if v.Vaultpool2 != nil {
slpState.Vaultpool2 = &profileDiskPoolResourceModel{
ID: types.StringValue(v.Vaultpool2.Id),
Href: types.StringValue(v.Vaultpool2.Href),
Name: types.StringValue(v.Vaultpool2.Name),
}
}
if v.Vaultpool3 != nil {
slpState.Vaultpool3 = &profileDiskPoolResourceModel{
ID: types.StringValue(v.Vaultpool3.Id),
Href: types.StringValue(v.Vaultpool3.Href),
Name: types.StringValue(v.Vaultpool3.Name),
}
}
if v.Vaultpool4 != nil {
slpState.Vaultpool4 = &profileDiskPoolResourceModel{
ID: types.StringValue(v.Vaultpool4.Id),
Href: types.StringValue(v.Vaultpool4.Href),
Name: types.StringValue(v.Vaultpool4.Name),
}
}
slps = append(slps, slpState)
}
state.Items = slps
// Save data into Terraform state
resp.Diagnostics.Append(resp.State.Set(ctx, &state)...)
if resp.Diagnostics.HasError() {
return
}
}