File: IAzureKeyVaultResource.cs
Web Access
Project: src\src\Aspire.Hosting.Azure\Aspire.Hosting.Azure.csproj (Aspire.Hosting.Azure)
// 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.Azure;
 
/// <summary>
/// Represents a resource that represents an Azure Key Vault.
/// </summary>
public interface IAzureKeyVaultResource : IResource, IAzureResource
{
    /// <summary>
    /// Gets the output reference that represents the vault uri for the Azure Key Vault resource.
    /// </summary>
    BicepOutputReference VaultUriOutputReference { get; }
 
    /// <summary>
    /// Gets the output reference that represents the name of Azure Key Vault resource.
    /// </summary>
    BicepOutputReference NameOutputReference { get; }
 
    /// <summary>
    /// Gets or sets the secret resolver function used to resolve secrets at runtime.
    /// </summary>
    Func<IAzureKeyVaultSecretReference, CancellationToken, Task<string?>>? SecretResolver { get; set; }
 
    /// <summary>
    /// Gets a secret reference for the specified secret name.
    /// </summary>
    /// <param name="secretName">The name of the secret.</param>
    /// <returns>A reference to the secret.</returns>
    IAzureKeyVaultSecretReference GetSecret(string secretName);
}