From 5c84169fcac58667df35bdf8fad2fe03b0a58303 Mon Sep 17 00:00:00 2001 From: Eric Erhardt Date: Thu, 3 Apr 2025 15:55:30 -0500 Subject: [PATCH] Rename IKeyVaultResource and IKeyVaultSecretReference Using the Azure prefix, as we do this everywhere else. Contributes to #7811 --- .../AzureContainerAppsInfrastructure.cs | 4 ++-- .../AzureCosmosDBExtensions.cs | 2 +- .../AzureCosmosDBResource.cs | 2 +- .../AzureKeyVaultResource.cs | 10 +++++----- .../AzureKeyVaultSecretReference.cs | 4 ++-- .../AzurePostgresExtensions.cs | 4 ++-- .../AzurePostgresFlexibleServerResource.cs | 2 +- .../AzureRedisCacheResource.cs | 2 +- src/Aspire.Hosting.Azure.Redis/AzureRedisExtensions.cs | 4 ++-- src/Aspire.Hosting.Azure/AzureResourcePreparer.cs | 2 +- ...{IKeyVaultResource.cs => IAzureKeyVaultResource.cs} | 6 +++--- ...etReference.cs => IAzureKeyVaultSecretReference.cs} | 6 +++--- .../Provisioning/Provisioners/BicepProvisioner.cs | 2 +- 13 files changed, 25 insertions(+), 25 deletions(-) rename src/Aspire.Hosting.Azure/{IKeyVaultResource.cs => IAzureKeyVaultResource.cs} (80%) rename src/Aspire.Hosting.Azure/{IKeyVaultSecretReference.cs => IAzureKeyVaultSecretReference.cs} (78%) diff --git a/src/Aspire.Hosting.Azure.AppContainers/AzureContainerAppsInfrastructure.cs b/src/Aspire.Hosting.Azure.AppContainers/AzureContainerAppsInfrastructure.cs index 2f0a1a3ccbe..cfce5b42e64 100644 --- a/src/Aspire.Hosting.Azure.AppContainers/AzureContainerAppsInfrastructure.cs +++ b/src/Aspire.Hosting.Azure.AppContainers/AzureContainerAppsInfrastructure.cs @@ -714,7 +714,7 @@ BicepValue GetHostValue(string? prefix = null, string? suffix = null) return (AllocateParameter(secretOutputReference, secretType: SecretType.KeyVault), SecretType.KeyVault); } - if (value is IKeyVaultSecretReference vaultSecretReference) + if (value is IAzureKeyVaultSecretReference vaultSecretReference) { if (parent is null) { @@ -797,7 +797,7 @@ private BicepValue AllocateKeyVaultSecretUriReference(BicepSecretOutputR return secret.Properties.SecretUri; } - private BicepValue AllocateKeyVaultSecretUriReference(IKeyVaultSecretReference secretOutputReference) + private BicepValue AllocateKeyVaultSecretUriReference(IAzureKeyVaultSecretReference secretOutputReference) { if (!KeyVaultRefs.TryGetValue(secretOutputReference.Resource.Name, out var kv)) { diff --git a/src/Aspire.Hosting.Azure.CosmosDB/AzureCosmosDBExtensions.cs b/src/Aspire.Hosting.Azure.CosmosDB/AzureCosmosDBExtensions.cs index 67c092d0413..8bdeb655259 100644 --- a/src/Aspire.Hosting.Azure.CosmosDB/AzureCosmosDBExtensions.cs +++ b/src/Aspire.Hosting.Azure.CosmosDB/AzureCosmosDBExtensions.cs @@ -365,7 +365,7 @@ public static IResourceBuilder WithAccessKeyAuthenticatio /// The Azure Cosmos DB resource builder. /// The Azure Key Vault resource builder where the connection string used to connect to this AzureCosmosDBResource will be stored. /// A reference to the builder. - public static IResourceBuilder WithAccessKeyAuthentication(this IResourceBuilder builder, IResourceBuilder keyVaultBuilder) + public static IResourceBuilder WithAccessKeyAuthentication(this IResourceBuilder builder, IResourceBuilder keyVaultBuilder) { ArgumentNullException.ThrowIfNull(builder); diff --git a/src/Aspire.Hosting.Azure.CosmosDB/AzureCosmosDBResource.cs b/src/Aspire.Hosting.Azure.CosmosDB/AzureCosmosDBResource.cs index b48179003e3..f21cccc6839 100644 --- a/src/Aspire.Hosting.Azure.CosmosDB/AzureCosmosDBResource.cs +++ b/src/Aspire.Hosting.Azure.CosmosDB/AzureCosmosDBResource.cs @@ -41,7 +41,7 @@ public class AzureCosmosDBResource(string name, Action - internal IKeyVaultSecretReference? ConnectionStringSecretOutput { get; set; } + internal IAzureKeyVaultSecretReference? ConnectionStringSecretOutput { get; set; } private BicepOutputReference NameOutputReference => new("name", this); diff --git a/src/Aspire.Hosting.Azure.KeyVault/AzureKeyVaultResource.cs b/src/Aspire.Hosting.Azure.KeyVault/AzureKeyVaultResource.cs index 88e441d402f..bd6a3580cb8 100644 --- a/src/Aspire.Hosting.Azure.KeyVault/AzureKeyVaultResource.cs +++ b/src/Aspire.Hosting.Azure.KeyVault/AzureKeyVaultResource.cs @@ -13,7 +13,7 @@ namespace Aspire.Hosting.Azure; /// The name of the resource. /// Callback to configure the Azure resources. public class AzureKeyVaultResource(string name, Action configureInfrastructure) - : AzureProvisioningResource(name, configureInfrastructure), IResourceWithConnectionString, IKeyVaultResource + : AzureProvisioningResource(name, configureInfrastructure), IResourceWithConnectionString, IAzureKeyVaultResource { /// /// Gets the "vaultUri" output reference for the Azure Key Vault resource. @@ -31,12 +31,12 @@ public class AzureKeyVaultResource(string name, Action ReferenceExpression.Create($"{VaultUri}"); - BicepOutputReference IKeyVaultResource.VaultUriOutputReference => VaultUri; + BicepOutputReference IAzureKeyVaultResource.VaultUriOutputReference => VaultUri; // In run mode, this is set to the secret client used to access the Azure Key Vault. - internal Func>? SecretResolver { get; set; } + internal Func>? SecretResolver { get; set; } - Func>? IKeyVaultResource.SecretResolver + Func>? IAzureKeyVaultResource.SecretResolver { get => SecretResolver; set => SecretResolver = value; @@ -48,7 +48,7 @@ public class AzureKeyVaultResource(string name, Action /// /// - public IKeyVaultSecretReference GetSecretReference(string secretName) + public IAzureKeyVaultSecretReference GetSecretReference(string secretName) { ArgumentException.ThrowIfNullOrEmpty(secretName, nameof(secretName)); diff --git a/src/Aspire.Hosting.Azure.KeyVault/AzureKeyVaultSecretReference.cs b/src/Aspire.Hosting.Azure.KeyVault/AzureKeyVaultSecretReference.cs index b5579afd20e..b4cfb718996 100644 --- a/src/Aspire.Hosting.Azure.KeyVault/AzureKeyVaultSecretReference.cs +++ b/src/Aspire.Hosting.Azure.KeyVault/AzureKeyVaultSecretReference.cs @@ -10,7 +10,7 @@ namespace Aspire.Hosting.Azure; /// /// The name of the secret. /// The Azure Key Vault resource. -internal sealed class AzureKeyVaultSecretReference(string secretName, AzureKeyVaultResource azureKeyVaultResource) : IKeyVaultSecretReference, IValueProvider, IManifestExpressionProvider +internal sealed class AzureKeyVaultSecretReference(string secretName, AzureKeyVaultResource azureKeyVaultResource) : IAzureKeyVaultSecretReference, IValueProvider, IManifestExpressionProvider { /// /// Gets the name of the secret. @@ -20,7 +20,7 @@ internal sealed class AzureKeyVaultSecretReference(string secretName, AzureKeyVa /// /// Gets the Azure Key Vault resource. /// - public IKeyVaultResource Resource => azureKeyVaultResource; + public IAzureKeyVaultResource Resource => azureKeyVaultResource; string IManifestExpressionProvider.ValueExpression => $"{{{azureKeyVaultResource.Name}.secrets.{SecretName}}}"; diff --git a/src/Aspire.Hosting.Azure.PostgreSQL/AzurePostgresExtensions.cs b/src/Aspire.Hosting.Azure.PostgreSQL/AzurePostgresExtensions.cs index 7f147620a2b..60a279045d7 100644 --- a/src/Aspire.Hosting.Azure.PostgreSQL/AzurePostgresExtensions.cs +++ b/src/Aspire.Hosting.Azure.PostgreSQL/AzurePostgresExtensions.cs @@ -118,7 +118,7 @@ public static IResourceBuilder AsAzurePostgresFlexibleSe /// This requires changes to the application code to use an azure credential to authenticate with the resource. See /// https://learn.microsoft.com/azure/postgresql/flexible-server/how-to-connect-with-managed-identity#connect-using-managed-identity-in-c for more information. /// - /// You can use the method to configure the resource to use password authentication. + /// You can use the method to configure the resource to use password authentication. /// /// /// The following example creates an Azure PostgreSQL Flexible Server resource and referencing that resource in a .NET project. @@ -317,7 +317,7 @@ public static IResourceBuilder WithPassword /// A reference to the builder. public static IResourceBuilder WithPasswordAuthentication( this IResourceBuilder builder, - IResourceBuilder keyVaultBuilder, + IResourceBuilder keyVaultBuilder, IResourceBuilder? userName = null, IResourceBuilder? password = null) { diff --git a/src/Aspire.Hosting.Azure.PostgreSQL/AzurePostgresFlexibleServerResource.cs b/src/Aspire.Hosting.Azure.PostgreSQL/AzurePostgresFlexibleServerResource.cs index 34ddbab1d72..0946756806c 100644 --- a/src/Aspire.Hosting.Azure.PostgreSQL/AzurePostgresFlexibleServerResource.cs +++ b/src/Aspire.Hosting.Azure.PostgreSQL/AzurePostgresFlexibleServerResource.cs @@ -33,7 +33,7 @@ public class AzurePostgresFlexibleServerResource(string name, Action - internal IKeyVaultSecretReference? ConnectionStringSecretOutput { get; set; } + internal IAzureKeyVaultSecretReference? ConnectionStringSecretOutput { get; set; } private BicepOutputReference NameOutputReference => new("name", this); diff --git a/src/Aspire.Hosting.Azure.Redis/AzureRedisCacheResource.cs b/src/Aspire.Hosting.Azure.Redis/AzureRedisCacheResource.cs index 7c7b844c4e3..ec1cdfee8a9 100644 --- a/src/Aspire.Hosting.Azure.Redis/AzureRedisCacheResource.cs +++ b/src/Aspire.Hosting.Azure.Redis/AzureRedisCacheResource.cs @@ -29,7 +29,7 @@ public class AzureRedisCacheResource(string name, Action - internal IKeyVaultSecretReference? ConnectionStringSecretOutput { get; set; } + internal IAzureKeyVaultSecretReference? ConnectionStringSecretOutput { get; set; } private BicepOutputReference NameOutputReference => new("name", this); diff --git a/src/Aspire.Hosting.Azure.Redis/AzureRedisExtensions.cs b/src/Aspire.Hosting.Azure.Redis/AzureRedisExtensions.cs index 219fb258009..a0171036463 100644 --- a/src/Aspire.Hosting.Azure.Redis/AzureRedisExtensions.cs +++ b/src/Aspire.Hosting.Azure.Redis/AzureRedisExtensions.cs @@ -96,7 +96,7 @@ public static IResourceBuilder AsAzureRedis(this IResourceBuilder /// This requires changes to the application code to use an azure credential to authenticate with the resource. See /// https://github.com/Azure/Microsoft.Azure.StackExchangeRedis for more information. /// - /// You can use the method to configure the resource to use access key authentication. + /// You can use the method to configure the resource to use access key authentication. /// /// /// The following example creates an Azure Cache for Redis resource and referencing that resource in a .NET project. @@ -218,7 +218,7 @@ public static IResourceBuilder WithAccessKeyAuthenticat /// The Azure Cache for Redis resource builder. /// The Azure Key Vault resource builder where the connection string used to connect to this AzureRedisCacheResource will be stored. /// A reference to the builder. - public static IResourceBuilder WithAccessKeyAuthentication(this IResourceBuilder builder, IResourceBuilder keyVaultBuilder) + public static IResourceBuilder WithAccessKeyAuthentication(this IResourceBuilder builder, IResourceBuilder keyVaultBuilder) { ArgumentNullException.ThrowIfNull(builder); ArgumentNullException.ThrowIfNull(keyVaultBuilder); diff --git a/src/Aspire.Hosting.Azure/AzureResourcePreparer.cs b/src/Aspire.Hosting.Azure/AzureResourcePreparer.cs index c3af1161d3f..a6d47daccd7 100644 --- a/src/Aspire.Hosting.Azure/AzureResourcePreparer.cs +++ b/src/Aspire.Hosting.Azure/AzureResourcePreparer.cs @@ -362,7 +362,7 @@ private static void ProcessAzureReferences(HashSet azureReferenc return; } - if (value is IKeyVaultSecretReference keyVaultSecretReference) + if (value is IAzureKeyVaultSecretReference keyVaultSecretReference) { azureReferences.Add(keyVaultSecretReference.Resource); return; diff --git a/src/Aspire.Hosting.Azure/IKeyVaultResource.cs b/src/Aspire.Hosting.Azure/IAzureKeyVaultResource.cs similarity index 80% rename from src/Aspire.Hosting.Azure/IKeyVaultResource.cs rename to src/Aspire.Hosting.Azure/IAzureKeyVaultResource.cs index 4760e0e8368..432b072dcf1 100644 --- a/src/Aspire.Hosting.Azure/IKeyVaultResource.cs +++ b/src/Aspire.Hosting.Azure/IAzureKeyVaultResource.cs @@ -8,7 +8,7 @@ namespace Aspire.Hosting.Azure; /// /// Represents a resource that represents an Azure Key Vault. /// -public interface IKeyVaultResource : IResource, IAzureResource +public interface IAzureKeyVaultResource : IResource, IAzureResource { /// /// Gets the output reference that represents the vault uri for the Azure Key Vault resource. @@ -23,12 +23,12 @@ public interface IKeyVaultResource : IResource, IAzureResource /// /// Gets or sets the secret resolver function used to resolve secrets at runtime. /// - Func>? SecretResolver { get; set; } + Func>? SecretResolver { get; set; } /// /// Gets a secret reference for the specified secret name. /// /// The name of the secret. /// A reference to the secret. - IKeyVaultSecretReference GetSecretReference(string secretName); + IAzureKeyVaultSecretReference GetSecretReference(string secretName); } diff --git a/src/Aspire.Hosting.Azure/IKeyVaultSecretReference.cs b/src/Aspire.Hosting.Azure/IAzureKeyVaultSecretReference.cs similarity index 78% rename from src/Aspire.Hosting.Azure/IKeyVaultSecretReference.cs rename to src/Aspire.Hosting.Azure/IAzureKeyVaultSecretReference.cs index 70f1cb30d58..b0a33b5a536 100644 --- a/src/Aspire.Hosting.Azure/IKeyVaultSecretReference.cs +++ b/src/Aspire.Hosting.Azure/IAzureKeyVaultSecretReference.cs @@ -8,7 +8,7 @@ namespace Aspire.Hosting.Azure; /// /// Represents a reference to a secret in an Azure Key Vault resource. /// -public interface IKeyVaultSecretReference : IValueProvider, IManifestExpressionProvider +public interface IAzureKeyVaultSecretReference : IValueProvider, IManifestExpressionProvider { /// /// Gets the name of the secret. @@ -18,5 +18,5 @@ public interface IKeyVaultSecretReference : IValueProvider, IManifestExpressionP /// /// Gets the Azure Key Vault resource. /// - IKeyVaultResource Resource { get; } -} \ No newline at end of file + IAzureKeyVaultResource Resource { get; } +} diff --git a/src/Aspire.Hosting.Azure/Provisioning/Provisioners/BicepProvisioner.cs b/src/Aspire.Hosting.Azure/Provisioning/Provisioners/BicepProvisioner.cs index 6e6b8598349..d4a0c90d5cb 100644 --- a/src/Aspire.Hosting.Azure/Provisioning/Provisioners/BicepProvisioner.cs +++ b/src/Aspire.Hosting.Azure/Provisioning/Provisioners/BicepProvisioner.cs @@ -278,7 +278,7 @@ await notificationService.PublishUpdateAsync(resource, state => } // Populate secret outputs from key vault (if any) - if (resource is IKeyVaultResource kvr) + if (resource is IAzureKeyVaultResource kvr) { var vaultUri = resource.Outputs[kvr.VaultUriOutputReference.Name] as string ?? throw new InvalidOperationException($"{kvr.VaultUriOutputReference.Name} not found in outputs.");