in src/TemplateRefGenerator/Generators/ChangelogGenerator.cs [23:54]
public record ProviderChangeLog(
string ProviderNamespace,
ImmutableArray<ResourceTypeChangeLog> ResourceTypeChanges);
public record ResourceTypeChangeLog(
string ResourceType,
ImmutableArray<VersionedChangeLog> Changes);
public record VersionedChangeLog(
string Version,
ResourceType? PrevType,
ResourceType NewType,
ImmutableArray<NamedTypeChangeLog> Changes);
public record NamedTypeChangeLog(
string Name,
TypeBase? Before,
TypeBase? After);
public ProviderChangeLog GetChanges(GroupedTypes groupedTypes)
{
var apiVersionsByType = groupedTypes.GetApiVersionsByType();
var allChanges = new List<ResourceTypeChangeLog>();
foreach (var (typeName, apiVersions) in apiVersionsByType)
{
var changes = GetChangesForResourceType(typeName, apiVersions);
allChanges.Add(changes);
}
return new(groupedTypes.ProviderNamespace, [.. allChanges]);
}