func()

in internal/provider/metadata_data_source.go [50:90]


func (d *metadataDataSource) Read(ctx context.Context, req datasource.ReadRequest, resp *datasource.ReadResponse) {
	var data gen.MetadataModel

	// Read Terraform configuration data into the model
	resp.Diagnostics.Append(req.Config.Get(ctx, &data)...)
	if resp.Diagnostics.HasError() {
		return
	}

	if d.alz == nil {
		resp.Diagnostics.AddError(
			"metadataDataSource.Read() Provider not configured",
			"The provider has not been configured. Please see the provider documentation for configuration instructions.",
		)
		return
	}

	if data.Id.IsNull() || data.Id.IsUnknown() {
		u, err := uuid.GenerateUUID()
		if err != nil {
			resp.Diagnostics.AddError(
				"metadataDataSource.Read() UUID generation failed",
				fmt.Sprintf("Failed to generate UUID: %s", err),
			)
			return
		}
		data.Id = types.StringValue(u)
	}

	alzMeta := d.alz.Metadata()
	alzRefs := make([]string, 0, len(alzMeta))
	for _, ref := range alzMeta {
		if !ref.IsAlzLibraryRef() {
			continue
		}
		alzRefs = append(alzRefs, ref.Ref().String())
	}
	alzRefsAttrVal := gotype.SliceOfPrimitiveToFramework(ctx, to.SliceOfPtrs(alzRefs...))
	data.AlzLibraryReferences = types.ListValueMust(types.StringType, alzRefsAttrVal)
	resp.Diagnostics.Append(resp.State.Set(ctx, &data)...)
}