1 type derived from ParameterResource
Aspire.Hosting (1)
93 instantiations of ParameterResource
Aspire.Hosting (7)
ParameterResourceBuilderExtensions.cs (7)
32new ParameterResource(
114new ParameterResource(
139new ParameterResource(
177new ParameterResource(name, p => GetParameterValue(builder.Configuration, name, value), secret)
385var parameter = new ParameterResource(builder.Resource.Name, _ => "", secret: true);
450var parameterResource = new ParameterResource(name, defaultValue => GetParameterValue(builder.Configuration, name, defaultValue), secret)
478var parameterResource = new ParameterResource(name, defaultValue => GetParameterValue(builder.Configuration, name, defaultValue), secret);
Aspire.Hosting.Azure.Kubernetes.Tests (4)
Aspire.Hosting.Azure.Tests (6)
Aspire.Hosting.Dotnet.Tests (2)
Aspire.Hosting.Garnet.Tests (1)
Aspire.Hosting.Keycloak.Tests (1)
Aspire.Hosting.Kubernetes.Tests (6)
Aspire.Hosting.Milvus.Tests (5)
Aspire.Hosting.MongoDB.Tests (12)
Aspire.Hosting.MySql.Tests (2)
Aspire.Hosting.Nats.Tests (2)
Aspire.Hosting.OpenAI.Tests (2)
Aspire.Hosting.Oracle.Tests (3)
Aspire.Hosting.PostgreSQL.Tests (4)
Aspire.Hosting.Qdrant.Tests (2)
Aspire.Hosting.RabbitMQ.Tests (2)
Aspire.Hosting.Radius.Tests (4)
Aspire.Hosting.Redis.Tests (1)
Aspire.Hosting.SqlServer.Tests (2)
Aspire.Hosting.Tests (24)
Backchannel\AuxiliaryBackchannelRpcTargetTests.cs (11)
388var passwordParameter = new ParameterResource("pg-password", _ => "generated-s3cr3t", secret: true);
436var referencedParameter = new ParameterResource("shared-name", _ => "referenced-secret", secret: true);
490var secretA = new ParameterResource("secret-a", _ => "value-a", secret: true);
494var secretB = new ParameterResource("secret-b", _ => "value-b", secret: true);
572var secretA = new ParameterResource("secret-a", _ => "value-a", secret: true);
576var secretB = new ParameterResource("secret-b", _ => "value-b", secret: true);
647var secret = new ParameterResource("secret", _ => "value-a", secret: true);
718var secret = new ParameterResource("secret", _ => "value-a", secret: true);
793var secret = new ParameterResource("mcp-window-secret", _ => "unused", secret: true);
1017var secret = new ParameterResource("dbpassword", _ => "s3cr3t-value", secret: true);
1069var secret = new ParameterResource("dbpassword", _ => "s3cr3t-value", secret: true);
ExpressionResolverTests.cs (4)
52data.Add(new ExpressionResolverTestData(false, new ParameterResource("SecretParameter", _ => "SecretParameter", secret: true)), null, ("SecretParameter", true));
53data.Add(new ExpressionResolverTestData(false, new ParameterResource("NonSecretParameter", _ => "NonSecretParameter", secret: false)), null, ("NonSecretParameter", false));
361{ "SecretParameter", ReferenceExpression.Create("SecretParameter", [new ParameterResource("SecretParameter", _ => "SecretParameter", secret: true)], [], [null]) },
362{ "NonSecretParameter", ReferenceExpression.Create("NonSecretParameter", [new ParameterResource("NonSecretParameter", _ => "NonSecretParameter", secret: false)], [], [null]) },
Aspire.Hosting.Valkey.Tests (1)
767 references to ParameterResource
Aspire.Hosting (124)
ContainerResourceBuilderExtensions.cs (9)
1175/// Thrown when <see cref="ContainerResourceBuilderExtensions.WithBuildArg{T}(IResourceBuilder{T}, string, IResourceBuilder{ParameterResource})"/> is
1180/// The <see cref="ContainerResourceBuilderExtensions.WithBuildArg{T}(IResourceBuilder{T}, string, IResourceBuilder{ParameterResource})"/> extension method
1200public static IResourceBuilder<T> WithBuildArg<T>(this IResourceBuilder<T> builder, string name, IResourceBuilder<ParameterResource> value) where T : ContainerResource
1227[AspireUnion(typeof(string), typeof(IResourceBuilder<ParameterResource>))] object value) where T : ContainerResource
1236IResourceBuilder<ParameterResource> parameter => builder.WithBuildArg(name, parameter),
1253/// Thrown when <see cref="ContainerResourceBuilderExtensions.WithBuildSecret{T}(IResourceBuilder{T}, string, IResourceBuilder{ParameterResource})"/> is
1258/// The <see cref="ContainerResourceBuilderExtensions.WithBuildSecret{T}(IResourceBuilder{T}, string, IResourceBuilder{ParameterResource})"/> extension method
1260/// variable-based secret being passed to the build process. The value of the environment variable is the value of the secret referenced by the <see cref="ParameterResource"/>.
1279public static IResourceBuilder<T> WithBuildSecret<T>(this IResourceBuilder<T> builder, string name, IResourceBuilder<ParameterResource> value) where T : ContainerResource
ExternalServiceBuilderExtensions.cs (7)
48[AspireUnion(typeof(string), typeof(Uri), typeof(IResourceBuilder<ParameterResource>))] object url)
58IResourceBuilder<ParameterResource> urlParameter => builder.AddExternalService(name, urlParameter),
88public static IResourceBuilder<ExternalServiceResource> AddExternalService(this IDistributedApplicationBuilder builder, [ResourceName] string name, IResourceBuilder<ParameterResource> urlParameter)
97private static IResourceBuilder<ExternalServiceResource> AddExternalServiceImpl(IDistributedApplicationBuilder builder, string name, Uri? uri = null, ParameterResource? urlParameter = null)
215/// <see cref="ParameterResource.GetValueAsync(CancellationToken)"/> on each probe, validates the URL, and then performs
392private readonly ParameterResource _urlParameter;
397public ParameterUriHealthCheck(ParameterResource urlParameter, string? path, int expectedStatusCode, Func<HttpClient> httpClientFactory)
Orchestrator\ParameterProcessor.cs (25)
29private readonly List<ParameterResource> _unresolvedParameters = [];
49public async Task InitializeParametersAsync(IEnumerable<ParameterResource> parameterResources, bool waitForResolution = false)
53foreach (var parameterResource in parameterResources)
110var referencedParameters = new Dictionary<string, ParameterResource>();
115var explicitParameters = model.Resources.OfType<ParameterResource>();
131private async Task CollectDependentParameterResourcesAsync(DistributedApplicationModel model, Dictionary<string, ParameterResource> referencedParameters, CancellationToken cancellationToken)
141foreach (var parameter in dependencies.OfType<ParameterResource>())
148private async Task ProcessParameterAsync(ParameterResource parameterResource)
201private void AddSetParameterCommand(ParameterResource parameterResource)
310private static bool HasParameterValue(ParameterResource parameterResource)
329public async Task SetParameterAsync(ParameterResource parameterResource, CancellationToken cancellationToken = default)
374public async Task DeleteParameterAsync(ParameterResource parameterResource, CancellationToken cancellationToken = default)
426internal async Task<ExecuteCommandResult> SetParameterCoreAsync(ParameterResource parameterResource, InteractionInputCollection arguments, CancellationToken cancellationToken)
443internal async Task<ExecuteCommandResult> DeleteParameterCoreAsync(ParameterResource parameterResource, InteractionInputCollection arguments, CancellationToken cancellationToken)
495private async Task ApplyParameterValueAsync(ParameterResource parameterResource, string inputValue, bool saveToDeploymentState, CancellationToken cancellationToken = default)
536private void RecordSecretValueForRedaction(ParameterResource parameterResource, string? value)
545internal async Task HandleUnresolvedParametersAsync(IList<ParameterResource> unresolvedParameters, CancellationToken allParametersResolvedToken)
589var resourceInputs = new List<(ParameterResource ParameterResource, InteractionInput Input)>();
591foreach (var parameter in unresolvedParameters)
660private void OnParameterResolved(IList<ParameterResource> unresolvedParameters, ParameterResource parameter)
670private async Task SaveParametersToDeploymentStateAsync(IEnumerable<ParameterResource> parameters, CancellationToken cancellationToken)
673foreach (var parameter in parameters)
698private async Task UpdateParameterStateAsync(ParameterResource parameterResource, string value, ResourceStateSnapshot? state)
ParameterResourceBuilderExtensions.cs (26)
26public static IResourceBuilder<ParameterResource> AddParameter(this IDistributedApplicationBuilder builder, [ResourceName] string name, bool secret = false)
43internal static IResourceBuilder<ParameterResource> AddParameterForPolyglot(
73public static IResourceBuilder<ParameterResource> AddParameter(this IDistributedApplicationBuilder builder, [ResourceName] string name, string value, bool publishValueAsDefault = false, bool secret = false)
98public static IResourceBuilder<ParameterResource> AddParameter(this IDistributedApplicationBuilder builder, string name, Func<string> valueGetter, bool publishValueAsDefault = false, bool secret = false)
132public static IResourceBuilder<ParameterResource> AddParameterFromConfiguration(this IDistributedApplicationBuilder builder, string name, string configurationKey, bool secret = false)
164public static IResourceBuilder<ParameterResource> AddParameter(this IDistributedApplicationBuilder builder, [ResourceName] string name, ParameterDefault value, bool secret = false, bool persist = false)
187internal static IResourceBuilder<ParameterResource> AddParameterWithGeneratedValueForPolyglot(this IDistributedApplicationBuilder builder, [ResourceName] string name, GenerateParameterDefault value, bool secret = false, bool persist = false)
207public static IResourceBuilder<ParameterResource> WithDescription(this IResourceBuilder<ParameterResource> builder, string description, bool enableMarkdown = false)
240public static IResourceBuilder<ParameterResource> WithCustomInput(this IResourceBuilder<ParameterResource> builder, Func<ParameterResource, InteractionInput> createInput)
257internal static IResourceBuilder<ParameterResource> WithCustomInputForPolyglot(this IResourceBuilder<ParameterResource> builder, Ats.ParameterCustomInputOptions options)
297where T : ParameterResource
385var parameter = new ParameterResource(builder.Resource.Name, _ => "", secret: true);
404/// <returns>The created <see cref="ParameterResource"/>.</returns>
409public static ParameterResource CreateDefaultPasswordParameter(
434/// Creates a new <see cref="ParameterResource"/> that has a generated value using the <paramref name="parameterDefault"/>.
443/// <returns>The created <see cref="ParameterResource"/>.</returns>
444public static ParameterResource CreateGeneratedParameter(
450var parameterResource = new ParameterResource(name, defaultValue => GetParameterValue(builder.Configuration, name, defaultValue), secret)
464/// Creates a new <see cref="ParameterResource"/>.
472/// <returns>The created <see cref="ParameterResource"/>.</returns>
473public static ParameterResource CreateParameter(IDistributedApplicationBuilder builder, string name, bool secret)
478var parameterResource = new ParameterResource(name, defaultValue => GetParameterValue(builder.Configuration, name, defaultValue), secret);
Aspire.Hosting.Azure (84)
AzureProvisioningResource.cs (9)
135var existingResourceName = existingAnnotation.Name is ParameterResource nameParameter
180ParameterResource nameParameter => nameParameter.AsProvisioningParameter(infra),
229(string subscription, ParameterResource resourceGroup) => new FunctionCallExpression(new IdentifierExpression("resourceGroup"), new StringLiteralExpression(subscription), resourceGroup.AsProvisioningParameter(infra).Value.Compile()),
230(ParameterResource subscription, string resourceGroup) => new FunctionCallExpression(new IdentifierExpression("resourceGroup"), subscription.AsProvisioningParameter(infra).Value.Compile(), new StringLiteralExpression(resourceGroup)),
231(ParameterResource subscription, ParameterResource resourceGroup) => new FunctionCallExpression(new IdentifierExpression("resourceGroup"), subscription.AsProvisioningParameter(infra).Value.Compile(), resourceGroup.AsProvisioningParameter(infra).Value.Compile()),
241ParameterResource resourceGroup => new FunctionCallExpression(new IdentifierExpression("resourceGroup"), resourceGroup.AsProvisioningParameter(infra).Value.Compile()),
251ParameterResource subscription => new FunctionCallExpression(new IdentifierExpression("subscription"), subscription.AsProvisioningParameter(infra).Value.Compile()),
288var isSecure = aspireParameter.Value is ParameterResource { Secret: true } || aspireParameter.Value is BicepSecretOutputReference;
ExistingAzureResourceExtensions.cs (49)
49public static IResourceBuilder<T> RunAsExisting<T>(this IResourceBuilder<T> builder, IResourceBuilder<ParameterResource> nameParameter, IResourceBuilder<ParameterResource>? resourceGroupParameter)
85[AspireUnion(typeof(string), typeof(ParameterResource))] object name,
86[AspireUnion(typeof(string), typeof(ParameterResource))] object? resourceGroup = null)
104public static IResourceBuilder<T> PublishAsExisting<T>(this IResourceBuilder<T> builder, IResourceBuilder<ParameterResource> nameParameter, IResourceBuilder<ParameterResource>? resourceGroupParameter)
140[AspireUnion(typeof(string), typeof(ParameterResource))] object name,
141[AspireUnion(typeof(string), typeof(ParameterResource))] object? resourceGroup = null)
159public static IResourceBuilder<T> AsExisting<T>(this IResourceBuilder<T> builder, IResourceBuilder<ParameterResource> nameParameter, IResourceBuilder<ParameterResource>? resourceGroupParameter)
178[AspireUnion(typeof(string), typeof(ParameterResource))] object name,
179[AspireUnion(typeof(string), typeof(ParameterResource))] object? resourceGroup = null)
198public static IResourceBuilder<T> RunAsExistingInSubscription<T>(this IResourceBuilder<T> builder, IResourceBuilder<ParameterResource> nameParameter, IResourceBuilder<ParameterResource> subscriptionParameter)
235[AspireUnion(typeof(string), typeof(ParameterResource))] object name,
236[AspireUnion(typeof(string), typeof(ParameterResource))] object subscription)
255public static IResourceBuilder<T> PublishAsExistingInSubscription<T>(this IResourceBuilder<T> builder, IResourceBuilder<ParameterResource> nameParameter, IResourceBuilder<ParameterResource> subscriptionParameter)
292[AspireUnion(typeof(string), typeof(ParameterResource))] object name,
293[AspireUnion(typeof(string), typeof(ParameterResource))] object subscription)
312public static IResourceBuilder<T> AsExistingInSubscription<T>(this IResourceBuilder<T> builder, IResourceBuilder<ParameterResource> nameParameter, IResourceBuilder<ParameterResource> subscriptionParameter)
349[AspireUnion(typeof(string), typeof(ParameterResource))] object name,
350[AspireUnion(typeof(string), typeof(ParameterResource))] object subscription)
369public static IResourceBuilder<T> RunAsExistingInResourceGroup<T>(this IResourceBuilder<T> builder, IResourceBuilder<ParameterResource> nameParameter, IResourceBuilder<ParameterResource> resourceGroupParameter, IResourceBuilder<ParameterResource> subscriptionParameter)
407[AspireUnion(typeof(string), typeof(ParameterResource))] object name,
408[AspireUnion(typeof(string), typeof(ParameterResource))] object resourceGroup,
409[AspireUnion(typeof(string), typeof(ParameterResource))] object subscription)
429public static IResourceBuilder<T> PublishAsExistingInResourceGroup<T>(this IResourceBuilder<T> builder, IResourceBuilder<ParameterResource> nameParameter, IResourceBuilder<ParameterResource> resourceGroupParameter, IResourceBuilder<ParameterResource> subscriptionParameter)
467[AspireUnion(typeof(string), typeof(ParameterResource))] object name,
468[AspireUnion(typeof(string), typeof(ParameterResource))] object resourceGroup,
469[AspireUnion(typeof(string), typeof(ParameterResource))] object subscription)
489public static IResourceBuilder<T> AsExistingInResourceGroup<T>(this IResourceBuilder<T> builder, IResourceBuilder<ParameterResource> nameParameter, IResourceBuilder<ParameterResource> resourceGroupParameter, IResourceBuilder<ParameterResource> subscriptionParameter)
527[AspireUnion(typeof(string), typeof(ParameterResource))] object name,
528[AspireUnion(typeof(string), typeof(ParameterResource))] object resourceGroup,
529[AspireUnion(typeof(string), typeof(ParameterResource))] object subscription)
548public static IResourceBuilder<T> RunAsExistingInTenant<T>(this IResourceBuilder<T> builder, IResourceBuilder<ParameterResource> nameParameter)
583[AspireUnion(typeof(string), typeof(ParameterResource))] object name)
600public static IResourceBuilder<T> PublishAsExistingInTenant<T>(this IResourceBuilder<T> builder, IResourceBuilder<ParameterResource> nameParameter)
635[AspireUnion(typeof(string), typeof(ParameterResource))] object name)
652public static IResourceBuilder<T> AsExistingInTenant<T>(this IResourceBuilder<T> builder, IResourceBuilder<ParameterResource> nameParameter)
687[AspireUnion(typeof(string), typeof(ParameterResource))] object name)
758if (value is not string && value is not ParameterResource)
Aspire.Hosting.Azure.AppContainers (11)
ContainerAppExtensions.cs (10)
25/// <para>The <see cref="ConfigureCustomDomain(ContainerApp, IResourceBuilder{ParameterResource}, IResourceBuilder{ParameterResource})"/> extension method
27/// <para>The <see cref="ConfigureCustomDomain(ContainerApp, IResourceBuilder{ParameterResource}, IResourceBuilder{ParameterResource})"/> method is used
30/// <para>The <see cref="ConfigureCustomDomain(ContainerApp, IResourceBuilder{ParameterResource}, IResourceBuilder{ParameterResource})"/> method takes
41/// passing them to the <see cref="ConfigureCustomDomain(ContainerApp, IResourceBuilder{ParameterResource}, IResourceBuilder{ParameterResource})"/>
58public static void ConfigureCustomDomain(this ContainerApp app, IResourceBuilder<ParameterResource> customDomain, IResourceBuilder<ParameterResource> certificateName)
Aspire.Hosting.Azure.AppService (9)
Aspire.Hosting.Azure.CosmosDB (1)
Aspire.Hosting.Azure.Functions (8)
Aspire.Hosting.Azure.KeyVault (7)
AzureKeyVaultResourceExtensions.cs (7)
41/// Use the <see cref="AddSecret(IResourceBuilder{AzureKeyVaultResource}, string, ParameterResource)"/> methods to add secrets to the Key Vault:
252public static IResourceBuilder<AzureKeyVaultSecretResource> AddSecret(this IResourceBuilder<AzureKeyVaultResource> builder, string name, IResourceBuilder<ParameterResource> parameterResource)
267[AspireUnion(typeof(IResourceBuilder<ParameterResource>), typeof(ReferenceExpression))] object value,
277IResourceBuilder<ParameterResource> parameterResource => builder.AddSecret(name, secretName, parameterResource),
291public static IResourceBuilder<AzureKeyVaultSecretResource> AddSecret(this IResourceBuilder<AzureKeyVaultResource> builder, string name, ParameterResource parameterResource)
334public static IResourceBuilder<AzureKeyVaultSecretResource> AddSecret(this IResourceBuilder<AzureKeyVaultResource> builder, [ResourceName] string name, string secretName, IResourceBuilder<ParameterResource> parameterResource)
351public static IResourceBuilder<AzureKeyVaultSecretResource> AddSecret(this IResourceBuilder<AzureKeyVaultResource> builder, [ResourceName] string name, string secretName, ParameterResource parameterResource)
Aspire.Hosting.Azure.Kubernetes (2)
Aspire.Hosting.Azure.Kubernetes.Tests (4)
Aspire.Hosting.Azure.Network (15)
AzureVirtualNetworkExtensions.cs (6)
66IResourceBuilder<ParameterResource> addressPrefix)
86[AspireUnion(typeof(string), typeof(IResourceBuilder<ParameterResource>))] object? addressPrefix = null)
92IResourceBuilder<ParameterResource> addressPrefixParameter => AddAzureVirtualNetwork(builder, name, addressPrefixParameter),
229IResourceBuilder<ParameterResource> addressPrefix,
250[AspireUnion(typeof(string), typeof(IResourceBuilder<ParameterResource>))] object addressPrefix,
258IResourceBuilder<ParameterResource> addressPrefixParameter => AddSubnet(builder, name, addressPrefixParameter, subnetName),
Aspire.Hosting.Azure.PostgreSQL (12)
Aspire.Hosting.Azure.Provisioning (1)
Aspire.Hosting.Azure.ServiceBus (2)
Aspire.Hosting.Azure.Tests (46)
Aspire.Hosting.Docker (8)
Aspire.Hosting.Docker.Tests (1)
Aspire.Hosting.Dotnet.Tests (2)
Aspire.Hosting.Foundry (7)
Aspire.Hosting.Garnet (5)
Aspire.Hosting.Garnet.Tests (1)
Aspire.Hosting.Keycloak (7)
Aspire.Hosting.Keycloak.Tests (4)
Aspire.Hosting.Kubernetes (47)
HelmChartOptions.cs (15)
57public HelmChartOptions WithNamespace(IResourceBuilder<ParameterResource> @namespace)
70internal HelmChartOptions WithNamespace([AspireUnion(typeof(string), typeof(IResourceBuilder<ParameterResource>))] object @namespace)
77IResourceBuilder<ParameterResource> namespaceParameter => WithNamespace(namespaceParameter),
104public HelmChartOptions WithReleaseName(IResourceBuilder<ParameterResource> releaseName)
117internal HelmChartOptions WithReleaseName([AspireUnion(typeof(string), typeof(IResourceBuilder<ParameterResource>))] object releaseName)
124IResourceBuilder<ParameterResource> releaseNameParameter => WithReleaseName(releaseNameParameter),
156public HelmChartOptions WithChartVersion(IResourceBuilder<ParameterResource> version)
169internal HelmChartOptions WithChartVersion([AspireUnion(typeof(string), typeof(IResourceBuilder<ParameterResource>))] object version)
176IResourceBuilder<ParameterResource> versionParameter => WithChartVersion(versionParameter),
203public HelmChartOptions WithChartName(IResourceBuilder<ParameterResource> name)
216internal HelmChartOptions WithChartName([AspireUnion(typeof(string), typeof(IResourceBuilder<ParameterResource>))] object name)
223IResourceBuilder<ParameterResource> nameParameter => WithChartName(nameParameter),
250public HelmChartOptions WithChartDescription(IResourceBuilder<ParameterResource> description)
263internal HelmChartOptions WithChartDescription([AspireUnion(typeof(string), typeof(IResourceBuilder<ParameterResource>))] object description)
270IResourceBuilder<ParameterResource> descriptionParameter => WithChartDescription(descriptionParameter),
KubernetesResource.cs (11)
566if (value is ParameterResource param)
615if (expr.Condition is ParameterResource conditionParam)
663private async Task<object> BuildHelmConditional(KubernetesEnvironmentContext context, DistributedApplicationExecutionContext executionContext, ReferenceExpression expr, ParameterResource conditionParam, bool embedded)
709/// Ensures that any <see cref="ParameterResource"/> instances referenced in a branch's
716if (vp is ParameterResource branchParam)
727private void AllocateAdditionalParameter(ParameterResource parameter, HelmValue helmValue)
743ParameterResource parameter,
821private static HelmValue AllocateParameter(ParameterResource parameter, IResource resource, bool isEmbedded)
875ParameterResource => false,
935public HelmValue(string expression, ParameterResource parameterSource)
964public ParameterResource? ParameterSource { get; }
Aspire.Hosting.Kubernetes.Tests (11)
Aspire.Hosting.Milvus (5)
Aspire.Hosting.Milvus.Tests (6)
Aspire.Hosting.MongoDB (19)
Aspire.Hosting.MongoDB.Tests (17)
Aspire.Hosting.MySql (5)
Aspire.Hosting.MySql.Tests (7)
Aspire.Hosting.Nats (9)
Aspire.Hosting.Nats.Tests (6)
Aspire.Hosting.OpenAI (4)
Aspire.Hosting.OpenAI.Tests (2)
Aspire.Hosting.Oracle (4)
Aspire.Hosting.Oracle.Tests (4)
Aspire.Hosting.Orleans (2)
Aspire.Hosting.PostgreSQL (9)
Aspire.Hosting.PostgreSQL.Tests (9)
Aspire.Hosting.Qdrant (5)
Aspire.Hosting.Qdrant.Tests (3)
Aspire.Hosting.RabbitMQ (7)
Aspire.Hosting.RabbitMQ.Tests (6)
Aspire.Hosting.Radius (59)
Publishing\RadiusInfrastructureBuilder.cs (35)
55private readonly Dictionary<string, ParameterResource> _deployParametersByIdentifier = new(StringComparer.Ordinal);
60private readonly Dictionary<ParameterResource, List<IResource>> _rabbitMqUserNames = new(ReferenceEqualityComparer.Instance);
70private readonly Dictionary<string, ParameterResource> _recipeParameterBindings = new(StringComparer.Ordinal);
95private readonly Dictionary<ParameterResource, ProjectedValue> _recipeSecretSubstitutions = [];
102private readonly HashSet<ParameterResource> _emptyCredentialSubstitutions = [];
103private readonly Dictionary<ParameterResource, (IResource Owner, bool IsProjectionSubstitution)> _recipeCredentialOwners = [];
107private readonly HashSet<(IResource Resource, ParameterResource Parameter)> _warnedUnrelatedSubstitutions = [];
578var deployParameters = new Dictionary<string, ParameterResource>(_deployParametersByIdentifier, StringComparer.Ordinal);
604private Dictionary<ParameterResource, IReadOnlyList<IResource>> BuildLiveRabbitMqUserNames(RadiusInfrastructureOptions options)
606var live = new Dictionary<ParameterResource, IReadOnlyList<IResource>>(ReferenceEqualityComparer.Instance);
2395var passwordParameter = TryGetCredentialParameter(withConnectionString, "password");
2457var recipePassword = TryGetCredentialParameter(withConnectionString, "password");
2684var credentialParameter = TryGetCredentialParameter(withConnectionString, propertyName);
2755var userNameParameter = TryGetCredentialParameter(withConnectionString, "username");
2842private async Task<bool> ResolvesToGuestUserNameAsync(ParameterResource? userNameParameter)
2952private void WarnIfUserSuppliedCredentialIsReplaced(IResource resource, ParameterResource parameter, string credentialKind)
2984private void WarnIfUnrelatedUseOfSubstitutedParameter(ParameterResource parameter, IResource resource)
3280/// Extracts the <see cref="ParameterResource"/> backing a named connection property (e.g.
3285private static ParameterResource? TryGetCredentialParameter(IResourceWithConnectionString resource, string key)
3306return expression.ValueProviders is [ParameterResource parameter] && expression.Format == "{0}"
4137case ParameterResource param:
4140case IResourceBuilder<ParameterResource> paramBuilder:
4507/// so <see cref="ParameterResource"/>, <see cref="ReferenceExpression"/> and
4529case ParameterResource:
4530case IResourceBuilder<ParameterResource>:
4584/// Sharing one <see cref="ParameterResource"/> across resources is only safe when every owner
4592private void RegisterRecipeCredential(ParameterResource parameter, IResource owner, bool isProjectionSubstitution)
4740private EnvPart ResolveParameterPart(ParameterResource parameter, IResource owner, bool allowRecipeSubstitutions)
4771private ProvisioningParameter GetOrAddEnvParameter(ParameterResource parameter)
5286/// type fidelity and emitting parameter references for bound <see cref="ParameterResource"/>
5299/// <see cref="ParameterResource"/> bindings (emitted as a Bicep <c>param</c> reference, never a
5323case IResourceBuilder<ParameterResource> parameterBuilder:
5325case ParameterResource parameterResource:
5419/// <see cref="ParameterResource"/>. Secret parameters are declared secure so no value is
5422private ProvisioningParameter GetOrAddRecipeParameter(ParameterResource parameter)
Aspire.Hosting.Radius.Tests (10)
Aspire.Hosting.Redis (6)
Aspire.Hosting.Redis.Tests (1)
Aspire.Hosting.Seq (2)
Aspire.Hosting.SqlServer (6)
Aspire.Hosting.SqlServer.Tests (6)
Aspire.Hosting.Tests (121)
Backchannel\AuxiliaryBackchannelRpcTargetTests.cs (13)
388var passwordParameter = new ParameterResource("pg-password", _ => "generated-s3cr3t", secret: true);
436var referencedParameter = new ParameterResource("shared-name", _ => "referenced-secret", secret: true);
490var secretA = new ParameterResource("secret-a", _ => "value-a", secret: true);
494var secretB = new ParameterResource("secret-b", _ => "value-b", secret: true);
503var referencedSecret = secretA;
572var secretA = new ParameterResource("secret-a", _ => "value-a", secret: true);
576var secretB = new ParameterResource("secret-b", _ => "value-b", secret: true);
580var referencedSecret = secretA;
647var secret = new ParameterResource("secret", _ => "value-a", secret: true);
718var secret = new ParameterResource("secret", _ => "value-a", secret: true);
793var secret = new ParameterResource("mcp-window-secret", _ => "unused", secret: true);
1017var secret = new ParameterResource("dbpassword", _ => "s3cr3t-value", secret: true);
1069var secret = new ParameterResource("dbpassword", _ => "s3cr3t-value", secret: true);
Orchestrator\ParameterProcessorTests.cs (76)
40foreach (var param in parameters)
66foreach (var param in parameters)
82var secretParam = CreateParameterResource("secret", "secretValue", secret: true);
112var parameterWithMissingValue = CreateParameterWithMissingValue("missingParam");
128var parameterWithMissingValue = CreateParameterWithMissingValue("missingParam");
146var parameterWithMissingValue = CreateParameterWithMissingValue("missingParam");
161var parameterWithError = CreateParameterWithGenericError("errorParam");
184var param1 = CreateParameterWithMissingValue("param1");
185var param2 = CreateParameterWithMissingValue("param2");
186var secretParam = CreateParameterWithMissingValue("secretParam", secret: true);
188List<ParameterResource> parameters = [param1, param2, secretParam];
190foreach (var param in parameters)
289var parameterWithMissingValue = CreateParameterWithMissingValue("missingParam");
331var parameterWithMissingValue = CreateParameterWithMissingValue("missingParam");
355var parameterWithError = CreateParameterWithGenericError("errorParam");
384var parameter = CreateParameterWithMissingValue("testParam");
426var param1 = CreateParameterWithMissingValue("param1");
430var param2 = CreateParameterWithMissingValue("param2");
434List<ParameterResource> parameters = [param1, param2];
436foreach (var param in parameters)
477var secretParam = CreateParameterWithMissingValue("secretParam", secret: true);
481List<ParameterResource> parameters = [secretParam];
514var param = CreateParameterWithMissingValue("param1");
517List<ParameterResource> parameters = [param];
553var param = CreateParameterWithMissingValue("param1");
556List<ParameterResource> parameters = [param];
603var explicitParameterResource = model.Resources.OfType<ParameterResource>().First(p => p.Name == "explicitParam");
604var referencedParameterResource = model.Resources.OfType<ParameterResource>().First(p => p.Name == "referencedParam");
648var explicitParameterResource = model.Resources.OfType<ParameterResource>().Single();
674var parameterResource = model.Resources.OfType<ParameterResource>().Single();
697var parameterResource = model.Resources.OfType<ParameterResource>().Single();
719var parameterResource = model.Resources.OfType<ParameterResource>().Single();
745var parameterResource = model.Resources.OfType<ParameterResource>().Single();
775var parameters = model.Resources.OfType<ParameterResource>().ToList();
778foreach (var param in parameters)
816var parameterResource = model.Resources.OfType<ParameterResource>().Single();
850var parameters = model.Resources.OfType<ParameterResource>().ToList();
853var parameterResource = parameters[0];
867var parameter = CreateParameterResource("testParam", "testValue");
887var parameter = CreateParameterResource("testParam", "testValue");
920var parameter = CreateParameterResource("testParam", "testValue");
945var parameter = CreateParameterResource("testParam", "testValue");
971var parameter = CreateParameterResource("testParam", "testValue");
1017var parameter = CreateParameterResource("testParam", "testValue");
1042var parameter = CreateParameterResource("testParam", "testValue");
1075var parameter = CreateParameterResource("testParam", "testValue");
1090var parameter = CreateParameterResource("testParam", "initialValue");
1107var parameter = CreateParameterResource("testParam", "initialValue");
1124var parameter = CreateParameterWithMissingValue("testParam");
1144var parameter = CreateParameterWithMissingValue("testParam");
1168var parameter = CreateParameterResource("testParam", "initialValue");
1196var secretParam = CreateParameterResource("db-password", "s3cr3t-value", secret: true);
1197var nonSecretParam = CreateParameterResource("region", "public-value", secret: false);
1216var secretParam = CreateParameterResource("db-password", "initial-secret", secret: true);
1323private static ParameterResource CreateParameterResource(string name, string value, bool secret = false)
1343private static ParameterResource CreateParameterWithMissingValue(string name, bool secret = false)
1348private static ParameterResource CreateParameterWithGenericError(string name)
1373var parameterWithGenerateDefault = new ParameterResource(
1409List<ParameterResource> parameters = [connectionStringParam];
1444var regularParam = new ParameterResource(
1450List<ParameterResource> parameters = [regularParam];
1485var customParam = new ParameterResource(
1494List<ParameterResource> parameters = [customParam];
1521var parameter = CreateParameterResource("testParam", "initialValue");
1540var parameter = CreateParameterResource("testParam", "initialValue");
1557var parameter = CreateParameterResource("testParam", "initialValue");
1578var parameter = CreateParameterResource("testParam", "initialValue");
1607var parameter = CreateParameterResource("testParam", "initialValue");
Aspire.Hosting.Valkey (5)
Aspire.Hosting.Valkey.Tests (1)
Aspire.Playground.Tests (2)