1 type derived from ParameterResource
Aspire.Hosting (1)
107 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)
417var parameter = new ParameterResource(builder.Resource.Name, _ => "", secret: true);
482var parameterResource = new ParameterResource(name, defaultValue => GetParameterValue(builder.Configuration, name, defaultValue), secret)
510var parameterResource = new ParameterResource(name, defaultValue => GetParameterValue(builder.Configuration, name, defaultValue), secret);
Aspire.Hosting.Azure.EntraId (1)
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 (37)
AddParameterTests.cs (11)
155var parameter = new ParameterResource("optional", _ => throw new MissingParameterValueException("Parameter 'optional' is missing."), secret: false)
176var parameter = new ParameterResource("test", _ => throw new MissingParameterValueException("Parameter 'test' is missing."), secret: false);
189var parameter = new ParameterResource("test", _ => "fallback", secret: false);
202var parameter = new ParameterResource("test", _ => "initial", secret: false);
218var parameter = new ParameterResource("test", _ => "initial", secret: false);
231var parameter = new ParameterResource("test", _ => "initial", secret: false);
243var parameter = new ParameterResource("test", _ => "initial", secret: false);
257var parameter = new ParameterResource("test", _ => "initial", secret: false);
278var parameter = new ParameterResource("test", _ => "initial", secret: false);
302var parameter = new ParameterResource("test", _ => "initial", secret: false);
315var parameter = new ParameterResource("test", _ => "initial", secret: false);
Backchannel\AuxiliaryBackchannelRpcTargetTests.cs (11)
430var passwordParameter = new ParameterResource("pg-password", _ => "generated-s3cr3t", secret: true);
478var referencedParameter = new ParameterResource("shared-name", _ => "referenced-secret", secret: true);
532var secretA = new ParameterResource("secret-a", _ => "value-a", secret: true);
536var secretB = new ParameterResource("secret-b", _ => "value-b", secret: true);
614var secretA = new ParameterResource("secret-a", _ => "value-a", secret: true);
618var secretB = new ParameterResource("secret-b", _ => "value-b", secret: true);
689var secret = new ParameterResource("secret", _ => "value-a", secret: true);
760var secret = new ParameterResource("secret", _ => "value-a", secret: true);
835var secret = new ParameterResource("mcp-window-secret", _ => "unused", secret: true);
1059var secret = new ParameterResource("dbpassword", _ => "s3cr3t-value", secret: true);
1111var 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));
384{ "SecretParameter", ReferenceExpression.Create("SecretParameter", [new ParameterResource("SecretParameter", _ => "SecretParameter", secret: true)], [], [null]) },
385{ "NonSecretParameter", ReferenceExpression.Create("NonSecretParameter", [new ParameterResource("NonSecretParameter", _ => "NonSecretParameter", secret: false)], [], [null]) },
Aspire.Hosting.Valkey.Tests (1)
903 references to ParameterResource
Aspire.Hosting (143)
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 (37)
30private readonly List<ParameterResource> _unresolvedParameters = [];
31private readonly Dictionary<ParameterResource, long> _unresolvedParameterVersions = [];
32private readonly HashSet<ParameterResource> _observedParameters = [];
33private readonly Dictionary<ParameterResource, SemaphoreSlim> _parameterUpdateLocks = [];
55public async Task InitializeParametersAsync(IEnumerable<ParameterResource> parameterResources, bool waitForResolution = false)
59foreach (var parameterResource in parameterResources)
164var referencedParameters = new Dictionary<string, ParameterResource>();
169var explicitParameters = model.Resources.OfType<ParameterResource>();
185private async Task CollectDependentParameterResourcesAsync(DistributedApplicationModel model, Dictionary<string, ParameterResource> referencedParameters, CancellationToken cancellationToken)
195foreach (var parameter in dependencies.OfType<ParameterResource>())
202private async Task ProcessParameterAsync(ParameterResource parameterResource)
245private void ObserveParameterValueChanges(ParameterResource parameterResource)
259private Task OnParameterValueChangedAsync(ParameterResource parameterResource, ParameterResourceValueChangedEventArgs eventArgs, CancellationToken cancellationToken)
264private async Task HandleParameterValueChangedAsync(ParameterResource parameterResource, ParameterResourceValueChangedEventArgs eventArgs)
305private SemaphoreSlim GetParameterUpdateLock(ParameterResource parameterResource)
319private void AddSetParameterCommand(ParameterResource parameterResource)
420private static bool HasParameterValue(ParameterResource parameterResource)
431public async Task SetParameterAsync(ParameterResource parameterResource, CancellationToken cancellationToken = default)
474public Task SetValueAsync(ParameterResource parameterResource, string value, bool saveToUserSecrets = false, CancellationToken cancellationToken = default)
488public async Task DeleteParameterAsync(ParameterResource parameterResource, CancellationToken cancellationToken = default)
540internal async Task<ExecuteCommandResult> SetParameterCoreAsync(ParameterResource parameterResource, InteractionInputCollection arguments, CancellationToken cancellationToken)
556internal async Task<ExecuteCommandResult> DeleteParameterCoreAsync(ParameterResource parameterResource, InteractionInputCollection arguments, CancellationToken cancellationToken)
603ParameterResource parameterResource,
614ParameterResource parameterResource,
670private void RecordSecretValueForRedaction(ParameterResource parameterResource, string? value)
679internal async Task HandleUnresolvedParametersAsync(IList<ParameterResource> unresolvedParameters, CancellationToken allParametersResolvedToken)
729var resourceInputs = new List<(ParameterResource ParameterResource, InteractionInput Input, long Version)>();
847private void OnParameterResolved(IList<ParameterResource> unresolvedParameters, ParameterResource parameter)
870private bool AddUnresolvedParameter(ParameterResource parameter, long version)
886private bool HasUnresolvedParameters(IList<ParameterResource> unresolvedParameters)
899private List<(ParameterResource Parameter, long Version)> GetUnresolvedParametersSnapshot(IList<ParameterResource> unresolvedParameters)
918private async Task SaveParametersToDeploymentStateAsync(IEnumerable<ParameterResource> parameters, CancellationToken cancellationToken)
921foreach (var parameter in parameters)
955private async Task UpdateParameterStateAsync(ParameterResource parameterResource, string? value, ResourceStateSnapshot? state)
ParameterResourceBuilderExtensions.cs (30)
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)
229public static IResourceBuilder<ParameterResource> WithOptional(this IResourceBuilder<ParameterResource> builder)
241public static IResourceBuilder<ParameterResource> WithRequired(this IResourceBuilder<ParameterResource> builder, bool required = true)
272public static IResourceBuilder<ParameterResource> WithCustomInput(this IResourceBuilder<ParameterResource> builder, Func<ParameterResource, InteractionInput> createInput)
289internal static IResourceBuilder<ParameterResource> WithCustomInputForPolyglot(this IResourceBuilder<ParameterResource> builder, Ats.ParameterCustomInputOptions options)
329where T : ParameterResource
417var parameter = new ParameterResource(builder.Resource.Name, _ => "", secret: true);
436/// <returns>The created <see cref="ParameterResource"/>.</returns>
441public static ParameterResource CreateDefaultPasswordParameter(
466/// Creates a new <see cref="ParameterResource"/> that has a generated value using the <paramref name="parameterDefault"/>.
475/// <returns>The created <see cref="ParameterResource"/>.</returns>
476public static ParameterResource CreateGeneratedParameter(
482var parameterResource = new ParameterResource(name, defaultValue => GetParameterValue(builder.Configuration, name, defaultValue), secret)
496/// Creates a new <see cref="ParameterResource"/>.
504/// <returns>The created <see cref="ParameterResource"/>.</returns>
505public static ParameterResource CreateParameter(IDistributedApplicationBuilder builder, string name, bool secret)
510var parameterResource = new ParameterResource(name, defaultValue => GetParameterValue(builder.Configuration, name, defaultValue), secret);
Aspire.Hosting.Azure (84)
AzureProvisioningResource.cs (9)
174var existingResourceName = existingAnnotation.Name is ParameterResource nameParameter
219ParameterResource nameParameter => nameParameter.AsProvisioningParameter(infra),
270(string subscription, ParameterResource resourceGroup) => new FunctionCallExpression(new IdentifierExpression("resourceGroup"), new StringLiteralExpression(subscription), resourceGroup.AsProvisioningParameter(infra).Value.Compile()),
271(ParameterResource subscription, string resourceGroup) => new FunctionCallExpression(new IdentifierExpression("resourceGroup"), subscription.AsProvisioningParameter(infra).Value.Compile(), new StringLiteralExpression(resourceGroup)),
272(ParameterResource subscription, ParameterResource resourceGroup) => new FunctionCallExpression(new IdentifierExpression("resourceGroup"), subscription.AsProvisioningParameter(infra).Value.Compile(), resourceGroup.AsProvisioningParameter(infra).Value.Compile()),
282ParameterResource resourceGroup => new FunctionCallExpression(new IdentifierExpression("resourceGroup"), resourceGroup.AsProvisioningParameter(infra).Value.Compile()),
292ParameterResource subscription => new FunctionCallExpression(new IdentifierExpression("subscription"), subscription.AsProvisioningParameter(infra).Value.Compile()),
329var 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)
105public static IResourceBuilder<T> PublishAsExisting<T>(this IResourceBuilder<T> builder, IResourceBuilder<ParameterResource> nameParameter, IResourceBuilder<ParameterResource>? resourceGroupParameter)
143[AspireUnion(typeof(string), typeof(ParameterResource))] object name,
144[AspireUnion(typeof(string), typeof(ParameterResource))] object? resourceGroup = null)
165public static IResourceBuilder<T> AsExisting<T>(this IResourceBuilder<T> builder, IResourceBuilder<ParameterResource> nameParameter, IResourceBuilder<ParameterResource>? resourceGroupParameter)
185[AspireUnion(typeof(string), typeof(ParameterResource))] object name,
186[AspireUnion(typeof(string), typeof(ParameterResource))] object? resourceGroup = null)
205public static IResourceBuilder<T> RunAsExistingInSubscription<T>(this IResourceBuilder<T> builder, IResourceBuilder<ParameterResource> nameParameter, IResourceBuilder<ParameterResource> subscriptionParameter)
242[AspireUnion(typeof(string), typeof(ParameterResource))] object name,
243[AspireUnion(typeof(string), typeof(ParameterResource))] object subscription)
262public static IResourceBuilder<T> PublishAsExistingInSubscription<T>(this IResourceBuilder<T> builder, IResourceBuilder<ParameterResource> nameParameter, IResourceBuilder<ParameterResource> subscriptionParameter)
299[AspireUnion(typeof(string), typeof(ParameterResource))] object name,
300[AspireUnion(typeof(string), typeof(ParameterResource))] object subscription)
319public static IResourceBuilder<T> AsExistingInSubscription<T>(this IResourceBuilder<T> builder, IResourceBuilder<ParameterResource> nameParameter, IResourceBuilder<ParameterResource> subscriptionParameter)
356[AspireUnion(typeof(string), typeof(ParameterResource))] object name,
357[AspireUnion(typeof(string), typeof(ParameterResource))] object subscription)
376public static IResourceBuilder<T> RunAsExistingInResourceGroup<T>(this IResourceBuilder<T> builder, IResourceBuilder<ParameterResource> nameParameter, IResourceBuilder<ParameterResource> resourceGroupParameter, IResourceBuilder<ParameterResource> subscriptionParameter)
414[AspireUnion(typeof(string), typeof(ParameterResource))] object name,
415[AspireUnion(typeof(string), typeof(ParameterResource))] object resourceGroup,
416[AspireUnion(typeof(string), typeof(ParameterResource))] object subscription)
437public static IResourceBuilder<T> PublishAsExistingInResourceGroup<T>(this IResourceBuilder<T> builder, IResourceBuilder<ParameterResource> nameParameter, IResourceBuilder<ParameterResource> resourceGroupParameter, IResourceBuilder<ParameterResource> subscriptionParameter)
477[AspireUnion(typeof(string), typeof(ParameterResource))] object name,
478[AspireUnion(typeof(string), typeof(ParameterResource))] object resourceGroup,
479[AspireUnion(typeof(string), typeof(ParameterResource))] object subscription)
500public static IResourceBuilder<T> AsExistingInResourceGroup<T>(this IResourceBuilder<T> builder, IResourceBuilder<ParameterResource> nameParameter, IResourceBuilder<ParameterResource> resourceGroupParameter, IResourceBuilder<ParameterResource> subscriptionParameter)
540[AspireUnion(typeof(string), typeof(ParameterResource))] object name,
541[AspireUnion(typeof(string), typeof(ParameterResource))] object resourceGroup,
542[AspireUnion(typeof(string), typeof(ParameterResource))] object subscription)
561public static IResourceBuilder<T> RunAsExistingInTenant<T>(this IResourceBuilder<T> builder, IResourceBuilder<ParameterResource> nameParameter)
596[AspireUnion(typeof(string), typeof(ParameterResource))] object name)
613public static IResourceBuilder<T> PublishAsExistingInTenant<T>(this IResourceBuilder<T> builder, IResourceBuilder<ParameterResource> nameParameter)
648[AspireUnion(typeof(string), typeof(ParameterResource))] object name)
665public static IResourceBuilder<T> AsExistingInTenant<T>(this IResourceBuilder<T> builder, IResourceBuilder<ParameterResource> nameParameter)
700[AspireUnion(typeof(string), typeof(ParameterResource))] object name)
771if (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.EntraId (46)
EntraIdResourceExtensions.cs (31)
268ParameterResource? parameter,
373IResourceBuilder<ParameterResource> tenantId,
374IResourceBuilder<ParameterResource> clientId)
463[AspireUnion(typeof(string), typeof(IResourceBuilder<ParameterResource>))] object tenantId,
464[AspireUnion(typeof(string), typeof(IResourceBuilder<ParameterResource>))] object clientId)
480resource.TenantIdParameter = (tenantId as IResourceBuilder<ParameterResource>)?.Resource;
482resource.ClientIdParameter = (clientId as IResourceBuilder<ParameterResource>)?.Resource;
497case IResourceBuilder<ParameterResource>:
521/// <see cref="AddExistingEntraApplication(IDistributedApplicationBuilder, string, IResourceBuilder{ParameterResource}, IResourceBuilder{ParameterResource})"/>.
533IResourceBuilder<ParameterResource> tenantId,
534IResourceBuilder<ParameterResource> clientId)
604[AspireUnion(typeof(string), typeof(IResourceBuilder<ParameterResource>))] object tenantId,
605[AspireUnion(typeof(string), typeof(IResourceBuilder<ParameterResource>))] object clientId)
720IResourceBuilder<ParameterResource> clientSecret)
1132IResourceBuilder<ParameterResource>? password = null)
1331params IResourceBuilder<ParameterResource>[] redirectUris)
1433/// <see cref="WithRedirectUris(IResourceBuilder{EntraIdApplicationResource}, IResourceBuilder{ParameterResource}[])"/>.
1447IResourceBuilder<ParameterResource> host,
1488[AspireUnion(typeof(string), typeof(IResourceBuilder<ParameterResource>), typeof(EndpointReference))] object redirectUri,
1497IResourceBuilder<ParameterResource> parameter when callbackPaths is null => builder.WithRedirectUris(parameter),
1498IResourceBuilder<ParameterResource> host when callbackPaths is { Length: > 0 } => builder.WithRedirectUris(host, callbackPaths[0], callbackPaths[1..]),
1501IResourceBuilder<ParameterResource> or EndpointReference => throw new ArgumentException("At least one callback path is required for a host or endpoint.", nameof(callbackPaths)),
1558params IResourceBuilder<ParameterResource>[] ownerObjectIds)
1576[AspireUnion(typeof(string), typeof(IResourceBuilder<ParameterResource>))] object ownerObjectId)
1583IResourceBuilder<ParameterResource> parameter => builder.WithApplicationOwners(parameter),
1621params IResourceBuilder<ParameterResource>[] ownerObjectIds)
1639[AspireUnion(typeof(string), typeof(IResourceBuilder<ParameterResource>))] object ownerObjectId)
1646IResourceBuilder<ParameterResource> parameter => builder.WithServicePrincipalOwners(parameter),
1678params IResourceBuilder<ParameterResource>[] ownerObjectIds)
1693[AspireUnion(typeof(string), typeof(IResourceBuilder<ParameterResource>))] object ownerObjectId)
Aspire.Hosting.Azure.EntraId.Tests (8)
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 (54)
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 (14)
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 (174)
AddParameterTests.cs (42)
29var parameterResource = Assert.Single(appModel.Resources.OfType<ParameterResource>());
144var parameterResource = Assert.Single(appModel.Resources.OfType<ParameterResource>(), r => r.Name == "optional");
155var parameter = new ParameterResource("optional", _ => throw new MissingParameterValueException("Parameter 'optional' is missing."), secret: false)
176var parameter = new ParameterResource("test", _ => throw new MissingParameterValueException("Parameter 'test' is missing."), secret: false);
189var parameter = new ParameterResource("test", _ => "fallback", secret: false);
202var parameter = new ParameterResource("test", _ => "initial", secret: false);
218var parameter = new ParameterResource("test", _ => "initial", secret: false);
231var parameter = new ParameterResource("test", _ => "initial", secret: false);
243var parameter = new ParameterResource("test", _ => "initial", secret: false);
257var parameter = new ParameterResource("test", _ => "initial", secret: false);
278var parameter = new ParameterResource("test", _ => "initial", secret: false);
302var parameter = new ParameterResource("test", _ => "initial", secret: false);
315var parameter = new ParameterResource("test", _ => "initial", secret: false);
340var parameterResource = Assert.Single(appModel.Resources.OfType<ParameterResource>());
377var parameterResource = Assert.Single(appModel.Resources.OfType<ParameterResource>(), r => r.Name == "pass");
383var paramManifest = await ManifestUtils.GetManifest(appModel.Resources.OfType<ParameterResource>().Single(r => r.Name == "pass")).DefaultTimeout();
409var parameter = Assert.Single(appModel.Resources.OfType<ParameterResource>(), r => r.Name == "optional");
449var parameterResource = Assert.Single(appModel.Resources.OfType<ParameterResource>(), r => r.Name == "pass");
455var paramManifest = await ManifestUtils.GetManifest(appModel.Resources.OfType<ParameterResource>().Single(r => r.Name == "pass")).DefaultTimeout();
530var parameterResource = Assert.Single(appModel.Resources.OfType<ParameterResource>(), r => r.Name == "pass");
547var paramManifest = await ManifestUtils.GetManifest(appModel.Resources.OfType<ParameterResource>().Single(r => r.Name == "pass")).DefaultTimeout();
598var parameterResource = Assert.Single(appModel.Resources.OfType<ParameterResource>(), r => r.Name == "val");
604var paramManifest = await ManifestUtils.GetManifest(appModel.Resources.OfType<ParameterResource>().Single(r => r.Name == "val")).DefaultTimeout();
629var connectionStringResource = Assert.Single(appModel.Resources.OfType<ParameterResource>());
1062private static void InvokeWithCustomInputForPolyglot(IResourceBuilder<ParameterResource> parameter, IReadOnlyDictionary<string, object?>? properties = null)
1096var parameterResource = Assert.Single(appModel.Resources.OfType<ParameterResource>());
1120var parameterResource = Assert.Single(appModel.Resources.OfType<ParameterResource>());
1143var parameterResource = Assert.Single(appModel.Resources.OfType<ParameterResource>());
1169var parameterResource = Assert.Single(appModel.Resources.OfType<ParameterResource>());
Backchannel\AuxiliaryBackchannelRpcTargetTests.cs (13)
430var passwordParameter = new ParameterResource("pg-password", _ => "generated-s3cr3t", secret: true);
478var referencedParameter = new ParameterResource("shared-name", _ => "referenced-secret", secret: true);
532var secretA = new ParameterResource("secret-a", _ => "value-a", secret: true);
536var secretB = new ParameterResource("secret-b", _ => "value-b", secret: true);
545var referencedSecret = secretA;
614var secretA = new ParameterResource("secret-a", _ => "value-a", secret: true);
618var secretB = new ParameterResource("secret-b", _ => "value-b", secret: true);
622var referencedSecret = secretA;
689var secret = new ParameterResource("secret", _ => "value-a", secret: true);
760var secret = new ParameterResource("secret", _ => "value-a", secret: true);
835var secret = new ParameterResource("mcp-window-secret", _ => "unused", secret: true);
1059var secret = new ParameterResource("dbpassword", _ => "s3cr3t-value", secret: true);
1111var secret = new ParameterResource("dbpassword", _ => "s3cr3t-value", secret: true);
Orchestrator\ParameterProcessorTests.cs (113)
41foreach (var param in parameters)
67foreach (var param in parameters)
83var secretParam = CreateParameterResource("secret", "secretValue", secret: true);
113var parameterWithMissingValue = CreateParameterWithMissingValue("missingParam");
131var parameter = CreateParameterWithMissingValue("optionalParam");
153var parameter = CreateParameterWithMissingValue("programmaticParam");
168var parameter = CreateParameterResource("programmaticMissing", "fallback");
189var parameter = CreateParameterWithMissingValue("programmaticParam");
207var parameterWithMissingValue = CreateParameterWithMissingValue("missingParam");
225var parameterWithMissingValue = CreateParameterWithMissingValue("missingParam");
240var parameterWithError = CreateParameterWithGenericError("errorParam");
263var param1 = CreateParameterWithMissingValue("param1");
264var param2 = CreateParameterWithMissingValue("param2");
265var secretParam = CreateParameterWithMissingValue("secretParam", secret: true);
267List<ParameterResource> parameters = [param1, param2, secretParam];
269foreach (var param in parameters)
368var parameterWithMissingValue = CreateParameterWithMissingValue("missingParam");
423var parameter = CreateParameterWithMissingValue("missingParam");
494var parameterWithMissingValue = CreateParameterWithMissingValue("missingParam");
518var parameterWithError = CreateParameterWithGenericError("errorParam");
547var parameter = CreateParameterWithMissingValue("testParam");
589var param1 = CreateParameterWithMissingValue("param1");
593var param2 = CreateParameterWithMissingValue("param2");
597List<ParameterResource> parameters = [param1, param2];
599foreach (var param in parameters)
640var secretParam = CreateParameterWithMissingValue("secretParam", secret: true);
644List<ParameterResource> parameters = [secretParam];
677var param = CreateParameterWithMissingValue("param1");
680List<ParameterResource> parameters = [param];
716var param = CreateParameterWithMissingValue("param1");
719List<ParameterResource> parameters = [param];
766var explicitParameterResource = model.Resources.OfType<ParameterResource>().First(p => p.Name == "explicitParam");
767var referencedParameterResource = model.Resources.OfType<ParameterResource>().First(p => p.Name == "referencedParam");
811var explicitParameterResource = model.Resources.OfType<ParameterResource>().Single();
837var parameterResource = model.Resources.OfType<ParameterResource>().Single();
860var parameterResource = model.Resources.OfType<ParameterResource>().Single();
882var parameterResource = model.Resources.OfType<ParameterResource>().Single();
908var parameterResource = model.Resources.OfType<ParameterResource>().Single();
938var parameters = model.Resources.OfType<ParameterResource>().ToList();
941foreach (var param in parameters)
979var parameterResource = model.Resources.OfType<ParameterResource>().Single();
1013var parameters = model.Resources.OfType<ParameterResource>().ToList();
1016var parameterResource = parameters[0];
1030var parameter = CreateParameterResource("testParam", "testValue");
1050var parameter = CreateParameterResource("testParam", "testValue");
1083var parameter = CreateParameterResource("testParam", "testValue");
1108var parameter = CreateParameterResource("testParam", "testValue");
1134var parameter = CreateParameterResource("testParam", "testValue");
1180var parameter = CreateParameterResource("testParam", "testValue");
1205var parameter = CreateParameterResource("testParam", "testValue");
1238var parameter = CreateParameterResource("testParam", "testValue");
1253var parameter = CreateParameterResource("testParam", "initialValue");
1270var parameter = CreateParameterResource("testParam", "initialValue");
1287var parameter = CreateParameterWithMissingValue("testParam");
1307var firstParameter = CreateParameterWithMissingValue("firstParam");
1308var secondParameter = CreateParameterWithMissingValue("secondParam");
1309foreach (var parameter in new[] { firstParameter, secondParameter })
1342var regionParameter = CreateParameterWithMissingValue("regionParam");
1343var zoneParameter = CreateParameterWithMissingValue("zoneParam");
1388var parameter = CreateParameterWithMissingValue(ParameterProcessor.SaveToUserSecretsName);
1395var otherParameter = CreateParameterWithMissingValue("otherParam");
1419var resolvedParameter = CreateParameterResource("resolvedParam", "value");
1420var firstParameter = CreateParameterWithMissingValue("firstParam");
1421var secondParameter = CreateParameterWithMissingValue("secondParam");
1440var parameter = CreateParameterWithMissingValue("testParam");
1464var parameter = CreateParameterResource("testParam", "initialValue");
1492var secretParam = CreateParameterResource("db-password", "s3cr3t-value", secret: true);
1493var nonSecretParam = CreateParameterResource("region", "public-value", secret: false);
1512var secretParam = CreateParameterResource("db-password", "initial-secret", secret: true);
1532var parameter = CreateParameterWithMissingValue("secret", secret: true);
1562var parameter = CreateParameterResource("secret", "initial-secret", secret: true);
1590var parameter = CreateParameterResource("secret", "initial-secret", secret: true);
1622var parameter = CreateParameterWithMissingValue("missing");
1645var firstParameter = CreateParameterWithMissingValue("first");
1646var secondParameter = CreateParameterWithMissingValue("second");
1760private static ParameterResource CreateParameterResource(string name, string value, bool secret = false)
1780private static ParameterResource CreateParameterWithMissingValue(string name, bool secret = false)
1785private static ParameterResource CreateParameterWithGenericError(string name)
1810var parameterWithGenerateDefault = new ParameterResource(
1846List<ParameterResource> parameters = [connectionStringParam];
1881var regularParam = new ParameterResource(
1887List<ParameterResource> parameters = [regularParam];
1922var customParam = new ParameterResource(
1931List<ParameterResource> parameters = [customParam];
1958var parameter = CreateParameterResource("testParam", "initialValue");
1977var parameter = CreateParameterResource("testParam", "initialValue");
1994var parameter = CreateParameterResource("testParam", "initialValue");
2015var parameter = CreateParameterResource("testParam", "initialValue");
2041var parameter = CreateParameterResource("testParam", "initialValue");
2062var parameter = CreateParameterResource("testParam", "initialValue");
2098var parameter = CreateParameterResource("testParam", "initialValue");
2160var parameter = CreateParameterWithMissingValue("testParam", secret);
2161var otherParameter = CreateParameterWithMissingValue("otherParam");
2217var parameter = CreateParameterResource("testParam", "old-value");
2220var unchangedParameter = CreateParameterResource("unchanged", "retained-value");
2234var reloadedParameter = new ParameterResource("testParam", _ =>
2252var parameter = CreateParameterResource("testParam", "initialValue");
2276var parameter = CreateParameterWithMissingValue("testParam");
2303var parameter = CreateParameterResource("testParam", "initialValue");
2327var parameter = CreateParameterWithMissingValue("testParam");
2357var parameter = CreateParameterWithMissingValue("testParam");
2387var parameter = CreateParameterResource("testParam", "initialValue");
2445var parameter = CreateParameterResource("testParam", "initialValue");
2479var parameter = CreateParameterWithMissingValue("testParam");
2504var parameter = CreateParameterResource("testParam", "initialValue");
Aspire.Hosting.Valkey (5)
Aspire.Hosting.Valkey.Tests (1)
Aspire.Playground.Tests (2)