File: AtsExportedValueInfo.cs
Web Access
Project: src\src\Aspire.TypeSystem\Aspire.TypeSystem.csproj (Aspire.TypeSystem)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using System.Text.Json.Nodes;
 
namespace Aspire.TypeSystem;
 
/// <summary>
/// Represents an immutable exported ATS value discovered from <c>[AspireValue]</c>.
/// </summary>
public sealed class AtsExportedValueInfo
{
    /// <summary>
    /// Gets the name of the assembly that exported this value.
    /// </summary>
    public required string OwningAssemblyName { get; init; }
 
    /// <summary>
    /// Gets the full path of the exported value in generated guest SDKs.
    /// </summary>
    /// <remarks>
    /// The first segment is the generated catalog root name.
    /// </remarks>
    public required IReadOnlyList<string> PathSegments { get; init; }
 
    /// <summary>
    /// Gets the snapped JSON value emitted into guest SDKs.
    /// </summary>
    public required JsonNode? Value { get; init; }
 
    /// <summary>
    /// Gets the ATS type of the exported value.
    /// </summary>
    public required AtsTypeRef Type { get; init; }
 
    /// <summary>
    /// Gets an optional XML documentation summary for the exported value.
    /// </summary>
    public string? Description { get; init; }
 
    /// <summary>
    /// Gets XML documentation captured for the exported value.
    /// </summary>
    public AtsDocumentationInfo? Documentation { get; init; }
}