| File: Lifecycle\IDistributedApplicationLifecycleHook.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 Aspire.Hosting.ApplicationModel; namespace Aspire.Hosting.Lifecycle; /// <summary> /// Defines an interface for hooks that are executed during the lifecycle of a distributed application. /// </summary> [Obsolete("Use IDistributedApplicationEventingSubscriber instead.")] public interface IDistributedApplicationLifecycleHook { /// <summary> /// Executes before the distributed application starts. /// </summary> /// <param name="appModel">The distributed application model.</param> /// <param name="cancellationToken">A <see cref="CancellationToken"/>.</param> /// <returns>A <see cref="Task"/> representing the asynchronous operation.</returns> Task BeforeStartAsync(DistributedApplicationModel appModel, CancellationToken cancellationToken = default) { return Task.CompletedTask; } /// <summary> /// Executes after the orchestrator allocates endpoints for resources in the application model. /// </summary> /// <param name="appModel">The distributed application model.</param> /// <param name="cancellationToken">A <see cref="CancellationToken"/>.</param> /// <returns>A <see cref="Task"/> representing the asynchronous operation.</returns> Task AfterEndpointsAllocatedAsync(DistributedApplicationModel appModel, CancellationToken cancellationToken = default) { return Task.CompletedTask; } /// <summary> /// Executes after the orchestrator has created the resources in the application model. /// </summary> /// <remarks> /// There is no guarantee that the resources have fully started or are in a working state when this method is called. /// </remarks> /// <param name="appModel">The <see cref="DistributedApplicationModel"/> for the distributed application.</param> /// <param name="cancellationToken">A <see cref="CancellationToken"/>.</param> /// <returns>A <see cref="Task"/> representing the asynchronous operation.</returns> Task AfterResourcesCreatedAsync(DistributedApplicationModel appModel, CancellationToken cancellationToken = default) { return Task.CompletedTask; } }