| File: ApplicationModel\RequiredCommandAnnotation.cs | Web Access |
| Project: src\src\Aspire.Hosting\Aspire.Hosting.csproj (Aspire.Hosting) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Diagnostics; using System.Diagnostics.CodeAnalysis; namespace Aspire.Hosting.ApplicationModel; /// <summary> /// An annotation which declares that a resource requires a specific command/executable to be available on the local machine PATH before it can start. /// </summary> /// <param name="command">The command string (file name or path) that should be validated.</param> [DebuggerDisplay("Type = {GetType().Name,nq}, Command = {Command}")] [Experimental("ASPIRECOMMAND001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public class RequiredCommandAnnotation(string command) : IResourceAnnotation { /// <summary> /// Gets the command string (file name or path) that should be validated. /// </summary> public string Command { get; } = command ?? throw new ArgumentNullException(nameof(command)); /// <summary> /// Gets or sets an optional help link URL to guide users when the command is missing. /// </summary> public string? HelpLink { get; init; } /// <summary> /// Gets or sets an optional custom validation callback that will be invoked after the command has been resolved. /// </summary> /// <remarks> /// The callback receives a <see cref="RequiredCommandValidationContext"/> containing the resolved path and service provider. /// It should return a <see cref="RequiredCommandValidationResult"/> indicating whether the command is valid. /// </remarks> public Func<RequiredCommandValidationContext, Task<RequiredCommandValidationResult>>? ValidationCallback { get; init; } }