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