func()

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