public record ProviderChangeLog()

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]);
    }