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)
727 references to IResource
Aspire.Hosting (385)
ApplicationModel\ResourceExtensions.cs (42)
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)
276this IResource resource,
326this IResource resource,
364internal static NetworkIdentifier GetDefaultResourceNetwork(this IResource resource)
369internal static IEnumerable<NetworkIdentifier> GetSupportedNetworks(this IResource resource)
378/// <see cref="ProcessArgumentValuesAsync(IResource, DistributedApplicationExecutionContext, Action{object?, string?, Exception?, bool}, ILogger, CancellationToken)"/>
379/// and <see cref="ProcessEnvironmentVariableValuesAsync(IResource, DistributedApplicationExecutionContext, Action{string, object?, string?, Exception?}, ILogger, CancellationToken)"/> are called.
391this IResource resource,
528this IResource resource,
539(DistributedApplicationOperation.Run, IResourceBuilder<IResource> rb) when rb.Resource is IValueProvider provider => await resource.GetValue(executionContext, key, provider, logger, cancellationToken).ConfigureAwait(false),
541(DistributedApplicationOperation.Publish, IResourceBuilder<IResource> rb) when rb.Resource is IManifestExpressionProvider provider => new(provider.ValueExpression, false),
551public static bool IsExcludedFromPublish(this IResource resource) =>
555this IResource resource,
598private static async Task<ResolvedValue?> GetValue(this IResource resource, DistributedApplicationExecutionContext executionContext, string? key, IValueProvider valueProvider, ILogger logger, CancellationToken cancellationToken)
604if (valueProvider is IResource providerResource)
641public static bool TryGetContainerMounts(this IResource resource, [NotNullWhen(true)] out IEnumerable<ContainerMountAnnotation>? volumeMounts)
652public static bool TryGetEndpoints(this IResource resource, [NotNullWhen(true)] out IEnumerable<EndpointAnnotation>? endpoints)
663public static bool TryGetUrls(this IResource resource, [NotNullWhen(true)] out IEnumerable<ResourceUrlAnnotation>? urls)
672/// <returns>An enumeration of <see cref="EndpointReference"/> based on the <see cref="EndpointAnnotation"/> annotations from the resources' <see cref="IResource.Annotations"/> collection.</returns>
688/// <returns>An enumeration of <see cref="EndpointReference"/> based on the <see cref="EndpointAnnotation"/> annotations from the resources' <see cref="IResource.Annotations"/> collection.</returns>
749public static bool TryGetContainerImageName(this IResource resource, [NotNullWhen(true)] out string? imageName)
761public static bool TryGetContainerImageName(this IResource resource, bool useBuiltImage, [NotNullWhen(true)] out string? imageName)
802public static int GetReplicaCount(this IResource resource)
822public static bool RequiresImageBuild(this IResource resource)
836public static bool RequiresImageBuildAndPush(this IResource resource)
841internal static bool IsBuildOnlyContainer(this IResource resource)
851public static DeploymentTargetAnnotation? GetDeploymentTargetAnnotation(this IResource resource, IComputeEnvironmentResource? targetComputeEnvironment = null)
896internal static ContainerLifetime GetContainerLifetimeType(this IResource resource)
912internal static bool TryGetContainerImagePullPolicy(this IResource resource, [NotNullWhen(true)] out ImagePullPolicy? pullPolicy)
930internal static bool SupportsProxy(this IResource resource)
940internal static IResource GetRootResource(this IResource resource) =>
951internal static string GetResolvedResourceName(this IResource resource)
971internal static string[] GetResolvedResourceNames(this IResource resource)
991public static IResourceBuilder<T> WithDeploymentImageTag<T>(this IResourceBuilder<T> builder, Func<DeploymentImageTagCallbackAnnotationContext, string> callback) where T : class, IResource
1007public static IResourceBuilder<T> WithDeploymentImageTag<T>(this IResourceBuilder<T> builder, Func<DeploymentImageTagCallbackAnnotationContext, Task<string>> callback) where T : class, IResource
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 (20)
427_resourceState.ApplicationModel.TryGetValue(resourceName, out var appModelResource))
532private static string GetResourceType<T>(T resource, IResource appModelResource) where T : CustomResource
719_resourceState.ApplicationModel.TryGetValue(appModelResourceName, out var appModelResource))
1383private void EnsureRequiredAnnotations(IResource resource)
1391private static void SetInitialResourceState(IResource resource, IAnnotationHolder annotationHolder)
1418var groupKey = group.Key;
1428IResource resource,
1628foreach (var container in modelContainerResources)
1684private static DcpInstance GetDcpInstance(IResource resource, int instanceIndex)
1763var modelContainerResource = cr.ModelResource;
1818private static async Task ApplyBuildArgumentsAsync(Container dcpContainerResource, IResource modelContainerResource, IServiceProvider serviceProvider, CancellationToken cancellationToken)
1899private void AddServicesProducedInfo(IResource modelResource, IAnnotationHolder dcpResource, RenderedModelResource appResource)
2183private async Task<(List<(string Value, bool IsSensitive)>, bool)> BuildArgsAsync(ILogger resourceLogger, IResource modelResource, CancellationToken cancellationToken)
2210private async Task<List<ContainerCreateFileSystem>> BuildCreateFilesAsync(IResource modelResource, CancellationToken cancellationToken)
2240private async Task<(List<EnvVar>, bool)> BuildEnvVarsAsync(ILogger resourceLogger, IResource modelResource, CancellationToken cancellationToken)
2266private async Task<(List<string>, bool)> BuildRunArgsAsync(ILogger resourceLogger, IResource modelResource, CancellationToken cancellationToken)
2301IResource modelResource,
2377IResource modelResource,
2546private static List<VolumeMount> BuildContainerMounts(IResource container)
2569private 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)
23private readonly ILookup<IResource, IResource> _parentChildLookup;
136private async Task PublishResourceEndpointUrls(IResource resource, CancellationToken cancellationToken)
146private static IEnumerable<UrlSnapshot> GetResourceUrls(IResource resource)
199static Task PublishUpdateAsync(ResourceNotificationService notificationService, IResource resource, string? resourceId, Func<CustomResourceSnapshot, CustomResourceSnapshot> stateFactory)
212private async Task ProcessResourceUrlCallbacks(IResource resource, CancellationToken cancellationToken)
505private async Task SetChildResourceAsync(IResource resource, string? state, DateTime? startTimeStamp, DateTime? stopTimeStamp)
507foreach (var child in _parentChildLookup[resource].Where(c => c is IResourceWithParent))
534foreach (var resource in _model.Resources)
538var parent = resource is IResourceWithParent hasParent
560private static ImmutableArray<HealthReportSnapshot> GetInitialHealthReports(IResource resource)
571private async Task PublishConnectionStringAvailableEvent(IResource resource, CancellationToken cancellationToken)
597private async Task PublishEventToHierarchy<TEvent>(Func<IResource, TEvent> createEvent, IResource resource, CancellationToken cancellationToken)
606foreach (var child in children.Where(c => c is IResourceWithParent))
621private 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 (9)
110Task BuildImageAsync(IResource resource, ContainerBuildOptions? options = null, CancellationToken cancellationToken = default);
119Task BuildImagesAsync(IEnumerable<IResource> resources, ContainerBuildOptions? options = null, CancellationToken cancellationToken = default);
147public async Task BuildImagesAsync(IEnumerable<IResource> resources, ContainerBuildOptions? options = null, CancellationToken cancellationToken = default)
167foreach (var resource in resources)
176public async Task BuildImageAsync(IResource resource, ContainerBuildOptions? options = null, CancellationToken cancellationToken = default)
218private async Task BuildProjectContainerImageAsync(IResource resource, ContainerBuildOptions? options, CancellationToken cancellationToken)
245private async Task<bool> ExecuteDotnetPublishAsync(IResource resource, ContainerBuildOptions? options, CancellationToken cancellationToken)
342private async Task BuildContainerImageFromDockerfileAsync(IResource resource, DockerfileBuildAnnotation dockerfileBuildAnnotation, string imageName, ContainerBuildOptions? options, CancellationToken cancellationToken)
434internal 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
365public static IResourceBuilder<T> WithManifestPublishingCallback<T>(this IResourceBuilder<T> builder, Func<ManifestPublishingContext, Task> callback) where T : IResource
1044where T : IResource
1067where T : IResource
1104where T : IResource
1143where T : IResource
1165where T : IResource
1220where T : IResource
1359public static IResourceBuilder<T> ExcludeFromManifest<T>(this IResourceBuilder<T> builder) where T : IResource
1377/// resources, calling <see cref="WaitFor{T}(IResourceBuilder{T}, IResourceBuilder{IResource})"/> also results
1393public static IResourceBuilder<T> WaitFor<T>(this IResourceBuilder<T> builder, IResourceBuilder<IResource> dependency) where T : IResourceWithWaitSupport
1413/// resources, calling <see cref="WaitFor{T}(IResourceBuilder{T}, IResourceBuilder{IResource}, WaitBehavior)"/> also results
1421/// behavior with the <see cref="WaitFor{T}(IResourceBuilder{T}, IResourceBuilder{IResource})"/> overload.</para>
1435public static IResourceBuilder<T> WaitFor<T>(this IResourceBuilder<T> builder, IResourceBuilder<IResource> dependency, WaitBehavior waitBehavior) where T : IResourceWithWaitSupport
1443private static IResourceBuilder<T> WaitForCore<T>(this IResourceBuilder<T> builder, IResourceBuilder<IResource> dependency, WaitBehavior? waitBehavior, bool addRelationship) where T : IResourceWithWaitSupport
1445if (builder.Resource as IResource == dependency.Resource)
1485/// <para>Unlike <see cref="WaitFor{T}(IResourceBuilder{T}, IResourceBuilder{IResource})"/>, this method
1499public static IResourceBuilder<T> WaitForStart<T>(this IResourceBuilder<T> builder, IResourceBuilder<IResource> dependency) where T : IResourceWithWaitSupport
1519/// <para>Unlike <see cref="WaitFor{T}(IResourceBuilder{T}, IResourceBuilder{IResource}, WaitBehavior)"/>, this method
1525/// behavior with the <see cref="WaitForStart{T}(IResourceBuilder{T}, IResourceBuilder{IResource})"/> overload.</para>
1539public static IResourceBuilder<T> WaitForStart<T>(this IResourceBuilder<T> builder, IResourceBuilder<IResource> dependency, WaitBehavior waitBehavior) where T : IResourceWithWaitSupport
1547private static IResourceBuilder<T> WaitForStartCore<T>(this IResourceBuilder<T> builder, IResourceBuilder<IResource> dependency, WaitBehavior? waitBehavior, bool addRelationship) where T : IResourceWithWaitSupport
1549if (builder.Resource as IResource == dependency.Resource)
1574foreach (var referencedResource in cs.ConnectionStringExpression.ValueProviders.OfType<IResource>())
1609public static IResourceBuilder<T> WithExplicitStart<T>(this IResourceBuilder<T> builder) where T : IResource
1640public static IResourceBuilder<T> WaitForCompletion<T>(this IResourceBuilder<T> builder, IResourceBuilder<IResource> dependency, int exitCode = 0) where T : IResourceWithWaitSupport
1645if (builder.Resource as IResource == dependency.Resource)
1670/// the <see cref="WaitFor{T}(IResourceBuilder{T}, IResourceBuilder{IResource})"/> to associate a resource
1696public static IResourceBuilder<T> WithHealthCheck<T>(this IResourceBuilder<T> builder, string key) where T : IResource
1895CommandOptions? commandOptions = null) where T : IResource
1962bool isHighlighted = false) where T : IResource
2484IResource resource,
2485string type) where T : IResource
2503IResource resource) where T : IResource
2520ReferenceExpression expression) where T : IResource
2531where T : IResource
2535void AddReference(IResource resource)
2547if (value is IResource resource)
2551else if (value is IResourceBuilder<IResource> resourceBuilder)
2579IResourceBuilder<IResource> resourceBuilder) where T : IResource
2612IResourceBuilder<IResource> parent) where T : IResource
2642IResource parent) where T : IResource
2673IResourceBuilder<IResource> child) where T : IResource
2705IResource child) where T : IResource
2739public static IResourceBuilder<T> WithIconName<T>(this IResourceBuilder<T> builder, string iconName, IconVariant iconVariant = IconVariant.Filled) where T : IResource
2775where T : IResource
2926public static IResourceBuilder<T> ExcludeFromMcp<T>(this IResourceBuilder<T> builder) where T : IResource
Aspire.Hosting.Azure (23)
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 (25)
Aspire.Hosting.Azure.AppService (19)
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 (58)
Aspire.Hosting.Azure.WebPubSub (3)
Aspire.Hosting.Containers.Tests (13)
Aspire.Hosting.DevTunnels (7)
Aspire.Hosting.Docker (23)
Aspire.Hosting.Docker.Tests (4)
Aspire.Hosting.JavaScript.Tests (4)
Aspire.Hosting.Kafka.Tests (1)
Aspire.Hosting.Keycloak.Tests (2)
Aspire.Hosting.Kubernetes (20)
Aspire.Hosting.Maui (1)
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 (48)
Aspire.Hosting.Yarp (1)
Aspire.Playground.Tests (3)
Pipelines.Library (1)
Stress.AppHost (7)