16 interfaces inheriting from IResource
Aspire.Hosting (13)
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)
794 references to IResource
Aspire.Hosting (424)
ApplicationModel\ResourceExtensions.cs (50)
14/// Provides extension methods for the <see cref="IResource"/> interface.
25public static bool TryGetLastAnnotation<T>(this IResource resource, [NotNullWhen(true)] out T? annotation) where T : IResourceAnnotation
46public static bool TryGetAnnotationsOfType<T>(this IResource resource, [NotNullWhen(true)] out IEnumerable<T>? result) where T : IResourceAnnotation
68public static bool HasAnnotationOfType<T>(this IResource resource) where T : IResourceAnnotation
80public static bool TryGetAnnotationsIncludingAncestorsOfType<T>(this IResource resource, [NotNullWhen(true)] out IEnumerable<T>? result) where T : IResourceAnnotation
117public static bool HasAnnotationIncludingAncestorsOfType<T>(this IResource resource) where T : IResourceAnnotation
150public static bool TryGetEnvironmentVariables(this IResource resource, [NotNullWhen(true)] out IEnumerable<EnvironmentCallbackAnnotation>? environmentVariables)
256this IResource resource,
291this IResource resource,
331this IResource resource,
354this IResource resource,
388this IResource resource,
424this IResource resource,
446this IResource resource,
481where T : IResource, IComputeResource
500where T : IResource, IComputeResource
508internal static NetworkIdentifier GetDefaultResourceNetwork(this IResource resource)
513internal static IEnumerable<NetworkIdentifier> GetSupportedNetworks(this IResource resource)
519this IResource resource,
530(DistributedApplicationOperation.Run, IResourceBuilder<IResource> rb) when rb.Resource is IValueProvider provider => await resource.GetValue(executionContext, key, provider, logger, cancellationToken).ConfigureAwait(false),
532(DistributedApplicationOperation.Publish, IResourceBuilder<IResource> rb) when rb.Resource is IManifestExpressionProvider provider => new(provider.ValueExpression, false),
542public static bool IsExcludedFromPublish(this IResource resource) =>
546this IResource resource,
589private static async Task<ResolvedValue?> GetValue(this IResource resource, DistributedApplicationExecutionContext executionContext, string? key, IValueProvider valueProvider, ILogger logger, CancellationToken cancellationToken)
595if (valueProvider is IResource providerResource)
632public static bool TryGetContainerMounts(this IResource resource, [NotNullWhen(true)] out IEnumerable<ContainerMountAnnotation>? volumeMounts)
643public static bool TryGetEndpoints(this IResource resource, [NotNullWhen(true)] out IEnumerable<EndpointAnnotation>? endpoints)
654public static bool TryGetUrls(this IResource resource, [NotNullWhen(true)] out IEnumerable<ResourceUrlAnnotation>? urls)
663/// <returns>An enumeration of <see cref="EndpointReference"/> based on the <see cref="EndpointAnnotation"/> annotations from the resources' <see cref="IResource.Annotations"/> collection.</returns>
679/// <returns>An enumeration of <see cref="EndpointReference"/> based on the <see cref="EndpointAnnotation"/> annotations from the resources' <see cref="IResource.Annotations"/> collection.</returns>
742public static IReadOnlyList<ResolvedEndpoint> ResolveEndpoints(this IResource resource, IPortAllocator? portAllocator = null)
825public static bool TryGetContainerImageName(this IResource resource, [NotNullWhen(true)] out string? imageName)
837public static bool TryGetContainerImageName(this IResource resource, bool useBuiltImage, [NotNullWhen(true)] out string? imageName)
878public static int GetReplicaCount(this IResource resource)
899public static bool RequiresImageBuild(this IResource resource)
919public static bool RequiresImageBuildAndPush(this IResource resource)
924internal static bool IsBuildOnlyContainer(this IResource resource)
934public static DeploymentTargetAnnotation? GetDeploymentTargetAnnotation(this IResource resource, IComputeEnvironmentResource? targetComputeEnvironment = null)
979internal static ContainerLifetime GetContainerLifetimeType(this IResource resource)
995internal static bool TryGetContainerImagePullPolicy(this IResource resource, [NotNullWhen(true)] out ImagePullPolicy? pullPolicy)
1013internal static bool SupportsProxy(this IResource resource)
1023internal static IResource GetRootResource(this IResource resource) =>
1034internal static string GetResolvedResourceName(this IResource resource)
1054internal static string[] GetResolvedResourceNames(this IResource resource)
1074this IResource resource,
1114internal static IContainerRegistry GetContainerRegistry(this IResource resource)
1139var registryNames = string.Join(", ", registryTargetAnnotations.Select(a => a.Registry is IResource res ? res.Name : a.Registry.ToString()));
1161this IResource resource,
1190internal static ILogger GetLogger(this IResource resource, IServiceProvider serviceProvider)
ApplicationModel\ResourceNotificationService.cs (19)
144private async Task WaitUntilHealthyAsync(IResource resource, IResource dependency, WaitBehavior waitBehavior, CancellationToken cancellationToken)
255private async Task WaitUntilCompletionAsync(IResource resource, IResource dependency, int exitCode, CancellationToken cancellationToken)
310private async Task WaitUntilStateAsync(IResource resource, IResource dependency, WaitBehavior waitBehavior,
377private async Task WaitUntilStartedAsync(IResource resource, IResource dependency, WaitBehavior waitBehavior, CancellationToken cancellationToken)
395public async Task WaitForDependenciesAsync(IResource resource, CancellationToken cancellationToken)
588public Task PublishUpdateAsync(IResource resource, string resourceId, Func<CustomResourceSnapshot, CustomResourceSnapshot> stateFactory)
688private CustomResourceSnapshot UpdateCommands(IResource resource, CustomResourceSnapshot previousState)
762private static CustomResourceSnapshot UpdateIcons(IResource resource, CustomResourceSnapshot previousState)
792public async Task PublishUpdateAsync(IResource resource, Func<CustomResourceSnapshot, CustomResourceSnapshot> stateFactory)
801private static CustomResourceSnapshot GetCurrentSnapshot(IResource resource, ResourceNotificationState notificationState)
829private ResourceNotificationState GetResourceNotificationState(string resourceId, IResource resource) =>
841private sealed class ResourceNotificationState(IResource resource)
846public IResource Resource { get; } = resource;
873public class ResourceEvent(IResource resource, string resourceId, CustomResourceSnapshot snapshot)
878public IResource Resource { get; } = resource;
Dcp\DcpExecutor.cs (16)
440_resourceState.ApplicationModel.TryGetValue(resourceName, out var appModelResource))
545private static string GetResourceType<T>(T resource, IResource appModelResource) where T : CustomResource
732_resourceState.ApplicationModel.TryGetValue(appModelResourceName, out var appModelResource))
1421private void EnsureRequiredAnnotations(IResource resource)
1429private static void SetInitialResourceState(IResource resource, IAnnotationHolder annotationHolder)
1461var groupKey = group.Key;
1476IResource resource,
1778foreach (var container in modelContainerResources)
1843private static DcpInstance GetDcpInstance(IResource resource, int instanceIndex)
1928var modelContainerResource = cr.ModelResource;
2134private static async Task ApplyBuildArgumentsAsync(Container dcpContainerResource, IResource modelContainerResource, IServiceProvider serviceProvider, CancellationToken cancellationToken)
2215private void AddServicesProducedInfo(IResource modelResource, IAnnotationHolder dcpResource, RenderedModelResource appResource)
2514public required IResource Resource { get; init; }
2557private async Task<(List<string>, bool)> BuildRunArgsAsync(ILogger resourceLogger, IResource modelResource, CancellationToken cancellationToken)
2780private static List<VolumeMount> BuildContainerMounts(IResource container)
2803private static bool TryGetEndpoint(IResource resource, string? endpointName, [NotNullWhen(true)] out EndpointAnnotation? endpoint)
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)
24private readonly ILookup<IResource, IResource> _parentChildLookup;
140private async Task PublishResourceEndpointUrls(IResource resource, CancellationToken cancellationToken)
150private static IEnumerable<UrlSnapshot> GetResourceUrls(IResource resource)
203static Task PublishUpdateAsync(ResourceNotificationService notificationService, IResource resource, string? resourceId, Func<CustomResourceSnapshot, CustomResourceSnapshot> stateFactory)
216private async Task ProcessResourceUrlCallbacks(IResource resource, CancellationToken cancellationToken)
598private async Task SetChildResourceAsync(IResource resource, string? state, DateTime? startTimeStamp, DateTime? stopTimeStamp)
600foreach (var child in _parentChildLookup[resource].Where(c => c is IResourceWithParent))
627foreach (var resource in _model.Resources)
631var parent = resource is IResourceWithParent hasParent
653private static ImmutableArray<HealthReportSnapshot> GetInitialHealthReports(IResource resource)
664private async Task PublishConnectionStringAvailableEvent(IResource resource, CancellationToken cancellationToken)
690private async Task PublishEventToHierarchy<TEvent>(Func<IResource, TEvent> createEvent, IResource resource, CancellationToken cancellationToken)
699foreach (var child in children.Where(c => c is IResourceWithParent))
714private 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\ResourceContainerImageManager.cs (13)
141Task BuildImageAsync(IResource resource, CancellationToken cancellationToken = default);
149Task BuildImagesAsync(IEnumerable<IResource> resources, CancellationToken cancellationToken = default);
156Task PushImageAsync(IResource resource, CancellationToken cancellationToken);
181IResource resource,
206public async Task BuildImagesAsync(IEnumerable<IResource> resources, CancellationToken cancellationToken = default)
226foreach (var resource in resources)
235public async Task BuildImageAsync(IResource resource, CancellationToken cancellationToken = default)
295private async Task BuildProjectContainerImageAsync(IResource resource, ResolvedContainerBuildOptions options, CancellationToken cancellationToken)
322private async Task<bool> ExecuteDotnetPublishAsync(IResource resource, ResolvedContainerBuildOptions options, CancellationToken cancellationToken)
419private async Task BuildContainerImageFromDockerfileAsync(IResource resource, DockerfileBuildAnnotation dockerfileBuildAnnotation, string imageName, ResolvedContainerBuildOptions options, CancellationToken cancellationToken)
513public async Task PushImageAsync(IResource resource, CancellationToken cancellationToken)
519private async Task<bool> ResourcesRequireContainerRuntimeAsync(IEnumerable<IResource> resources, CancellationToken cancellationToken)
521foreach (var resource in resources)
ResourceBuilderExtensions.cs (58)
387public static IResourceBuilder<T> WithManifestPublishingCallback<T>(this IResourceBuilder<T> builder, Action<ManifestPublishingContext> callback) where T : IResource
403public static IResourceBuilder<T> WithManifestPublishingCallback<T>(this IResourceBuilder<T> builder, Func<ManifestPublishingContext, Task> callback) where T : IResource
1103where T : IResource
1126where T : IResource
1163where T : IResource
1202where T : IResource
1224where T : IResource
1279where T : IResource
1418public static IResourceBuilder<T> ExcludeFromManifest<T>(this IResourceBuilder<T> builder) where T : IResource
1436/// resources, calling <see cref="WaitFor{T}(IResourceBuilder{T}, IResourceBuilder{IResource})"/> also results
1452public static IResourceBuilder<T> WaitFor<T>(this IResourceBuilder<T> builder, IResourceBuilder<IResource> dependency) where T : IResourceWithWaitSupport
1472/// resources, calling <see cref="WaitFor{T}(IResourceBuilder{T}, IResourceBuilder{IResource}, WaitBehavior)"/> also results
1480/// behavior with the <see cref="WaitFor{T}(IResourceBuilder{T}, IResourceBuilder{IResource})"/> overload.</para>
1494public static IResourceBuilder<T> WaitFor<T>(this IResourceBuilder<T> builder, IResourceBuilder<IResource> dependency, WaitBehavior waitBehavior) where T : IResourceWithWaitSupport
1502private static IResourceBuilder<T> WaitForCore<T>(this IResourceBuilder<T> builder, IResourceBuilder<IResource> dependency, WaitBehavior? waitBehavior, bool addRelationship) where T : IResourceWithWaitSupport
1504if (builder.Resource as IResource == dependency.Resource)
1544/// <para>Unlike <see cref="WaitFor{T}(IResourceBuilder{T}, IResourceBuilder{IResource})"/>, this method
1558public static IResourceBuilder<T> WaitForStart<T>(this IResourceBuilder<T> builder, IResourceBuilder<IResource> dependency) where T : IResourceWithWaitSupport
1578/// <para>Unlike <see cref="WaitFor{T}(IResourceBuilder{T}, IResourceBuilder{IResource}, WaitBehavior)"/>, this method
1584/// behavior with the <see cref="WaitForStart{T}(IResourceBuilder{T}, IResourceBuilder{IResource})"/> overload.</para>
1598public static IResourceBuilder<T> WaitForStart<T>(this IResourceBuilder<T> builder, IResourceBuilder<IResource> dependency, WaitBehavior waitBehavior) where T : IResourceWithWaitSupport
1606private static IResourceBuilder<T> WaitForStartCore<T>(this IResourceBuilder<T> builder, IResourceBuilder<IResource> dependency, WaitBehavior? waitBehavior, bool addRelationship) where T : IResourceWithWaitSupport
1608if (builder.Resource as IResource == dependency.Resource)
1633foreach (var referencedResource in cs.ConnectionStringExpression.ValueProviders.OfType<IResource>())
1668public static IResourceBuilder<T> WithExplicitStart<T>(this IResourceBuilder<T> builder) where T : IResource
1699public static IResourceBuilder<T> WaitForCompletion<T>(this IResourceBuilder<T> builder, IResourceBuilder<IResource> dependency, int exitCode = 0) where T : IResourceWithWaitSupport
1704if (builder.Resource as IResource == dependency.Resource)
1729/// the <see cref="WaitFor{T}(IResourceBuilder{T}, IResourceBuilder{IResource})"/> to associate a resource
1755public static IResourceBuilder<T> WithHealthCheck<T>(this IResourceBuilder<T> builder, string key) where T : IResource
1954CommandOptions? commandOptions = null) where T : IResource
2021bool isHighlighted = false) where T : IResource
2673IResource resource,
2674string type) where T : IResource
2692IResource resource) where T : IResource
2709ReferenceExpression expression) where T : IResource
2720where T : IResource
2724void AddReference(IResource resource)
2736if (value is IResource resource)
2740else if (value is IResourceBuilder<IResource> resourceBuilder)
2768IResourceBuilder<IResource> resourceBuilder) where T : IResource
2801IResourceBuilder<IResource> parent) where T : IResource
2831IResource parent) where T : IResource
2862IResourceBuilder<IResource> child) where T : IResource
2894IResource child) where T : IResource
2928public static IResourceBuilder<T> WithIconName<T>(this IResourceBuilder<T> builder, string iconName, IconVariant iconVariant = IconVariant.Filled) where T : IResource
2964where T : IResource
3115public static IResourceBuilder<T> ExcludeFromMcp<T>(this IResourceBuilder<T> builder) where T : IResource
3151where T : IResource
3190where T : IResource
3222where T : IResource
3257where T : IResource
Aspire.Hosting.Azure (24)
Provisioning\Provisioners\AzureProvisioner.cs (7)
29private ILookup<IResource, IResourceWithParent>? _parentChildLookup;
43async Task UpdateStateAsync((IResource Resource, IAzureResource AzureResource) resource, Func<CustomResourceSnapshot, CustomResourceSnapshot> stateFactory)
78async Task AfterProvisionAsync((IResource Resource, IAzureResource AzureResource) resource)
112async Task<bool> WaitForRoleAssignments((IResource Resource, IAzureResource AzureResource) resource)
162IList<(IResource Resource, IAzureResource AzureResource)> azureResources,
187private async Task ProcessResourceAsync(IConfiguration configuration, Lazy<Task<ProvisioningContext>> provisioningContextLazy, (IResource Resource, IAzureResource AzureResource) resource, CancellationToken cancellationToken)
258async Task PublishConnectionStringAvailableEventRecursiveAsync(IResource targetResource)
Aspire.Hosting.Azure.AIFoundry (3)
Aspire.Hosting.Azure.AppConfiguration (3)
Aspire.Hosting.Azure.AppContainers (24)
Aspire.Hosting.Azure.AppService (18)
Aspire.Hosting.Azure.CognitiveServices (3)
Aspire.Hosting.Azure.ContainerRegistry (5)
Aspire.Hosting.Azure.EventHubs (3)
Aspire.Hosting.Azure.Functions (2)
Aspire.Hosting.Azure.KeyVault (5)
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 (58)
Aspire.Hosting.Azure.WebPubSub (3)
Aspire.Hosting.Containers.Tests (13)
Aspire.Hosting.DevTunnels (7)
Aspire.Hosting.Docker (27)
Aspire.Hosting.Docker.Tests (9)
Aspire.Hosting.JavaScript.Tests (4)
Aspire.Hosting.Kafka.Tests (1)
Aspire.Hosting.Keycloak.Tests (2)
Aspire.Hosting.Kubernetes (20)
Aspire.Hosting.Maui (5)
Aspire.Hosting.Maui.Tests (8)
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 (53)
Aspire.Hosting.Yarp (1)
Aspire.Playground.Tests (3)
Pipelines.Library (1)
Stress.AppHost (7)