public record GenerateResult()

in src/TemplateRefGenerator/Generators/MarkdownGenerator.cs [43:70]


    public record GenerateResult(
        GroupedTypes GroupedTypes,
        ImmutableDictionary<string, string> FilesByPath);

    public record ResourceMetadata(
        string Provider,
        string ResourceType,
        string UnqualifiedResourceType,
        string ApiVersion,
        ResourceType Type);

    public record NamedType(string Name, TypeBase Type);

    public IEnumerable<GroupedTypes> GetGroupedTypes()
    {
        var resourceTypesByProvider = typeProvider.GetResourceTypes()
            .GroupBy(x => Utils.GetProviderNamespace(x.resourceType), StringComparer.OrdinalIgnoreCase);

        foreach (var providerGroup in resourceTypesByProvider)
        {
            var providerNamespace = providerGroup.Key;
            var typesByApiVersion = providerGroup
                .GroupBy(x => x.apiVersion, StringComparer.OrdinalIgnoreCase)
                .ToImmutableDictionary(x => x.Key, x => x.Select(y => y.resourceType).ToImmutableArray(), StringComparer.OrdinalIgnoreCase);

            yield return new(providerNamespace, typesByApiVersion);
        }
    }