14 interfaces inheriting from IResource
Aspire.Hosting (11)
Aspire.Hosting.Azure (3)
11 implementations of IResource
Aspire.Hosting (1)
Aspire.Hosting.Azure.AppConfiguration (1)
Aspire.Hosting.Azure.CosmosDB (1)
Aspire.Hosting.Azure.EventHubs (1)
Aspire.Hosting.Azure.ServiceBus (1)
Aspire.Hosting.Azure.SignalR (1)
Aspire.Hosting.Azure.Storage (1)
Aspire.Hosting.Tests (4)
640 references to IResource
Aspire.Hosting (333)
ApplicationModel\ResourceExtensions.cs (33)
11/// Provides extension methods for the <see cref="IResource"/> interface.
22public static bool TryGetLastAnnotation<T>(this IResource resource, [NotNullWhen(true)] out T? annotation) where T : IResourceAnnotation
43public static bool TryGetAnnotationsOfType<T>(this IResource resource, [NotNullWhen(true)] out IEnumerable<T>? result) where T : IResourceAnnotation
65public static bool HasAnnotationOfType<T>(this IResource resource) where T : IResourceAnnotation
77public static bool TryGetAnnotationsIncludingAncestorsOfType<T>(this IResource resource, [NotNullWhen(true)] out IEnumerable<T>? result) where T : IResourceAnnotation
114public static bool HasAnnotationIncludingAncestorsOfType<T>(this IResource resource) where T : IResourceAnnotation
147public static bool TryGetEnvironmentVariables(this IResource resource, [NotNullWhen(true)] out IEnumerable<EnvironmentCallbackAnnotation>? environmentVariables)
274this IResource resource,
304(DistributedApplicationOperation.Run, IResourceBuilder<IResource> rb) when rb.Resource is IValueProvider provider => await GetValue(key: null, provider, logger, resource.IsContainer(), containerHostName, cancellationToken).ConfigureAwait(false),
306(DistributedApplicationOperation.Publish, IResourceBuilder<IResource> rb) when rb.Resource is IManifestExpressionProvider provider => new(provider.ValueExpression, false),
335this IResource resource,
363(DistributedApplicationOperation.Run, IResourceBuilder<IResource> rb) when rb.Resource is IValueProvider provider => await GetValue(key, provider, logger, resource.IsContainer(), containerHostName, cancellationToken).ConfigureAwait(false),
365(DistributedApplicationOperation.Publish, IResourceBuilder<IResource> rb) when rb.Resource is IManifestExpressionProvider provider => new(provider.ValueExpression, false),
387public static bool IsExcludedFromPublish(this IResource resource) =>
391this IResource resource,
442if (valueProvider is IResource resource)
479public static bool TryGetContainerMounts(this IResource resource, [NotNullWhen(true)] out IEnumerable<ContainerMountAnnotation>? volumeMounts)
490public static bool TryGetEndpoints(this IResource resource, [NotNullWhen(true)] out IEnumerable<EndpointAnnotation>? endpoints)
501public static bool TryGetUrls(this IResource resource, [NotNullWhen(true)] out IEnumerable<ResourceUrlAnnotation>? urls)
510/// <returns>An enumeration of <see cref="EndpointReference"/> based on the <see cref="EndpointAnnotation"/> annotations from the resources' <see cref="IResource.Annotations"/> collection.</returns>
539public static bool TryGetContainerImageName(this IResource resource, [NotNullWhen(true)] out string? imageName)
569public static int GetReplicaCount(this IResource resource)
590public static bool RequiresImageBuildAndPush(this IResource resource)
600public static DeploymentTargetAnnotation? GetDeploymentTargetAnnotation(this IResource resource, IComputeEnvironmentResource? targetComputeEnvironment = null)
646internal static ContainerLifetime GetContainerLifetimeType(this IResource resource)
662internal static bool TryGetContainerImagePullPolicy(this IResource resource, [NotNullWhen(true)] out ImagePullPolicy? pullPolicy)
680internal static bool SupportsProxy(this IResource resource)
690internal static IResource GetRootResource(this IResource resource) =>
701internal static string GetResolvedResourceName(this IResource resource)
721internal static string[] GetResolvedResourceNames(this IResource resource)
741public static IResourceBuilder<T> WithDeploymentImageTag<T>(this IResourceBuilder<T> builder, Func<DeploymentImageTagCallbackAnnotationContext, string> callback) where T : class, IResource
757public static IResourceBuilder<T> WithDeploymentImageTag<T>(this IResourceBuilder<T> builder, Func<DeploymentImageTagCallbackAnnotationContext, Task<string>> callback) where T : class, IResource
ApplicationModel\ResourceNotificationService.cs (19)
143private async Task WaitUntilHealthyAsync(IResource resource, IResource dependency, WaitBehavior waitBehavior, CancellationToken cancellationToken)
254private async Task WaitUntilCompletionAsync(IResource resource, IResource dependency, int exitCode, CancellationToken cancellationToken)
309private async Task WaitUntilStateAsync(IResource resource, IResource dependency, WaitBehavior waitBehavior,
376private async Task WaitUntilStartedAsync(IResource resource, IResource dependency, WaitBehavior waitBehavior, CancellationToken cancellationToken)
394public async Task WaitForDependenciesAsync(IResource resource, CancellationToken cancellationToken)
587public Task PublishUpdateAsync(IResource resource, string resourceId, Func<CustomResourceSnapshot, CustomResourceSnapshot> stateFactory)
679private CustomResourceSnapshot UpdateCommands(IResource resource, CustomResourceSnapshot previousState)
753private static CustomResourceSnapshot UpdateIcons(IResource resource, CustomResourceSnapshot previousState)
783public async Task PublishUpdateAsync(IResource resource, Func<CustomResourceSnapshot, CustomResourceSnapshot> stateFactory)
792private static CustomResourceSnapshot GetCurrentSnapshot(IResource resource, ResourceNotificationState notificationState)
820private ResourceNotificationState GetResourceNotificationState(string resourceId, IResource resource) =>
832private sealed class ResourceNotificationState(IResource resource)
837public IResource Resource { get; } = resource;
864public class ResourceEvent(IResource resource, string resourceId, CustomResourceSnapshot snapshot)
869public IResource Resource { get; } = resource;
Dcp\DcpExecutor.cs (16)
377_resourceState.ApplicationModel.TryGetValue(resourceName, out var appModelResource))
482private static string GetResourceType<T>(T resource, IResource appModelResource) where T : CustomResource
669_resourceState.ApplicationModel.TryGetValue(appModelResourceName, out var appModelResource))
1083private void EnsureRequiredAnnotations(IResource resource)
1091private static void SetInitialResourceState(IResource resource, IAnnotationHolder annotationHolder)
1106async Task CreateResourceExecutablesAsyncCore(IResource resource, IEnumerable<AppResource> executables, CancellationToken cancellationToken)
1312foreach (var container in modelContainerResources)
1368private static DcpInstance GetDcpInstance(IResource resource, int instanceIndex)
1473var modelContainerResource = cr.ModelResource;
1514private static async Task ApplyBuildArgumentsAsync(Container dcpContainerResource, IResource modelContainerResource, IServiceProvider serviceProvider, CancellationToken cancellationToken)
1605private void AddServicesProducedInfo(IResource modelResource, IAnnotationHolder dcpResource, AppResource appResource)
1912private async Task<(List<(string Value, bool IsSensitive)>, bool)> BuildArgsAsync(ILogger resourceLogger, IResource modelResource, CancellationToken cancellationToken)
1940private async Task<List<ContainerCreateFileSystem>> BuildCreateFilesAsync(IResource modelResource, CancellationToken cancellationToken)
1970private async Task<(List<EnvVar>, bool)> BuildEnvVarsAsync(ILogger resourceLogger, IResource modelResource, CancellationToken cancellationToken)
1997private async Task<(List<string>, bool)> BuildRunArgsAsync(ILogger resourceLogger, IResource modelResource, CancellationToken cancellationToken)
2078private static List<VolumeMount> BuildContainerMounts(IResource container)
Dcp\DcpExecutorEvents.cs (3)
11internal record OnResourceStartingContext(CancellationToken CancellationToken, string ResourceType, IResource Resource, string? DcpResourceName);
13internal record OnResourceChangedContext(CancellationToken CancellationToken, string ResourceType, IResource Resource, string DcpResourceName, ResourceStatus Status, Func<CustomResourceSnapshot, CustomResourceSnapshot> UpdateSnapshot);
14internal record OnResourceFailedToStartContext(CancellationToken CancellationToken, string ResourceType, IResource Resource, string? DcpResourceName);
Orchestrator\ApplicationOrchestrator.cs (16)
21private readonly ILookup<IResource, IResource> _parentChildLookup;
130private async Task PublishResourceEndpointUrls(IResource resource, CancellationToken cancellationToken)
140private static IEnumerable<UrlSnapshot> GetResourceUrls(IResource resource)
193static Task PublishUpdateAsync(ResourceNotificationService notificationService, IResource resource, string? resourceId, Func<CustomResourceSnapshot, CustomResourceSnapshot> stateFactory)
206private async Task ProcessResourceUrlCallbacks(IResource resource, CancellationToken cancellationToken)
416private async Task SetChildResourceAsync(IResource resource, string? state, DateTime? startTimeStamp, DateTime? stopTimeStamp)
418foreach (var child in _parentChildLookup[resource].Where(c => c is IResourceWithParent))
445foreach (var resource in _model.Resources)
449var parent = resource is IResourceWithParent hasParent
471private static ImmutableArray<HealthReportSnapshot> GetInitialHealthReports(IResource resource)
482private async Task PublishConnectionStringAvailableEvent(IResource resource, CancellationToken cancellationToken)
508private async Task PublishEventToHierarchy<TEvent>(Func<IResource, TEvent> createEvent, IResource resource, CancellationToken cancellationToken)
517foreach (var child in children.Where(c => c is IResourceWithParent))
532private static bool ResourceHasOwnLifetime(IResource resource) =>
Orchestrator\RelationshipEvaluator.cs (19)
13public static ILookup<IResource, IResource> GetParentChildLookup(DistributedApplicationModel model)
18.Select(x => (Child: (IResource)x, Parent: x.Parent))
24private static IEnumerable<(IResource Child, IResource Parent)> GetParentChildRelationshipsFromAnnotations(DistributedApplicationModel model)
26static bool TryGetParent(IResource resource, [NotNullWhen(true)] out IResource? parent)
39static IResource? SelectParentResource(IResource? resource) => resource switch
41IResource r when TryGetParent(r, out var parent) => parent,
54private static void ValidateRelationships((IResource Child, IResource Parent)[] relationships)
64var visited = new Stack<IResource>();
70static void ValidateNoCircularDependencies(Dictionary<IResource, IResource> childToParentLookup, IResource child, Stack<IResource> visited)
73if (childToParentLookup.TryGetValue(child, out var parent))
Publishing\ResourceContainerImageBuilder.cs (10)
104Task BuildImageAsync(IResource resource, ContainerBuildOptions? options = null, CancellationToken cancellationToken = default);
113Task BuildImagesAsync(IEnumerable<IResource> resources, ContainerBuildOptions? options = null, CancellationToken cancellationToken = default);
144public async Task BuildImagesAsync(IEnumerable<IResource> resources, ContainerBuildOptions? options = null, CancellationToken cancellationToken = default)
181foreach (var resource in resources)
191public Task BuildImageAsync(IResource resource, ContainerBuildOptions? options = null, CancellationToken cancellationToken = default)
196private async Task BuildImageAsync(IPublishingStep? step, IResource resource, ContainerBuildOptions? options, CancellationToken cancellationToken)
232private async Task BuildProjectContainerImageAsync(IResource resource, IPublishingStep? step, ContainerBuildOptions? options, CancellationToken cancellationToken)
263private async Task<bool> ExecuteDotnetPublishAsync(IResource resource, ContainerBuildOptions? options, CancellationToken cancellationToken)
339private async Task BuildContainerImageFromDockerfileAsync(IResource resource, DockerfileBuildAnnotation dockerfileBuildAnnotation, string imageName, IPublishingStep? step, ContainerBuildOptions? options, CancellationToken cancellationToken)
476internal static bool ResourcesRequireContainerRuntime(IEnumerable<IResource> resources, ContainerBuildOptions? options)
ResourceBuilderExtensions.cs (54)
349public static IResourceBuilder<T> WithManifestPublishingCallback<T>(this IResourceBuilder<T> builder, Action<ManifestPublishingContext> callback) where T : IResource
366public static IResourceBuilder<T> WithPublishingCallback<T>(this IResourceBuilder<T> builder, Func<PublishingContext, Task> callback) where T : IResource
382public static IResourceBuilder<T> WithManifestPublishingCallback<T>(this IResourceBuilder<T> builder, Func<ManifestPublishingContext, Task> callback) where T : IResource
885where T : IResource
908where T : IResource
945where T : IResource
984where T : IResource
1006where T : IResource
1061where T : IResource
1132public static IResourceBuilder<T> ExcludeFromManifest<T>(this IResourceBuilder<T> builder) where T : IResource
1150/// resources, calling <see cref="WaitFor{T}(IResourceBuilder{T}, IResourceBuilder{IResource})"/> also results
1166public static IResourceBuilder<T> WaitFor<T>(this IResourceBuilder<T> builder, IResourceBuilder<IResource> dependency) where T : IResourceWithWaitSupport
1186/// resources, calling <see cref="WaitFor{T}(IResourceBuilder{T}, IResourceBuilder{IResource}, WaitBehavior)"/> also results
1194/// behavior with the <see cref="WaitFor{T}(IResourceBuilder{T}, IResourceBuilder{IResource})"/> overload.</para>
1208public static IResourceBuilder<T> WaitFor<T>(this IResourceBuilder<T> builder, IResourceBuilder<IResource> dependency, WaitBehavior waitBehavior) where T : IResourceWithWaitSupport
1216private static IResourceBuilder<T> WaitForCore<T>(this IResourceBuilder<T> builder, IResourceBuilder<IResource> dependency, WaitBehavior? waitBehavior, bool addRelationship) where T : IResourceWithWaitSupport
1218if (builder.Resource as IResource == dependency.Resource)
1258/// <para>Unlike <see cref="WaitFor{T}(IResourceBuilder{T}, IResourceBuilder{IResource})"/>, this method
1272public static IResourceBuilder<T> WaitForStart<T>(this IResourceBuilder<T> builder, IResourceBuilder<IResource> dependency) where T : IResourceWithWaitSupport
1292/// <para>Unlike <see cref="WaitFor{T}(IResourceBuilder{T}, IResourceBuilder{IResource}, WaitBehavior)"/>, this method
1298/// behavior with the <see cref="WaitForStart{T}(IResourceBuilder{T}, IResourceBuilder{IResource})"/> overload.</para>
1312public static IResourceBuilder<T> WaitForStart<T>(this IResourceBuilder<T> builder, IResourceBuilder<IResource> dependency, WaitBehavior waitBehavior) where T : IResourceWithWaitSupport
1320private static IResourceBuilder<T> WaitForStartCore<T>(this IResourceBuilder<T> builder, IResourceBuilder<IResource> dependency, WaitBehavior? waitBehavior, bool addRelationship) where T : IResourceWithWaitSupport
1322if (builder.Resource as IResource == dependency.Resource)
1347foreach (var referencedResource in cs.ConnectionStringExpression.ValueProviders.OfType<IResource>())
1382public static IResourceBuilder<T> WithExplicitStart<T>(this IResourceBuilder<T> builder) where T : IResource
1413public static IResourceBuilder<T> WaitForCompletion<T>(this IResourceBuilder<T> builder, IResourceBuilder<IResource> dependency, int exitCode = 0) where T : IResourceWithWaitSupport
1418if (builder.Resource as IResource == dependency.Resource)
1443/// the <see cref="WaitFor{T}(IResourceBuilder{T}, IResourceBuilder{IResource})"/> to associate a resource
1469public static IResourceBuilder<T> WithHealthCheck<T>(this IResourceBuilder<T> builder, string key) where T : IResource
1668CommandOptions? commandOptions = null) where T : IResource
1735bool isHighlighted = false) where T : IResource
2078IResource resource,
2079string type) where T : IResource
2097IResource resource) where T : IResource
2114ReferenceExpression expression) where T : IResource
2125where T : IResource
2129void AddReference(IResource resource)
2141if (value is IResource resource)
2145else if (value is IResourceBuilder<IResource> resourceBuilder)
2173IResourceBuilder<IResource> resourceBuilder) where T : IResource
2206IResourceBuilder<IResource> parent) where T : IResource
2236IResource parent) where T : IResource
2267IResourceBuilder<IResource> child) where T : IResource
2299IResource child) where T : IResource
2333public static IResourceBuilder<T> WithIconName<T>(this IResourceBuilder<T> builder, string iconName, IconVariant iconVariant = IconVariant.Filled) where T : IResource
2370where T : IResource
Aspire.Hosting.Azure (30)
Provisioning\Provisioners\AzureProvisioner.cs (7)
28private ILookup<IResource, IResourceWithParent>? _parentChildLookup;
42async Task UpdateStateAsync((IResource Resource, IAzureResource AzureResource) resource, Func<CustomResourceSnapshot, CustomResourceSnapshot> stateFactory)
77async Task AfterProvisionAsync((IResource Resource, IAzureResource AzureResource) resource)
111async Task<bool> WaitForRoleAssignments((IResource Resource, IAzureResource AzureResource) resource)
161IList<(IResource Resource, IAzureResource AzureResource)> azureResources,
192private async Task ProcessResourceAsync(IConfiguration configuration, Lazy<Task<ProvisioningContext>> provisioningContextLazy, (IResource Resource, IAzureResource AzureResource) resource, CancellationToken cancellationToken)
263async Task PublishConnectionStringAvailableEventRecursiveAsync(IResource targetResource)
Aspire.Hosting.Azure.AIFoundry (3)
Aspire.Hosting.Azure.AppConfiguration (3)
Aspire.Hosting.Azure.AppContainers (17)
Aspire.Hosting.Azure.AppService (11)
Aspire.Hosting.Azure.CognitiveServices (3)
Aspire.Hosting.Azure.ContainerRegistry (4)
Aspire.Hosting.Azure.EventHubs (3)
Aspire.Hosting.Azure.Functions (2)
Aspire.Hosting.Azure.KeyVault (3)
Aspire.Hosting.Azure.Kusto (3)
Aspire.Hosting.Azure.Search (3)
Aspire.Hosting.Azure.ServiceBus (3)
Aspire.Hosting.Azure.SignalR (3)
Aspire.Hosting.Azure.Storage (3)
Aspire.Hosting.Azure.Tests (56)
Aspire.Hosting.Azure.WebPubSub (3)
Aspire.Hosting.Containers.Tests (11)
Aspire.Hosting.DevTunnels (7)
Aspire.Hosting.Docker (19)
Aspire.Hosting.Docker.Tests (4)
Aspire.Hosting.Kafka.Tests (1)
Aspire.Hosting.Keycloak.Tests (2)
Aspire.Hosting.Kubernetes (20)
Aspire.Hosting.Milvus.Tests (2)
Aspire.Hosting.MySql (1)
Aspire.Hosting.MySql.Tests (4)
Aspire.Hosting.Oracle.Tests (3)
Aspire.Hosting.PostgreSQL (2)
Aspire.Hosting.PostgreSQL.Tests (7)
Aspire.Hosting.Qdrant.Tests (4)
Aspire.Hosting.Redis (2)
Aspire.Hosting.Redis.Tests (4)
Aspire.Hosting.SqlServer (1)
Aspire.Hosting.Testing (10)
Aspire.Hosting.Testing.Tests (3)
Aspire.Hosting.Tests (37)
Aspire.Playground.Tests (3)
Stress.AppHost (7)