24 interfaces inheriting from IResource
Aspire.Hosting (14)
Aspire.Hosting.Azure (5)
Aspire.Hosting.CodeGeneration.Go.Tests (1)
Aspire.Hosting.CodeGeneration.Java.Tests (1)
Aspire.Hosting.CodeGeneration.Python.Tests (1)
Aspire.Hosting.CodeGeneration.Rust.Tests (1)
Aspire.Hosting.CodeGeneration.TypeScript.Tests (1)
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)
1010 references to IResource
Aspire.Hosting (483)
ApplicationModel\ResourceExtensions.cs (76)
16/// Provides extension methods for the <see cref="IResource"/> interface.
27public static bool TryGetLastAnnotation<T>(this IResource resource, [NotNullWhen(true)] out T? annotation) where T : IResourceAnnotation
48public static bool TryGetAnnotationsOfType<T>(this IResource resource, [NotNullWhen(true)] out IEnumerable<T>? result) where T : IResourceAnnotation
70public static bool HasAnnotationOfType<T>(this IResource resource) where T : IResourceAnnotation
82public static bool TryGetAnnotationsIncludingAncestorsOfType<T>(this IResource resource, [NotNullWhen(true)] out IEnumerable<T>? result) where T : IResourceAnnotation
119public static bool HasAnnotationIncludingAncestorsOfType<T>(this IResource resource) where T : IResourceAnnotation
152public static bool TryGetEnvironmentVariables(this IResource resource, [NotNullWhen(true)] out IEnumerable<EnvironmentCallbackAnnotation>? environmentVariables)
258this IResource resource,
293this IResource resource,
333this IResource resource,
356this IResource resource,
390this IResource resource,
426this IResource resource,
448this IResource resource,
485where T : IResource, IComputeResource
506where T : IResource, IComputeResource
514internal static NetworkIdentifier GetDefaultResourceNetwork(this IResource resource)
519internal static IEnumerable<NetworkIdentifier> GetSupportedNetworks(this IResource resource)
525this IResource resource,
536(DistributedApplicationOperation.Run, IResourceBuilder<IResource> rb) when rb.Resource is IValueProvider provider => await resource.GetValue(executionContext, key, provider, logger, cancellationToken).ConfigureAwait(false),
538(DistributedApplicationOperation.Publish, IResourceBuilder<IResource> rb) when rb.Resource is IManifestExpressionProvider provider => new(provider.ValueExpression, false),
548public static bool IsExcludedFromPublish(this IResource resource) =>
552this IResource resource,
595private static async Task<ResolvedValue?> GetValue(this IResource resource, DistributedApplicationExecutionContext executionContext, string? key, IValueProvider valueProvider, ILogger logger, CancellationToken cancellationToken)
601if (valueProvider is IResource providerResource)
658public static bool TryGetContainerMounts(this IResource resource, [NotNullWhen(true)] out IEnumerable<ContainerMountAnnotation>? volumeMounts)
669public static bool TryGetEndpoints(this IResource resource, [NotNullWhen(true)] out IEnumerable<EndpointAnnotation>? endpoints)
680public static bool TryGetUrls(this IResource resource, [NotNullWhen(true)] out IEnumerable<ResourceUrlAnnotation>? urls)
689/// <returns>An enumeration of <see cref="EndpointReference"/> based on the <see cref="EndpointAnnotation"/> annotations from the resources' <see cref="IResource.Annotations"/> collection.</returns>
705/// <returns>An enumeration of <see cref="EndpointReference"/> based on the <see cref="EndpointAnnotation"/> annotations from the resources' <see cref="IResource.Annotations"/> collection.</returns>
768public static IReadOnlyList<ResolvedEndpoint> ResolveEndpoints(this IResource resource, IPortAllocator? portAllocator = null)
851public static bool TryGetContainerImageName(this IResource resource, [NotNullWhen(true)] out string? imageName)
863public static bool TryGetContainerImageName(this IResource resource, bool useBuiltImage, [NotNullWhen(true)] out string? imageName)
904public static int GetReplicaCount(this IResource resource)
925public static bool RequiresImageBuild(this IResource resource)
945public static bool RequiresImageBuildAndPush(this IResource resource)
950internal static bool IsBuildOnlyContainer(this IResource resource)
961public static IComputeEnvironmentResource? GetComputeEnvironment(this IResource resource)
974public static DeploymentTargetAnnotation? GetDeploymentTargetAnnotation(this IResource resource, IComputeEnvironmentResource? targetComputeEnvironment = null)
1019internal static ContainerLifetime GetContainerLifetimeType(this IResource resource)
1035internal static bool TryGetContainerImagePullPolicy(this IResource resource, [NotNullWhen(true)] out ImagePullPolicy? pullPolicy)
1053internal static bool SupportsProxy(this IResource resource)
1063internal static IResource GetRootResource(this IResource resource) =>
1074internal static string GetResolvedResourceName(this IResource resource)
1095internal static bool TryGetInstances(this IResource resource, out ImmutableArray<DcpInstance> instances)
1112internal static string[] GetResolvedResourceNames(this IResource resource)
1132this IResource resource,
1172internal static IContainerRegistry GetContainerRegistry(this IResource resource)
1197var registryNames = string.Join(", ", registryTargetAnnotations.Select(a => a.Registry is IResource res ? res.Name : a.Registry.ToString()));
1219this IResource resource,
1248internal static ILogger GetLogger(this IResource resource, IServiceProvider serviceProvider)
1281public static Task<IReadOnlySet<IResource>> GetResourceDependenciesAsync(
1282this IResource resource,
1317internal static async Task<IReadOnlySet<IResource>> GetDependenciesAsync(
1318IEnumerable<IResource> resources,
1323var dependencies = new HashSet<IResource>();
1324var newDependencies = new HashSet<IResource>();
1325var toProcess = new Queue<IResource>();
1327foreach (var resource in resources)
1336foreach(var nd in newDependencies)
1343var dep = toProcess.Dequeue();
1348foreach (var newDep in newDependencies)
1360foreach (var resource in resources)
1377IResource resource,
1378HashSet<IResource> dependencies,
1379HashSet<IResource> newDependencies,
1401IResource resource,
1445private static void CollectAnnotationDependencies(IResource resource, HashSet<IResource> dependencies, HashSet<IResource> newDependencies)
1481private static void CollectDependenciesFromValue(object? value, HashSet<IResource> dependencies, HashSet<IResource> newDependencies, HashSet<object> visitedValues)
1489if (value is IResource resource)
1498if (value is IResourceBuilder<IResource> resourceBuilder)
1521internal static string GetResourceType(this IResource resource) => resource switch
ApplicationModel\ResourceNotificationService.cs (19)
139private async Task WaitUntilHealthyAsync(IResource resource, IResource dependency, WaitBehavior waitBehavior, CancellationToken cancellationToken)
266private async Task WaitUntilCompletionAsync(IResource resource, IResource dependency, int exitCode, CancellationToken cancellationToken)
334private async Task WaitUntilStateAsync(IResource resource, IResource dependency, WaitBehavior waitBehavior,
415private async Task WaitUntilStartedAsync(IResource resource, IResource dependency, WaitBehavior waitBehavior, CancellationToken cancellationToken)
433public async Task WaitForDependenciesAsync(IResource resource, CancellationToken cancellationToken)
638public Task PublishUpdateAsync(IResource resource, string resourceId, Func<CustomResourceSnapshot, CustomResourceSnapshot> stateFactory)
738private CustomResourceSnapshot UpdateCommands(IResource resource, CustomResourceSnapshot previousState)
812private static CustomResourceSnapshot UpdateIcons(IResource resource, CustomResourceSnapshot previousState)
842public async Task PublishUpdateAsync(IResource resource, Func<CustomResourceSnapshot, CustomResourceSnapshot> stateFactory)
851private static CustomResourceSnapshot GetCurrentSnapshot(IResource resource, ResourceNotificationState notificationState)
879private ResourceNotificationState GetResourceNotificationState(string resourceId, IResource resource) =>
955private sealed class ResourceNotificationState(IResource resource)
960public IResource Resource { get; } = resource;
987public class ResourceEvent(IResource resource, string resourceId, CustomResourceSnapshot snapshot)
992public IResource Resource { get; } = resource;
Dcp\DcpExecutor.cs (17)
503_resourceState.ApplicationModel.TryGetValue(resourceName, out var appModelResource))
608private static string GetResourceType<T>(T resource, IResource appModelResource) where T : CustomResource
800_resourceState.ApplicationModel.TryGetValue(appModelResourceName, out var appModelResource))
1556private void EnsureRequiredAnnotations(IResource resource)
1564private static void SetInitialResourceState(IResource resource, IAnnotationHolder annotationHolder)
1596var groupKey = group.Key;
1611IResource resource,
1969foreach (var container in modelContainerResources)
2035private static DcpInstance GetDcpInstance(IResource resource, int instanceIndex)
2125var modelContainerResource = cr.ModelResource;
2365private static async Task ApplyBuildArgumentsAsync(Container dcpContainerResource, IResource modelContainerResource, IServiceProvider serviceProvider, CancellationToken cancellationToken)
2446private void AddServicesProducedInfo(IResource modelResource, IAnnotationHolder dcpResource, RenderedModelResource appResource)
2745public required IResource Resource { get; init; }
2788private async Task<(List<string>, bool)> BuildRunArgsAsync(ILogger resourceLogger, IResource modelResource, CancellationToken cancellationToken)
3011private static List<VolumeMount> BuildContainerMounts(IResource container)
3034private static bool TryGetEndpoint(IResource resource, string? endpointName, [NotNullWhen(true)] out EndpointAnnotation? endpoint)
3050private static HostResourceWithEndpoints? AsHostResourceWithEndpoints(IResource resource)
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)
201static Task PublishUpdateAsync(ResourceNotificationService notificationService, IResource resource, string? resourceId, Func<CustomResourceSnapshot, CustomResourceSnapshot> stateFactory)
214private async Task ProcessResourceUrlCallbacks(IResource resource, CancellationToken cancellationToken)
596private async Task SetChildResourceAsync(IResource resource, string? state, DateTime? startTimeStamp, DateTime? stopTimeStamp)
598foreach (var child in _parentChildLookup[resource].Where(c => c is IResourceWithParent))
625foreach (var resource in _model.Resources)
629var parent = resource is IResourceWithParent hasParent
651private static ImmutableArray<HealthReportSnapshot> GetInitialHealthReports(IResource resource)
662private async Task PublishConnectionStringAvailableEvent(IResource resource, CancellationToken cancellationToken)
688private async Task PublishEventToHierarchy<TEvent>(Func<IResource, TEvent> createEvent, IResource resource, CancellationToken cancellationToken)
697foreach (var child in children.Where(c => c is IResourceWithParent))
712private 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)
515public async Task PushImageAsync(IResource resource, CancellationToken cancellationToken)
521private async Task<bool> ResourcesRequireContainerRuntimeAsync(IEnumerable<IResource> resources, CancellationToken cancellationToken)
523foreach (var resource in resources)
ResourceBuilderExtensions.cs (60)
427public static IResourceBuilder<T> WithManifestPublishingCallback<T>(this IResourceBuilder<T> builder, Action<ManifestPublishingContext> callback) where T : IResource
445public static IResourceBuilder<T> WithManifestPublishingCallback<T>(this IResourceBuilder<T> builder, Func<ManifestPublishingContext, Task> callback) where T : IResource
555IResourceBuilder<IResource> source,
629IResourceBuilder<IResource> source,
646IResourceBuilder<IResource> source,
672IResourceBuilder<IResource> source,
677where TCustom : class, IResource, IResourceWithCustomWithReference<TCustom>
1317where T : IResource
1341where T : IResource
1379where T : IResource
1420where T : IResource
1443where T : IResource
1499where T : IResource
1643public static IResourceBuilder<T> ExcludeFromManifest<T>(this IResourceBuilder<T> builder) where T : IResource
1661/// resources, calling <see cref="WaitFor{T}(IResourceBuilder{T}, IResourceBuilder{IResource})"/> also results
1678public static IResourceBuilder<T> WaitFor<T>(this IResourceBuilder<T> builder, IResourceBuilder<IResource> dependency) where T : IResourceWithWaitSupport
1698/// resources, calling <see cref="WaitFor{T}(IResourceBuilder{T}, IResourceBuilder{IResource}, WaitBehavior)"/> also results
1706/// behavior with the <see cref="WaitFor{T}(IResourceBuilder{T}, IResourceBuilder{IResource})"/> overload.</para>
1721public static IResourceBuilder<T> WaitFor<T>(this IResourceBuilder<T> builder, IResourceBuilder<IResource> dependency, WaitBehavior waitBehavior) where T : IResourceWithWaitSupport
1729private static IResourceBuilder<T> WaitForCore<T>(this IResourceBuilder<T> builder, IResourceBuilder<IResource> dependency, WaitBehavior? waitBehavior, bool addRelationship) where T : IResourceWithWaitSupport
1731if (builder.Resource as IResource == dependency.Resource)
1771/// <para>Unlike <see cref="WaitFor{T}(IResourceBuilder{T}, IResourceBuilder{IResource})"/>, this method
1786public static IResourceBuilder<T> WaitForStart<T>(this IResourceBuilder<T> builder, IResourceBuilder<IResource> dependency) where T : IResourceWithWaitSupport
1806/// <para>Unlike <see cref="WaitFor{T}(IResourceBuilder{T}, IResourceBuilder{IResource}, WaitBehavior)"/>, this method
1812/// behavior with the <see cref="WaitForStart{T}(IResourceBuilder{T}, IResourceBuilder{IResource})"/> overload.</para>
1827public static IResourceBuilder<T> WaitForStart<T>(this IResourceBuilder<T> builder, IResourceBuilder<IResource> dependency, WaitBehavior waitBehavior) where T : IResourceWithWaitSupport
1835private static IResourceBuilder<T> WaitForStartCore<T>(this IResourceBuilder<T> builder, IResourceBuilder<IResource> dependency, WaitBehavior? waitBehavior, bool addRelationship) where T : IResourceWithWaitSupport
1837if (builder.Resource as IResource == dependency.Resource)
1862foreach (var referencedResource in cs.ConnectionStringExpression.ValueProviders.OfType<IResource>())
1898public static IResourceBuilder<T> WithExplicitStart<T>(this IResourceBuilder<T> builder) where T : IResource
1930public static IResourceBuilder<T> WaitForCompletion<T>(this IResourceBuilder<T> builder, IResourceBuilder<IResource> dependency, int exitCode = 0) where T : IResourceWithWaitSupport
1935if (builder.Resource as IResource == dependency.Resource)
1960/// the <see cref="WaitFor{T}(IResourceBuilder{T}, IResourceBuilder{IResource})"/> to associate a resource
1987public static IResourceBuilder<T> WithHealthCheck<T>(this IResourceBuilder<T> builder, string key) where T : IResource
2190CommandOptions? commandOptions = null) where T : IResource
2257bool isHighlighted = false) where T : IResource
2867where TResource : IResource
2987IResource resource,
2988string type) where T : IResource
3008IResource resource) where T : IResource
3027ReferenceExpression expression) where T : IResource
3038where T : IResource
3042void AddReference(IResource resource)
3054if (value is IResource resource)
3058else if (value is IResourceBuilder<IResource> resourceBuilder)
3088IResourceBuilder<IResource> resourceBuilder) where T : IResource
3122IResourceBuilder<IResource> parent) where T : IResource
3154IResource parent) where T : IResource
3186IResourceBuilder<IResource> child) where T : IResource
3220IResource child) where T : IResource
3255public static IResourceBuilder<T> WithIconName<T>(this IResourceBuilder<T> builder, string iconName, IconVariant iconVariant = IconVariant.Filled) where T : IResource
3293where T : IResource
3459public static IResourceBuilder<T> ExcludeFromMcp<T>(this IResourceBuilder<T> builder) where 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.AppConfiguration (4)
Aspire.Hosting.Azure.AppContainers (24)
Aspire.Hosting.Azure.AppService (21)
Aspire.Hosting.Azure.CognitiveServices (4)
Aspire.Hosting.Azure.ContainerRegistry (7)
Aspire.Hosting.Azure.EventHubs (4)
Aspire.Hosting.Azure.Functions (4)
Aspire.Hosting.Azure.KeyVault (6)
Aspire.Hosting.Azure.Kusto (3)
Aspire.Hosting.Azure.Network (1)
Aspire.Hosting.Azure.Search (4)
Aspire.Hosting.Azure.ServiceBus (4)
Aspire.Hosting.Azure.SignalR (4)
Aspire.Hosting.Azure.Sql (4)
Aspire.Hosting.Azure.Storage (4)
Aspire.Hosting.Azure.Tests (68)
Aspire.Hosting.Azure.WebPubSub (4)
Aspire.Hosting.CodeGeneration.Go.Tests (15)
Aspire.Hosting.CodeGeneration.Java.Tests (15)
Aspire.Hosting.CodeGeneration.Python.Tests (15)
Aspire.Hosting.CodeGeneration.Rust.Tests (15)
Aspire.Hosting.CodeGeneration.TypeScript.Tests (15)
Aspire.Hosting.Containers.Tests (13)
Aspire.Hosting.DevTunnels (7)
Aspire.Hosting.Docker (27)
Aspire.Hosting.Docker.Tests (13)
Aspire.Hosting.Foundry (7)
Aspire.Hosting.Foundry.Tests (1)
Aspire.Hosting.JavaScript (1)
Aspire.Hosting.JavaScript.Tests (6)
Aspire.Hosting.Kafka.Tests (1)
Aspire.Hosting.Keycloak.Tests (2)
Aspire.Hosting.Kubernetes (20)
Aspire.Hosting.Kubernetes.Tests (4)
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 (9)
Aspire.Hosting.Qdrant (1)
Aspire.Hosting.Qdrant.Tests (6)
Aspire.Hosting.Redis (2)
Aspire.Hosting.Redis.Tests (4)
Aspire.Hosting.RemoteHost.Tests (4)
Aspire.Hosting.SqlServer (1)
Aspire.Hosting.Testing (10)
Aspire.Hosting.Testing.Tests (3)
Aspire.Hosting.Tests (79)
Aspire.Hosting.Yarp (1)
Aspire.Playground.Tests (3)
Pipelines.Library (1)
Stress.AppHost (7)