in src/TemplateRefGenerator/Config/RemarksLoader.cs [23:84]
public record ApiVersionRequirement(
string? Minimum,
string? Maximum);
public record ResourceRemark(
ImmutableArray<string> ResourceTypes,
ApiVersionRequirement? ApiVersion,
string Description);
public record PropertyRemark(
string ResourceType,
ApiVersionRequirement? ApiVersion,
string ObjectName,
string PropertyName,
string Description);
public record DeploymentRemark(
string ResourceType,
ApiVersionRequirement? ApiVersion,
DeploymentType DeploymentType,
string Description);
public record CodeSample(
string ResourceType,
ApiVersionRequirement? ApiVersion,
string Path,
string Description);
public record RemarksFile(
ImmutableArray<ResourceRemark>? ResourceRemarks,
ImmutableArray<PropertyRemark>? PropertyRemarks,
ImmutableArray<DeploymentRemark>? DeploymentRemarks,
ImmutableArray<CodeSample>? BicepSamples)
{
public static RemarksFile Empty
=> new(null, null, null, null);
public IEnumerable<ResourceRemark> GetResourceRemarks(MarkdownGenerator.ResourceMetadata resource)
=> (ResourceRemarks ?? [])
.Where(r => r.ResourceTypes.Contains(resource.ResourceType, StringComparer.OrdinalIgnoreCase))
.Where(r => FilterApiVersions(resource, r.ApiVersion));
public IEnumerable<PropertyRemark> GetPropertyRemarks(MarkdownGenerator.ResourceMetadata resource)
=> (PropertyRemarks ?? [])
.Where(r => StringComparer.OrdinalIgnoreCase.Equals(resource.ResourceType, r.ResourceType))
.Where(r => FilterApiVersions(resource, r.ApiVersion));
public IEnumerable<DeploymentRemark> GetDeploymentRemarks(MarkdownGenerator.ResourceMetadata resource, DeploymentType type)
=> (DeploymentRemarks ?? [])
.Where(r => StringComparer.OrdinalIgnoreCase.Equals(resource.ResourceType, r.ResourceType))
.Where(r => r.DeploymentType == type)
.Where(r => FilterApiVersions(resource, r.ApiVersion));
public IEnumerable<CodeSample> GetBicepSamples(MarkdownGenerator.ResourceMetadata resource)
=> (BicepSamples ?? [])
.Where(r => StringComparer.OrdinalIgnoreCase.Equals(resource.ResourceType, r.ResourceType))
.Where(r => FilterApiVersions(resource, r.ApiVersion));
private static bool FilterApiVersions(MarkdownGenerator.ResourceMetadata resource, ApiVersionRequirement? apiVersionRequirement)
=> (apiVersionRequirement?.Minimum is null || ApiVersionComparer.Instance.Compare(apiVersionRequirement.Minimum, resource.ApiVersion) >= 0) &&
(apiVersionRequirement?.Maximum is null || ApiVersionComparer.Instance.Compare(apiVersionRequirement.Maximum, resource.ApiVersion) <= 0);
}