diff --git a/src/Aspire.Hosting.Azure.AppContainers/api/Aspire.Hosting.Azure.AppContainers.cs b/src/Aspire.Hosting.Azure.AppContainers/api/Aspire.Hosting.Azure.AppContainers.cs index 3ade723fd4c..f261bce9201 100644 --- a/src/Aspire.Hosting.Azure.AppContainers/api/Aspire.Hosting.Azure.AppContainers.cs +++ b/src/Aspire.Hosting.Azure.AppContainers/api/Aspire.Hosting.Azure.AppContainers.cs @@ -48,6 +48,10 @@ public static partial class AzureContainerAppExtensions [AspireExport] public static ApplicationModel.IResourceBuilder WithHttpsUpgrade(this ApplicationModel.IResourceBuilder builder, bool upgrade = true) { throw null; } + + [AspireExport] + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREACANAMING002", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public static ApplicationModel.IResourceBuilder WithUniqueResourceNaming(this ApplicationModel.IResourceBuilder builder) { throw null; } } public static partial class AzureContainerAppProjectExtensions @@ -60,18 +64,17 @@ public static ApplicationModel.IResourceBuilder PublishAsAzureContainerApp public static partial class ContainerAppExtensions { [AspireExport] - [System.Diagnostics.CodeAnalysis.Experimental("ASPIREACADOMAINS001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public static void ConfigureCustomDomain(this global::Azure.Provisioning.AppContainers.ContainerApp app, ApplicationModel.IResourceBuilder customDomain, ApplicationModel.IResourceBuilder certificateName) { } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal publishAsAzureContainerAppJob dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal publishAsAzureContainerAppJob dispatcher export.")] public static ApplicationModel.IResourceBuilder PublishAsAzureContainerAppJob(this ApplicationModel.IResourceBuilder resource, System.Action configure) where T : ApplicationModel.IComputeResource { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal publishAsAzureContainerAppJob dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal publishAsAzureContainerAppJob dispatcher export.")] public static ApplicationModel.IResourceBuilder PublishAsAzureContainerAppJob(this ApplicationModel.IResourceBuilder resource) where T : ApplicationModel.IComputeResource { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal publishAsScheduledAzureContainerAppJob dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal publishAsScheduledAzureContainerAppJob dispatcher export.")] public static ApplicationModel.IResourceBuilder PublishAsScheduledAzureContainerAppJob(this ApplicationModel.IResourceBuilder resource, string cronExpression, System.Action? configure = null) where T : ApplicationModel.IComputeResource { throw null; } } @@ -96,7 +99,7 @@ public AzureContainerAppJobCustomizationAnnotation(System.Action configureInfrastructure) : base(default!, default!) { } diff --git a/src/Aspire.Hosting.Azure.AppService/api/Aspire.Hosting.Azure.AppService.cs b/src/Aspire.Hosting.Azure.AppService/api/Aspire.Hosting.Azure.AppService.cs index 58df7af3523..037da0aea7d 100644 --- a/src/Aspire.Hosting.Azure.AppService/api/Aspire.Hosting.Azure.AppService.cs +++ b/src/Aspire.Hosting.Azure.AppService/api/Aspire.Hosting.Azure.AppService.cs @@ -27,25 +27,25 @@ public static partial class AzureAppServiceEnvironmentExtensions [AspireExport] public static ApplicationModel.IResourceBuilder WithAcrPullIdentity(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder identityBuilder) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withAzureApplicationInsights dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withAzureApplicationInsights dispatcher export.")] public static ApplicationModel.IResourceBuilder WithAzureApplicationInsights(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder applicationInsightsLocation) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withAzureApplicationInsights dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withAzureApplicationInsights dispatcher export.")] public static ApplicationModel.IResourceBuilder WithAzureApplicationInsights(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder applicationInsightsBuilder) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withAzureApplicationInsights dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withAzureApplicationInsights dispatcher export.")] public static ApplicationModel.IResourceBuilder WithAzureApplicationInsights(this ApplicationModel.IResourceBuilder builder, string applicationInsightsLocation) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withAzureApplicationInsights dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withAzureApplicationInsights dispatcher export.")] public static ApplicationModel.IResourceBuilder WithAzureApplicationInsights(this ApplicationModel.IResourceBuilder builder) { throw null; } [AspireExport] public static ApplicationModel.IResourceBuilder WithDashboard(this ApplicationModel.IResourceBuilder builder, bool enable = true) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withDeploymentSlot dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withDeploymentSlot dispatcher export.")] public static ApplicationModel.IResourceBuilder WithDeploymentSlot(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder deploymentSlot) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withDeploymentSlot dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withDeploymentSlot dispatcher export.")] public static ApplicationModel.IResourceBuilder WithDeploymentSlot(this ApplicationModel.IResourceBuilder builder, string deploymentSlot) { throw null; } [AspireExport] @@ -55,7 +55,7 @@ public static partial class AzureAppServiceEnvironmentExtensions namespace Aspire.Hosting.Azure { - public partial class AzureAppServiceEnvironmentResource : AzureProvisioningResource, IAzureComputeEnvironmentResource, ApplicationModel.IComputeEnvironmentResource, ApplicationModel.IResource, IAzureContainerRegistry, ApplicationModel.IContainerRegistry + public partial class AzureAppServiceEnvironmentResource : AzureProvisioningResource, IAzureComputeEnvironmentResource, ApplicationModel.IComputeEnvironmentResource, ApplicationModel.IResource, IAzureContainerRegistry, ApplicationModel.IContainerRegistry, IAzureDelegatedSubnetResource { public AzureAppServiceEnvironmentResource(string name, System.Action configureInfrastructure) : base(default!, default!) { } @@ -67,6 +67,8 @@ public AzureAppServiceEnvironmentResource(string name, System.Action AddAzureCosmosDB(this IDistributedApplicationBuilder builder, string name) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal addContainer dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addContainer dispatcher export.")] public static ApplicationModel.IResourceBuilder AddContainer(this ApplicationModel.IResourceBuilder builder, string name, System.Collections.Generic.IEnumerable partitionKeyPaths, string? containerName = null) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal addContainer dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addContainer dispatcher export.")] public static ApplicationModel.IResourceBuilder AddContainer(this ApplicationModel.IResourceBuilder builder, string name, string partitionKeyPath, string? containerName = null) { throw null; } [AspireExport] @@ -64,21 +64,23 @@ public static partial class AzureCosmosExtensions [System.Obsolete("This method is obsolete because it has the wrong return type and will be removed in a future version. Use AddCosmosDatabase instead to add a Cosmos DB database.")] public static ApplicationModel.IResourceBuilder AddDatabase(this ApplicationModel.IResourceBuilder builder, string databaseName) { throw null; } + [AspireExport(RunSyncOnBackgroundThread = true)] + public static ApplicationModel.IResourceBuilder RunAsClassicEmulator(this ApplicationModel.IResourceBuilder builder, System.Action>? configureContainer = null) { throw null; } + [AspireExport(RunSyncOnBackgroundThread = true)] public static ApplicationModel.IResourceBuilder RunAsEmulator(this ApplicationModel.IResourceBuilder builder, System.Action>? configureContainer = null) { throw null; } [AspireExport(RunSyncOnBackgroundThread = true)] - [System.Diagnostics.CodeAnalysis.Experimental("ASPIRECOSMOSDB001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + [System.Obsolete("Use RunAsEmulator instead.")] public static ApplicationModel.IResourceBuilder RunAsPreviewEmulator(this ApplicationModel.IResourceBuilder builder, System.Action>? configureContainer = null) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withAccessKeyAuthentication dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withAccessKeyAuthentication dispatcher export.")] public static ApplicationModel.IResourceBuilder WithAccessKeyAuthentication(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder keyVaultBuilder) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withAccessKeyAuthentication dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withAccessKeyAuthentication dispatcher export.")] public static ApplicationModel.IResourceBuilder WithAccessKeyAuthentication(this ApplicationModel.IResourceBuilder builder) { throw null; } [AspireExport] - [System.Diagnostics.CodeAnalysis.Experimental("ASPIRECOSMOSDB001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public static ApplicationModel.IResourceBuilder WithDataExplorer(this ApplicationModel.IResourceBuilder builder, int? port = null) { throw null; } [AspireExport] @@ -137,7 +139,7 @@ public AzureCosmosDBDatabaseResource(string name, string databaseName, AzureCosm void IResourceWithAzureFunctionsConfig.ApplyAzureFunctionsConfiguration(System.Collections.Generic.IDictionary target, string connectionName) { } } - public partial class AzureCosmosDBEmulatorResource : ApplicationModel.ContainerResource, ApplicationModel.IResource + public partial class AzureCosmosDBEmulatorResource : ApplicationModel.ContainerResource { public AzureCosmosDBEmulatorResource(AzureCosmosDBResource innerResource) : base(default!, default) { } diff --git a/src/Aspire.Hosting.Azure.KeyVault/api/Aspire.Hosting.Azure.KeyVault.cs b/src/Aspire.Hosting.Azure.KeyVault/api/Aspire.Hosting.Azure.KeyVault.cs index b77693808ef..fd5016adda8 100644 --- a/src/Aspire.Hosting.Azure.KeyVault/api/Aspire.Hosting.Azure.KeyVault.cs +++ b/src/Aspire.Hosting.Azure.KeyVault/api/Aspire.Hosting.Azure.KeyVault.cs @@ -13,22 +13,22 @@ public static partial class AzureKeyVaultResourceExtensions [AspireExport] public static ApplicationModel.IResourceBuilder AddAzureKeyVault(this IDistributedApplicationBuilder builder, string name) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal addSecret dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addSecret dispatcher export.")] public static ApplicationModel.IResourceBuilder AddSecret(this ApplicationModel.IResourceBuilder builder, string name, ApplicationModel.IResourceBuilder parameterResource) { throw null; } [AspireExportIgnore(Reason = "Raw ParameterResource overload; use the IResourceBuilder variant instead.")] public static ApplicationModel.IResourceBuilder AddSecret(this ApplicationModel.IResourceBuilder builder, string name, ApplicationModel.ParameterResource parameterResource) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal addSecret dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addSecret dispatcher export.")] public static ApplicationModel.IResourceBuilder AddSecret(this ApplicationModel.IResourceBuilder builder, string name, ApplicationModel.ReferenceExpression value) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal addSecret dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addSecret dispatcher export.")] public static ApplicationModel.IResourceBuilder AddSecret(this ApplicationModel.IResourceBuilder builder, string name, string secretName, ApplicationModel.IResourceBuilder parameterResource) { throw null; } [AspireExportIgnore(Reason = "Raw ParameterResource overload; use the IResourceBuilder variant instead.")] public static ApplicationModel.IResourceBuilder AddSecret(this ApplicationModel.IResourceBuilder builder, string name, string secretName, ApplicationModel.ParameterResource parameterResource) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal addSecret dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addSecret dispatcher export.")] public static ApplicationModel.IResourceBuilder AddSecret(this ApplicationModel.IResourceBuilder builder, string name, string secretName, ApplicationModel.ReferenceExpression value) { throw null; } [AspireExport] diff --git a/src/Aspire.Hosting.Azure.Kubernetes/api/Aspire.Hosting.Azure.Kubernetes.cs b/src/Aspire.Hosting.Azure.Kubernetes/api/Aspire.Hosting.Azure.Kubernetes.cs index 8b91b2ba433..bfcf68fb67e 100644 --- a/src/Aspire.Hosting.Azure.Kubernetes/api/Aspire.Hosting.Azure.Kubernetes.cs +++ b/src/Aspire.Hosting.Azure.Kubernetes/api/Aspire.Hosting.Azure.Kubernetes.cs @@ -58,6 +58,13 @@ public static partial class AzureKubernetesIngressExtensions [AspireExport("withLoadBalancerOnIngress", MethodName = "withLoadBalancer")] public static ApplicationModel.IResourceBuilder WithLoadBalancer(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder loadBalancer) { throw null; } } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRECOMPUTE002", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public static partial class AzureKubernetesPersistentVolumeExtensions + { + [AspireExport] + public static ApplicationModel.IResourceBuilder AddPersistentVolume(this ApplicationModel.IResourceBuilder builder, string name) { throw null; } + } } namespace Aspire.Hosting.Azure.Kubernetes @@ -767,6 +774,30 @@ public static partial class StandardDdsv6 public const string StandardD96dsV6 = "Standard_D96ds_v6"; } + public static partial class StandardDdsv7 + { + [AspireValue("AksNodeVmSizes")] + public const string StandardD128dsV7 = "Standard_D128ds_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD16dsV7 = "Standard_D16ds_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD192dsV7 = "Standard_D192ds_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD2dsV7 = "Standard_D2ds_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD32dsV7 = "Standard_D32ds_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD48dsV7 = "Standard_D48ds_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD4dsV7 = "Standard_D4ds_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD64dsV7 = "Standard_D64ds_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD8dsV7 = "Standard_D8ds_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD96dsV7 = "Standard_D96ds_v7"; + } + public static partial class StandardDDv4 { [AspireValue("AksNodeVmSizes")] @@ -847,6 +878,30 @@ public static partial class StandardDldsv6 public const string StandardD96ldsV6 = "Standard_D96lds_v6"; } + public static partial class StandardDldsv7 + { + [AspireValue("AksNodeVmSizes")] + public const string StandardD128ldsV7 = "Standard_D128lds_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD16ldsV7 = "Standard_D16lds_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD192ldsV7 = "Standard_D192lds_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD2ldsV7 = "Standard_D2lds_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD32ldsV7 = "Standard_D32lds_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD48ldsV7 = "Standard_D48lds_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD4ldsV7 = "Standard_D4lds_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD64ldsV7 = "Standard_D64lds_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD8ldsV7 = "Standard_D8lds_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD96ldsV7 = "Standard_D96lds_v7"; + } + public static partial class StandardDLSv5 { [AspireValue("AksNodeVmSizes")] @@ -889,6 +944,118 @@ public static partial class StandardDlsv6 public const string StandardD96lsV6 = "Standard_D96ls_v6"; } + public static partial class StandardDlsv7 + { + [AspireValue("AksNodeVmSizes")] + public const string StandardD128lsV7 = "Standard_D128ls_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD16lsV7 = "Standard_D16ls_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD192lsV7 = "Standard_D192ls_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD2lsV7 = "Standard_D2ls_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD32lsV7 = "Standard_D32ls_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD48lsV7 = "Standard_D48ls_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD4lsV7 = "Standard_D4ls_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD64lsV7 = "Standard_D64ls_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD8lsV7 = "Standard_D8ls_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD96lsV7 = "Standard_D96ls_v7"; + } + + public static partial class StandardDndv6 + { + [AspireValue("AksNodeVmSizes")] + public const string StandardD128ndsV6 = "Standard_D128nds_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD16ndsV6 = "Standard_D16nds_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD2ndsV6 = "Standard_D2nds_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD32ndsV6 = "Standard_D32nds_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD48ndsV6 = "Standard_D48nds_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD4ndsV6 = "Standard_D4nds_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD64ndsV6 = "Standard_D64nds_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD8ndsV6 = "Standard_D8nds_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD96ndsV6 = "Standard_D96nds_v6"; + } + + public static partial class StandardDnldv6 + { + [AspireValue("AksNodeVmSizes")] + public const string StandardD128nldsV6 = "Standard_D128nlds_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD16nldsV6 = "Standard_D16nlds_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD2nldsV6 = "Standard_D2nlds_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD32nldsV6 = "Standard_D32nlds_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD48nldsV6 = "Standard_D48nlds_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD4nldsV6 = "Standard_D4nlds_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD64nldsV6 = "Standard_D64nlds_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD8nldsV6 = "Standard_D8nlds_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD96nldsV6 = "Standard_D96nlds_v6"; + } + + public static partial class StandardDnlv6 + { + [AspireValue("AksNodeVmSizes")] + public const string StandardD128nlsV6 = "Standard_D128nls_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD16nlsV6 = "Standard_D16nls_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD2nlsV6 = "Standard_D2nls_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD32nlsV6 = "Standard_D32nls_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD48nlsV6 = "Standard_D48nls_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD4nlsV6 = "Standard_D4nls_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD64nlsV6 = "Standard_D64nls_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD8nlsV6 = "Standard_D8nls_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD96nlsV6 = "Standard_D96nls_v6"; + } + + public static partial class StandardDnv6 + { + [AspireValue("AksNodeVmSizes")] + public const string StandardD128nsV6 = "Standard_D128ns_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD16nsV6 = "Standard_D16ns_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD2nsV6 = "Standard_D2ns_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD32nsV6 = "Standard_D32ns_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD48nsV6 = "Standard_D48ns_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD4nsV6 = "Standard_D4ns_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD64nsV6 = "Standard_D64ns_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD8nsV6 = "Standard_D8ns_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD96nsV6 = "Standard_D96ns_v6"; + } + public static partial class StandardDPDSv5 { [AspireValue("AksNodeVmSizes")] @@ -1195,6 +1362,30 @@ public static partial class StandardDsv6 public const string StandardD96sV6 = "Standard_D96s_v6"; } + public static partial class StandardDsv7 + { + [AspireValue("AksNodeVmSizes")] + public const string StandardD128sV7 = "Standard_D128s_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD16sV7 = "Standard_D16s_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD192sV7 = "Standard_D192s_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD2sV7 = "Standard_D2s_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD32sV7 = "Standard_D32s_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD48sV7 = "Standard_D48s_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD4sV7 = "Standard_D4s_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD64sV7 = "Standard_D64s_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD8sV7 = "Standard_D8s_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardD96sV7 = "Standard_D96s_v7"; + } + public static partial class StandardDv2 { [AspireValue("AksNodeVmSizes")] @@ -1993,6 +2184,32 @@ public static partial class StandardEdsv6 public const string StandardE96dsV6 = "Standard_E96ds_v6"; } + public static partial class StandardEdsv7 + { + [AspireValue("AksNodeVmSizes")] + public const string StandardE128dsV7 = "Standard_E128ds_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE16dsV7 = "Standard_E16ds_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE192dsV7 = "Standard_E192ds_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE20dsV7 = "Standard_E20ds_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE2dsV7 = "Standard_E2ds_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE32dsV7 = "Standard_E32ds_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE48dsV7 = "Standard_E48ds_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE4dsV7 = "Standard_E4ds_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE64dsV7 = "Standard_E64ds_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE8dsV7 = "Standard_E8ds_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE96dsV7 = "Standard_E96ds_v7"; + } + public static partial class StandardEDv4 { [AspireValue("AksNodeVmSizes")] @@ -2077,28 +2294,60 @@ public static partial class StandardEIDv5 public const string StandardE104idV5 = "Standard_E104id_v5"; } - public static partial class StandardEISv3 + public static partial class StandardEISv5 { [AspireValue("AksNodeVmSizes")] - public const string StandardE64isV3 = "Standard_E64is_v3"; + public const string StandardE104isV5 = "Standard_E104is_v5"; } - public static partial class StandardEISv5 + public static partial class StandardEIv5 { [AspireValue("AksNodeVmSizes")] - public const string StandardE104isV5 = "Standard_E104is_v5"; + public const string StandardE104iV5 = "Standard_E104i_v5"; } - public static partial class StandardEIv3 + public static partial class StandardEndv6 { [AspireValue("AksNodeVmSizes")] - public const string StandardE64iV3 = "Standard_E64i_v3"; + public const string StandardE128ndsV6 = "Standard_E128nds_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE16ndsV6 = "Standard_E16nds_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE2ndsV6 = "Standard_E2nds_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE32ndsV6 = "Standard_E32nds_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE48ndsV6 = "Standard_E48nds_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE4ndsV6 = "Standard_E4nds_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE64ndsV6 = "Standard_E64nds_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE8ndsV6 = "Standard_E8nds_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE96ndsV6 = "Standard_E96nds_v6"; } - public static partial class StandardEIv5 + public static partial class StandardEnv6 { [AspireValue("AksNodeVmSizes")] - public const string StandardE104iV5 = "Standard_E104i_v5"; + public const string StandardE128nsV6 = "Standard_E128ns_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE16nsV6 = "Standard_E16ns_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE2nsV6 = "Standard_E2ns_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE32nsV6 = "Standard_E32ns_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE48nsV6 = "Standard_E48ns_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE4nsV6 = "Standard_E4ns_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE64nsV6 = "Standard_E64ns_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE8nsV6 = "Standard_E8ns_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE96nsV6 = "Standard_E96ns_v6"; } public static partial class StandardEPDSv5 @@ -2345,6 +2594,32 @@ public static partial class StandardEsv6 public const string StandardE96sV6 = "Standard_E96s_v6"; } + public static partial class StandardEsv7 + { + [AspireValue("AksNodeVmSizes")] + public const string StandardE128sV7 = "Standard_E128s_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE16sV7 = "Standard_E16s_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE192sV7 = "Standard_E192s_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE20sV7 = "Standard_E20s_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE2sV7 = "Standard_E2s_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE32sV7 = "Standard_E32s_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE48sV7 = "Standard_E48s_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE4sV7 = "Standard_E4s_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE64sV7 = "Standard_E64s_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE8sV7 = "Standard_E8s_v7"; + [AspireValue("AksNodeVmSizes")] + public const string StandardE96sV7 = "Standard_E96s_v7"; + } + public static partial class StandardEv3 { [AspireValue("AksNodeVmSizes")] @@ -3103,11 +3378,17 @@ public static partial class StandardMBSMediumMemoryv3 public static partial class StandardMDSHighMemoryv3 { + [AspireValue("AksNodeVmSizes")] + public const string StandardM416ds10V3 = "Standard_M416ds_10_v3"; + [AspireValue("AksNodeVmSizes")] + public const string StandardM416ds12V3 = "Standard_M416ds_12_v3"; [AspireValue("AksNodeVmSizes")] public const string StandardM416ds6V3 = "Standard_M416ds_6_v3"; [AspireValue("AksNodeVmSizes")] public const string StandardM416ds8V3 = "Standard_M416ds_8_v3"; [AspireValue("AksNodeVmSizes")] + public const string StandardM416ds9V3 = "Standard_M416ds_9_v3"; + [AspireValue("AksNodeVmSizes")] public const string StandardM624ds12V3 = "Standard_M624ds_12_v3"; [AspireValue("AksNodeVmSizes")] public const string StandardM832ds12V3 = "Standard_M832ds_12_v3"; @@ -3227,11 +3508,17 @@ public static partial class StandardMS public static partial class StandardMSHighMemoryv3 { + [AspireValue("AksNodeVmSizes")] + public const string StandardM416s10V3 = "Standard_M416s_10_v3"; + [AspireValue("AksNodeVmSizes")] + public const string StandardM416s12V3 = "Standard_M416s_12_v3"; [AspireValue("AksNodeVmSizes")] public const string StandardM416s6V3 = "Standard_M416s_6_v3"; [AspireValue("AksNodeVmSizes")] public const string StandardM416s8V3 = "Standard_M416s_8_v3"; [AspireValue("AksNodeVmSizes")] + public const string StandardM416s9V3 = "Standard_M416s_9_v3"; + [AspireValue("AksNodeVmSizes")] public const string StandardM624s12V3 = "Standard_M624s_12_v3"; [AspireValue("AksNodeVmSizes")] public const string StandardM832s12V3 = "Standard_M832s_12_v3"; @@ -3337,6 +3624,28 @@ public static partial class StandardNCCads2023 public const string StandardNCC40adsH100V5 = "Standard_NCC40ads_H100_v5"; } + public static partial class StandardNCdsRTXPRO6000BSEv6XL + { + [AspireValue("AksNodeVmSizes")] + public const string StandardNC144dsXlRTXPRO6000BSEV6 = "Standard_NC144ds_xl_RTXPRO6000BSE_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardNC144ldsXlRTXPRO6000BSEV6 = "Standard_NC144lds_xl_RTXPRO6000BSE_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardNC24ldsXlRTXPRO6000BSEV6 = "Standard_NC24lds_xl_RTXPRO6000BSE_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardNC288dsXlRTXPRO6000BSEV6 = "Standard_NC288ds_xl_RTXPRO6000BSE_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardNC288ldsXlRTXPRO6000BSEV6 = "Standard_NC288lds_xl_RTXPRO6000BSE_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardNC36dsXlRTXPRO6000BSEV6 = "Standard_NC36ds_xl_RTXPRO6000BSE_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardNC36ldsXlRTXPRO6000BSEV6 = "Standard_NC36lds_xl_RTXPRO6000BSE_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardNC72dsXlRTXPRO6000BSEV6 = "Standard_NC72ds_xl_RTXPRO6000BSE_v6"; + [AspireValue("AksNodeVmSizes")] + public const string StandardNC72ldsXlRTXPRO6000BSEV6 = "Standard_NC72lds_xl_RTXPRO6000BSE_v6"; + } + public static partial class StandardNCSv3 { [AspireValue("AksNodeVmSizes")] @@ -3502,7 +3811,7 @@ public static partial class StandardXEISv4 } } - public partial class AzureKubernetesEnvironmentResource : AzureProvisioningResource, IAzureComputeEnvironmentResource, ApplicationModel.IComputeEnvironmentResource, ApplicationModel.IResource, IAzureNspAssociationTarget + public partial class AzureKubernetesEnvironmentResource : AzureProvisioningResource, IAzureComputeEnvironmentResource, ApplicationModel.IComputeEnvironmentResource, ApplicationModel.IResource, ApplicationModel.IComputeEnvironmentWithVolumeMounts, IAzureNspAssociationTarget { public AzureKubernetesEnvironmentResource(string name, System.Action configureInfrastructure) : base(default!, default!) { } diff --git a/src/Aspire.Hosting.Azure.Network/api/Aspire.Hosting.Azure.Network.cs b/src/Aspire.Hosting.Azure.Network/api/Aspire.Hosting.Azure.Network.cs index d5b31418e6d..dceb2123653 100644 --- a/src/Aspire.Hosting.Azure.Network/api/Aspire.Hosting.Azure.Network.cs +++ b/src/Aspire.Hosting.Azure.Network/api/Aspire.Hosting.Azure.Network.cs @@ -53,16 +53,16 @@ public static partial class AzurePublicIPAddressExtensions public static partial class AzureVirtualNetworkExtensions { - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal addAzureVirtualNetwork dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addAzureVirtualNetwork dispatcher export.")] public static ApplicationModel.IResourceBuilder AddAzureVirtualNetwork(this IDistributedApplicationBuilder builder, string name, ApplicationModel.IResourceBuilder addressPrefix) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal addAzureVirtualNetwork dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addAzureVirtualNetwork dispatcher export.")] public static ApplicationModel.IResourceBuilder AddAzureVirtualNetwork(this IDistributedApplicationBuilder builder, string name, string? addressPrefix = null) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal addSubnet dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addSubnet dispatcher export.")] public static ApplicationModel.IResourceBuilder AddSubnet(this ApplicationModel.IResourceBuilder builder, string name, ApplicationModel.IResourceBuilder addressPrefix, string? subnetName = null) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal addSubnet dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addSubnet dispatcher export.")] public static ApplicationModel.IResourceBuilder AddSubnet(this ApplicationModel.IResourceBuilder builder, string name, string addressPrefix, string? subnetName = null) { throw null; } [AspireExport] diff --git a/src/Aspire.Hosting.Azure.PostgreSQL/api/Aspire.Hosting.Azure.PostgreSQL.cs b/src/Aspire.Hosting.Azure.PostgreSQL/api/Aspire.Hosting.Azure.PostgreSQL.cs index afdd7ecf8a3..d9478b462a4 100644 --- a/src/Aspire.Hosting.Azure.PostgreSQL/api/Aspire.Hosting.Azure.PostgreSQL.cs +++ b/src/Aspire.Hosting.Azure.PostgreSQL/api/Aspire.Hosting.Azure.PostgreSQL.cs @@ -25,10 +25,10 @@ public static partial class AzurePostgresExtensions [AspireExport(RunSyncOnBackgroundThread = true)] public static ApplicationModel.IResourceBuilder RunAsContainer(this ApplicationModel.IResourceBuilder builder, System.Action>? configureContainer = null) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withPasswordAuthentication dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withPasswordAuthentication dispatcher export.")] public static ApplicationModel.IResourceBuilder WithPasswordAuthentication(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder? userName = null, ApplicationModel.IResourceBuilder? password = null) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withPasswordAuthentication dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withPasswordAuthentication dispatcher export.")] public static ApplicationModel.IResourceBuilder WithPasswordAuthentication(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder keyVaultBuilder, ApplicationModel.IResourceBuilder? userName = null, ApplicationModel.IResourceBuilder? password = null) { throw null; } [AspireExport(RunSyncOnBackgroundThread = true)] diff --git a/src/Aspire.Hosting.Azure.Redis/api/Aspire.Hosting.Azure.Redis.cs b/src/Aspire.Hosting.Azure.Redis/api/Aspire.Hosting.Azure.Redis.cs index af8ae400835..3f4b17d8fbd 100644 --- a/src/Aspire.Hosting.Azure.Redis/api/Aspire.Hosting.Azure.Redis.cs +++ b/src/Aspire.Hosting.Azure.Redis/api/Aspire.Hosting.Azure.Redis.cs @@ -16,10 +16,10 @@ public static partial class AzureManagedRedisExtensions [AspireExport(RunSyncOnBackgroundThread = true)] public static ApplicationModel.IResourceBuilder RunAsContainer(this ApplicationModel.IResourceBuilder builder, System.Action>? configureContainer = null) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withAccessKeyAuthentication dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withAccessKeyAuthentication dispatcher export.")] public static ApplicationModel.IResourceBuilder WithAccessKeyAuthentication(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder keyVaultBuilder) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withAccessKeyAuthentication dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withAccessKeyAuthentication dispatcher export.")] public static ApplicationModel.IResourceBuilder WithAccessKeyAuthentication(this ApplicationModel.IResourceBuilder builder) { throw null; } } diff --git a/src/Aspire.Hosting.Azure.Sandboxes/api/Aspire.Hosting.Azure.Sandboxes.cs b/src/Aspire.Hosting.Azure.Sandboxes/api/Aspire.Hosting.Azure.Sandboxes.cs index 3d60163402d..e417539934b 100644 --- a/src/Aspire.Hosting.Azure.Sandboxes/api/Aspire.Hosting.Azure.Sandboxes.cs +++ b/src/Aspire.Hosting.Azure.Sandboxes/api/Aspire.Hosting.Azure.Sandboxes.cs @@ -25,6 +25,10 @@ public static ApplicationModel.IResourceBuilder PublishAsAzureSandbox(this public static ApplicationModel.IResourceBuilder PublishAsAzureSandbox(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder sandboxGroup, System.Action configure) where T : ApplicationModel.IComputeResource { throw null; } + [AspireExport] + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREAZURE001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public static ApplicationModel.IResourceBuilder WithAcrPullIdentity(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder identity) { throw null; } + [AspireExport] [System.Diagnostics.CodeAnalysis.Experimental("ASPIREAZURE001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public static ApplicationModel.IResourceBuilder WithNoManagedIdentity(this ApplicationModel.IResourceBuilder builder) { throw null; } diff --git a/src/Aspire.Hosting.Azure/api/Aspire.Hosting.Azure.cs b/src/Aspire.Hosting.Azure/api/Aspire.Hosting.Azure.cs index 56c47939c73..f42c5b0053b 100644 --- a/src/Aspire.Hosting.Azure/api/Aspire.Hosting.Azure.cs +++ b/src/Aspire.Hosting.Azure/api/Aspire.Hosting.Azure.cs @@ -22,7 +22,7 @@ public static partial class AzureBicepResourceExtensions [System.Obsolete("GetSecretOutput is obsolete. Use IAzureKeyVaultResource.GetSecret instead.")] public static Azure.BicepSecretOutputReference GetSecretOutput(this ApplicationModel.IResourceBuilder builder, string name) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withEnvironment dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withEnvironment dispatcher export.")] public static ApplicationModel.IResourceBuilder WithEnvironment(this ApplicationModel.IResourceBuilder builder, string name, Azure.BicepOutputReference bicepOutputReference) where T : ApplicationModel.IResourceWithEnvironment { throw null; } @@ -30,19 +30,19 @@ public static ApplicationModel.IResourceBuilder WithEnvironment(this Appli public static ApplicationModel.IResourceBuilder WithEnvironment(this ApplicationModel.IResourceBuilder builder, string name, Azure.BicepSecretOutputReference bicepOutputReference) where T : ApplicationModel.IResourceWithEnvironment { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withEnvironment dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withEnvironment dispatcher export.")] public static ApplicationModel.IResourceBuilder WithEnvironment(this ApplicationModel.IResourceBuilder builder, string name, Azure.IAzureKeyVaultSecretReference secretReference) where T : ApplicationModel.IResourceWithEnvironment { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withParameter dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withParameter dispatcher export.")] public static ApplicationModel.IResourceBuilder WithParameter(this ApplicationModel.IResourceBuilder builder, string name, ApplicationModel.EndpointReference value) where T : Azure.AzureBicepResource { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withParameter dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withParameter dispatcher export.")] public static ApplicationModel.IResourceBuilder WithParameter(this ApplicationModel.IResourceBuilder builder, string name, ApplicationModel.IResourceBuilder value) where T : Azure.AzureBicepResource { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withParameter dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withParameter dispatcher export.")] public static ApplicationModel.IResourceBuilder WithParameter(this ApplicationModel.IResourceBuilder builder, string name, ApplicationModel.IResourceBuilder value) where T : Azure.AzureBicepResource { throw null; } @@ -50,15 +50,15 @@ public static ApplicationModel.IResourceBuilder WithParameter(this Applica public static ApplicationModel.IResourceBuilder WithParameter(this ApplicationModel.IResourceBuilder builder, string name, ApplicationModel.ParameterResource value) where T : Azure.AzureBicepResource { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withParameter dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withParameter dispatcher export.")] public static ApplicationModel.IResourceBuilder WithParameter(this ApplicationModel.IResourceBuilder builder, string name, ApplicationModel.ReferenceExpression value) where T : Azure.AzureBicepResource { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withParameter dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withParameter dispatcher export.")] public static ApplicationModel.IResourceBuilder WithParameter(this ApplicationModel.IResourceBuilder builder, string name, Azure.BicepOutputReference value) where T : Azure.AzureBicepResource { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withParameter dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withParameter dispatcher export.")] public static ApplicationModel.IResourceBuilder WithParameter(this ApplicationModel.IResourceBuilder builder, string name, System.Collections.Generic.IEnumerable value) where T : Azure.AzureBicepResource { throw null; } @@ -66,7 +66,7 @@ public static ApplicationModel.IResourceBuilder WithParameter(this Applica public static ApplicationModel.IResourceBuilder WithParameter(this ApplicationModel.IResourceBuilder builder, string name, System.Func valueCallback) where T : Azure.AzureBicepResource { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withParameter dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withParameter dispatcher export.")] public static ApplicationModel.IResourceBuilder WithParameter(this ApplicationModel.IResourceBuilder builder, string name, string value) where T : Azure.AzureBicepResource { throw null; } @@ -74,7 +74,7 @@ public static ApplicationModel.IResourceBuilder WithParameter(this Applica public static ApplicationModel.IResourceBuilder WithParameter(this ApplicationModel.IResourceBuilder builder, string name, System.Text.Json.Nodes.JsonNode value) where T : Azure.AzureBicepResource { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withParameter dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withParameter dispatcher export.")] public static ApplicationModel.IResourceBuilder WithParameter(this ApplicationModel.IResourceBuilder builder, string name) where T : Azure.AzureBicepResource { throw null; } } @@ -125,6 +125,7 @@ public static ApplicationModel.IResourceBuilder ClearDefaultRoleAssignments PublishAsConnectionString(this ApplicationModel.IResourceBuilder builder) where T : ApplicationModel.IAzureResource, ApplicationModel.IResourceWithConnectionString { throw null; } @@ -136,6 +137,30 @@ public static partial class ExistingAzureResourceExtensions public static ApplicationModel.IResourceBuilder AsExisting(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder nameParameter, ApplicationModel.IResourceBuilder? resourceGroupParameter) where T : ApplicationModel.IAzureResource { throw null; } + [AspireExportIgnore(Reason = "Use the polyglot asExistingInResourceGroup overload that accepts string or ParameterResource values instead.")] + public static ApplicationModel.IResourceBuilder AsExistingInResourceGroup(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder nameParameter, ApplicationModel.IResourceBuilder resourceGroupParameter, ApplicationModel.IResourceBuilder subscriptionParameter) + where T : ApplicationModel.IAzureResource { throw null; } + + [AspireExportIgnore(Reason = "Use the polyglot asExistingInResourceGroup overload that accepts string or ParameterResource values instead.")] + public static ApplicationModel.IResourceBuilder AsExistingInResourceGroup(this ApplicationModel.IResourceBuilder builder, string name, string resourceGroup, string subscription) + where T : ApplicationModel.IAzureResource { throw null; } + + [AspireExportIgnore(Reason = "Use the polyglot asExistingInSubscription overload that accepts string or ParameterResource values instead.")] + public static ApplicationModel.IResourceBuilder AsExistingInSubscription(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder nameParameter, ApplicationModel.IResourceBuilder subscriptionParameter) + where T : ApplicationModel.IAzureResource { throw null; } + + [AspireExportIgnore(Reason = "Use the polyglot asExistingInSubscription overload that accepts string or ParameterResource values instead.")] + public static ApplicationModel.IResourceBuilder AsExistingInSubscription(this ApplicationModel.IResourceBuilder builder, string name, string subscription) + where T : ApplicationModel.IAzureResource { throw null; } + + [AspireExportIgnore(Reason = "Use the polyglot asExistingInTenant overload that accepts string or ParameterResource values instead.")] + public static ApplicationModel.IResourceBuilder AsExistingInTenant(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder nameParameter) + where T : ApplicationModel.IAzureResource { throw null; } + + [AspireExportIgnore(Reason = "Use the polyglot asExistingInTenant overload that accepts string or ParameterResource values instead.")] + public static ApplicationModel.IResourceBuilder AsExistingInTenant(this ApplicationModel.IResourceBuilder builder, string name) + where T : ApplicationModel.IAzureResource { throw null; } + [AspireExportIgnore(Reason = "Use the Azure resource-specific polyglot export instead.")] public static bool IsExisting(this ApplicationModel.IResource resource) { throw null; } @@ -147,6 +172,30 @@ public static ApplicationModel.IResourceBuilder PublishAsExisting(this App public static ApplicationModel.IResourceBuilder PublishAsExisting(this ApplicationModel.IResourceBuilder builder, string name, string? resourceGroup) where T : ApplicationModel.IAzureResource { throw null; } + [AspireExportIgnore(Reason = "Use the polyglot publishAsExistingInResourceGroup overload that accepts string or ParameterResource values instead.")] + public static ApplicationModel.IResourceBuilder PublishAsExistingInResourceGroup(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder nameParameter, ApplicationModel.IResourceBuilder resourceGroupParameter, ApplicationModel.IResourceBuilder subscriptionParameter) + where T : ApplicationModel.IAzureResource { throw null; } + + [AspireExportIgnore(Reason = "Use the polyglot publishAsExistingInResourceGroup overload that accepts string or ParameterResource values instead.")] + public static ApplicationModel.IResourceBuilder PublishAsExistingInResourceGroup(this ApplicationModel.IResourceBuilder builder, string name, string resourceGroup, string subscription) + where T : ApplicationModel.IAzureResource { throw null; } + + [AspireExportIgnore(Reason = "Use the polyglot publishAsExistingInSubscription overload that accepts string or ParameterResource values instead.")] + public static ApplicationModel.IResourceBuilder PublishAsExistingInSubscription(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder nameParameter, ApplicationModel.IResourceBuilder subscriptionParameter) + where T : ApplicationModel.IAzureResource { throw null; } + + [AspireExportIgnore(Reason = "Use the polyglot publishAsExistingInSubscription overload that accepts string or ParameterResource values instead.")] + public static ApplicationModel.IResourceBuilder PublishAsExistingInSubscription(this ApplicationModel.IResourceBuilder builder, string name, string subscription) + where T : ApplicationModel.IAzureResource { throw null; } + + [AspireExportIgnore(Reason = "Use the polyglot publishAsExistingInTenant overload that accepts string or ParameterResource values instead.")] + public static ApplicationModel.IResourceBuilder PublishAsExistingInTenant(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder nameParameter) + where T : ApplicationModel.IAzureResource { throw null; } + + [AspireExportIgnore(Reason = "Use the polyglot publishAsExistingInTenant overload that accepts string or ParameterResource values instead.")] + public static ApplicationModel.IResourceBuilder PublishAsExistingInTenant(this ApplicationModel.IResourceBuilder builder, string name) + where T : ApplicationModel.IAzureResource { throw null; } + [AspireExportIgnore(Reason = "Use the polyglot runAsExisting overload that accepts string or ParameterResource values instead.")] public static ApplicationModel.IResourceBuilder RunAsExisting(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder nameParameter, ApplicationModel.IResourceBuilder? resourceGroupParameter) where T : ApplicationModel.IAzureResource { throw null; } @@ -154,6 +203,30 @@ public static ApplicationModel.IResourceBuilder RunAsExisting(this Applica [AspireExportIgnore(Reason = "Use the polyglot runAsExisting overload that accepts string or ParameterResource values instead.")] public static ApplicationModel.IResourceBuilder RunAsExisting(this ApplicationModel.IResourceBuilder builder, string name, string? resourceGroup) where T : ApplicationModel.IAzureResource { throw null; } + + [AspireExportIgnore(Reason = "Use the polyglot runAsExistingInResourceGroup overload that accepts string or ParameterResource values instead.")] + public static ApplicationModel.IResourceBuilder RunAsExistingInResourceGroup(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder nameParameter, ApplicationModel.IResourceBuilder resourceGroupParameter, ApplicationModel.IResourceBuilder subscriptionParameter) + where T : ApplicationModel.IAzureResource { throw null; } + + [AspireExportIgnore(Reason = "Use the polyglot runAsExistingInResourceGroup overload that accepts string or ParameterResource values instead.")] + public static ApplicationModel.IResourceBuilder RunAsExistingInResourceGroup(this ApplicationModel.IResourceBuilder builder, string name, string resourceGroup, string subscription) + where T : ApplicationModel.IAzureResource { throw null; } + + [AspireExportIgnore(Reason = "Use the polyglot runAsExistingInSubscription overload that accepts string or ParameterResource values instead.")] + public static ApplicationModel.IResourceBuilder RunAsExistingInSubscription(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder nameParameter, ApplicationModel.IResourceBuilder subscriptionParameter) + where T : ApplicationModel.IAzureResource { throw null; } + + [AspireExportIgnore(Reason = "Use the polyglot runAsExistingInSubscription overload that accepts string or ParameterResource values instead.")] + public static ApplicationModel.IResourceBuilder RunAsExistingInSubscription(this ApplicationModel.IResourceBuilder builder, string name, string subscription) + where T : ApplicationModel.IAzureResource { throw null; } + + [AspireExportIgnore(Reason = "Use the polyglot runAsExistingInTenant overload that accepts string or ParameterResource values instead.")] + public static ApplicationModel.IResourceBuilder RunAsExistingInTenant(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder nameParameter) + where T : ApplicationModel.IAzureResource { throw null; } + + [AspireExportIgnore(Reason = "Use the polyglot runAsExistingInTenant overload that accepts string or ParameterResource values instead.")] + public static ApplicationModel.IResourceBuilder RunAsExistingInTenant(this ApplicationModel.IResourceBuilder builder, string name) + where T : ApplicationModel.IAzureResource { throw null; } } } @@ -231,9 +304,17 @@ public AzureBicepResourceScope(object resourceGroup, object subscription) { } public AzureBicepResourceScope(object resourceGroup) { } + public bool HasResourceGroup { get { throw null; } } + + public bool IsTenantScope { get { throw null; } } + public object ResourceGroup { get { throw null; } } public object? Subscription { get { throw null; } } + + public static AzureBicepResourceScope CreateForSubscription(object subscription) { throw null; } + + public static AzureBicepResourceScope CreateForTenant() { throw null; } } [System.Diagnostics.CodeAnalysis.Experimental("ASPIREAZURE001", UrlFormat = "https://aka.ms/aspire/diagnostics#{0}")] @@ -334,9 +415,13 @@ public AzureRoleAssignmentResource(string name, AzureProvisioningResource target public static partial class AzureSubnetServiceDelegations { + [AspireValue("AzureSubnetServiceDelegations")] public const string ApplicationGatewayForContainers = "Microsoft.ServiceNetworking/trafficControllers"; + [AspireValue("AzureSubnetServiceDelegations")] public const string AppServiceEnvironments = "Microsoft.Web/serverFarms"; + [AspireValue("AzureSubnetServiceDelegations")] public const string ContainerAppEnvironments = "Microsoft.App/environments"; + [AspireValue("AzureSubnetServiceDelegations")] public const string ContainerInstances = "Microsoft.ContainerInstance/containerGroups"; } @@ -442,11 +527,17 @@ public DeploymentPrerequisitesAnnotation(System.Collections.Generic.IReadOnlySet public sealed partial class ExistingAzureResourceAnnotation : ApplicationModel.IResourceAnnotation { + public ExistingAzureResourceAnnotation(object name, object? resourceGroup, object subscription) { } + public ExistingAzureResourceAnnotation(object name, object? resourceGroup = null) { } + public bool IsTenantScope { get { throw null; } } + public object Name { get { throw null; } } public object? ResourceGroup { get { throw null; } } + + public object? Subscription { get { throw null; } } } public partial interface IAddRoleAssignmentsContext diff --git a/src/Aspire.Hosting.Blazor/api/Aspire.Hosting.Blazor.cs b/src/Aspire.Hosting.Blazor/api/Aspire.Hosting.Blazor.cs index 8cf802af91f..6be5bb2dd21 100644 --- a/src/Aspire.Hosting.Blazor/api/Aspire.Hosting.Blazor.cs +++ b/src/Aspire.Hosting.Blazor/api/Aspire.Hosting.Blazor.cs @@ -21,8 +21,19 @@ public static partial class BlazorGatewayExtensions public static ApplicationModel.IResourceBuilder AddBlazorWasmProject(this IDistributedApplicationBuilder builder, string name) where TProject : IProjectMetadata, new() { throw null; } + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREDOTNETPROJECT001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + [AspireExport] + public static ApplicationModel.IResourceBuilder AddDotnetProjectBlazorGateway(this IDistributedApplicationBuilder builder, string name) { throw null; } + [AspireExport] public static ApplicationModel.IResourceBuilder WithBlazorClientApp(this ApplicationModel.IResourceBuilder gateway, ApplicationModel.IResourceBuilder wasmApp, string apiPrefix = "_api", string otlpPrefix = "_otlp", bool proxyTelemetry = true) { throw null; } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREDOTNETPROJECT001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + [AspireExport("withDotnetProjectBlazorClientApp", MethodName = "withBlazorClientApp")] + public static ApplicationModel.IResourceBuilder WithBlazorClientApp(this ApplicationModel.IResourceBuilder gateway, ApplicationModel.IResourceBuilder wasmApp, string apiPrefix = "_api", string otlpPrefix = "_otlp", bool proxyTelemetry = true) { throw null; } + + [AspireExport] + public static ApplicationModel.IResourceBuilder WithBlazorDebuggerBrowser(this ApplicationModel.IResourceBuilder wasmApp, string browser = "msedge") { throw null; } } [System.Diagnostics.CodeAnalysis.Experimental("ASPIREBLAZOR001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] @@ -33,6 +44,9 @@ public static partial class BlazorHostedExtensions [AspireExportIgnore(Reason = "Blazor hosted APIs are not yet stable for ATS export.")] public static ApplicationModel.IResourceBuilder ProxyBlazorTelemetry(this ApplicationModel.IResourceBuilder host, string otlpPrefix = "_otlp") { throw null; } + + [AspireExportIgnore(Reason = "Blazor hosted APIs are not yet stable for ATS export.")] + public static ApplicationModel.IResourceBuilder WithBlazorDebuggerBrowser(this ApplicationModel.IResourceBuilder host, string browser = "msedge") { throw null; } } [System.Diagnostics.CodeAnalysis.Experimental("ASPIREBLAZOR001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] @@ -41,6 +55,8 @@ public sealed partial class BlazorWasmAppResource : ApplicationModel.Resource, A { public BlazorWasmAppResource(string name, string projectPath) : base(default!) { } + public string DebuggerBrowser { get { throw null; } } + public ApplicationModel.IResource Parent { get { throw null; } } public string ProjectDirectory { get { throw null; } } diff --git a/src/Aspire.Hosting.DevTunnels/api/Aspire.Hosting.DevTunnels.cs b/src/Aspire.Hosting.DevTunnels/api/Aspire.Hosting.DevTunnels.cs index 1823b48e113..6ecd37c01b4 100644 --- a/src/Aspire.Hosting.DevTunnels/api/Aspire.Hosting.DevTunnels.cs +++ b/src/Aspire.Hosting.DevTunnels/api/Aspire.Hosting.DevTunnels.cs @@ -58,6 +58,8 @@ public sealed partial class DevTunnelOptions public string? Description { get { throw null; } set { } } public System.Collections.Generic.List? Labels { get { throw null; } set { } } + + public DevTunnelRegion? Region { get { throw null; } set { } } } public sealed partial class DevTunnelPortOptions @@ -80,6 +82,23 @@ public DevTunnelPortResource(string name, DevTunnelResource tunnel, ApplicationM public DevTunnelPortOptions Options { get { throw null; } } } + public enum DevTunnelRegion + { + WestEurope = 0, + UKSouth = 1, + NorthEurope = 2, + EastUs = 3, + EastUs2 = 4, + CentralIndia = 5, + WestUs3 = 6, + WestUs2 = 7, + SoutheastAsia = 8, + BrazilSouth = 9, + AustraliaCentral = 10, + AustraliaEast = 11, + JapanEast = 12 + } + [System.Diagnostics.DebuggerDisplay("Type = {GetType().Name,nq}, Name = {Name}, TunnelId = {TunnelId}")] public sealed partial class DevTunnelResource : ApplicationModel.ExecutableResource { diff --git a/src/Aspire.Hosting.Docker/api/Aspire.Hosting.Docker.cs b/src/Aspire.Hosting.Docker/api/Aspire.Hosting.Docker.cs index 85a7a249f1c..57dd06918e9 100644 --- a/src/Aspire.Hosting.Docker/api/Aspire.Hosting.Docker.cs +++ b/src/Aspire.Hosting.Docker/api/Aspire.Hosting.Docker.cs @@ -40,13 +40,13 @@ public static partial class DockerComposeEnvironmentExtensions public static partial class DockerComposeServiceExtensions { - [AspireExportIgnore(Reason = "IManifestExpressionProvider parameters are not ATS-compatible. Use the parameter-builder overload in polyglot app hosts.")] + [AspireExportIgnore(Reason = "IManifestExpressionProvider parameters are not ATS-compatible. Use the parameter-builder overload in polyglot AppHosts.")] public static string AsEnvironmentPlaceholder(this ApplicationModel.IManifestExpressionProvider manifestExpressionProvider, Docker.DockerComposeServiceResource dockerComposeService) { throw null; } [AspireExport] public static string AsEnvironmentPlaceholder(this ApplicationModel.IResourceBuilder builder, Docker.DockerComposeServiceResource dockerComposeService) { throw null; } - [AspireExportIgnore(Reason = "Prefer the builder or IManifestExpressionProvider overloads in polyglot app hosts to avoid duplicate asEnvironmentPlaceholder projections on ParameterResource.")] + [AspireExportIgnore(Reason = "Prefer the builder or IManifestExpressionProvider overloads in polyglot AppHosts to avoid duplicate asEnvironmentPlaceholder projections on ParameterResource.")] public static string AsEnvironmentPlaceholder(this ApplicationModel.ParameterResource parameter, Docker.DockerComposeServiceResource dockerComposeService) { throw null; } [AspireExport] @@ -85,7 +85,7 @@ public DockerComposeAspireDashboardResource(string name) : base(default!, defaul } [AspireExport(ExposeProperties = true, ExposeMethods = true)] - public partial class DockerComposeEnvironmentResource : ApplicationModel.Resource, ApplicationModel.IComputeEnvironmentResource, ApplicationModel.IResource + public partial class DockerComposeEnvironmentResource : ApplicationModel.Resource, ApplicationModel.IComputeEnvironmentResource, ApplicationModel.IResource, ApplicationModel.IComputeEnvironmentWithVolumeMounts { public DockerComposeEnvironmentResource(string name) : base(default!) { } @@ -650,4 +650,4 @@ public sealed partial class UpdateConfig [YamlDotNet.Serialization.YamlMember(Alias = "parallelism")] public int? Parallelism { get { throw null; } set { } } } -} +} \ No newline at end of file diff --git a/src/Aspire.Hosting.Dotnet/api/Aspire.Hosting.Dotnet.cs b/src/Aspire.Hosting.Dotnet/api/Aspire.Hosting.Dotnet.cs new file mode 100644 index 00000000000..1b505c2be2f --- /dev/null +++ b/src/Aspire.Hosting.Dotnet/api/Aspire.Hosting.Dotnet.cs @@ -0,0 +1,31 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ +namespace Aspire.Hosting +{ + public static partial class DotnetProjectHostingExtensions + { + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREDOTNETPROJECT001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addDotnetProject dispatcher export.")] + public static ApplicationModel.IResourceBuilder AddDotnetProject(this IDistributedApplicationBuilder builder, string name, string path, System.Action configure) { throw null; } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREDOTNETPROJECT001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addDotnetProject dispatcher export.")] + public static ApplicationModel.IResourceBuilder AddDotnetProject(this IDistributedApplicationBuilder builder, string name, string path) { throw null; } + } +} + +namespace Aspire.Hosting.Dotnet +{ + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREDOTNETPROJECT001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + [AspireExport(ExposeProperties = true)] + public partial class DotnetProjectResource : ApplicationModel.ExecutableResource, IResourceWithServiceDiscovery, ApplicationModel.IResourceWithEndpoints, ApplicationModel.IResource + { + public DotnetProjectResource(string name, string workingDirectory) : base(default!, default!, default!) { } + } +} \ No newline at end of file diff --git a/src/Aspire.Hosting.EntityFrameworkCore/api/Aspire.Hosting.EntityFrameworkCore.cs b/src/Aspire.Hosting.EntityFrameworkCore/api/Aspire.Hosting.EntityFrameworkCore.cs index 6690fe7a8e2..3c0c22d8595 100644 --- a/src/Aspire.Hosting.EntityFrameworkCore/api/Aspire.Hosting.EntityFrameworkCore.cs +++ b/src/Aspire.Hosting.EntityFrameworkCore/api/Aspire.Hosting.EntityFrameworkCore.cs @@ -25,10 +25,10 @@ public static partial class EFMigrationResourceBuilderExtensions [AspireExport] public static ApplicationModel.IResourceBuilder WithMigrationOutputDirectory(this ApplicationModel.IResourceBuilder builder, string outputDirectory) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withMigrationsProject dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withMigrationsProject dispatcher export.")] public static ApplicationModel.IResourceBuilder WithMigrationsProject(this ApplicationModel.IResourceBuilder builder, string projectPath) { throw null; } - [AspireExportIgnore(Reason = "Uses IProjectMetadata generic constraint which is a .NET-specific type. Polyglot app hosts use the internal withMigrationsProject dispatcher export.")] + [AspireExportIgnore(Reason = "Uses IProjectMetadata generic constraint which is a .NET-specific type. Polyglot AppHosts use the internal withMigrationsProject dispatcher export.")] public static ApplicationModel.IResourceBuilder WithMigrationsProject(this ApplicationModel.IResourceBuilder builder) where TProject : IProjectMetadata, new() { throw null; } } @@ -41,10 +41,10 @@ public static partial class EFResourceBuilderExtensions [AspireExportIgnore(Reason = "Action> callbacks are not ATS-compatible.")] public static ApplicationModel.IResourceBuilder AddEFMigrations(this ApplicationModel.IResourceBuilder builder, string name, string dbContextTypeName, System.Action>? configureToolResource) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal addEFMigrations dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addEFMigrations dispatcher export.")] public static ApplicationModel.IResourceBuilder AddEFMigrations(this ApplicationModel.IResourceBuilder builder, string name, string dbContextTypeName) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal addEFMigrations dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addEFMigrations dispatcher export.")] public static ApplicationModel.IResourceBuilder AddEFMigrations(this ApplicationModel.IResourceBuilder builder, string name) { throw null; } } } diff --git a/src/Aspire.Hosting.Foundry/api/Aspire.Hosting.Foundry.cs b/src/Aspire.Hosting.Foundry/api/Aspire.Hosting.Foundry.cs index 5c410ca70c3..9f91fd59fa2 100644 --- a/src/Aspire.Hosting.Foundry/api/Aspire.Hosting.Foundry.cs +++ b/src/Aspire.Hosting.Foundry/api/Aspire.Hosting.Foundry.cs @@ -52,10 +52,10 @@ public static partial class AzureCognitiveServicesProjectExtensions [AspireExportIgnore(Reason = "CapabilityHostBuilder is not ATS-compatible.")] public static Foundry.CapabilityHostBuilder AddCapabilityHost(this ApplicationModel.IResourceBuilder builder, string name) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal addModelDeployment dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addModelDeployment dispatcher export.")] public static ApplicationModel.IResourceBuilder AddModelDeployment(this ApplicationModel.IResourceBuilder builder, string name, Foundry.FoundryModel model) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal addModelDeployment dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addModelDeployment dispatcher export.")] public static ApplicationModel.IResourceBuilder AddModelDeployment(this ApplicationModel.IResourceBuilder builder, string name, string modelName, string modelVersion, string format) { throw null; } [AspireExport] @@ -74,10 +74,10 @@ public static ApplicationModel.IResourceBuilder WithReference AddDeployment(this ApplicationModel.IResourceBuilder builder, string name, Foundry.FoundryModel model) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal addDeployment dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addDeployment dispatcher export.")] public static ApplicationModel.IResourceBuilder AddDeployment(this ApplicationModel.IResourceBuilder builder, string name, string modelName, string modelVersion, string format) { throw null; } [AspireExport] @@ -97,9 +97,21 @@ public static ApplicationModel.IResourceBuilder WithRoleAssignments(this A public static partial class HostedAgentResourceBuilderExtensions { [AspireExportIgnore(Reason = "Action callback shape is awkward for polyglot hosts; the HostedAgentOptions DTO shape is exported instead.")] + public static ApplicationModel.IResourceBuilder AsHostedAgent(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder? project, Foundry.HostedAgentProtocol protocol, string protocolVersion, System.Action? configure = null) + where T : ApplicationModel.IResourceWithEndpoints, ApplicationModel.IResourceWithEnvironment, ApplicationModel.IComputeResource { throw null; } + + [AspireExportIgnore(Reason = "Action callback shape is awkward for polyglot hosts; the defaulted asHostedAgent export covers this case.")] public static ApplicationModel.IResourceBuilder AsHostedAgent(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder? project, System.Action? configure = null) where T : ApplicationModel.IResourceWithEndpoints, ApplicationModel.IResourceWithEnvironment, ApplicationModel.IComputeResource { throw null; } + [AspireExportIgnore(Reason = "Subset of the full AsHostedAgent overload.")] + public static ApplicationModel.IResourceBuilder AsHostedAgent(this ApplicationModel.IResourceBuilder builder, Foundry.HostedAgentProtocol protocol, string protocolVersion, System.Action configure) + where T : ApplicationModel.IResourceWithEndpoints, ApplicationModel.IResourceWithEnvironment, ApplicationModel.IComputeResource { throw null; } + + [AspireExportIgnore(Reason = "Subset of the full AsHostedAgent(project) overload which is exported.")] + public static ApplicationModel.IResourceBuilder AsHostedAgent(this ApplicationModel.IResourceBuilder builder, Foundry.HostedAgentProtocol protocol, string protocolVersion) + where T : ApplicationModel.IResourceWithEndpoints, ApplicationModel.IResourceWithEnvironment, ApplicationModel.IComputeResource { throw null; } + [AspireExportIgnore(Reason = "Subset of the full AsHostedAgent overload.")] public static ApplicationModel.IResourceBuilder AsHostedAgent(this ApplicationModel.IResourceBuilder builder, System.Action configure) where T : ApplicationModel.IResourceWithEndpoints, ApplicationModel.IResourceWithEnvironment, ApplicationModel.IComputeResource { throw null; } @@ -443,12 +455,14 @@ public partial class FoundryModel public static partial class Anthropic { + [AspireValue("FoundryModels")] + public static readonly FoundryModel ClaudeFable5; [AspireValue("FoundryModels")] public static readonly FoundryModel ClaudeHaiku45; [AspireValue("FoundryModels")] - public static readonly FoundryModel ClaudeMythosPreview; + public static readonly FoundryModel ClaudeMythos5; [AspireValue("FoundryModels")] - public static readonly FoundryModel ClaudeOpus41; + public static readonly FoundryModel ClaudeMythosPreview; [AspireValue("FoundryModels")] public static readonly FoundryModel ClaudeOpus45; [AspireValue("FoundryModels")] @@ -456,9 +470,15 @@ public static partial class Anthropic [AspireValue("FoundryModels")] public static readonly FoundryModel ClaudeOpus47; [AspireValue("FoundryModels")] + public static readonly FoundryModel ClaudeOpus48; + [AspireValue("FoundryModels")] + public static readonly FoundryModel ClaudeOpus5; + [AspireValue("FoundryModels")] public static readonly FoundryModel ClaudeSonnet45; [AspireValue("FoundryModels")] public static readonly FoundryModel ClaudeSonnet46; + [AspireValue("FoundryModels")] + public static readonly FoundryModel ClaudeSonnet5; } public static partial class BlackForestLabs @@ -478,9 +498,7 @@ public static partial class Cohere [AspireValue("FoundryModels")] public static readonly FoundryModel CohereCommandA; [AspireValue("FoundryModels")] - public static readonly FoundryModel CohereCommandR082024; - [AspireValue("FoundryModels")] - public static readonly FoundryModel CohereCommandRPlus082024; + public static readonly FoundryModel CohereCommandAPlus052026; [AspireValue("FoundryModels")] public static readonly FoundryModel CohereEmbedV3English; [AspireValue("FoundryModels")] @@ -493,13 +511,6 @@ public static partial class Cohere public static readonly FoundryModel EmbedV40; } - public static partial class Core42 - { - [System.Obsolete("This model is no longer available.")] - [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] - public static readonly FoundryModel Jais30bChat; - } - public static partial class DeepSeek { [AspireValue("FoundryModels")] @@ -507,16 +518,14 @@ public static partial class DeepSeek [AspireValue("FoundryModels")] public static readonly FoundryModel DeepSeekR10528; [AspireValue("FoundryModels")] - public static readonly FoundryModel DeepSeekV3; - [AspireValue("FoundryModels")] - public static readonly FoundryModel DeepSeekV30324; - [AspireValue("FoundryModels")] public static readonly FoundryModel DeepSeekV32; [AspireValue("FoundryModels")] public static readonly FoundryModel DeepSeekV32Speciale; [AspireValue("FoundryModels")] public static readonly FoundryModel DeepSeekV4Flash; [AspireValue("FoundryModels")] + public static readonly FoundryModel DeepSeekV4Flash0731; + [AspireValue("FoundryModels")] public static readonly FoundryModel DeepSeekV4Pro; } @@ -529,18 +538,26 @@ public static partial class Local [AspireValue("FoundryModels")] public static readonly FoundryModel DeepseekR17b; [AspireValue("FoundryModels")] + public static readonly FoundryModel Gemma4E2bIt; + [AspireValue("FoundryModels")] public static readonly FoundryModel GptOss20b; [AspireValue("FoundryModels")] + public static readonly FoundryModel Ministral33bInstruct2512; + [AspireValue("FoundryModels")] public static readonly FoundryModel Mistral7bV02; [AspireValue("FoundryModels")] public static readonly FoundryModel MistralNemo12bInstruct; [AspireValue("FoundryModels")] + public static readonly FoundryModel Nemotron35AsrStreaming06b; + [AspireValue("FoundryModels")] public static readonly FoundryModel NemotronSpeechStreamingEn06b; [AspireValue("FoundryModels")] public static readonly FoundryModel NemotronSpeechStreamingEs06b; [AspireValue("FoundryModels")] public static readonly FoundryModel Olmo37bInstruct; [AspireValue("FoundryModels")] + public static readonly FoundryModel ParakeetTdt06bV2; + [AspireValue("FoundryModels")] public static readonly FoundryModel Phi35Mini; [AspireValue("FoundryModels")] public static readonly FoundryModel Phi3Mini128k; @@ -558,9 +575,6 @@ public static partial class Local public static readonly FoundryModel Qwen2514b; [AspireValue("FoundryModels")] public static readonly FoundryModel Qwen2515b; - [System.Obsolete("This test variant is no longer available. Use Qwen2515b instead.")] - [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] - public static readonly FoundryModel Qwen2515bInstructTestVitisNpu; [AspireValue("FoundryModels")] public static readonly FoundryModel Qwen257b; [AspireValue("FoundryModels")] @@ -570,6 +584,8 @@ public static partial class Local [AspireValue("FoundryModels")] public static readonly FoundryModel Qwen25Coder15b; [AspireValue("FoundryModels")] + public static readonly FoundryModel Qwen25Coder3b; + [AspireValue("FoundryModels")] public static readonly FoundryModel Qwen25Coder7b; [AspireValue("FoundryModels")] public static readonly FoundryModel Qwen306b; @@ -612,6 +628,8 @@ public static partial class Meta [AspireValue("FoundryModels")] public static readonly FoundryModel Llama3290BVisionInstruct; [AspireValue("FoundryModels")] + public static readonly FoundryModel Llama3370BInstruct; + [AspireValue("FoundryModels")] public static readonly FoundryModel Llama4Maverick17B128EInstructFP8; [AspireValue("FoundryModels")] public static readonly FoundryModel Llama4Scout17B16EInstruct; @@ -629,12 +647,6 @@ public static partial class Microsoft public static readonly FoundryModel AzureAIContentUnderstanding; [AspireValue("FoundryModels")] public static readonly FoundryModel AzureAIDocumentIntelligence; - [System.Obsolete("Azure AI Language has been replaced with more granular services. Use AzureLanguageLanguageDetection, AzureLanguageTextPiiRedaction, or other specific services instead.")] - [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] - public static readonly FoundryModel AzureAILanguage; - [System.Obsolete("Azure AI Translator has been replaced with more granular services. Use AzureTranslatorTextTranslation or AzureTranslatorDocumentTranslation instead.")] - [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] - public static readonly FoundryModel AzureAITranslator; [AspireValue("FoundryModels")] public static readonly FoundryModel AzureAIVision; [AspireValue("FoundryModels")] @@ -665,33 +677,18 @@ public static partial class Microsoft public static readonly FoundryModel AzureTranslatorDocumentTranslation; [AspireValue("FoundryModels")] public static readonly FoundryModel AzureTranslatorTextTranslation; - [System.Obsolete("Use AzureLanguageLanguageDetection instead.")] - [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] - public static readonly FoundryModel LanguageDetection; - [AspireValue("FoundryModels")] - public static readonly FoundryModel MaiDSR1; [AspireValue("FoundryModels")] public static readonly FoundryModel MaiTranscribe1; [AspireValue("FoundryModels")] - public static readonly FoundryModel MaiVoice1; + public static readonly FoundryModel MaiTranscribe15; [AspireValue("FoundryModels")] - public static readonly FoundryModel ModelRouter; - [AspireValue("FoundryModels")] - public static readonly FoundryModel Phi35MiniInstruct; - [AspireValue("FoundryModels")] - public static readonly FoundryModel Phi35MoEInstruct; - [AspireValue("FoundryModels")] - public static readonly FoundryModel Phi35VisionInstruct; - [AspireValue("FoundryModels")] - public static readonly FoundryModel Phi3Medium128kInstruct; - [AspireValue("FoundryModels")] - public static readonly FoundryModel Phi3Medium4kInstruct; + public static readonly FoundryModel MaiVoice1; [AspireValue("FoundryModels")] - public static readonly FoundryModel Phi3Mini128kInstruct; + public static readonly FoundryModel MaiVoice2; [AspireValue("FoundryModels")] - public static readonly FoundryModel Phi3Mini4kInstruct; + public static readonly FoundryModel MaiVoice2Flash; [AspireValue("FoundryModels")] - public static readonly FoundryModel Phi3Small128kInstruct; + public static readonly FoundryModel ModelRouter; [AspireValue("FoundryModels")] public static readonly FoundryModel Phi3Small8kInstruct; [AspireValue("FoundryModels")] @@ -706,9 +703,6 @@ public static partial class Microsoft public static readonly FoundryModel Phi4MultimodalInstruct; [AspireValue("FoundryModels")] public static readonly FoundryModel Phi4Reasoning; - [System.Obsolete("Use AzureLanguageTextPiiRedaction instead.")] - [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] - public static readonly FoundryModel TextPii; } public static partial class MistralAI @@ -718,14 +712,16 @@ public static partial class MistralAI [AspireValue("FoundryModels")] public static readonly FoundryModel Ministral3B; [AspireValue("FoundryModels")] - public static readonly FoundryModel MistralDocumentAi2505; - [AspireValue("FoundryModels")] public static readonly FoundryModel MistralDocumentAi2512; [AspireValue("FoundryModels")] public static readonly FoundryModel MistralLarge3; [AspireValue("FoundryModels")] public static readonly FoundryModel MistralMedium2505; [AspireValue("FoundryModels")] + public static readonly FoundryModel MistralMedium35; + [AspireValue("FoundryModels")] + public static readonly FoundryModel MistralOcr40; + [AspireValue("FoundryModels")] public static readonly FoundryModel MistralSmall2503; } @@ -736,44 +732,20 @@ public static partial class OpenAI [AspireValue("FoundryModels")] public static readonly FoundryModel ComputerUsePreview; [AspireValue("FoundryModels")] - public static readonly FoundryModel DallE3; - [AspireValue("FoundryModels")] - public static readonly FoundryModel Davinci002; - [AspireValue("FoundryModels")] - public static readonly FoundryModel Gpt35Turbo; - [AspireValue("FoundryModels")] - public static readonly FoundryModel Gpt35Turbo16k; - [AspireValue("FoundryModels")] - public static readonly FoundryModel Gpt35TurboInstruct; - [AspireValue("FoundryModels")] - public static readonly FoundryModel Gpt4; - [AspireValue("FoundryModels")] public static readonly FoundryModel Gpt41; [AspireValue("FoundryModels")] public static readonly FoundryModel Gpt41Mini; [AspireValue("FoundryModels")] public static readonly FoundryModel Gpt41Nano; [AspireValue("FoundryModels")] - public static readonly FoundryModel Gpt432k; - [AspireValue("FoundryModels")] - public static readonly FoundryModel Gpt45Preview; - [AspireValue("FoundryModels")] public static readonly FoundryModel Gpt4o; [AspireValue("FoundryModels")] - public static readonly FoundryModel Gpt4oAudioPreview; - [AspireValue("FoundryModels")] public static readonly FoundryModel Gpt4oMini; [AspireValue("FoundryModels")] - public static readonly FoundryModel Gpt4oMiniAudioPreview; - [AspireValue("FoundryModels")] - public static readonly FoundryModel Gpt4oMiniRealtimePreview; - [AspireValue("FoundryModels")] public static readonly FoundryModel Gpt4oMiniTranscribe; [AspireValue("FoundryModels")] public static readonly FoundryModel Gpt4oMiniTts; [AspireValue("FoundryModels")] - public static readonly FoundryModel Gpt4oRealtimePreview; - [AspireValue("FoundryModels")] public static readonly FoundryModel Gpt4oTranscribe; [AspireValue("FoundryModels")] public static readonly FoundryModel Gpt4oTranscribeDiarize; @@ -782,8 +754,6 @@ public static partial class OpenAI [AspireValue("FoundryModels")] public static readonly FoundryModel Gpt51; [AspireValue("FoundryModels")] - public static readonly FoundryModel Gpt51Chat; - [AspireValue("FoundryModels")] public static readonly FoundryModel Gpt51Codex; [AspireValue("FoundryModels")] public static readonly FoundryModel Gpt51CodexMax; @@ -792,12 +762,8 @@ public static partial class OpenAI [AspireValue("FoundryModels")] public static readonly FoundryModel Gpt52; [AspireValue("FoundryModels")] - public static readonly FoundryModel Gpt52Chat; - [AspireValue("FoundryModels")] public static readonly FoundryModel Gpt52Codex; [AspireValue("FoundryModels")] - public static readonly FoundryModel Gpt53Chat; - [AspireValue("FoundryModels")] public static readonly FoundryModel Gpt53Codex; [AspireValue("FoundryModels")] public static readonly FoundryModel Gpt54; @@ -810,7 +776,11 @@ public static partial class OpenAI [AspireValue("FoundryModels")] public static readonly FoundryModel Gpt55; [AspireValue("FoundryModels")] - public static readonly FoundryModel Gpt5Chat; + public static readonly FoundryModel Gpt56Luna; + [AspireValue("FoundryModels")] + public static readonly FoundryModel Gpt56Sol; + [AspireValue("FoundryModels")] + public static readonly FoundryModel Gpt56Terra; [AspireValue("FoundryModels")] public static readonly FoundryModel Gpt5Codex; [AspireValue("FoundryModels")] @@ -828,33 +798,37 @@ public static partial class OpenAI [AspireValue("FoundryModels")] public static readonly FoundryModel GptChatLatest; [AspireValue("FoundryModels")] - public static readonly FoundryModel GptImage1; - [AspireValue("FoundryModels")] public static readonly FoundryModel GptImage15; [AspireValue("FoundryModels")] public static readonly FoundryModel GptImage1Mini; [AspireValue("FoundryModels")] public static readonly FoundryModel GptImage2; [AspireValue("FoundryModels")] + public static readonly FoundryModel GptLiveTranscribe; + [AspireValue("FoundryModels")] public static readonly FoundryModel GptOss120b; [AspireValue("FoundryModels")] + public static readonly FoundryModel GptOss20b; + [AspireValue("FoundryModels")] public static readonly FoundryModel GptRealtime; [AspireValue("FoundryModels")] public static readonly FoundryModel GptRealtime15; [AspireValue("FoundryModels")] public static readonly FoundryModel GptRealtime2; [AspireValue("FoundryModels")] + public static readonly FoundryModel GptRealtime21; + [AspireValue("FoundryModels")] + public static readonly FoundryModel GptRealtime21Mini; + [AspireValue("FoundryModels")] public static readonly FoundryModel GptRealtimeMini; [AspireValue("FoundryModels")] public static readonly FoundryModel GptRealtimeTranslate; [AspireValue("FoundryModels")] public static readonly FoundryModel GptRealtimeWhisper; [AspireValue("FoundryModels")] - public static readonly FoundryModel O1; - [AspireValue("FoundryModels")] - public static readonly FoundryModel O1Mini; + public static readonly FoundryModel GptTranscribe; [AspireValue("FoundryModels")] - public static readonly FoundryModel O1Preview; + public static readonly FoundryModel O1; [AspireValue("FoundryModels")] public static readonly FoundryModel O3; [AspireValue("FoundryModels")] @@ -866,8 +840,6 @@ public static partial class OpenAI [AspireValue("FoundryModels")] public static readonly FoundryModel O4Mini; [AspireValue("FoundryModels")] - public static readonly FoundryModel Sora; - [AspireValue("FoundryModels")] public static readonly FoundryModel TextEmbedding3Large; [AspireValue("FoundryModels")] public static readonly FoundryModel TextEmbedding3Small; @@ -906,10 +878,6 @@ public static partial class XAI [AspireValue("FoundryModels")] public static readonly FoundryModel Grok43; [AspireValue("FoundryModels")] - public static readonly FoundryModel Grok4FastNonReasoning; - [AspireValue("FoundryModels")] - public static readonly FoundryModel Grok4FastReasoning; - [AspireValue("FoundryModels")] public static readonly FoundryModel GrokCodeFast1; } } @@ -980,9 +948,6 @@ public partial class HostedAgentConfiguration { public HostedAgentConfiguration(string image) { } - [AspireExportIgnore(Reason = "Azure SDK-specific type not usable from polyglot hosts.")] - public System.Collections.Generic.IList ContainerProtocolVersions { get { throw null; } init { } } - [AspireExportIgnore(Reason = "Azure SDK-specific type not usable from polyglot hosts.")] public global::Azure.AI.Projects.Agents.ContentFilterConfiguration? ContentFilterConfiguration { get { throw null; } set { } } @@ -1005,10 +970,19 @@ public HostedAgentConfiguration(string image) { } public System.Collections.Generic.IDictionary Metadata { get { throw null; } init { } } + [AspireExportIgnore(Reason = "Azure SDK-specific type not usable from polyglot hosts.")] + public System.Collections.Generic.IList ProtocolVersions { get { throw null; } init { } } + [AspireExportIgnore(Reason = "Azure SDK-specific type not usable from polyglot hosts.")] public System.Collections.Generic.IList Tools { get { throw null; } init { } } } + public enum HostedAgentProtocol + { + Responses = 0, + Invocations = 1 + } + public partial interface IFoundryTool { System.Threading.Tasks.Task ToAgentToolAsync(System.Threading.CancellationToken cancellationToken = default); diff --git a/src/Aspire.Hosting.GitHub.Models/api/Aspire.Hosting.GitHub.Models.cs b/src/Aspire.Hosting.GitHub.Models/api/Aspire.Hosting.GitHub.Models.cs index b0719d64bf2..97265576d44 100644 --- a/src/Aspire.Hosting.GitHub.Models/api/Aspire.Hosting.GitHub.Models.cs +++ b/src/Aspire.Hosting.GitHub.Models/api/Aspire.Hosting.GitHub.Models.cs @@ -10,15 +10,19 @@ namespace Aspire.Hosting { public static partial class GitHubModelsExtensions { + [System.Obsolete("GitHub Models is no longer available to new customers, so the Aspire GitHub Models integration is deprecated and will be removed in a future release. See https://github.com/microsoft/aspire/issues/18402 for details.")] [AspireExportIgnore(Reason = "GitHubModel is a .NET-specific descriptor type not compatible with ATS. Use the GitHubModelName enum-based overload instead.")] public static ApplicationModel.IResourceBuilder AddGitHubModel(this IDistributedApplicationBuilder builder, string name, GitHub.GitHubModel model, ApplicationModel.IResourceBuilder? organization = null) { throw null; } + [System.Obsolete("GitHub Models is no longer available to new customers, so the Aspire GitHub Models integration is deprecated and will be removed in a future release. See https://github.com/microsoft/aspire/issues/18402 for details.")] [AspireExportIgnore(Reason = "The polyglot overload uses the GitHubModelName enum instead. See the internal AddGitHubModel(GitHubModelName) overload.")] public static ApplicationModel.IResourceBuilder AddGitHubModel(this IDistributedApplicationBuilder builder, string name, string model, ApplicationModel.IResourceBuilder? organization = null) { throw null; } + [System.Obsolete("GitHub Models is no longer available to new customers, so the Aspire GitHub Models integration is deprecated and will be removed in a future release. See https://github.com/microsoft/aspire/issues/18402 for details.")] [AspireExport] public static ApplicationModel.IResourceBuilder WithApiKey(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder apiKey) { throw null; } + [System.Obsolete("GitHub Models is no longer available to new customers, so the Aspire GitHub Models integration is deprecated and will be removed in a future release. See https://github.com/microsoft/aspire/issues/18402 for details.")] [AspireExport("enableHealthCheck")] public static ApplicationModel.IResourceBuilder WithHealthCheck(this ApplicationModel.IResourceBuilder builder) { throw null; } } @@ -26,6 +30,7 @@ public static partial class GitHubModelsExtensions namespace Aspire.Hosting.GitHub { + [System.Obsolete("GitHub Models is no longer available to new customers, so the Aspire GitHub Models integration is deprecated and will be removed in a future release. See https://github.com/microsoft/aspire/issues/18402 for details.")] public partial class GitHubModel { public required string Id { get { throw null; } init { } } @@ -131,6 +136,7 @@ public static partial class XAI namespace Aspire.Hosting.GitHub.Models { + [System.Obsolete("GitHub Models is no longer available to new customers, so the Aspire GitHub Models integration is deprecated and will be removed in a future release. See https://github.com/microsoft/aspire/issues/18402 for details.")] [System.Diagnostics.DebuggerDisplay("Type = {GetType().Name,nq}, Name = {Name}, Model = {Model}")] public partial class GitHubModelResource : ApplicationModel.Resource, ApplicationModel.IResourceWithConnectionString, ApplicationModel.IResource, ApplicationModel.IExpressionValue, ApplicationModel.IValueProvider, ApplicationModel.IManifestExpressionProvider, ApplicationModel.IValueWithReferences { diff --git a/src/Aspire.Hosting.Go/api/Aspire.Hosting.Go.cs b/src/Aspire.Hosting.Go/api/Aspire.Hosting.Go.cs index 3866b33624f..547837f29f5 100644 --- a/src/Aspire.Hosting.Go/api/Aspire.Hosting.Go.cs +++ b/src/Aspire.Hosting.Go/api/Aspire.Hosting.Go.cs @@ -18,9 +18,18 @@ public static ApplicationModel.IResourceBuilder WithAppArgs(this Applicati where T : Go.GoAppResource { throw null; } [AspireExport] + public static ApplicationModel.IResourceBuilder WithDelveServer(this ApplicationModel.IResourceBuilder builder, Go.DelveServerOptions? options = null) + where T : Go.GoAppResource { throw null; } + + [System.Obsolete("Use WithDelveServer() or WithDelveServer(DelveServerOptions) instead.")] + [AspireExportIgnore(Reason = "This obsolete compatibility overload is C#-only. Polyglot AppHosts use the DelveServerOptions overload.")] public static ApplicationModel.IResourceBuilder WithDelveServer(this ApplicationModel.IResourceBuilder builder, int port = 2345) where T : Go.GoAppResource { throw null; } + [AspireExportIgnore(Reason = "This C# convenience overload uses default options. Polyglot AppHosts use the DelveServerOptions overload.")] + public static ApplicationModel.IResourceBuilder WithDelveServer(this ApplicationModel.IResourceBuilder builder) + where T : Go.GoAppResource { throw null; } + [AspireExport] public static ApplicationModel.IResourceBuilder WithGoPrivate(this ApplicationModel.IResourceBuilder builder, string[] privatePatterns, string authHost, string usernameArgName = "GIT_USER", string tokenSecretId = "gittoken") where T : Go.GoAppResource { throw null; } @@ -45,6 +54,22 @@ public static ApplicationModel.IResourceBuilder WithVetTool(this Applicati namespace Aspire.Hosting.Go { + [AspireDto] + public sealed partial class DelveServerOptions + { + public bool AcceptMultiClient { get { throw null; } init { } } + + public bool ContinueOnStart { get { throw null; } init { } } + + public bool Log { get { throw null; } init { } } + + public string? LogOutput { get { throw null; } init { } } + + public bool? OnlySameUser { get { throw null; } init { } } + + public int Port { get { throw null; } init { } } + } + [AspireExport(ExposeProperties = true)] public partial class GoAppResource : ApplicationModel.ExecutableResource, IResourceWithServiceDiscovery, ApplicationModel.IResourceWithEndpoints, ApplicationModel.IResource, ApplicationModel.IContainerFilesDestinationResource { diff --git a/src/Aspire.Hosting.Java/api/Aspire.Hosting.Java.cs b/src/Aspire.Hosting.Java/api/Aspire.Hosting.Java.cs new file mode 100644 index 00000000000..150e246a49e --- /dev/null +++ b/src/Aspire.Hosting.Java/api/Aspire.Hosting.Java.cs @@ -0,0 +1,87 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ +namespace Aspire.Hosting +{ + public static partial class JavaHostingExtensions + { + [AspireExport("addJavaAppWithJar")] + public static ApplicationModel.IResourceBuilder AddJavaApp(this IDistributedApplicationBuilder builder, string name, string appDirectory, string jarPath, params string[] args) { throw null; } + + [AspireExport] + public static ApplicationModel.IResourceBuilder AddJavaApp(this IDistributedApplicationBuilder builder, string name, string appDirectory) { throw null; } + + [AspireExport] + public static ApplicationModel.IResourceBuilder AddJavaContainer(this IDistributedApplicationBuilder builder, string name, string image, string? tag = null) { throw null; } + + [AspireExport] + public static ApplicationModel.IResourceBuilder AddQuarkusApp(this IDistributedApplicationBuilder builder, string name, string appDirectory) { throw null; } + + [AspireExport] + public static ApplicationModel.IResourceBuilder AddSpringBootApp(this IDistributedApplicationBuilder builder, string name, string appDirectory) { throw null; } + + [AspireExport] + public static ApplicationModel.IResourceBuilder WithGradleBuild(this ApplicationModel.IResourceBuilder builder, params string[] args) + where T : Java.JavaAppResource { throw null; } + + [AspireExport] + public static ApplicationModel.IResourceBuilder WithGradleTask(this ApplicationModel.IResourceBuilder builder, string task, params string[] args) + where T : Java.JavaAppResource { throw null; } + + [AspireExport] + public static ApplicationModel.IResourceBuilder WithJarArtifact(this ApplicationModel.IResourceBuilder builder, string jarPath) + where T : Java.JavaAppResource { throw null; } + + [AspireExport] + public static ApplicationModel.IResourceBuilder WithJvmArgs(this ApplicationModel.IResourceBuilder builder, params string[] args) + where T : Java.IJavaAppResource { throw null; } + + [AspireExport] + public static ApplicationModel.IResourceBuilder WithMainClass(this ApplicationModel.IResourceBuilder builder, string mainClass) + where T : Java.JavaAppResource { throw null; } + + [AspireExport] + public static ApplicationModel.IResourceBuilder WithMavenBuild(this ApplicationModel.IResourceBuilder builder, params string[] args) + where T : Java.JavaAppResource { throw null; } + + [AspireExport] + public static ApplicationModel.IResourceBuilder WithMavenGoal(this ApplicationModel.IResourceBuilder builder, string goal, params string[] args) + where T : Java.JavaAppResource { throw null; } + + [AspireExport] + public static ApplicationModel.IResourceBuilder WithOtelAgent(this ApplicationModel.IResourceBuilder builder, string agentPath) + where T : Java.JavaAppResource { throw null; } + + [AspireExport("withOtelAgentDefaultPath")] + public static ApplicationModel.IResourceBuilder WithOtelAgent(this ApplicationModel.IResourceBuilder builder) + where T : Java.JavaAppResource { throw null; } + + [AspireExport] + public static ApplicationModel.IResourceBuilder WithWrapperPath(this ApplicationModel.IResourceBuilder builder, string wrapperPath) + where T : Java.JavaAppResource { throw null; } + } +} + +namespace Aspire.Hosting.Java +{ + public partial interface IJavaAppResource : ApplicationModel.IResourceWithEnvironment, ApplicationModel.IResource + { + } + + [AspireExport(ExposeProperties = true)] + public partial class JavaAppResource : ApplicationModel.ExecutableResource, IJavaAppResource, ApplicationModel.IResourceWithEnvironment, ApplicationModel.IResource, IResourceWithServiceDiscovery, ApplicationModel.IResourceWithEndpoints, ApplicationModel.IContainerFilesDestinationResource + { + public JavaAppResource(string name, string workingDirectory) : base(default!, default!, default!) { } + } + + [AspireExport(ExposeProperties = true)] + public partial class JavaContainerResource : ApplicationModel.ContainerResource, IJavaAppResource, ApplicationModel.IResourceWithEnvironment, ApplicationModel.IResource, IResourceWithServiceDiscovery, ApplicationModel.IResourceWithEndpoints + { + public JavaContainerResource(string name, string? entrypoint = null) : base(default!, default) { } + } +} \ No newline at end of file diff --git a/src/Aspire.Hosting.JavaScript/api/Aspire.Hosting.JavaScript.cs b/src/Aspire.Hosting.JavaScript/api/Aspire.Hosting.JavaScript.cs index 62369ff88ca..6d336b47b47 100644 --- a/src/Aspire.Hosting.JavaScript/api/Aspire.Hosting.JavaScript.cs +++ b/src/Aspire.Hosting.JavaScript/api/Aspire.Hosting.JavaScript.cs @@ -13,6 +13,10 @@ public static partial class JavaScriptHostingExtensions [AspireExport] public static ApplicationModel.IResourceBuilder AddBunApp(this IDistributedApplicationBuilder builder, string name, string appDirectory, string scriptPath) { throw null; } + [AspireExport] + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREDENO001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public static ApplicationModel.IResourceBuilder AddDenoApp(this IDistributedApplicationBuilder builder, string name, string appDirectory, string scriptPath) { throw null; } + [AspireExport] public static ApplicationModel.IResourceBuilder AddJavaScriptApp(this IDistributedApplicationBuilder builder, string name, string appDirectory, string runScriptName = "dev") { throw null; } @@ -63,6 +67,75 @@ public static ApplicationModel.IResourceBuilder WithBuildScript WithBun(this ApplicationModel.IResourceBuilder resource, bool install = true, string[]? installArgs = null) where TResource : JavaScript.JavaScriptAppResource { throw null; } + [AspireExport] + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREDENO001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public static ApplicationModel.IResourceBuilder WithDeno(this ApplicationModel.IResourceBuilder resource, bool install = false, string[]? installArgs = null) + where TResource : JavaScript.JavaScriptAppResource { throw null; } + + [AspireExport] + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREDENO001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public static ApplicationModel.IResourceBuilder WithDenoAllow(this ApplicationModel.IResourceBuilder builder, JavaScript.DenoPermissionKind kind, params string[] values) { throw null; } + + [AspireExport] + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREDENO001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public static ApplicationModel.IResourceBuilder WithDenoAllowAll(this ApplicationModel.IResourceBuilder builder, bool enabled = true) { throw null; } + + [AspireExport] + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREDENO001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public static ApplicationModel.IResourceBuilder WithDenoConfig(this ApplicationModel.IResourceBuilder builder, string configFile) { throw null; } + + [AspireExport] + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREDENO001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public static ApplicationModel.IResourceBuilder WithDenoDeny(this ApplicationModel.IResourceBuilder builder, JavaScript.DenoPermissionKind kind, params string[] values) { throw null; } + + [AspireExport] + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREDENO001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public static ApplicationModel.IResourceBuilder WithDenoImportMap(this ApplicationModel.IResourceBuilder builder, string importMapFile) { throw null; } + + [AspireExport] + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREDENO001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public static ApplicationModel.IResourceBuilder WithDenoInspect(this ApplicationModel.IResourceBuilder builder, JavaScript.DenoInspectMode mode = JavaScript.DenoInspectMode.Inspect, string? hostPort = null) { throw null; } + + [AspireExport] + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREDENO001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public static ApplicationModel.IResourceBuilder WithDenoLock(this ApplicationModel.IResourceBuilder builder, string lockFile) { throw null; } + + [AspireExport] + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREDENO001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public static ApplicationModel.IResourceBuilder WithDenoNodeModulesDir(this ApplicationModel.IResourceBuilder builder, JavaScript.DenoNodeModulesDirMode? mode = null) { throw null; } + + [AspireExport] + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREDENO001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public static ApplicationModel.IResourceBuilder WithDenoNoLock(this ApplicationModel.IResourceBuilder builder) { throw null; } + + [AspireExport] + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREDENO001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public static ApplicationModel.IResourceBuilder WithDenoRun(this ApplicationModel.IResourceBuilder builder) { throw null; } + + [AspireExport] + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREDENO001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public static ApplicationModel.IResourceBuilder WithDenoRuntimeArgs(this ApplicationModel.IResourceBuilder builder, params string[] args) { throw null; } + + [AspireExport] + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREDENO001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public static ApplicationModel.IResourceBuilder WithDenoScriptArgs(this ApplicationModel.IResourceBuilder builder, params string[] args) { throw null; } + + [AspireExport] + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREDENO001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public static ApplicationModel.IResourceBuilder WithDenoServe(this ApplicationModel.IResourceBuilder builder) { throw null; } + + [AspireExport] + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREDENO001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public static ApplicationModel.IResourceBuilder WithDenoTask(this ApplicationModel.IResourceBuilder builder, string taskName) { throw null; } + + [AspireExport] + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREDENO001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public static ApplicationModel.IResourceBuilder WithDenoUnstable(this ApplicationModel.IResourceBuilder builder, params string[] features) { throw null; } + + [AspireExport] + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREDENO001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public static ApplicationModel.IResourceBuilder WithDenoWatch(this ApplicationModel.IResourceBuilder builder, bool hmr = false) { throw null; } + [AspireExport] public static ApplicationModel.IResourceBuilder WithNpm(this ApplicationModel.IResourceBuilder resource, bool install = true, string? installCommand = null, string[]? installArgs = null) where TResource : JavaScript.JavaScriptAppResource { throw null; } @@ -96,6 +169,42 @@ public sealed partial record CopyFilePattern(string Source, string Destination) { } + [AspireExport(ExposeProperties = true)] + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREDENO001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public sealed partial class DenoAppResource : JavaScriptAppResource, IResourceWithServiceDiscovery, ApplicationModel.IResourceWithEndpoints, ApplicationModel.IResource, ApplicationModel.IContainerFilesDestinationResource + { + public DenoAppResource(string name, string command, string workingDirectory) : base(default!, default!, default!) { } + } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREDENO001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public enum DenoInspectMode + { + Inspect = 0, + InspectBrk = 1, + InspectWait = 2 + } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREDENO001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public enum DenoNodeModulesDirMode + { + None = 0, + Auto = 1, + Manual = 2 + } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREDENO001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public enum DenoPermissionKind + { + Net = 0, + Read = 1, + Write = 2, + Run = 3, + Env = 4, + Import = 5, + Sys = 6, + Ffi = 7 + } + [AspireExport(ExposeProperties = true)] public partial class JavaScriptAppResource : ApplicationModel.ExecutableResource, IResourceWithServiceDiscovery, ApplicationModel.IResourceWithEndpoints, ApplicationModel.IResource, IResourceWithContainerFiles { diff --git a/src/Aspire.Hosting.Keycloak/api/Aspire.Hosting.Keycloak.cs b/src/Aspire.Hosting.Keycloak/api/Aspire.Hosting.Keycloak.cs index ff5e58de580..fe42da5bea6 100644 --- a/src/Aspire.Hosting.Keycloak/api/Aspire.Hosting.Keycloak.cs +++ b/src/Aspire.Hosting.Keycloak/api/Aspire.Hosting.Keycloak.cs @@ -25,10 +25,10 @@ public static partial class KeycloakResourceBuilderExtensions [AspireExport] public static ApplicationModel.IResourceBuilder WithEnabledFeatures(this ApplicationModel.IResourceBuilder builder, params string[] features) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withOtlpExporter dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withOtlpExporter dispatcher export.")] public static ApplicationModel.IResourceBuilder WithOtlpExporter(this ApplicationModel.IResourceBuilder builder, OtlpProtocol protocol) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withOtlpExporter dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withOtlpExporter dispatcher export.")] public static ApplicationModel.IResourceBuilder WithOtlpExporter(this ApplicationModel.IResourceBuilder builder) { throw null; } [System.Obsolete("Use WithRealmImport(string import) instead.")] diff --git a/src/Aspire.Hosting.Kubernetes/api/Aspire.Hosting.Kubernetes.cs b/src/Aspire.Hosting.Kubernetes/api/Aspire.Hosting.Kubernetes.cs index 75da2df54a0..2fb3fdc4451 100644 --- a/src/Aspire.Hosting.Kubernetes/api/Aspire.Hosting.Kubernetes.cs +++ b/src/Aspire.Hosting.Kubernetes/api/Aspire.Hosting.Kubernetes.cs @@ -180,6 +180,46 @@ public static partial class KubernetesIngressExtensions public static ApplicationModel.IResourceBuilder WithTls(this ApplicationModel.IResourceBuilder builder) { throw null; } } + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRECOMPUTE002", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public static partial class KubernetesPersistentVolumeExtensions + { + [AspireExport] + public static ApplicationModel.IResourceBuilder AddPersistentVolume(this ApplicationModel.IResourceBuilder builder, string name) { throw null; } + + [AspireExport] + public static ApplicationModel.IResourceBuilder WithAccessMode(this ApplicationModel.IResourceBuilder builder, Kubernetes.PersistentVolumeAccessMode accessMode) { throw null; } + + [AspireExport("withCapacityParam")] + public static ApplicationModel.IResourceBuilder WithCapacity(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder capacity) { throw null; } + + [AspireExport] + public static ApplicationModel.IResourceBuilder WithCapacity(this ApplicationModel.IResourceBuilder builder, string capacity) { throw null; } + + [AspireExportIgnore(Reason = "Polyglot AppHosts use the withKubernetesPersistentVolumeMount adapter.")] + public static ApplicationModel.IResourceBuilder WithPersistentVolume(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder volume, string mountPath, bool isReadOnly = false) + where T : ApplicationModel.IComputeResource { throw null; } + + [AspireExportIgnore(Reason = "Polyglot AppHosts use the withKubernetesPersistentVolumeMount adapter.")] + public static ApplicationModel.IResourceBuilder WithPersistentVolume(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder volume, string mountPath, string env, bool isReadOnly = false) + where T : ApplicationModel.IComputeResource, ApplicationModel.IResourceWithEnvironment { throw null; } + + [AspireExport("withKubernetesPersistentVolume")] + public static ApplicationModel.IResourceBuilder WithPersistentVolume(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder volume) + where T : ApplicationModel.IComputeResource { throw null; } + + [AspireExport("withStorageClassParam")] + public static ApplicationModel.IResourceBuilder WithStorageClass(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder storageClassName) { throw null; } + + [AspireExport] + public static ApplicationModel.IResourceBuilder WithStorageClass(this ApplicationModel.IResourceBuilder builder, string storageClassName) { throw null; } + + [AspireExport("withVolumeAnnotationParam")] + public static ApplicationModel.IResourceBuilder WithVolumeAnnotation(this ApplicationModel.IResourceBuilder builder, string key, ApplicationModel.IResourceBuilder value) { throw null; } + + [AspireExport] + public static ApplicationModel.IResourceBuilder WithVolumeAnnotation(this ApplicationModel.IResourceBuilder builder, string key, string value) { throw null; } + } + public static partial class KubernetesServiceExtensions { [AspireExport] @@ -234,34 +274,34 @@ public sealed partial class HelmChartOptions { internal HelmChartOptions() { } - [AspireExportIgnore(Reason = "Polyglot app hosts use the union-based withChartDescription dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the union-based withChartDescription dispatcher export.")] public HelmChartOptions WithChartDescription(ApplicationModel.IResourceBuilder description) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the union-based withChartDescription dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the union-based withChartDescription dispatcher export.")] public HelmChartOptions WithChartDescription(string description) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the union-based withChartName dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the union-based withChartName dispatcher export.")] public HelmChartOptions WithChartName(ApplicationModel.IResourceBuilder name) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the union-based withChartName dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the union-based withChartName dispatcher export.")] public HelmChartOptions WithChartName(string name) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the union-based withChartVersion dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the union-based withChartVersion dispatcher export.")] public HelmChartOptions WithChartVersion(ApplicationModel.IResourceBuilder version) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the union-based withChartVersion dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the union-based withChartVersion dispatcher export.")] public HelmChartOptions WithChartVersion(string version) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the union-based withNamespace dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the union-based withNamespace dispatcher export.")] public HelmChartOptions WithNamespace(ApplicationModel.IResourceBuilder @namespace) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the union-based withNamespace dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the union-based withNamespace dispatcher export.")] public HelmChartOptions WithNamespace(string @namespace) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the union-based withReleaseName dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the union-based withReleaseName dispatcher export.")] public HelmChartOptions WithReleaseName(ApplicationModel.IResourceBuilder releaseName) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the union-based withReleaseName dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the union-based withReleaseName dispatcher export.")] public HelmChartOptions WithReleaseName(string releaseName) { throw null; } } @@ -301,7 +341,7 @@ public sealed partial class KubernetesEnvironmentAnnotation : ApplicationModel.I } [AspireExport(ExposeProperties = true)] - public sealed partial class KubernetesEnvironmentResource : ApplicationModel.Resource, ApplicationModel.IComputeEnvironmentResource, ApplicationModel.IResource + public sealed partial class KubernetesEnvironmentResource : ApplicationModel.Resource, ApplicationModel.IComputeEnvironmentResource, ApplicationModel.IResource, ApplicationModel.IComputeEnvironmentWithVolumeMounts { public KubernetesEnvironmentResource(string name) : base(default!) { } @@ -380,6 +420,15 @@ public KubernetesNodePoolResource(string name, KubernetesEnvironmentResource env public KubernetesEnvironmentResource Parent { get { throw null; } } } + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRECOMPUTE002", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + [AspireExport] + public sealed partial class KubernetesPersistentVolumeResource : ApplicationModel.Resource, ApplicationModel.IResourceWithParent, ApplicationModel.IResourceWithParent, ApplicationModel.IResource + { + public KubernetesPersistentVolumeResource(string name, KubernetesEnvironmentResource environment) : base(default!) { } + + public KubernetesEnvironmentResource Parent { get { throw null; } } + } + [AspireExport(ExposeProperties = true)] public partial class KubernetesResource : ApplicationModel.Resource, ApplicationModel.IResourceWithParent, ApplicationModel.IResourceWithParent, ApplicationModel.IResource { @@ -405,6 +454,15 @@ public KubernetesServiceCustomizationAnnotation(System.Action Configure { get { throw null; } } } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRECOMPUTE002", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public enum PersistentVolumeAccessMode + { + ReadWriteOnce = 0, + ReadOnlyMany = 1, + ReadWriteMany = 2, + ReadWriteOncePod = 3 + } } namespace Aspire.Hosting.Kubernetes.Resources @@ -549,6 +607,19 @@ public sealed partial class ConfigMapKeySelectorV1 public bool? Optional { get { throw null; } set { } } } + [YamlDotNet.Serialization.YamlSerializable] + public sealed partial class ConfigMapProjectionV1 + { + [YamlDotNet.Serialization.YamlMember(Alias = "items")] + public System.Collections.Generic.List Items { get { throw null; } } + + [YamlDotNet.Serialization.YamlMember(Alias = "name")] + public string Name { get { throw null; } set { } } + + [YamlDotNet.Serialization.YamlMember(Alias = "optional")] + public bool? Optional { get { throw null; } set { } } + } + [YamlDotNet.Serialization.YamlSerializable] public sealed partial class ConfigMapVolumeSourceV1 { @@ -769,6 +840,29 @@ public sealed partial class DeploymentStrategyV1 public string Type { get { throw null; } set { } } } + [YamlDotNet.Serialization.YamlSerializable] + public sealed partial class DownwardApiProjectionV1 + { + [YamlDotNet.Serialization.YamlMember(Alias = "items")] + public System.Collections.Generic.List Items { get { throw null; } } + } + + [YamlDotNet.Serialization.YamlSerializable] + public sealed partial class DownwardApiVolumeFileV1 + { + [YamlDotNet.Serialization.YamlMember(Alias = "fieldRef")] + public ObjectFieldSelectorV1? FieldRef { get { throw null; } set { } } + + [YamlDotNet.Serialization.YamlMember(Alias = "mode")] + public int? Mode { get { throw null; } set { } } + + [YamlDotNet.Serialization.YamlMember(Alias = "path")] + public string Path { get { throw null; } set { } } + + [YamlDotNet.Serialization.YamlMember(Alias = "resourceFieldRef")] + public ResourceFieldSelectorV1? ResourceFieldRef { get { throw null; } set { } } + } + [YamlDotNet.Serialization.YamlSerializable] public sealed partial class EmptyDirVolumeSourceV1 { @@ -1855,16 +1949,16 @@ public sealed partial class PersistentVolumeClaimSpecV1 public System.Collections.Generic.List AccessModes { get { throw null; } } [YamlDotNet.Serialization.YamlMember(Alias = "dataSource")] - public TypedLocalObjectReferenceV1 DataSource { get { throw null; } set { } } + public TypedLocalObjectReferenceV1? DataSource { get { throw null; } set { } } [YamlDotNet.Serialization.YamlMember(Alias = "dataSourceRef")] - public TypedObjectReferenceV1 DataSourceRef { get { throw null; } set { } } + public TypedObjectReferenceV1? DataSourceRef { get { throw null; } set { } } [YamlDotNet.Serialization.YamlMember(Alias = "resources")] public VolumeResourceRequirementsV1 Resources { get { throw null; } set { } } [YamlDotNet.Serialization.YamlMember(Alias = "selector")] - public LabelSelectorV1 Selector { get { throw null; } set { } } + public LabelSelectorV1? Selector { get { throw null; } set { } } [YamlDotNet.Serialization.YamlMember(Alias = "storageClassName")] public string StorageClassName { get { throw null; } set { } } @@ -1909,19 +2003,19 @@ public sealed partial class PersistentVolumeSpecV1 public System.Collections.Generic.Dictionary Capacity { get { throw null; } set { } } [YamlDotNet.Serialization.YamlMember(Alias = "claimRef")] - public ObjectReferenceV1 ClaimRef { get { throw null; } set { } } + public ObjectReferenceV1? ClaimRef { get { throw null; } set { } } [YamlDotNet.Serialization.YamlMember(Alias = "hostPath")] - public HostPathVolumeSourceV1 HostPath { get { throw null; } set { } } + public HostPathVolumeSourceV1? HostPath { get { throw null; } set { } } [YamlDotNet.Serialization.YamlMember(Alias = "local")] - public LocalVolumeSourceV1 Local { get { throw null; } set { } } + public LocalVolumeSourceV1? Local { get { throw null; } set { } } [YamlDotNet.Serialization.YamlMember(Alias = "mountOptions")] public System.Collections.Generic.List MountOptions { get { throw null; } } [YamlDotNet.Serialization.YamlMember(Alias = "nodeAffinity")] - public VolumeNodeAffinityV1 NodeAffinity { get { throw null; } set { } } + public VolumeNodeAffinityV1? NodeAffinity { get { throw null; } set { } } [YamlDotNet.Serialization.YamlMember(Alias = "persistentVolumeReclaimPolicy")] public string PersistentVolumeReclaimPolicy { get { throw null; } set { } } @@ -2297,6 +2391,16 @@ public sealed partial class ProbeV1 public int? TimeoutSeconds { get { throw null; } set { } } } + [YamlDotNet.Serialization.YamlSerializable] + public sealed partial class ProjectedVolumeSourceV1 + { + [YamlDotNet.Serialization.YamlMember(Alias = "defaultMode")] + public int? DefaultMode { get { throw null; } set { } } + + [YamlDotNet.Serialization.YamlMember(Alias = "sources")] + public System.Collections.Generic.List Sources { get { throw null; } } + } + [YamlDotNet.Serialization.YamlSerializable] public sealed partial class ReplicaSet : BaseKubernetesResource { @@ -2504,6 +2608,19 @@ public sealed partial class SecretKeySelectorV1 public bool? Optional { get { throw null; } set { } } } + [YamlDotNet.Serialization.YamlSerializable] + public sealed partial class SecretProjectionV1 + { + [YamlDotNet.Serialization.YamlMember(Alias = "items")] + public System.Collections.Generic.List Items { get { throw null; } } + + [YamlDotNet.Serialization.YamlMember(Alias = "name")] + public string Name { get { throw null; } set { } } + + [YamlDotNet.Serialization.YamlMember(Alias = "optional")] + public bool? Optional { get { throw null; } set { } } + } + [YamlDotNet.Serialization.YamlSerializable] public sealed partial class SecretVolumeSourceV1 { @@ -2585,6 +2702,19 @@ public Service() : base(default!, default!) { } public ServiceSpecV1 Spec { get { throw null; } set { } } } + [YamlDotNet.Serialization.YamlSerializable] + public sealed partial class ServiceAccountTokenProjectionV1 + { + [YamlDotNet.Serialization.YamlMember(Alias = "audience")] + public string? Audience { get { throw null; } set { } } + + [YamlDotNet.Serialization.YamlMember(Alias = "expirationSeconds")] + public long? ExpirationSeconds { get { throw null; } set { } } + + [YamlDotNet.Serialization.YamlMember(Alias = "path")] + public string Path { get { throw null; } set { } } + } + [YamlDotNet.Serialization.YamlSerializable] public sealed partial class ServiceAccountV1 : BaseKubernetesResource { @@ -2739,7 +2869,7 @@ public sealed partial class StatefulSetSpecV1 public StatefulSetOrdinalsV1? Ordinals { get { throw null; } set { } } [YamlDotNet.Serialization.YamlMember(Alias = "persistentVolumeClaimRetentionPolicy")] - public StatefulSetPersistentVolumeClaimRetentionPolicyV1 PersistentVolumeClaimRetentionPolicy { get { throw null; } set { } } + public StatefulSetPersistentVolumeClaimRetentionPolicyV1? PersistentVolumeClaimRetentionPolicy { get { throw null; } set { } } [YamlDotNet.Serialization.YamlMember(Alias = "podManagementPolicy")] public string? PodManagementPolicy { get { throw null; } set { } } @@ -2760,7 +2890,7 @@ public sealed partial class StatefulSetSpecV1 public PodTemplateSpecV1 Template { get { throw null; } set { } } [YamlDotNet.Serialization.YamlMember(Alias = "updateStrategy")] - public StatefulSetUpdateStrategyV1 UpdateStrategy { get { throw null; } set { } } + public StatefulSetUpdateStrategyV1? UpdateStrategy { get { throw null; } set { } } [YamlDotNet.Serialization.YamlMember(Alias = "volumeClaimTemplates")] public System.Collections.Generic.List VolumeClaimTemplates { get { throw null; } } @@ -2770,7 +2900,7 @@ public sealed partial class StatefulSetSpecV1 public sealed partial class StatefulSetUpdateStrategyV1 { [YamlDotNet.Serialization.YamlMember(Alias = "rollingUpdate")] - public RollingUpdateStatefulSetStrategyV1 RollingUpdate { get { throw null; } set { } } + public RollingUpdateStatefulSetStrategyV1? RollingUpdate { get { throw null; } set { } } [YamlDotNet.Serialization.YamlMember(Alias = "type")] public string Type { get { throw null; } set { } } @@ -2927,7 +3057,23 @@ public sealed partial class VolumeMountV1 public sealed partial class VolumeNodeAffinityV1 { [YamlDotNet.Serialization.YamlMember(Alias = "required")] - public NodeSelectorV1 Required { get { throw null; } set { } } + public NodeSelectorV1? Required { get { throw null; } set { } } + } + + [YamlDotNet.Serialization.YamlSerializable] + public sealed partial class VolumeProjectionV1 + { + [YamlDotNet.Serialization.YamlMember(Alias = "configMap")] + public ConfigMapProjectionV1? ConfigMap { get { throw null; } set { } } + + [YamlDotNet.Serialization.YamlMember(Alias = "downwardAPI")] + public DownwardApiProjectionV1? DownwardApi { get { throw null; } set { } } + + [YamlDotNet.Serialization.YamlMember(Alias = "secret")] + public SecretProjectionV1? Secret { get { throw null; } set { } } + + [YamlDotNet.Serialization.YamlMember(Alias = "serviceAccountToken")] + public ServiceAccountTokenProjectionV1? ServiceAccountToken { get { throw null; } set { } } } [YamlDotNet.Serialization.YamlSerializable] @@ -2967,6 +3113,9 @@ public sealed partial class VolumeV1 [YamlDotNet.Serialization.YamlMember(Alias = "persistentVolumeClaim")] public PersistentVolumeClaimVolumeSourceV1? PersistentVolumeClaim { get { throw null; } set { } } + [YamlDotNet.Serialization.YamlMember(Alias = "projected")] + public ProjectedVolumeSourceV1? Projected { get { throw null; } set { } } + [YamlDotNet.Serialization.YamlMember(Alias = "secret")] public SecretVolumeSourceV1? Secret { get { throw null; } set { } } } diff --git a/src/Aspire.Hosting.Orleans/api/Aspire.Hosting.Orleans.cs b/src/Aspire.Hosting.Orleans/api/Aspire.Hosting.Orleans.cs index 7dabd5c2867..96c6700f4a8 100644 --- a/src/Aspire.Hosting.Orleans/api/Aspire.Hosting.Orleans.cs +++ b/src/Aspire.Hosting.Orleans/api/Aspire.Hosting.Orleans.cs @@ -71,6 +71,10 @@ public static partial class OrleansServiceExtensions [AspireExport] public static Orleans.OrleansService WithMemoryStreaming(this Orleans.OrleansService orleansServiceBuilder, string name) { throw null; } + [AspireExport] + public static ApplicationModel.IResourceBuilder WithOrleansProviderType(this ApplicationModel.IResourceBuilder builder, string providerType) + where T : ApplicationModel.IResourceWithConnectionString { throw null; } + [AspireExport("withOrleansReference")] public static ApplicationModel.IResourceBuilder WithReference(this ApplicationModel.IResourceBuilder builder, Orleans.OrleansService orleansService) where T : ApplicationModel.IResourceWithEnvironment, ApplicationModel.IResourceWithEndpoints { throw null; } diff --git a/src/Aspire.Hosting.Qdrant/api/Aspire.Hosting.Qdrant.cs b/src/Aspire.Hosting.Qdrant/api/Aspire.Hosting.Qdrant.cs index f57abb9435c..508224a557a 100644 --- a/src/Aspire.Hosting.Qdrant/api/Aspire.Hosting.Qdrant.cs +++ b/src/Aspire.Hosting.Qdrant/api/Aspire.Hosting.Qdrant.cs @@ -19,11 +19,11 @@ public static partial class QdrantBuilderExtensions [AspireExport] public static ApplicationModel.IResourceBuilder WithDataVolume(this ApplicationModel.IResourceBuilder builder, string? name = null, bool isReadOnly = false) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the generic withReference export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the generic withReference export.")] public static ApplicationModel.IResourceBuilder WithReference(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder qdrantResource, string? connectionName = null) where TDestination : ApplicationModel.IResourceWithEnvironment { throw null; } - [AspireExportIgnore(Reason = "Use the overload that accepts an explicit connection name when calling this API from polyglot app hosts.")] + [AspireExportIgnore(Reason = "Use the overload that accepts an explicit connection name when calling this API from polyglot AppHosts.")] public static ApplicationModel.IResourceBuilder WithReference(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder qdrantResource) where TDestination : ApplicationModel.IResourceWithEnvironment { throw null; } } diff --git a/src/Aspire.Hosting.RabbitMQ/api/Aspire.Hosting.RabbitMQ.cs b/src/Aspire.Hosting.RabbitMQ/api/Aspire.Hosting.RabbitMQ.cs index b3584f2490c..839b9c10e11 100644 --- a/src/Aspire.Hosting.RabbitMQ/api/Aspire.Hosting.RabbitMQ.cs +++ b/src/Aspire.Hosting.RabbitMQ/api/Aspire.Hosting.RabbitMQ.cs @@ -19,10 +19,10 @@ public static partial class RabbitMQBuilderExtensions [AspireExport] public static ApplicationModel.IResourceBuilder WithDataVolume(this ApplicationModel.IResourceBuilder builder, string? name = null, bool isReadOnly = false) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withManagementPlugin dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withManagementPlugin dispatcher export.")] public static ApplicationModel.IResourceBuilder WithManagementPlugin(this ApplicationModel.IResourceBuilder builder, int? port) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withManagementPlugin dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withManagementPlugin dispatcher export.")] public static ApplicationModel.IResourceBuilder WithManagementPlugin(this ApplicationModel.IResourceBuilder builder) { throw null; } } } diff --git a/src/Aspire.Hosting.Radius/api/Aspire.Hosting.Radius.cs b/src/Aspire.Hosting.Radius/api/Aspire.Hosting.Radius.cs new file mode 100644 index 00000000000..18a98f7e740 --- /dev/null +++ b/src/Aspire.Hosting.Radius/api/Aspire.Hosting.Radius.cs @@ -0,0 +1,402 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ +namespace Aspire.Hosting +{ + public static partial class RadiusCloudProviderExtensions + { + [AspireExportIgnore(Reason = "The credential-selection callback exposes the in-flight provider builder interface, which the ATS exporter cannot render (ASPIREEXPORT008).")] + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS003", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public static ApplicationModel.IResourceBuilder WithAwsProvider(this ApplicationModel.IResourceBuilder builder, string accountId, string region, System.Action configure) { throw null; } + + [AspireExportIgnore(Reason = "The credential-selection callback exposes the in-flight provider builder interface, which the ATS exporter cannot render (ASPIREEXPORT008).")] + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS003", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public static ApplicationModel.IResourceBuilder WithAzureProvider(this ApplicationModel.IResourceBuilder builder, string subscriptionId, string resourceGroup, System.Action configure) { throw null; } + } + + public static partial class RadiusExtensions + { + [AspireExport] + public static ApplicationModel.IResourceBuilder AddRadiusEnvironment(this IDistributedApplicationBuilder builder, string name) { throw null; } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS004", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + [AspireExportIgnore(Reason = "RadiusInfrastructureOptions customization callbacks are not ATS-compatible.")] + public static ApplicationModel.IResourceBuilder ConfigureRadiusInfrastructure(this ApplicationModel.IResourceBuilder builder, System.Action configure) { throw null; } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS057", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + [AspireExport] + public static ApplicationModel.IResourceBuilder WithContainerImage(this ApplicationModel.IResourceBuilder builder, string image) { throw null; } + + [AspireExport] + public static ApplicationModel.IResourceBuilder WithNamespace(this ApplicationModel.IResourceBuilder builder, string kubernetesNamespace) { throw null; } + } + + public static partial class RadiusRecipeParameterExtensions + { + [AspireExportIgnore(Reason = "The configure callback over a mutable dictionary is not representable in the ATS catalog (ASPIREEXPORT008).")] + public static ApplicationModel.IResourceBuilder WithRecipeParameters(this ApplicationModel.IResourceBuilder builder, System.Action> configure) { throw null; } + + [AspireExportIgnore(Reason = "The configure callback over a mutable dictionary is not representable in the ATS catalog (ASPIREEXPORT008).")] + public static ApplicationModel.IResourceBuilder WithRecipeParameters(this ApplicationModel.IResourceBuilder builder, string resourceType, System.Action> configure) { throw null; } + } + + public static partial class RadiusSecretStoreConsumerExtensions + { + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS006", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + [AspireExportIgnore(Reason = "Experimental Radius secret-store consumer surface; there is no polyglot ATS equivalent yet.")] + public static ApplicationModel.IResourceBuilder WithBicepRegistryAuthentication(this ApplicationModel.IResourceBuilder radius, string registryHost, ApplicationModel.IResourceBuilder store) { throw null; } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS006", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + [AspireExportIgnore(Reason = "Experimental Radius secret-store consumer surface; there is no polyglot ATS equivalent yet.")] + public static ApplicationModel.IResourceBuilder WithRecipeEnvironmentSecret(this ApplicationModel.IResourceBuilder radius, string variableName, ApplicationModel.IResourceBuilder store, string key) { throw null; } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS006", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + [AspireExportIgnore(Reason = "Experimental Radius secret-store consumer surface; there is no polyglot ATS equivalent yet.")] + public static ApplicationModel.IResourceBuilder WithTerraformGitAuthentication(this ApplicationModel.IResourceBuilder radius, string gitHost, ApplicationModel.IResourceBuilder store) { throw null; } + } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS006", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public sealed partial class RadiusSecretStoreDataBuilder + { + internal RadiusSecretStoreDataBuilder() { } + + public RadiusSecretStoreDataBuilder Add(string key, ApplicationModel.IResourceBuilder parameter, Radius.RadiusSecretStoreEncoding? encoding = null) { throw null; } + } + + public static partial class RadiusSecretStoreExtensions + { + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS006", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + [AspireExportIgnore(Reason = "Experimental Radius secret-store surface; there is no polyglot ATS equivalent yet.")] + public static ApplicationModel.IResourceBuilder AddRadiusSecretStore(this IDistributedApplicationBuilder builder, string name, Radius.RadiusSecretStoreType type) { throw null; } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS006", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + [AspireExportIgnore(Reason = "Experimental Radius secret-store surface; the data-binding callback is not ATS-compatible.")] + public static ApplicationModel.IResourceBuilder WithData(this ApplicationModel.IResourceBuilder store, System.Action configure) { throw null; } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS006", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + [AspireExportIgnore(Reason = "Experimental Radius secret-store surface; the data binding is not ATS-compatible.")] + public static ApplicationModel.IResourceBuilder WithData(this ApplicationModel.IResourceBuilder store, string key, ApplicationModel.IResourceBuilder parameter, Radius.RadiusSecretStoreEncoding? encoding = null) { throw null; } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS006", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + [AspireExportIgnore(Reason = "Experimental Radius secret-store surface; there is no polyglot ATS equivalent yet.")] + public static ApplicationModel.IResourceBuilder WithExistingSecret(this ApplicationModel.IResourceBuilder store, string namespaceAndName, params string[] keys) { throw null; } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS006", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + [AspireExportIgnore(Reason = "Sealed-secret deploy-timing knob with no polyglot ATS equivalent.")] + public static ApplicationModel.IResourceBuilder WithMaterializationTimeout(this ApplicationModel.IResourceBuilder store, System.TimeSpan timeout) { throw null; } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS006", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + [AspireExportIgnore(Reason = "Experimental Radius secret-store surface; there is no polyglot ATS equivalent yet.")] + public static ApplicationModel.IResourceBuilder WithSealedSecret(this ApplicationModel.IResourceBuilder store, string manifestPath, params string[] keys) { throw null; } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS006", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + [AspireExportIgnore(Reason = "Experimental Radius secret-store surface; the population callback is not ATS-compatible.")] + public static ApplicationModel.IResourceBuilder WithSecretStore(this ApplicationModel.IResourceBuilder radius, string name, Radius.RadiusSecretStoreType type, System.Action> configure) { throw null; } + } +} + +namespace Aspire.Hosting.Radius +{ + [AspireExport(ExposeProperties = true)] + public sealed partial class RadiusEnvironmentResource : ApplicationModel.Resource, ApplicationModel.IComputeEnvironmentResource, ApplicationModel.IResource + { + public RadiusEnvironmentResource(string name) : base(default!) { } + + public string Namespace { get { throw null; } set { } } + + public ApplicationModel.IComputeEnvironmentResource? OwningComputeEnvironment { get { throw null; } set { } } + + ApplicationModel.ReferenceExpression ApplicationModel.IComputeEnvironmentResource.GetEndpointPropertyExpression(ApplicationModel.EndpointReferenceExpression endpointReferenceExpression) { throw null; } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRECOMPUTE002", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public ApplicationModel.ReferenceExpression GetHostAddressExpression(ApplicationModel.EndpointReference endpointReference) { throw null; } + } + + public sealed partial class RadiusProviderReference + { + internal RadiusProviderReference() { } + + public static RadiusProviderReference AwsAccountId { get { throw null; } } + + public static RadiusProviderReference AwsRegion { get { throw null; } } + + public static RadiusProviderReference AzureResourceGroup { get { throw null; } } + + public static RadiusProviderReference AzureSubscriptionId { get { throw null; } } + } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS006", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public enum RadiusSecretStoreEncoding + { + Raw = 0, + Base64 = 1 + } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS006", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public sealed partial class RadiusSecretStoreResource : ApplicationModel.Resource + { + internal RadiusSecretStoreResource() : base(default!) { } + + public System.TimeSpan MaterializationTimeout { get { throw null; } } + + public RadiusSecretStoreType Type { get { throw null; } } + } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS006", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public enum RadiusSecretStoreType + { + Generic = 0, + Certificate = 1, + BasicAuthentication = 2, + AzureWorkloadIdentity = 3, + AwsIrsa = 4 + } +} + +namespace Aspire.Hosting.Radius.CloudProviders +{ + public partial interface IAwsRadiusProviderBuilder + { + IAwsRadiusProviderBuilder WithAccessKey(ApplicationModel.IResourceBuilder accessKeyId, ApplicationModel.IResourceBuilder secretAccessKey); + IAwsRadiusProviderBuilder WithIrsa(string iamRoleArn); + } + + public partial interface IAzureRadiusProviderBuilder + { + IAzureRadiusProviderBuilder WithServicePrincipal(string tenantId, string clientId, ApplicationModel.IResourceBuilder clientSecret); + IAzureRadiusProviderBuilder WithWorkloadIdentity(string tenantId, string clientId); + } +} + +namespace Aspire.Hosting.Radius.Publishing +{ + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS004", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public sealed partial class RadiusInfrastructureOptions + { + public System.Collections.Generic.List Applications { get { throw null; } } + + public System.Collections.Generic.List Containers { get { throw null; } } + + public System.Collections.Generic.List Environments { get { throw null; } } + + public System.Collections.Generic.List LegacyApplications { get { throw null; } } + + public System.Collections.Generic.List LegacyEnvironments { get { throw null; } } + + public System.Collections.Generic.List Parameters { get { throw null; } } + + public System.Collections.Generic.List RecipePacks { get { throw null; } } + + public System.Collections.Generic.List ResourceTypeInstances { get { throw null; } } + + public System.Collections.Generic.List SecretStores { get { throw null; } } + } +} + +namespace Aspire.Hosting.Radius.Publishing.Constructs +{ + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS004", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public sealed partial class ConnectionConstruct : Azure.Provisioning.Primitives.ProvisionableConstruct + { + public Azure.Provisioning.BicepValue Source { get { throw null; } set { } } + + protected override void DefineProvisionableProperties() { } + } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS004", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public sealed partial class ContainerEnvVarConstruct : Azure.Provisioning.Primitives.ProvisionableConstruct + { + public Azure.Provisioning.BicepValue Value { get { throw null; } set { } } + + protected override void DefineProvisionableProperties() { } + } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS004", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public sealed partial class ContainerPortConstruct : Azure.Provisioning.Primitives.ProvisionableConstruct + { + public Azure.Provisioning.BicepValue ContainerPort { get { throw null; } set { } } + + public Azure.Provisioning.BicepValue Protocol { get { throw null; } set { } } + + protected override void DefineProvisionableProperties() { } + } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS004", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public sealed partial class LegacyApplicationConstruct : Azure.Provisioning.Primitives.ProvisionableResource + { + public LegacyApplicationConstruct(string bicepIdentifier) : base(default!, default, default) { } + + public Azure.Provisioning.BicepValue ApplicationName { get { throw null; } set { } } + + public Azure.Provisioning.BicepValue EnvironmentId { get { throw null; } set { } } + + protected override void DefineProvisionableProperties() { } + } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS004", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public sealed partial class LegacyApplicationEnvironmentConstruct : Azure.Provisioning.Primitives.ProvisionableResource + { + public LegacyApplicationEnvironmentConstruct(string bicepIdentifier) : base(default!, default, default) { } + + public Azure.Provisioning.BicepValue AwsScope { get { throw null; } set { } } + + public Azure.Provisioning.BicepValue AzureScope { get { throw null; } set { } } + + public Azure.Provisioning.BicepValue ComputeKind { get { throw null; } set { } } + + public Azure.Provisioning.BicepValue ComputeNamespace { get { throw null; } set { } } + + public Azure.Provisioning.BicepValue EnvironmentName { get { throw null; } set { } } + + public Azure.Provisioning.BicepDictionary RecipeConfig { get { throw null; } set { } } + + public Azure.Provisioning.BicepDictionary> Recipes { get { throw null; } set { } } + + protected override void DefineProvisionableProperties() { } + } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS004", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public sealed partial class LegacyRecipeEntryConstruct : Azure.Provisioning.Primitives.ProvisionableConstruct + { + public Azure.Provisioning.BicepDictionary Parameters { get { throw null; } set { } } + + public Azure.Provisioning.BicepValue TemplateKind { get { throw null; } set { } } + + public Azure.Provisioning.BicepValue TemplatePath { get { throw null; } set { } } + + protected override void DefineProvisionableProperties() { } + } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS004", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public sealed partial class RadiusApplicationConstruct : Azure.Provisioning.Primitives.ProvisionableResource + { + public RadiusApplicationConstruct(string bicepIdentifier) : base(default!, default, default) { } + + public Azure.Provisioning.BicepValue ApplicationName { get { throw null; } set { } } + + public Azure.Provisioning.BicepValue EnvironmentId { get { throw null; } set { } } + + protected override void DefineProvisionableProperties() { } + } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS004", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public sealed partial class RadiusContainerConstruct : Azure.Provisioning.Primitives.ProvisionableResource + { + public RadiusContainerConstruct(string bicepIdentifier, string containerName) : base(default!, default, default) { } + + public Azure.Provisioning.BicepValue ApplicationId { get { throw null; } set { } } + + public Azure.Provisioning.BicepDictionary Connections { get { throw null; } set { } } + + public Azure.Provisioning.BicepValue ContainerName { get { throw null; } set { } } + + public Azure.Provisioning.BicepDictionary Env { get { throw null; } set { } } + + public Azure.Provisioning.BicepValue EnvironmentId { get { throw null; } set { } } + + public Azure.Provisioning.BicepValue Image { get { throw null; } set { } } + + public Azure.Provisioning.BicepDictionary Ports { get { throw null; } set { } } + + protected override void DefineProvisionableProperties() { } + } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS004", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public sealed partial class RadiusEnvironmentConstruct : Azure.Provisioning.Primitives.ProvisionableResource + { + public RadiusEnvironmentConstruct(string bicepIdentifier) : base(default!, default, default) { } + + public Azure.Provisioning.BicepValue AwsAccountId { get { throw null; } set { } } + + public Azure.Provisioning.BicepValue AwsRegion { get { throw null; } set { } } + + public Azure.Provisioning.BicepValue AzureResourceGroupName { get { throw null; } set { } } + + public Azure.Provisioning.BicepValue AzureSubscriptionId { get { throw null; } set { } } + + public Azure.Provisioning.BicepValue EnvironmentName { get { throw null; } set { } } + + public Azure.Provisioning.BicepValue KubernetesNamespace { get { throw null; } set { } } + + public Azure.Provisioning.BicepList RecipePacks { get { throw null; } set { } } + + protected override void DefineProvisionableProperties() { } + } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS004", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public sealed partial class RadiusRecipePackConstruct : Azure.Provisioning.Primitives.ProvisionableResource + { + public RadiusRecipePackConstruct(string bicepIdentifier) : base(default!, default, default) { } + + public Azure.Provisioning.BicepValue PackName { get { throw null; } set { } } + + public Azure.Provisioning.BicepDictionary Recipes { get { throw null; } set { } } + + protected override void DefineProvisionableProperties() { } + } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS004", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public sealed partial class RadiusResourceTypeConstruct : Azure.Provisioning.Primitives.ProvisionableResource + { + public RadiusResourceTypeConstruct(string bicepIdentifier, string resourceType, string apiVersion) : base(default!, default, default) { } + + public Azure.Provisioning.BicepValue ApplicationId { get { throw null; } set { } } + + public Azure.Provisioning.BicepValue EnvironmentId { get { throw null; } set { } } + + public Azure.Provisioning.BicepValue RecipeName { get { throw null; } set { } } + + public Azure.Provisioning.BicepDictionary RecipeParameters { get { throw null; } set { } } + + public Azure.Provisioning.BicepValue ResourceName { get { throw null; } set { } } + + protected override void DefineProvisionableProperties() { } + } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS004", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public sealed partial class RadiusSecretStoreConstruct : Azure.Provisioning.Primitives.ProvisionableResource + { + public RadiusSecretStoreConstruct(string bicepIdentifier) : base(default!, default, default) { } + + public Azure.Provisioning.BicepValue ApplicationId { get { throw null; } set { } } + + public Azure.Provisioning.BicepDictionary Data { get { throw null; } set { } } + + public Azure.Provisioning.BicepValue EnvironmentId { get { throw null; } set { } } + + public Azure.Provisioning.BicepValue ResourceReference { get { throw null; } set { } } + + public Azure.Provisioning.BicepValue StoreName { get { throw null; } set { } } + + public Azure.Provisioning.BicepValue StoreType { get { throw null; } set { } } + + protected override void DefineProvisionableProperties() { } + } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS004", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public sealed partial class RadiusSecretStoreDataEntryConstruct : Azure.Provisioning.Primitives.ProvisionableConstruct + { + public Azure.Provisioning.BicepValue Encoding { get { throw null; } set { } } + + public Azure.Provisioning.BicepValue Value { get { throw null; } set { } } + + protected override void DefineProvisionableProperties() { } + } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRERADIUS004", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public sealed partial class RecipeEntryConstruct : Azure.Provisioning.Primitives.ProvisionableConstruct + { + public Azure.Provisioning.BicepDictionary Parameters { get { throw null; } set { } } + + public Azure.Provisioning.BicepValue RecipeKind { get { throw null; } set { } } + + public Azure.Provisioning.BicepValue RecipeLocation { get { throw null; } set { } } + + protected override void DefineProvisionableProperties() { } + } +} \ No newline at end of file diff --git a/src/Aspire.Hosting.Redis/api/Aspire.Hosting.Redis.cs b/src/Aspire.Hosting.Redis/api/Aspire.Hosting.Redis.cs index 169a64d270b..3328456e4fe 100644 --- a/src/Aspire.Hosting.Redis/api/Aspire.Hosting.Redis.cs +++ b/src/Aspire.Hosting.Redis/api/Aspire.Hosting.Redis.cs @@ -13,7 +13,7 @@ public static partial class RedisBuilderExtensions [AspireExport] public static ApplicationModel.IResourceBuilder AddRedis(this IDistributedApplicationBuilder builder, string name, int? port = null, ApplicationModel.IResourceBuilder? password = null) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the canonical addRedis export with options.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the canonical addRedis export with options.")] public static ApplicationModel.IResourceBuilder AddRedis(this IDistributedApplicationBuilder builder, string name, int? port) { throw null; } [AspireExport] @@ -37,6 +37,9 @@ public static partial class RedisBuilderExtensions [AspireExport("withRedisInsightHostPort", MethodName = "withHostPort")] public static ApplicationModel.IResourceBuilder WithHostPort(this ApplicationModel.IResourceBuilder builder, int? port) { throw null; } + [AspireExport] + public static ApplicationModel.IResourceBuilder WithModule(this ApplicationModel.IResourceBuilder builder, string path) { throw null; } + [AspireExport] public static ApplicationModel.IResourceBuilder WithPassword(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder? password) { throw null; } @@ -49,6 +52,18 @@ public static partial class RedisBuilderExtensions [AspireExport(RunSyncOnBackgroundThread = true)] public static ApplicationModel.IResourceBuilder WithRedisInsight(this ApplicationModel.IResourceBuilder builder, System.Action>? configureContainer = null, string? containerName = null) { throw null; } } + + public static partial class RedisModules + { + [AspireValue("RedisModules")] + public const string BloomFilter = "/usr/local/lib/redis/modules/redisbloom.so"; + [AspireValue("RedisModules")] + public const string Json = "/usr/local/lib/redis/modules/rejson.so"; + [AspireValue("RedisModules")] + public const string Search = "/usr/local/lib/redis/modules/redisearch.so"; + [AspireValue("RedisModules")] + public const string TimeSeries = "/usr/local/lib/redis/modules/redistimeseries.so"; + } } namespace Aspire.Hosting.ApplicationModel diff --git a/src/Aspire.Hosting.Rust/api/Aspire.Hosting.Rust.cs b/src/Aspire.Hosting.Rust/api/Aspire.Hosting.Rust.cs new file mode 100644 index 00000000000..14e7145416f --- /dev/null +++ b/src/Aspire.Hosting.Rust/api/Aspire.Hosting.Rust.cs @@ -0,0 +1,84 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ +namespace Aspire.Hosting +{ + public static partial class RustHostingExtensions + { + [AspireExport] + public static ApplicationModel.IResourceBuilder AddRustApp(this IDistributedApplicationBuilder builder, string name, string appDirectory) { throw null; } + + [AspireExportIgnore(Reason = "Callback-based cargo arguments are not expressible in polyglot app hosts.")] + public static ApplicationModel.IResourceBuilder WithCargoArgs(this ApplicationModel.IResourceBuilder builder, System.Action callback) + where T : Rust.RustAppResource { throw null; } + + [AspireExportIgnore(Reason = "Callback-based cargo arguments are not expressible in polyglot app hosts.")] + public static ApplicationModel.IResourceBuilder WithCargoArgs(this ApplicationModel.IResourceBuilder builder, System.Func callback) + where T : Rust.RustAppResource { throw null; } + + [AspireExport] + public static ApplicationModel.IResourceBuilder WithCargoArgs(this ApplicationModel.IResourceBuilder builder, params string[] args) + where T : Rust.RustAppResource { throw null; } + + [AspireExport] + public static ApplicationModel.IResourceBuilder WithCargoBinTarget(this ApplicationModel.IResourceBuilder builder, string binName) + where T : Rust.RustAppResource { throw null; } + + [AspireExport] + public static ApplicationModel.IResourceBuilder WithCargoExample(this ApplicationModel.IResourceBuilder builder, string exampleName) + where T : Rust.RustAppResource { throw null; } + + [AspireExport] + public static ApplicationModel.IResourceBuilder WithCargoFeatures(this ApplicationModel.IResourceBuilder builder, params string[] features) + where T : Rust.RustAppResource { throw null; } + + [AspireExport] + public static ApplicationModel.IResourceBuilder WithCargoLocked(this ApplicationModel.IResourceBuilder builder, bool locked = true) + where T : Rust.RustAppResource { throw null; } + + [AspireExport] + public static ApplicationModel.IResourceBuilder WithCargoManifestPath(this ApplicationModel.IResourceBuilder builder, string manifestPath) + where T : Rust.RustAppResource { throw null; } + + [AspireExport] + public static ApplicationModel.IResourceBuilder WithCargoPackage(this ApplicationModel.IResourceBuilder builder, string packageName) + where T : Rust.RustAppResource { throw null; } + + [AspireExport] + public static ApplicationModel.IResourceBuilder WithCargoProfile(this ApplicationModel.IResourceBuilder builder, string profileName) + where T : Rust.RustAppResource { throw null; } + + [AspireExport] + public static ApplicationModel.IResourceBuilder WithCargoReleaseBuild(this ApplicationModel.IResourceBuilder builder, bool releaseBuild = true) + where T : Rust.RustAppResource { throw null; } + + [AspireExport] + public static ApplicationModel.IResourceBuilder WithCargoTarget(this ApplicationModel.IResourceBuilder builder, string target) + where T : Rust.RustAppResource { throw null; } + } +} + +namespace Aspire.Hosting.Rust +{ + [AspireExport(ExposeProperties = true)] + public partial class RustAppResource : ApplicationModel.ExecutableResource, IResourceWithServiceDiscovery, ApplicationModel.IResourceWithEndpoints, ApplicationModel.IResource, ApplicationModel.IContainerFilesDestinationResource + { + public RustAppResource(string name, string workingDirectory) : base(default!, default!, default!) { } + } + + public sealed partial class RustCargoArgsCallbackContext + { + public RustCargoArgsCallbackContext(RustAppResource resource, System.Collections.Generic.IList args, System.Threading.CancellationToken cancellationToken = default) { } + + public System.Collections.Generic.IList Args { get { throw null; } } + + public System.Threading.CancellationToken CancellationToken { get { throw null; } } + + public RustAppResource Resource { get { throw null; } } + } +} \ No newline at end of file diff --git a/src/Aspire.Hosting.Testing/api/Aspire.Hosting.Testing.cs b/src/Aspire.Hosting.Testing/api/Aspire.Hosting.Testing.cs index 9e25da9ed56..f438c798bbc 100644 --- a/src/Aspire.Hosting.Testing/api/Aspire.Hosting.Testing.cs +++ b/src/Aspire.Hosting.Testing/api/Aspire.Hosting.Testing.cs @@ -43,6 +43,9 @@ public static partial class DistributedApplicationHostingTestingExtensions [AspireExportIgnore(Reason = "Use the exported getConnectionString overload without a cancellation token.")] public static System.Threading.Tasks.ValueTask GetConnectionStringAsync(this DistributedApplication app, string resourceName, System.Threading.CancellationToken cancellationToken = default) { throw null; } + [AspireExportIgnore(Reason = "Use the exported getDashboardUrl overload without a cancellation token.")] + public static System.Threading.Tasks.Task GetDashboardUrlAsync(this DistributedApplication app, System.Threading.CancellationToken cancellationToken = default) { throw null; } + [AspireExport] public static System.Uri GetEndpoint(this DistributedApplication app, string resourceName, string? endpointName = null) { throw null; } @@ -52,16 +55,23 @@ public static partial class DistributedApplicationHostingTestingExtensions public static partial class DistributedApplicationTestingBuilder { + public static IDistributedApplicationTestingBuilder Create(DistributedApplicationTestingBuilderOptions options, string[] args) { throw null; } + public static IDistributedApplicationTestingBuilder Create(string[] args, System.Action configureBuilder) { throw null; } public static IDistributedApplicationTestingBuilder Create(params string[] args) { throw null; } + public static System.Threading.Tasks.Task CreateAsync(System.Type entryPoint, DistributedApplicationTestingBuilderOptions options, string[] args, System.Threading.CancellationToken cancellationToken = default) { throw null; } + public static System.Threading.Tasks.Task CreateAsync(System.Type entryPoint, string[] args, System.Action configureBuilder, System.Threading.CancellationToken cancellationToken = default) { throw null; } public static System.Threading.Tasks.Task CreateAsync(System.Type entryPoint, string[] args, System.Threading.CancellationToken cancellationToken = default) { throw null; } public static System.Threading.Tasks.Task CreateAsync(System.Type entryPoint, System.Threading.CancellationToken cancellationToken = default) { throw null; } + public static System.Threading.Tasks.Task CreateAsync(DistributedApplicationTestingBuilderOptions options, string[] args, System.Threading.CancellationToken cancellationToken = default) + where TEntryPoint : class { throw null; } + public static System.Threading.Tasks.Task CreateAsync(string[] args, System.Action configureBuilder, System.Threading.CancellationToken cancellationToken = default) { throw null; } public static System.Threading.Tasks.Task CreateAsync(string[] args, System.Threading.CancellationToken cancellationToken = default) @@ -71,6 +81,11 @@ public static System.Threading.Tasks.Task where TEntryPoint : class { throw null; } } + public sealed partial class DistributedApplicationTestingBuilderOptions + { + public bool EnableDashboard { get { throw null; } set { } } + } + public partial interface IDistributedApplicationTestingBuilder : IDistributedApplicationBuilder, System.IAsyncDisposable, System.IDisposable { System.Reflection.Assembly? AppHostAssembly { get; } diff --git a/src/Aspire.Hosting.Yarp/api/Aspire.Hosting.Yarp.cs b/src/Aspire.Hosting.Yarp/api/Aspire.Hosting.Yarp.cs index 358d07e94db..15a90435b42 100644 --- a/src/Aspire.Hosting.Yarp/api/Aspire.Hosting.Yarp.cs +++ b/src/Aspire.Hosting.Yarp/api/Aspire.Hosting.Yarp.cs @@ -27,25 +27,25 @@ public partial interface IYarpConfigurationBuilder public static partial class YarpConfigurationBuilderExtensions { - [AspireExportIgnore(Reason = "Polyglot app hosts use the exported addCatchAllRoute dispatcher.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the exported addCatchAllRoute dispatcher.")] public static Yarp.YarpRoute AddRoute(this IYarpConfigurationBuilder builder, ApplicationModel.EndpointReference endpoint) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the exported addCatchAllRoute dispatcher.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the exported addCatchAllRoute dispatcher.")] public static Yarp.YarpRoute AddRoute(this IYarpConfigurationBuilder builder, ApplicationModel.IResourceBuilder externalService) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the exported addCatchAllRoute dispatcher.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the exported addCatchAllRoute dispatcher.")] public static Yarp.YarpRoute AddRoute(this IYarpConfigurationBuilder builder, ApplicationModel.IResourceBuilder resource) { throw null; } [AspireExportIgnore(Reason = "Use the exported addCatchAllRoute helper instead.")] public static Yarp.YarpRoute AddRoute(this IYarpConfigurationBuilder builder, Yarp.YarpCluster cluster) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the exported addRoute dispatcher.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the exported addRoute dispatcher.")] public static Yarp.YarpRoute AddRoute(this IYarpConfigurationBuilder builder, string path, ApplicationModel.EndpointReference endpoint) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the exported addRoute dispatcher.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the exported addRoute dispatcher.")] public static Yarp.YarpRoute AddRoute(this IYarpConfigurationBuilder builder, string path, ApplicationModel.IResourceBuilder externalService) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the exported addRoute dispatcher.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the exported addRoute dispatcher.")] public static Yarp.YarpRoute AddRoute(this IYarpConfigurationBuilder builder, string path, ApplicationModel.IResourceBuilder resource) { throw null; } } diff --git a/src/Aspire.Hosting/api/Aspire.Hosting.cs b/src/Aspire.Hosting/api/Aspire.Hosting.cs index 0f37302c3c9..ca0f7f10867 100644 --- a/src/Aspire.Hosting/api/Aspire.Hosting.cs +++ b/src/Aspire.Hosting/api/Aspire.Hosting.cs @@ -70,10 +70,10 @@ public static partial class ConnectionPropertiesExtensions public static partial class ConnectionStringBuilderExtensions { - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal addConnectionString dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addConnectionString dispatcher export.")] public static ApplicationModel.IResourceBuilder AddConnectionString(this IDistributedApplicationBuilder builder, string name, ApplicationModel.ReferenceExpression connectionStringExpression) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts should build a ReferenceExpression explicitly and use the canonical addConnectionString export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts should build a ReferenceExpression explicitly and use the canonical addConnectionString export.")] public static ApplicationModel.IResourceBuilder AddConnectionString(this IDistributedApplicationBuilder builder, string name, System.Action connectionStringBuilder) { throw null; } } @@ -87,11 +87,11 @@ public ConnectionStringResource(string name, ApplicationModel.ReferenceExpressio public static partial class ContainerRegistryResourceBuilderExtensions { [System.Diagnostics.CodeAnalysis.Experimental("ASPIRECOMPUTE003", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal addContainerRegistry dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addContainerRegistry dispatcher export.")] public static ApplicationModel.IResourceBuilder AddContainerRegistry(this IDistributedApplicationBuilder builder, string name, ApplicationModel.IResourceBuilder endpoint, ApplicationModel.IResourceBuilder? repository = null) { throw null; } [System.Diagnostics.CodeAnalysis.Experimental("ASPIRECOMPUTE003", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal addContainerRegistry dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addContainerRegistry dispatcher export.")] public static ApplicationModel.IResourceBuilder AddContainerRegistry(this IDistributedApplicationBuilder builder, string name, string endpoint, string? repository = null) { throw null; } [System.Diagnostics.CodeAnalysis.Experimental("ASPIRECOMPUTE003", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] @@ -119,7 +119,7 @@ public static partial class ContainerResourceBuilderExtensions [System.Diagnostics.CodeAnalysis.Experimental("ASPIREDOCKERFILEBUILDER001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public static ApplicationModel.IResourceBuilder AddDockerfileBuilder(this IDistributedApplicationBuilder builder, string name, string contextPath, System.Func callback, string? stage = null) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the async callback overload.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the async callback overload.")] public static ApplicationModel.IResourceBuilder AddDockerfileFactory(this IDistributedApplicationBuilder builder, string name, string contextPath, System.Func dockerfileFactory, string? stage = null) { throw null; } [AspireExport] @@ -133,7 +133,7 @@ public static ApplicationModel.IResourceBuilder PublishAsContainer(this Ap public static ApplicationModel.IResourceBuilder WithBindMount(this ApplicationModel.IResourceBuilder builder, string source, string target, bool isReadOnly = false) where T : ApplicationModel.ContainerResource { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the union-based withBuildArg dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the union-based withBuildArg dispatcher export.")] public static ApplicationModel.IResourceBuilder WithBuildArg(this ApplicationModel.IResourceBuilder builder, string name, ApplicationModel.IResourceBuilder value) where T : ApplicationModel.ContainerResource { throw null; } @@ -153,11 +153,11 @@ public static ApplicationModel.IResourceBuilder WithContainerCertific public static ApplicationModel.IResourceBuilder WithContainerFiles(this ApplicationModel.IResourceBuilder builder, string destinationPath, System.Collections.Generic.IEnumerable entries, int? defaultOwner = null, int? defaultGroup = null, System.IO.UnixFileMode? umask = null) where T : ApplicationModel.ContainerResource { throw null; } - [AspireExportIgnore(Reason = "ContainerFileSystemCallbackContext exposes IServiceProvider and IResource — .NET runtime types not usable from polyglot hosts.")] + [AspireExportIgnore(Reason = "Exposed to ATS via the WithContainerFilesCallbackExport shim, which accepts integer file-mode options and lets polyglot callbacks build the IEnumerable result through ContainerFileSystemCallbackContext factory methods (createFile/createDirectory/createCertificateFile).")] public static ApplicationModel.IResourceBuilder WithContainerFiles(this ApplicationModel.IResourceBuilder builder, string destinationPath, System.Func>> callback, int? defaultOwner = null, int? defaultGroup = null, System.IO.UnixFileMode? umask = null) where T : ApplicationModel.ContainerResource { throw null; } - [AspireExportIgnore(Reason = "Uses UnixFileMode parameter which is not ATS-compatible.")] + [AspireExportIgnore(Reason = "Exposed to ATS via the WithContainerFilesExport shim overload, which accepts integer file-mode options (ContainerFilesOptions) in place of the UnixFileMode parameter.")] public static ApplicationModel.IResourceBuilder WithContainerFiles(this ApplicationModel.IResourceBuilder builder, string destinationPath, string sourcePath, int? defaultOwner = null, int? defaultGroup = null, System.IO.UnixFileMode? umask = null) where T : ApplicationModel.ContainerResource { throw null; } @@ -200,7 +200,7 @@ public static ApplicationModel.IResourceBuilder WithDockerfileBuilder(this public static ApplicationModel.IResourceBuilder WithDockerfileBuilder(this ApplicationModel.IResourceBuilder builder, string contextPath, System.Func callback, string? stage = null) where T : ApplicationModel.ContainerResource { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the async callback overload.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the async callback overload.")] public static ApplicationModel.IResourceBuilder WithDockerfileFactory(this ApplicationModel.IResourceBuilder builder, string contextPath, System.Func dockerfileFactory, string? stage = null) where T : ApplicationModel.ContainerResource { throw null; } @@ -281,7 +281,7 @@ public DistributedApplication(Microsoft.Extensions.Hosting.IHost host) { } public static IDistributedApplicationBuilder CreateBuilder(DistributedApplicationOptions options) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal createBuilder dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal createBuilder dispatcher export.")] public static IDistributedApplicationBuilder CreateBuilder(string[] args) { throw null; } public virtual void Dispose() { } @@ -417,7 +417,13 @@ public DistributedApplicationExecutionContext(DistributedApplicationOperation op public string PublisherName { get { throw null; } set { } } + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREWATCH001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public RunConfiguration RunConfiguration { get { throw null; } } + + [System.Obsolete("Use Services instead.")] public System.IServiceProvider ServiceProvider { get { throw null; } } + + public System.IServiceProvider Services { get { throw null; } } } [AspireExport] @@ -431,7 +437,13 @@ public DistributedApplicationExecutionContextOptions(DistributedApplicationOpera public string? PublisherName { get { throw null; } } + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREWATCH001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public RunConfiguration RunConfiguration { get { throw null; } init { } } + + [System.Obsolete("Use Services instead.")] public System.IServiceProvider? ServiceProvider { get { throw null; } set { } } + + public System.IServiceProvider? Services { get { throw null; } set { } } } public enum DistributedApplicationOperation @@ -520,7 +532,7 @@ public static ApplicationModel.IResourceBuilder PublishAsDockerFile(this A public static ApplicationModel.IResourceBuilder PublishAsDockerFile(this ApplicationModel.IResourceBuilder builder, System.Collections.Generic.IEnumerable? buildArgs) where T : ApplicationModel.ExecutableResource { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the overload with the optional configure callback.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the overload with the optional configure callback.")] public static ApplicationModel.IResourceBuilder PublishAsDockerFile(this ApplicationModel.IResourceBuilder builder) where T : ApplicationModel.ExecutableResource { throw null; } @@ -541,16 +553,16 @@ public static partial class ExecutableResourceExtensions public static partial class ExternalServiceBuilderExtensions { - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal addExternalService dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addExternalService dispatcher export.")] public static ApplicationModel.IResourceBuilder AddExternalService(this IDistributedApplicationBuilder builder, string name, ApplicationModel.IResourceBuilder urlParameter) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal addExternalService dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addExternalService dispatcher export.")] public static ApplicationModel.IResourceBuilder AddExternalService(this IDistributedApplicationBuilder builder, string name, string url) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal addExternalService dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addExternalService dispatcher export.")] public static ApplicationModel.IResourceBuilder AddExternalService(this IDistributedApplicationBuilder builder, string name, System.Uri uri) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withHttpHealthCheck export wrapper.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withHttpHealthCheck export wrapper.")] public static ApplicationModel.IResourceBuilder WithHttpHealthCheck(this ApplicationModel.IResourceBuilder builder, string? path = null, int? statusCode = null) { throw null; } } @@ -622,7 +634,6 @@ public partial interface IFileSystemService ITempFileSystemService TempDirectory { get; } } - [System.Diagnostics.CodeAnalysis.Experimental("ASPIREINTERACTION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public partial interface IInteractionService { bool IsAvailable { get; } @@ -633,9 +644,10 @@ public partial interface IInteractionService System.Threading.Tasks.Task> PromptInputsAsync(string title, string? message, System.Collections.Generic.IReadOnlyList inputs, InputsDialogInteractionOptions? options = null, System.Threading.CancellationToken cancellationToken = default); System.Threading.Tasks.Task> PromptMessageBoxAsync(string title, string message, MessageBoxInteractionOptions? options = null, System.Threading.CancellationToken cancellationToken = default); System.Threading.Tasks.Task> PromptNotificationAsync(string title, string message, NotificationInteractionOptions? options = null, System.Threading.CancellationToken cancellationToken = default); + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREINTERACTION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + System.Threading.Tasks.Task> PromptProgressAsync(string message, ProgressInteractionOptions? options = null, System.Threading.CancellationToken cancellationToken = default); } - [System.Diagnostics.CodeAnalysis.Experimental("ASPIREINTERACTION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public sealed partial class InputLoadOptions { public bool AlwaysLoadOnStart { get { throw null; } init { } } @@ -645,13 +657,11 @@ public sealed partial class InputLoadOptions public required System.Func LoadCallback { get { throw null; } init { } } } - [System.Diagnostics.CodeAnalysis.Experimental("ASPIREINTERACTION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public partial class InputsDialogInteractionOptions : InteractionOptions { public System.Func? ValidationCallback { get { throw null; } set { } } } - [System.Diagnostics.CodeAnalysis.Experimental("ASPIREINTERACTION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] [AspireExport(ExposeProperties = true)] public sealed partial class InputsDialogValidationContext { @@ -659,7 +669,6 @@ public sealed partial class InputsDialogValidationContext public required InteractionInputCollection Inputs { get { throw null; } init { } } - [AspireExportIgnore(Reason = "IServiceProvider is not part of the polyglot validation surface.")] public required System.IServiceProvider Services { get { throw null; } init { } } public void AddValidationError(InteractionInput input, string errorMessage) { } @@ -668,35 +677,76 @@ public void AddValidationError(InteractionInput input, string errorMessage) { } public void AddValidationError(string inputName, string errorMessage) { } } - [System.Diagnostics.CodeAnalysis.Experimental("ASPIREINTERACTION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public enum InputType { Text = 0, SecretText = 1, Choice = 2, Boolean = 3, - Number = 4 + Number = 4, + File = 5 + } + + public sealed partial class InteractionFile + { + internal InteractionFile() { } + + public string FilePath { get { throw null; } } + + public string Id { get { throw null; } } + + public string Name { get { throw null; } } + + public System.IO.Stream OpenRead() { throw null; } + + public System.Threading.Tasks.Task ReadAllBytesAsync(System.Threading.CancellationToken cancellationToken = default) { throw null; } + } + + [AspireExportIgnore(Reason = "InteractionFileCollection owns server-local files and implements IDisposable, which is not ATS-compatible.")] + public sealed partial class InteractionFileCollection : System.Collections.Generic.IReadOnlyList, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection, System.IDisposable + { + internal InteractionFileCollection() { } + + public int Count { get { throw null; } } + + public InteractionFile this[int index] { get { throw null; } } + + public void Dispose() { } + + public System.Collections.Generic.IEnumerator GetEnumerator() { throw null; } + + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { throw null; } } - [System.Diagnostics.CodeAnalysis.Experimental("ASPIREINTERACTION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] [AspireDto] [System.Diagnostics.DebuggerDisplay("Name = {Name}, InputType = {InputType}, Required = {Required}, Value = {Value}")] public sealed partial class InteractionInput { public bool AllowCustomChoice { get { throw null; } init { } } + public bool AllowMultipleFiles { get { throw null; } init { } } + public string? Description { get { throw null; } init { } } public bool Disabled { get { throw null; } set { } } + [AspireExportIgnore(Reason = "InputLoadOptions carries a non-serializable callback and is never populated on interaction results.")] public InputLoadOptions? DynamicLoading { get { throw null; } init { } } public bool EnableDescriptionMarkdown { get { throw null; } init { } } + public string? FileFilter { get { throw null; } init { } } + + [System.Obsolete("Use GetFiles() and dispose the returned collection when the files are no longer needed.")] + [AspireExportIgnore(Reason = "InteractionFile contains non-serializable methods and server-local paths; polyglot callers use InteractionInputFile from base.mts.")] + public System.Collections.Generic.IReadOnlyList? Files { get { throw null; } } + public required InputType InputType { get { throw null; } init { } } public string? Label { get { throw null; } init { } } + public long? MaxFileSize { get { throw null; } init { } } + public int? MaxLength { get { throw null; } init { } } public required string Name { get { throw null; } init { } } @@ -708,9 +758,11 @@ public sealed partial class InteractionInput public bool Required { get { throw null; } init { } } public string? Value { get { throw null; } set { } } + + [AspireExportIgnore(Reason = "InteractionFileCollection owns server-local files and implements IDisposable, which is not ATS-compatible.")] + public InteractionFileCollection GetFiles() { throw null; } } - [System.Diagnostics.CodeAnalysis.Experimental("ASPIREINTERACTION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] [AspireExport] [System.Diagnostics.DebuggerDisplay("Count = {Count}")] public sealed partial class InteractionInputCollection : System.Collections.Generic.IReadOnlyList, System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection @@ -745,7 +797,6 @@ public InteractionInputCollection(System.Collections.Generic.IReadOnlyList Ok(T result) { throw null; } } - [System.Diagnostics.CodeAnalysis.Experimental("ASPIREINTERACTION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public partial class InteractionResult { internal InteractionResult() { } @@ -854,7 +904,6 @@ public sealed partial class LaunchSettings public System.Collections.Generic.Dictionary Profiles { get { throw null; } set { } } } - [System.Diagnostics.CodeAnalysis.Experimental("ASPIREINTERACTION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public sealed partial class LoadInputContext { public required InteractionInputCollection AllInputs { get { throw null; } init { } } @@ -874,13 +923,11 @@ public static ApplicationModel.IResourceBuilder WithMcpServer(this Applica where T : ApplicationModel.IResourceWithEndpoints { throw null; } } - [System.Diagnostics.CodeAnalysis.Experimental("ASPIREINTERACTION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public partial class MessageBoxInteractionOptions : InteractionOptions { public MessageIntent? Intent { get { throw null; } set { } } } - [System.Diagnostics.CodeAnalysis.Experimental("ASPIREINTERACTION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public enum MessageIntent { None = 0, @@ -898,7 +945,6 @@ public MissingParameterValueException(string message, System.Exception innerExce public MissingParameterValueException(string message) { } } - [System.Diagnostics.CodeAnalysis.Experimental("ASPIREINTERACTION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public partial class NotificationInteractionOptions : InteractionOptions { public MessageIntent? Intent { get { throw null; } set { } } @@ -914,13 +960,17 @@ public static void AddOtlpEnvironment(ApplicationModel.IResource resource, Micro public static void AddOtlpEnvironment(ApplicationModel.IResource resource, Microsoft.Extensions.Configuration.IConfiguration configuration, Microsoft.Extensions.Hosting.IHostEnvironment environment) { } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withOtlpExporter dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withOtlpExporter dispatcher export.")] public static ApplicationModel.IResourceBuilder WithOtlpExporter(this ApplicationModel.IResourceBuilder builder, OtlpProtocol protocol) where T : ApplicationModel.IResourceWithEnvironment { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withOtlpExporter dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withOtlpExporter dispatcher export.")] public static ApplicationModel.IResourceBuilder WithOtlpExporter(this ApplicationModel.IResourceBuilder builder) where T : ApplicationModel.IResourceWithEnvironment { throw null; } + + [AspireExportIgnore(Reason = "Optional OTLP exporter registration is currently used by C# hosting integrations only.")] + public static ApplicationModel.IResourceBuilder WithOtlpExporterIfEndpointAvailable(this ApplicationModel.IResourceBuilder builder, OtlpProtocol protocol) + where T : ApplicationModel.IResourceWithEnvironment { throw null; } } public enum OtlpProtocol @@ -930,7 +980,6 @@ public enum OtlpProtocol HttpJson = 2 } - [System.Diagnostics.CodeAnalysis.Experimental("ASPIREINTERACTION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public sealed partial class ParameterProcessor { public ParameterProcessor(ApplicationModel.ResourceNotificationService notificationService, ApplicationModel.ResourceLoggerService loggerService, IInteractionService interactionService, Microsoft.Extensions.Logging.ILogger logger, DistributedApplicationExecutionContext executionContext, Pipelines.IDeploymentStateManager deploymentStateManager, IUserSecretsManager userSecretsManager) { } @@ -946,19 +995,19 @@ public ParameterProcessor(ApplicationModel.ResourceNotificationService notificat public static partial class ParameterResourceBuilderExtensions { - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal addConnectionString dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addConnectionString dispatcher export.")] public static ApplicationModel.IResourceBuilder AddConnectionString(this IDistributedApplicationBuilder builder, string name, string? environmentVariableName = null) { throw null; } [AspireExportIgnore(Reason = "ParameterDefault is not an ATS-exported type.")] public static ApplicationModel.IResourceBuilder AddParameter(this IDistributedApplicationBuilder builder, string name, ApplicationModel.ParameterDefault value, bool secret = false, bool persist = false) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal addParameter dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addParameter dispatcher export.")] public static ApplicationModel.IResourceBuilder AddParameter(this IDistributedApplicationBuilder builder, string name, bool secret = false) { throw null; } [AspireExportIgnore(Reason = "Raw Func delegate — not ATS-compatible.")] public static ApplicationModel.IResourceBuilder AddParameter(this IDistributedApplicationBuilder builder, string name, System.Func valueGetter, bool publishValueAsDefault = false, bool secret = false) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal addParameter dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addParameter dispatcher export.")] public static ApplicationModel.IResourceBuilder AddParameter(this IDistributedApplicationBuilder builder, string name, string value, bool publishValueAsDefault = false, bool secret = false) { throw null; } [AspireExport] @@ -972,11 +1021,11 @@ public static void ConfigureConnectionStringManifestPublisher(ApplicationModel.I public static ApplicationModel.ParameterResource CreateParameter(IDistributedApplicationBuilder builder, string name, bool secret) { throw null; } + [System.Obsolete("PublishAsConnectionString only works with the manifest publisher and is obsolete. Use AddConnectionString in publish-mode app model code instead.")] [AspireExport] public static ApplicationModel.IResourceBuilder PublishAsConnectionString(this ApplicationModel.IResourceBuilder builder) where T : ApplicationModel.ContainerResource, ApplicationModel.IResourceWithConnectionString { throw null; } - [System.Diagnostics.CodeAnalysis.Experimental("ASPIREINTERACTION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] [AspireExportIgnore(Reason = "Complex Func delegate with InteractionInput — not ATS-compatible.")] public static ApplicationModel.IResourceBuilder WithCustomInput(this ApplicationModel.IResourceBuilder builder, System.Func createInput) { throw null; } @@ -984,23 +1033,37 @@ public static ApplicationModel.IResourceBuilder PublishAsConnectionString( public static ApplicationModel.IResourceBuilder WithDescription(this ApplicationModel.IResourceBuilder builder, string description, bool enableMarkdown = false) { throw null; } } + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREINTERACTION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public sealed partial class ProgressContext + { + public required System.Threading.CancellationToken CancellationToken { get { throw null; } init { } } + } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREINTERACTION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public partial class ProgressInteractionOptions : InteractionOptions + { + public string? Title { get { throw null; } set { } } + + public System.Func? Work { get { throw null; } set { } } + } + public static partial class ProjectResourceBuilderExtensions { [System.Diagnostics.CodeAnalysis.Experimental("ASPIRECSHARPAPPS001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal addCSharpApp dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addCSharpApp dispatcher export.")] public static ApplicationModel.IResourceBuilder AddCSharpApp(this IDistributedApplicationBuilder builder, string name, string path, System.Action configure) { throw null; } [System.Diagnostics.CodeAnalysis.Experimental("ASPIRECSHARPAPPS001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal addCSharpApp dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addCSharpApp dispatcher export.")] public static ApplicationModel.IResourceBuilder AddCSharpApp(this IDistributedApplicationBuilder builder, string name, string path) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal addProject dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addProject dispatcher export.")] public static ApplicationModel.IResourceBuilder AddProject(this IDistributedApplicationBuilder builder, string name, string projectPath, System.Action configure) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal addProject dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addProject dispatcher export.")] public static ApplicationModel.IResourceBuilder AddProject(this IDistributedApplicationBuilder builder, string name, string projectPath, string? launchProfileName) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal addProject dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal addProject dispatcher export.")] public static ApplicationModel.IResourceBuilder AddProject(this IDistributedApplicationBuilder builder, string name, string projectPath) { throw null; } [AspireExportIgnore(Reason = "Uses IProjectMetadata generic constraint which is a .NET-specific type.")] @@ -1022,9 +1085,14 @@ public static partial class ProjectResourceBuilderExtensions public static ApplicationModel.IResourceBuilder PublishAsDockerFile(this ApplicationModel.IResourceBuilder builder, System.Action>? configure = null) where T : ApplicationModel.ProjectResource { throw null; } - [AspireExportIgnore(Reason = "Uses Func which is not ATS-compatible.")] + [AspireExportIgnore(Reason = "Uses Func which is not ATS-compatible. The ATS-friendly implementation is in src/Aspire.Hosting/Ats/CoreExports.cs and accepts endpoint names instead of a predicate.")] public static ApplicationModel.IResourceBuilder WithEndpointsInEnvironment(this ApplicationModel.IResourceBuilder builder, System.Func filter) { throw null; } + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREPROJECTS001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + [AspireExportIgnore(Reason = "Project launch defaults are applied by the .NET language integration, not by polyglot AppHosts.")] + public static ApplicationModel.IResourceBuilder WithProjectDefaults(this ApplicationModel.IResourceBuilder builder, ProjectResourceOptions options) + where TProjectResource : class, ApplicationModel.IResourceWithEnvironment, ApplicationModel.IResourceWithEndpoints, ApplicationModel.IResourceWithArgs { throw null; } + [AspireExport] public static ApplicationModel.IResourceBuilder WithReplicas(this ApplicationModel.IResourceBuilder builder, int replicas) { throw null; } } @@ -1042,7 +1110,7 @@ public partial class ProjectResourceOptions public static partial class RequiredCommandResourceExtensions { [System.Diagnostics.CodeAnalysis.Experimental("ASPIRECOMMAND001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] - [AspireExportIgnore(Reason = "RequiredCommandValidationContext exposes IServiceProvider — not usable from polyglot hosts.")] + [AspireExport("withRequiredCommandValidation", MethodName = "withRequiredCommandValidation")] public static ApplicationModel.IResourceBuilder WithRequiredCommand(this ApplicationModel.IResourceBuilder builder, string command, System.Func> validationCallback, string? helpLink = null) where T : ApplicationModel.IResource { throw null; } @@ -1085,15 +1153,15 @@ public static ApplicationModel.IResourceBuilder PublishWithContainerFiles( where T : ApplicationModel.IContainerFilesDestinationResource { throw null; } [System.Diagnostics.CodeAnalysis.Experimental("ASPIRECERTIFICATES001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] - [AspireExportIgnore(Reason = "HttpsEndpointUpdateCallbackContext exposes IServiceProvider and IResource — not usable from polyglot hosts.")] + [AspireExport] public static ApplicationModel.IResourceBuilder SubscribeHttpsEndpointsUpdate(this ApplicationModel.IResourceBuilder builder, System.Action callback) where TResource : ApplicationModel.IResource { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal waitFor dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal waitFor dispatcher export.")] public static ApplicationModel.IResourceBuilder WaitFor(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder dependency, ApplicationModel.WaitBehavior waitBehavior) where T : ApplicationModel.IResourceWithWaitSupport { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal waitFor dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal waitFor dispatcher export.")] public static ApplicationModel.IResourceBuilder WaitFor(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder dependency) where T : ApplicationModel.IResourceWithWaitSupport { throw null; } @@ -1101,11 +1169,11 @@ public static ApplicationModel.IResourceBuilder WaitFor(this ApplicationMo public static ApplicationModel.IResourceBuilder WaitForCompletion(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder dependency, int exitCode = 0) where T : ApplicationModel.IResourceWithWaitSupport { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal waitForStart dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal waitForStart dispatcher export.")] public static ApplicationModel.IResourceBuilder WaitForStart(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder dependency, ApplicationModel.WaitBehavior waitBehavior) where T : ApplicationModel.IResourceWithWaitSupport { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal waitForStart dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal waitForStart dispatcher export.")] public static ApplicationModel.IResourceBuilder WaitForStart(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder dependency) where T : ApplicationModel.IResourceWithWaitSupport { throw null; } @@ -1113,7 +1181,7 @@ public static ApplicationModel.IResourceBuilder WaitForStart(this Applicat public static ApplicationModel.IResourceBuilder WithArgs(this ApplicationModel.IResourceBuilder builder, System.Action callback) where T : ApplicationModel.IResourceWithArgs { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the synchronous Action<> overload via withArgsCallback.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the synchronous Action<> overload via withArgsCallback.")] public static ApplicationModel.IResourceBuilder WithArgs(this ApplicationModel.IResourceBuilder builder, System.Func callback) where T : ApplicationModel.IResourceWithArgs { throw null; } @@ -1157,11 +1225,11 @@ public static ApplicationModel.IResourceBuilder WithCommand(this Applicati public static ApplicationModel.IResourceBuilder WithComputeEnvironment(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder computeEnvironmentResource) where T : ApplicationModel.IComputeResource { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withConnectionProperty dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withConnectionProperty dispatcher export.")] public static ApplicationModel.IResourceBuilder WithConnectionProperty(this ApplicationModel.IResourceBuilder builder, string name, ApplicationModel.ReferenceExpression value) where T : ApplicationModel.IResourceWithConnectionString { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withConnectionProperty dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withConnectionProperty dispatcher export.")] public static ApplicationModel.IResourceBuilder WithConnectionProperty(this ApplicationModel.IResourceBuilder builder, string name, string value) where T : ApplicationModel.IResourceWithConnectionString { throw null; } @@ -1175,7 +1243,17 @@ public static ApplicationModel.IResourceBuilder WithContainerFilesSource(t [System.Diagnostics.CodeAnalysis.Experimental("ASPIREEXTENSION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] [AspireExportIgnore(Reason = "Generic debug launch configuration support is not part of the ATS surface.")] - public static ApplicationModel.IResourceBuilder WithDebugSupport(this ApplicationModel.IResourceBuilder builder, System.Func launchConfigurationProducer, string launchConfigurationType, System.Action? argsCallback = null) + public static ApplicationModel.IResourceBuilder WithDebugSupport(this ApplicationModel.IResourceBuilder builder, System.Func> launchConfigurationProducer, string launchConfigurationType) + where T : ApplicationModel.IResource { throw null; } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREEXTENSION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + [AspireExportIgnore(Reason = "Generic debug launch configuration support is not part of the ATS surface.")] + public static ApplicationModel.IResourceBuilder WithDebugSupport(this ApplicationModel.IResourceBuilder builder, System.Func launchConfigurationProducer, string launchConfigurationType) + where T : ApplicationModel.IResource { throw null; } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREEXTENSION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + [AspireExportIgnore(Reason = "Generic debug launch configuration support is not part of the ATS surface.")] + public static ApplicationModel.IResourceBuilder WithDebugSupport(this ApplicationModel.IResourceBuilder builder, System.Func> launchConfigurationProducer, string launchConfigurationType) where T : ApplicationModel.IResource { throw null; } [AspireExport] @@ -1198,14 +1276,14 @@ public static ApplicationModel.IResourceBuilder WithEndpoint(this Applicat public static ApplicationModel.IResourceBuilder WithEndpoint(this ApplicationModel.IResourceBuilder builder, int? port, int? targetPort, string? scheme, string? name, string? env, bool? isProxied, bool? isExternal) where T : ApplicationModel.IResourceWithEndpoints { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withEndpointCallback export, which exposes EndpointUpdateContext instead of EndpointAnnotation.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withEndpointCallback export, which exposes EndpointUpdateContext instead of EndpointAnnotation.")] public static ApplicationModel.IResourceBuilder WithEndpoint(this ApplicationModel.IResourceBuilder builder, string endpointName, System.Action callback, bool createIfNotExists = true) where T : ApplicationModel.IResourceWithEndpoints { throw null; } [AspireExport] public static ApplicationModel.IResourceBuilder WithEndpointProxySupport(this ApplicationModel.IResourceBuilder builder, bool proxyEnabled) { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the async callback overload.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the async callback overload.")] public static ApplicationModel.IResourceBuilder WithEnvironment(this ApplicationModel.IResourceBuilder builder, System.Action callback) where T : ApplicationModel.IResourceWithEnvironment { throw null; } @@ -1213,23 +1291,23 @@ public static ApplicationModel.IResourceBuilder WithEnvironment(this Appli public static ApplicationModel.IResourceBuilder WithEnvironment(this ApplicationModel.IResourceBuilder builder, System.Func callback) where T : ApplicationModel.IResourceWithEnvironment { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withEnvironment dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withEnvironment dispatcher export.")] public static ApplicationModel.IResourceBuilder WithEnvironment(this ApplicationModel.IResourceBuilder builder, string name, ApplicationModel.EndpointReference endpointReference) where T : ApplicationModel.IResourceWithEnvironment { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withEnvironment dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withEnvironment dispatcher export.")] public static ApplicationModel.IResourceBuilder WithEnvironment(this ApplicationModel.IResourceBuilder builder, string name, ApplicationModel.IExpressionValue value) where T : ApplicationModel.IResourceWithEnvironment { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withEnvironment dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withEnvironment dispatcher export.")] public static ApplicationModel.IResourceBuilder WithEnvironment(this ApplicationModel.IResourceBuilder builder, string envVarName, ApplicationModel.IResourceBuilder resource) where T : ApplicationModel.IResourceWithEnvironment { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withEnvironment dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withEnvironment dispatcher export.")] public static ApplicationModel.IResourceBuilder WithEnvironment(this ApplicationModel.IResourceBuilder builder, string name, ApplicationModel.IResourceBuilder parameter) where T : ApplicationModel.IResourceWithEnvironment { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withEnvironment dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withEnvironment dispatcher export.")] public static ApplicationModel.IResourceBuilder WithEnvironment(this ApplicationModel.IResourceBuilder builder, string name, ApplicationModel.IResourceBuilder externalService) where T : ApplicationModel.IResourceWithEnvironment { throw null; } @@ -1237,7 +1315,7 @@ public static ApplicationModel.IResourceBuilder WithEnvironment(this Appli public static ApplicationModel.IResourceBuilder WithEnvironment(this ApplicationModel.IResourceBuilder builder, string name, in ApplicationModel.ReferenceExpression.ExpressionInterpolatedStringHandler value) where T : ApplicationModel.IResourceWithEnvironment { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withEnvironment dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withEnvironment dispatcher export.")] public static ApplicationModel.IResourceBuilder WithEnvironment(this ApplicationModel.IResourceBuilder builder, string name, ApplicationModel.ReferenceExpression value) where T : ApplicationModel.IResourceWithEnvironment { throw null; } @@ -1245,7 +1323,7 @@ public static ApplicationModel.IResourceBuilder WithEnvironment(this Appli public static ApplicationModel.IResourceBuilder WithEnvironment(this ApplicationModel.IResourceBuilder builder, string name, System.Func callback) where T : ApplicationModel.IResourceWithEnvironment { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withEnvironment dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withEnvironment dispatcher export.")] public static ApplicationModel.IResourceBuilder WithEnvironment(this ApplicationModel.IResourceBuilder builder, string name, string? value) where T : ApplicationModel.IResourceWithEnvironment { throw null; } @@ -1317,7 +1395,7 @@ public static ApplicationModel.IResourceBuilder WithHttpsCertificate< where TResource : ApplicationModel.IResourceWithEnvironment, ApplicationModel.IResourceWithArgs { throw null; } [System.Diagnostics.CodeAnalysis.Experimental("ASPIRECERTIFICATES001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] - [AspireExportIgnore(Reason = "HttpsCertificateConfigurationCallbackAnnotationContext exposes IServiceProvider and IResource — not usable from polyglot hosts.")] + [AspireExport] public static ApplicationModel.IResourceBuilder WithHttpsCertificateConfiguration(this ApplicationModel.IResourceBuilder builder, System.Func callback) where TResource : ApplicationModel.IResourceWithEnvironment, ApplicationModel.IResourceWithArgs { throw null; } @@ -1343,7 +1421,7 @@ public static ApplicationModel.IResourceBuilder WithIconName(this Applicat where T : ApplicationModel.IResource { throw null; } [System.Diagnostics.CodeAnalysis.Experimental("ASPIREPIPELINES003", UrlFormat = "https://aka.ms/aspire/diagnostics#{0}")] - [AspireExportIgnore(Reason = "Polyglot app hosts use the async callback overload.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the async callback overload.")] public static ApplicationModel.IResourceBuilder WithImagePushOptions(this ApplicationModel.IResourceBuilder builder, System.Action callback) where T : ApplicationModel.IComputeResource { throw null; } @@ -1352,6 +1430,11 @@ public static ApplicationModel.IResourceBuilder WithImagePushOptions(this public static ApplicationModel.IResourceBuilder WithImagePushOptions(this ApplicationModel.IResourceBuilder builder, System.Func callback) where T : ApplicationModel.IComputeResource { throw null; } + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREEXTENSION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + [AspireExportIgnore(Reason = "Generic launch tool argument support is not part of the ATS surface.")] + public static ApplicationModel.IResourceBuilder WithLaunchToolArgs(this ApplicationModel.IResourceBuilder builder, System.Action callback, string? ownedByLaunchConfigurationType = null, bool showInCommandLine = true) + where T : ApplicationModel.IResourceWithArgs { throw null; } + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREPERSISTENCE001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] [AspireExport] public static ApplicationModel.IResourceBuilder WithLifetimeOf(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder sourceBuilder) @@ -1389,41 +1472,41 @@ public static ApplicationModel.IResourceBuilder WithPersistentLifetime(thi where T : ApplicationModel.IResource { throw null; } [System.Diagnostics.CodeAnalysis.Experimental("ASPIREPROCESSCOMMAND001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] - [AspireExportIgnore(Reason = "Process command factories are C# callbacks and cannot be represented in polyglot app hosts.")] + [AspireExportIgnore(Reason = "Process command factories are C# callbacks and cannot be represented in polyglot AppHosts.")] public static ApplicationModel.IResourceBuilder WithProcessCommand(this ApplicationModel.IResourceBuilder builder, string commandName, string displayName, System.Func processSpecFactory, ApplicationModel.ProcessCommandOptions? commandOptions = null) where TResource : ApplicationModel.IResource { throw null; } [System.Diagnostics.CodeAnalysis.Experimental("ASPIREPROCESSCOMMAND001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] - [AspireExportIgnore(Reason = "Process command factories are C# callbacks and cannot be represented in polyglot app hosts.")] + [AspireExportIgnore(Reason = "Process command factories are C# callbacks and cannot be represented in polyglot AppHosts.")] public static ApplicationModel.IResourceBuilder WithProcessCommand(this ApplicationModel.IResourceBuilder builder, string commandName, string displayName, System.Func> processSpecFactory, ApplicationModel.ProcessCommandOptions? commandOptions = null) where TResource : ApplicationModel.IResource { throw null; } [System.Diagnostics.CodeAnalysis.Experimental("ASPIREPROCESSCOMMAND001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] - [AspireExportIgnore(Reason = "Process commands start local processes from AppHost callbacks and cannot be represented in polyglot app hosts.")] + [AspireExportIgnore(Reason = "Process commands start local processes from AppHost callbacks and cannot be represented in polyglot AppHosts.")] public static ApplicationModel.IResourceBuilder WithProcessCommand(this ApplicationModel.IResourceBuilder builder, string commandName, string displayName, string executablePath, System.Collections.Generic.IReadOnlyList? arguments = null, ApplicationModel.ProcessCommandOptions? commandOptions = null) where TResource : ApplicationModel.IResource { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the generic withReference dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the generic withReference dispatcher export.")] public static ApplicationModel.IResourceBuilder WithReference(this ApplicationModel.IResourceBuilder builder, ApplicationModel.EndpointReference endpointReference) where TDestination : ApplicationModel.IResourceWithEnvironment { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withReference dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withReference dispatcher export.")] public static ApplicationModel.IResourceBuilder WithReference(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder source, string? connectionName = null, bool optional = false) where TDestination : ApplicationModel.IResourceWithEnvironment { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts can use the generic withReference dispatcher with an ExternalServiceResource builder.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts can use the generic withReference dispatcher with an ExternalServiceResource builder.")] public static ApplicationModel.IResourceBuilder WithReference(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder externalService) where TDestination : ApplicationModel.IResourceWithEnvironment { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the generic withReference export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the generic withReference export.")] public static ApplicationModel.IResourceBuilder WithReference(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder source, string name) where TDestination : ApplicationModel.IResourceWithEnvironment { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the generic withReference export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the generic withReference export.")] public static ApplicationModel.IResourceBuilder WithReference(this ApplicationModel.IResourceBuilder builder, ApplicationModel.IResourceBuilder source) where TDestination : ApplicationModel.IResourceWithEnvironment { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the generic withReference dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the generic withReference dispatcher export.")] public static ApplicationModel.IResourceBuilder WithReference(this ApplicationModel.IResourceBuilder builder, string name, System.Uri uri) where TDestination : ApplicationModel.IResourceWithEnvironment { throw null; } @@ -1466,7 +1549,7 @@ public static ApplicationModel.IResourceBuilder WithRemoteImageTag(this Ap public static ApplicationModel.IResourceBuilder WithSessionLifetime(this ApplicationModel.IResourceBuilder builder) where T : ApplicationModel.IResource { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withUrl dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withUrl dispatcher export.")] public static ApplicationModel.IResourceBuilder WithUrl(this ApplicationModel.IResourceBuilder builder, ApplicationModel.ReferenceExpression url, string? displayText = null) where T : ApplicationModel.IResource { throw null; } @@ -1474,7 +1557,7 @@ public static ApplicationModel.IResourceBuilder WithUrl(this ApplicationMo public static ApplicationModel.IResourceBuilder WithUrl(this ApplicationModel.IResourceBuilder builder, in ApplicationModel.ReferenceExpression.ExpressionInterpolatedStringHandler url, string? displayText = null) where T : ApplicationModel.IResource { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the internal withUrl dispatcher export.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the internal withUrl dispatcher export.")] public static ApplicationModel.IResourceBuilder WithUrl(this ApplicationModel.IResourceBuilder builder, string url, string? displayText = null) where T : ApplicationModel.IResource { throw null; } @@ -1482,7 +1565,7 @@ public static ApplicationModel.IResourceBuilder WithUrl(this ApplicationMo public static ApplicationModel.IResourceBuilder WithUrlForEndpoint(this ApplicationModel.IResourceBuilder builder, string endpointName, System.Action callback) where T : ApplicationModel.IResource { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the Action overload for withUrlForEndpoint.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the Action overload for withUrlForEndpoint.")] public static ApplicationModel.IResourceBuilder WithUrlForEndpoint(this ApplicationModel.IResourceBuilder builder, string endpointName, System.Func callback) where T : ApplicationModel.IResourceWithEndpoints { throw null; } @@ -1490,11 +1573,18 @@ public static ApplicationModel.IResourceBuilder WithUrlForEndpoint(this Ap public static ApplicationModel.IResourceBuilder WithUrls(this ApplicationModel.IResourceBuilder builder, System.Action callback) where T : ApplicationModel.IResource { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the synchronous Action<> overload via withUrlsCallback.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the synchronous Action<> overload via withUrlsCallback.")] public static ApplicationModel.IResourceBuilder WithUrls(this ApplicationModel.IResourceBuilder builder, System.Func callback) where T : ApplicationModel.IResource { throw null; } } + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREWATCH001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + [AspireDto] + public sealed partial class RunConfiguration + { + public bool WatchEnabled { get { throw null; } init { } } + } + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREFILESYSTEM001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public abstract partial class TempDirectory : System.IDisposable { @@ -1511,11 +1601,26 @@ public abstract partial class TempFile : System.IDisposable public abstract void Dispose(); } + public static partial class TerminalResourceBuilderExtensions + { + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRETERMINAL001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the parameterless withTerminal dispatcher export.")] + public static ApplicationModel.IResourceBuilder WithTerminal(this ApplicationModel.IResourceBuilder builder, System.Action? configure = null) + where T : ApplicationModel.IResource { throw null; } + } + public static partial class VolumeNameGenerator { public static string Generate(ApplicationModel.IResourceBuilder builder, string suffix) where T : ApplicationModel.IResource { throw null; } } + + public static partial class VolumeResourceBuilderExtensions + { + [AspireExportIgnore(Reason = "Polyglot export is via CoreExports.WithVolume which reorders parameters.")] + public static ApplicationModel.IResourceBuilder WithVolume(this ApplicationModel.IResourceBuilder builder, string name, string target, string env, bool isReadOnly = false) + where T : ApplicationModel.IComputeResource, ApplicationModel.IResourceWithEnvironment { throw null; } + } } namespace Aspire.Hosting.ApplicationModel @@ -1724,7 +1829,6 @@ public CommandLineArgsCallbackContext(System.Collections.Generic.IList a [AspireDto] public partial class CommandOptions { - [System.Diagnostics.CodeAnalysis.Experimental("ASPIREINTERACTION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public System.Collections.Generic.IReadOnlyList Arguments { get { throw null; } set { } } public string? ConfirmationMessage { get { throw null; } set { } } @@ -1740,14 +1844,25 @@ public partial class CommandOptions [System.Obsolete("Use Arguments to describe invocation arguments and ExecuteCommandContext.Arguments to read them.")] public object? Parameter { get { throw null; } set { } } + public CommandProgressOptions? Progress { get { throw null; } set { } } + public System.Func? UpdateState { get { throw null; } set { } } - [System.Diagnostics.CodeAnalysis.Experimental("ASPIREINTERACTION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public System.Func? ValidateArguments { get { throw null; } set { } } public ResourceCommandVisibility Visibility { get { throw null; } set { } } } + [AspireDto] + public sealed partial class CommandProgressOptions + { + public bool HideCancelButton { get { throw null; } set { } } + + public string? Message { get { throw null; } set { } } + + public string? Title { get { throw null; } set { } } + } + [AspireDto] public sealed partial class CommandResultData { @@ -1842,6 +1957,7 @@ public ContainerBuildOptionsCallbackAnnotation(System.Func healthReports) { throw null; } } + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREEXTENSION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public static partial class DebugSupportExtensions + { + [AspireExportIgnore(Reason = "Debug support inspection is a local .NET helper and is not part of the ATS surface.")] + public static System.Threading.Tasks.Task CreateLaunchConfigurationAsync(this IResource resource, string mode, System.Threading.CancellationToken cancellationToken = default) { throw null; } + + [AspireExportIgnore(Reason = "Debug support inspection is a local .NET helper and is not part of the ATS surface.")] + public static bool HasLaunchToolArgsOwnedBy(this IResource resource, SupportsDebuggingAnnotation supportsDebuggingAnnotation) { throw null; } + + [AspireExportIgnore(Reason = "Debug support inspection is a local .NET helper and is not part of the ATS surface.")] + public static bool SupportsDebugging(this IResource resource, Microsoft.Extensions.Configuration.IConfiguration configuration, out SupportsDebuggingAnnotation? supportsDebuggingAnnotation) { throw null; } + } + [System.Diagnostics.DebuggerDisplay("Type = {GetType().Name,nq}, LaunchProfileName = {LaunchProfileName}")] public sealed partial class DefaultLaunchProfileAnnotation : IResourceAnnotation { @@ -2411,6 +2552,8 @@ public enum EndpointBindingMode public static partial class EndpointHostHelpers { + public static System.Threading.Tasks.ValueTask GetUrlWithTargetHostAsync(EndpointReference endpoint, System.Threading.CancellationToken cancellationToken = default) { throw null; } + public static bool IsDevLocalhostTld(string? host) { throw null; } public static bool IsDevLocalhostTld(System.Uri? uri) { throw null; } @@ -2602,6 +2745,25 @@ public sealed partial class ExecutableAnnotation : IResourceAnnotation public required string WorkingDirectory { get { throw null; } set { } } } + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREEXTENSION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public partial class ExecutableLaunchConfiguration + { + public ExecutableLaunchConfiguration(string type) { } + + [System.Text.Json.Serialization.JsonPropertyName("mode")] + public string Mode { get { throw null; } set { } } + + [System.Text.Json.Serialization.JsonPropertyName("type")] + public string Type { get { throw null; } set { } } + } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREEXTENSION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public static partial class ExecutableLaunchMode + { + public const string Debug = "Debug"; + public const string NoDebug = "NoDebug"; + } + [System.Diagnostics.DebuggerDisplay("Type = {GetType().Name,nq}, Name = {Name}, Command = {Command}")] public partial class ExecutableResource : Resource, IResourceWithEnvironment, IResource, IResourceWithArgs, IResourceWithEndpoints, IResourceWithWaitSupport, IResourceWithProbes, IComputeResource { @@ -2623,8 +2785,11 @@ public sealed partial class ExecuteCommandContext public required string ResourceName { get { throw null; } init { } } - [AspireExportIgnore(Reason = "IServiceProvider is not usable from polyglot command callbacks.")] - public required System.IServiceProvider ServiceProvider { get { throw null; } init { } } + [System.Obsolete("Use Services instead.")] + [AspireExportIgnore(Reason = "Obsolete alias for Services. The service provider is exposed to polyglot hosts via Services (services).")] + public System.IServiceProvider ServiceProvider { get { throw null; } init { } } + + public required System.IServiceProvider Services { get { throw null; } init { } } } [AspireDto] @@ -2722,6 +2887,21 @@ public sealed partial record HealthReportSnapshot(string Name, Microsoft.Extensi public System.DateTime? LastRunAt { get { throw null; } init { } } } + public sealed partial class HiddenAnnotation : IResourceAnnotation + { + public HiddenAnnotation(HiddenBehavior behavior) { } + + public HiddenBehavior Behavior { get { throw null; } } + + public System.Collections.Generic.IReadOnlyList SuccessfulExitCodes { get { throw null; } init { } } + } + + public enum HiddenBehavior + { + Always = 0, + OnCompletion = 1 + } + public partial record HostUrl(string Url) : IExpressionValue, IValueProvider, IManifestExpressionProvider { string IManifestExpressionProvider.ValueExpression { get { throw null; } } @@ -2748,6 +2928,8 @@ public partial class HttpCommandOptions : CommandOptions public sealed partial class HttpCommandRequestContext { + public InteractionInputCollection Arguments { get { throw null; } init { } } + public required System.Threading.CancellationToken CancellationToken { get { throw null; } init { } } public required EndpointReference Endpoint { get { throw null; } init { } } @@ -2758,11 +2940,16 @@ public sealed partial class HttpCommandRequestContext public required string ResourceName { get { throw null; } init { } } - public required System.IServiceProvider ServiceProvider { get { throw null; } init { } } + [System.Obsolete("Use Services instead.")] + public System.IServiceProvider ServiceProvider { get { throw null; } init { } } + + public required System.IServiceProvider Services { get { throw null; } init { } } } public sealed partial class HttpCommandResultContext { + public InteractionInputCollection Arguments { get { throw null; } init { } } + public required System.Threading.CancellationToken CancellationToken { get { throw null; } init { } } public required EndpointReference Endpoint { get { throw null; } init { } } @@ -2773,7 +2960,10 @@ public sealed partial class HttpCommandResultContext public required System.Net.Http.HttpResponseMessage Response { get { throw null; } init { } } - public required System.IServiceProvider ServiceProvider { get { throw null; } init { } } + [System.Obsolete("Use Services instead.")] + public System.IServiceProvider ServiceProvider { get { throw null; } init { } } + + public required System.IServiceProvider Services { get { throw null; } init { } } } public enum HttpCommandResultMode @@ -2803,24 +2993,35 @@ public HttpsCertificateConfigurationCallbackAnnotation(System.Func Arguments { get { throw null; } init { } } + [AspireExport] public required System.Threading.CancellationToken CancellationToken { get { throw null; } init { } } + [AspireExport] public required ReferenceExpression CertificatePath { get { throw null; } init { } } + [AspireExport] + public required ReferenceExpression CertificateWithKeyPath { get { throw null; } init { } } + public required System.Collections.Generic.Dictionary EnvironmentVariables { get { throw null; } init { } } + [AspireExport] public required DistributedApplicationExecutionContext ExecutionContext { get { throw null; } init { } } + [AspireExport] public required ReferenceExpression KeyPath { get { throw null; } init { } } + [AspireExportIgnore(Reason = "Password is typed as IValueProvider, which has no ATS-exported representation and no guaranteed concrete type to expose it as. The certificate paths (exposed as ReferenceExpression) cover the common configuration scenarios.")] public required IValueProvider? Password { get { throw null; } init { } } + [AspireExport] public required ReferenceExpression PfxPath { get { throw null; } init { } } + [AspireExport] public required IResource Resource { get { throw null; } init { } } } @@ -2830,6 +3031,8 @@ public partial class HttpsCertificateExecutionConfigurationContext { public required ReferenceExpression CertificatePath { get { throw null; } init { } } + public required ReferenceExpression CertificateWithKeyPath { get { throw null; } init { } } + public required ReferenceExpression KeyPath { get { throw null; } init { } } public required ReferenceExpression PfxPath { get { throw null; } init { } } @@ -2840,6 +3043,10 @@ public partial class HttpsCertificateExecutionConfigurationData : IExecutionConf { public required System.Security.Cryptography.X509Certificates.X509Certificate2 Certificate { get { throw null; } init { } } + public required ReferenceExpression CertificateWithKeyPathReference { get { throw null; } set { } } + + public bool IsCertificateWithKeyPathReferenced { get { throw null; } } + public bool IsKeyPathReferenced { get { throw null; } } public bool IsPfxPathReferenced { get { throw null; } } @@ -2852,6 +3059,7 @@ public partial class HttpsCertificateExecutionConfigurationData : IExecutionConf } [System.Diagnostics.CodeAnalysis.Experimental("ASPIRECERTIFICATES001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + [AspireExport(ExposeProperties = true)] public sealed partial class HttpsEndpointUpdateCallbackContext { public required System.Threading.CancellationToken CancellationToken { get { throw null; } init { } } @@ -2878,6 +3086,10 @@ public partial interface IComputeEnvironmentResource : IResource ReferenceExpression GetHostAddressExpression(EndpointReference endpointReference); } + public partial interface IComputeEnvironmentWithVolumeMounts : IComputeEnvironmentResource, IResource + { + } + public partial interface IComputeResource : IResource { } @@ -2980,7 +3192,6 @@ public InitializeResourceEvent(IResource resource, Eventing.IDistributedApplicat public System.IServiceProvider Services { get { throw null; } } } - [System.Diagnostics.CodeAnalysis.Experimental("ASPIREINTERACTION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public partial class InputGeneratorAnnotation : IResourceAnnotation { public InputGeneratorAnnotation(System.Func inputGenerator) { } @@ -3111,6 +3322,12 @@ public static partial class KnownHostNames public const string Localhost = "localhost"; } + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREEXTENSION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public static partial class KnownLaunchConfigurationTypes + { + public const string Project = "project"; + } + public static partial class KnownNetworkIdentifiers { public static readonly NetworkIdentifier DefaultAspireContainerNetwork; @@ -3156,6 +3373,20 @@ public static partial class KnownResourceStateStyles public static readonly string Warn; } + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREEXTENSION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public sealed partial class LaunchConfigurationCallbackContext + { + internal LaunchConfigurationCallbackContext() { } + + public System.Threading.CancellationToken CancellationToken { get { throw null; } } + + public System.Collections.Generic.IReadOnlyDictionary EnvironmentVariables { get { throw null; } } + + public string Mode { get { throw null; } } + + public IResource Resource { get { throw null; } } + } + [System.Diagnostics.DebuggerDisplay("Type = {GetType().Name,nq}, LaunchProfileName = {LaunchProfileName}")] public sealed partial class LaunchProfileAnnotation : IResourceAnnotation { @@ -3401,6 +3632,8 @@ public partial class ProcessCommandOptions : CommandOptions [System.Diagnostics.CodeAnalysis.Experimental("ASPIREPROCESSCOMMAND001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public sealed partial class ProcessCommandResultContext { + public InteractionInputCollection Arguments { get { throw null; } init { } } + public required System.Threading.CancellationToken CancellationToken { get { throw null; } init { } } public required int ExitCode { get { throw null; } init { } } @@ -3413,7 +3646,10 @@ public sealed partial class ProcessCommandResultContext public required string ResourceName { get { throw null; } init { } } - public required System.IServiceProvider ServiceProvider { get { throw null; } init { } } + [System.Obsolete("Use Services instead.")] + public System.IServiceProvider ServiceProvider { get { throw null; } init { } } + + public required System.IServiceProvider Services { get { throw null; } init { } } public required int TotalOutputLineCount { get { throw null; } init { } } @@ -3440,6 +3676,38 @@ public ProcessCommandSpec(string executablePath) { } public string? WorkingDirectory { get { throw null; } init { } } } + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREPROJECTS001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + [System.Diagnostics.DebuggerDisplay("Type = {GetType().Name,nq}, Arguments = {string.Join(\" \", Arguments)}")] + public sealed partial class ProjectLaunchArgsOverrideAnnotation : IResourceAnnotation + { + public ProjectLaunchArgsOverrideAnnotation(System.Collections.Generic.IReadOnlyList arguments, string? leadingResourceArgumentToRemove = null) { } + + public System.Collections.Generic.IReadOnlyList Arguments { get { throw null; } } + + public string? LeadingResourceArgumentToRemove { get { throw null; } } + } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREEXTENSION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public sealed partial class ProjectLaunchConfiguration : ExecutableLaunchConfiguration + { + public ProjectLaunchConfiguration() : base(default!) { } + + [System.Text.Json.Serialization.JsonPropertyName("disable_launch_profile")] + public bool DisableLaunchProfile { get { throw null; } set { } } + + [System.Text.Json.Serialization.JsonPropertyName("launch_profile")] + public string LaunchProfile { get { throw null; } set { } } + + [System.Text.Json.Serialization.JsonPropertyName("project_path")] + public required string ProjectPath { get { throw null; } set { } } + } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREPROJECTS001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public sealed partial class ProjectLaunchDefaultsAnnotation : IResourceAnnotation + { + public EndpointAnnotation? DefaultHttpsEndpoint { get { throw null; } } + } + [System.Diagnostics.DebuggerDisplay("{DebuggerToString(),nq}")] public partial class ProjectResource : Resource, IResourceWithEnvironment, IResource, IResourceWithArgs, IResourceWithServiceDiscovery, IResourceWithEndpoints, IResourceWithWaitSupport, IResourceWithProbes, IComputeResource, IContainerFilesDestinationResource { @@ -3641,6 +3909,7 @@ public RequiredCommandAnnotation(string command) { } } [System.Diagnostics.CodeAnalysis.Experimental("ASPIRECOMMAND001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + [AspireExport(ExposeProperties = true, ExposeMethods = true)] public sealed partial class RequiredCommandValidationContext { public RequiredCommandValidationContext(string resolvedPath, System.IServiceProvider services, System.Threading.CancellationToken cancellationToken) { } @@ -3650,9 +3919,14 @@ public RequiredCommandValidationContext(string resolvedPath, System.IServiceProv public string ResolvedPath { get { throw null; } } public System.IServiceProvider Services { get { throw null; } } + + public RequiredCommandValidationResult Failure(string validationMessage) { throw null; } + + public RequiredCommandValidationResult Success() { throw null; } } [System.Diagnostics.CodeAnalysis.Experimental("ASPIRECOMMAND001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + [AspireExport(ExposeProperties = true)] public sealed partial class RequiredCommandValidationResult { internal RequiredCommandValidationResult() { } @@ -3708,6 +3982,13 @@ protected Resource(string name) { } public sealed partial class ResourceAnnotationCollection : System.Collections.ObjectModel.Collection { + protected override void ClearItems() { } + + protected override void InsertItem(int index, IResourceAnnotation item) { } + + protected override void RemoveItem(int index) { } + + protected override void SetItem(int index, IResourceAnnotation item) { } } public enum ResourceAnnotationMutationBehavior @@ -3723,7 +4004,6 @@ public ResourceCommandAnnotation(string name, string displayName, System.Func updateState, System.Func> executeCommand, string? displayDescription, object? parameter, string? confirmationMessage, string? iconName, IconVariant? iconVariant, bool isHighlighted) { } - [System.Diagnostics.CodeAnalysis.Experimental("ASPIREINTERACTION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public System.Collections.Generic.IReadOnlyList Arguments { get { throw null; } } public string? ConfirmationMessage { get { throw null; } } @@ -3745,9 +4025,10 @@ public ResourceCommandAnnotation(string name, string displayName, System.Func UpdateState { get { throw null; } } - [System.Diagnostics.CodeAnalysis.Experimental("ASPIREINTERACTION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public System.Func? ValidateArguments { get { throw null; } } public ResourceCommandVisibility Visibility { get { throw null; } } @@ -3915,12 +4196,12 @@ public static bool TryGetLastAnnotation(this IResource resource, out T? annot public static bool TryGetUrls(this IResource resource, out System.Collections.Generic.IEnumerable? urls) { throw null; } [System.Diagnostics.CodeAnalysis.Experimental("ASPIREPIPELINES003", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] - [AspireExportIgnore(Reason = "ContainerBuildOptionsCallbackContext exposes IResource and IServiceProvider — .NET runtime types not usable from polyglot hosts.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the async callback overload.")] public static IResourceBuilder WithContainerBuildOptions(this IResourceBuilder builder, System.Action callback) where T : IResource, IComputeResource { throw null; } [System.Diagnostics.CodeAnalysis.Experimental("ASPIREPIPELINES003", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] - [AspireExportIgnore(Reason = "ContainerBuildOptionsCallbackContext exposes IResource and IServiceProvider — .NET runtime types not usable from polyglot hosts.")] + [AspireExport] public static IResourceBuilder WithContainerBuildOptions(this IResourceBuilder builder, System.Func callback) where T : IResource, IComputeResource { throw null; } } @@ -4003,7 +4284,13 @@ public sealed partial class ResourceNotificationServiceOptions [System.Diagnostics.DebuggerDisplay("{Value}", Name = "{Name}")] public sealed partial record ResourcePropertySnapshot(string Name, object? Value) { + public string? DisplayName { get { throw null; } init { } } + + public bool IsHighlighted { get { throw null; } init { } } + public bool IsSensitive { get { throw null; } init { } } + + public int? SortOrder { get { throw null; } init { } } } [AspireExport(ExposeProperties = true)] @@ -4055,6 +4342,7 @@ public ResourceStoppedEvent(IResource resource, System.IServiceProvider services [AspireDto] public sealed partial class ResourceUrlAnnotation : IResourceAnnotation { + [System.Obsolete("DisplayOrder was incorrectly created as a field. It will be re-added as a property in a future Aspire version.")] public int? DisplayOrder; public UrlDisplayLocation DisplayLocation { get { throw null; } set { } } @@ -4097,14 +4385,36 @@ public ResourceUrlsCallbackContext(DistributedApplicationExecutionContext execut public EndpointReference? GetEndpoint(string name) { throw null; } } + [System.Diagnostics.DebuggerDisplay("Type = {GetType().Name,nq}, RequiredExtensionId = {LaunchConfigurationType,nq}")] + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREEXTENSION001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public sealed partial class SupportsDebuggingAnnotation : IResourceAnnotation + { + internal SupportsDebuggingAnnotation() { } + + public string LaunchConfigurationType { get { throw null; } } + } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRETERMINAL001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public sealed partial class TerminalOptions + { + public int Columns { get { throw null; } set { } } + + public int Rows { get { throw null; } set { } } + + public bool ShowTerminalHost { get { throw null; } set { } } + } + [AspireExport(ExposeProperties = true)] public sealed partial class UpdateCommandStateContext { [AspireExportIgnore(Reason = "CustomResourceSnapshot contains object-valued properties that are not statically representable in polyglot SDKs. Use ResourceSnapshotData for the curated ATS projection.")] public required CustomResourceSnapshot ResourceSnapshot { get { throw null; } init { } } - [AspireExportIgnore(Reason = "IServiceProvider is not usable from polyglot command state callbacks.")] - public required System.IServiceProvider ServiceProvider { get { throw null; } init { } } + [System.Obsolete("Use Services instead.")] + [AspireExportIgnore(Reason = "Obsolete alias for Services. The service provider is exposed to polyglot hosts via Services (services).")] + public System.IServiceProvider ServiceProvider { get { throw null; } init { } } + + public required System.IServiceProvider Services { get { throw null; } init { } } } public enum UrlDisplayLocation @@ -4146,6 +4456,21 @@ public void SetException(System.Exception exception) { } public void SetValue(T value) { } } + public sealed partial class VolumeMountBindingAnnotation : IResourceAnnotation + { + public VolumeMountBindingAnnotation(string volumeName) { } + + public string? EnvironmentVariableName { get { throw null; } init { } } + + public string? MountPath { get { throw null; } init { } } + + public System.Func? RunModeHostPathResolver { get { throw null; } init { } } + + public string VolumeName { get { throw null; } } + + public string ResolvePath(EnvironmentCallbackContext context) { throw null; } + } + [System.Diagnostics.DebuggerDisplay("{Source}", Name = "{Target}")] public sealed partial record VolumeSnapshot(string? Source, string Target, string MountType, bool IsReadOnly) { @@ -4406,7 +4731,6 @@ public static void TryAddLifecycleHook(this Microsoft.Extensions.DependencyIn namespace Aspire.Hosting.Pipelines { - [System.Diagnostics.CodeAnalysis.Experimental("ASPIREPIPELINES001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public enum CompletionState { InProgress = 0, @@ -4441,6 +4765,7 @@ public partial interface IDeploymentStateManager { string? StateFilePath { get; } + System.Threading.Tasks.Task AcquireCurrentSectionAsync(string sectionName, System.Threading.CancellationToken cancellationToken = default); System.Threading.Tasks.Task AcquireSectionAsync(string sectionName, System.Threading.CancellationToken cancellationToken = default); System.Threading.Tasks.Task ClearAllStateAsync(System.Threading.CancellationToken cancellationToken = default); System.Threading.Tasks.Task DeleteSectionAsync(DeploymentStateSection section, System.Threading.CancellationToken cancellationToken = default); @@ -4685,7 +5010,7 @@ public static partial class PipelineStepFactoryExtensions public static ApplicationModel.IResourceBuilder WithPipelineConfiguration(this ApplicationModel.IResourceBuilder builder, System.Action callback) where T : ApplicationModel.IResource { throw null; } - [AspireExportIgnore(Reason = "Polyglot app hosts use the synchronous Action<> overload via withPipelineConfiguration.")] + [AspireExportIgnore(Reason = "Polyglot AppHosts use the synchronous Action<> overload via withPipelineConfiguration.")] public static ApplicationModel.IResourceBuilder WithPipelineConfiguration(this ApplicationModel.IResourceBuilder builder, System.Func callback) where T : ApplicationModel.IResource { throw null; } @@ -4904,6 +5229,38 @@ public partial class ContainerImageBuildOptions public ContainerTargetPlatform? TargetPlatform { get { throw null; } init { } } } + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRECONTAINERRUNTIME001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public sealed partial class ContainerImageConfig + { + public ContainerImageConfig(System.Collections.Generic.IReadOnlyList entrypoint, System.Collections.Generic.IReadOnlyList command, string? workingDirectory) { } + + public System.Collections.Generic.IReadOnlyList Command { get { throw null; } } + + public System.Collections.Generic.IReadOnlyList Entrypoint { get { throw null; } } + + public string? WorkingDirectory { get { throw null; } } + } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRECONTAINERRUNTIME001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public sealed partial class ContainerImageConfigInspectionResult + { + internal ContainerImageConfigInspectionResult() { } + + public string? ErrorMessage { get { throw null; } } + + public string? RawJson { get { throw null; } } + + public ContainerImageInspectionStatus Status { get { throw null; } } + + public static ContainerImageConfigInspectionResult Unsupported { get { throw null; } } + + public static ContainerImageConfigInspectionResult Failure(string errorMessage, string? rawJson = null) { throw null; } + + public static ContainerImageConfigInspectionResult Success(ContainerImageConfig config, string? rawJson = null) { throw null; } + + public bool TryGetConfig(out ContainerImageConfig? config) { throw null; } + } + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREPIPELINES003", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public enum ContainerImageDestination { @@ -4918,6 +5275,46 @@ public enum ContainerImageFormat Oci = 1 } + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRECONTAINERRUNTIME001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public enum ContainerImageInspectionStatus + { + Succeeded = 0, + Unsupported = 1, + Failed = 2 + } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRECONTAINERRUNTIME001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public sealed partial class ContainerImageManifest + { + public ContainerImageManifest(string digest, string operatingSystem, string architecture) { } + + public string Architecture { get { throw null; } } + + public string Digest { get { throw null; } } + + public string OperatingSystem { get { throw null; } } + } + + [System.Diagnostics.CodeAnalysis.Experimental("ASPIRECONTAINERRUNTIME001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] + public sealed partial class ContainerImageManifestInspectionResult + { + internal ContainerImageManifestInspectionResult() { } + + public string? ErrorMessage { get { throw null; } } + + public string? RawJson { get { throw null; } } + + public ContainerImageInspectionStatus Status { get { throw null; } } + + public static ContainerImageManifestInspectionResult Unsupported { get { throw null; } } + + public static ContainerImageManifestInspectionResult Failure(string errorMessage, string? rawJson = null) { throw null; } + + public static ContainerImageManifestInspectionResult Success(System.Collections.Generic.IReadOnlyList manifests, string? rawJson = null) { throw null; } + + public bool TryGetManifest(string operatingSystem, string architecture, out ContainerImageManifest? manifest) { throw null; } + } + [System.Diagnostics.CodeAnalysis.Experimental("ASPIREPIPELINES003", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] [System.Flags] public enum ContainerTargetPlatform @@ -4941,6 +5338,8 @@ public partial interface IContainerRuntime System.Threading.Tasks.Task ComposeDownAsync(ComposeOperationContext context, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task?> ComposeListServicesAsync(ComposeOperationContext context, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task ComposeUpAsync(ComposeOperationContext context, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task InspectImageConfigAsync(string imageName, System.Threading.CancellationToken cancellationToken); + System.Threading.Tasks.Task InspectImageManifestAsync(string imageName, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task LoginToRegistryAsync(string registryServer, string username, string password, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task PushImageAsync(ApplicationModel.IResource resource, System.Threading.CancellationToken cancellationToken); System.Threading.Tasks.Task RemoveImageAsync(string imageName, System.Threading.CancellationToken cancellationToken); diff --git a/src/Aspire.TypeSystem/api/Aspire.TypeSystem.cs b/src/Aspire.TypeSystem/api/Aspire.TypeSystem.cs index 83f42638aab..66e2c2578a9 100644 --- a/src/Aspire.TypeSystem/api/Aspire.TypeSystem.cs +++ b/src/Aspire.TypeSystem/api/Aspire.TypeSystem.cs @@ -8,6 +8,17 @@ //------------------------------------------------------------------------------ namespace Aspire.TypeSystem { + public sealed partial class ApiReferenceExportOptions + { + public ApiReferenceExportOptions(string packageName, string packageVersion, System.Collections.Generic.IReadOnlyCollection exportingAssemblyNames) { } + + public System.Collections.Generic.IReadOnlyCollection ExportingAssemblyNames { get { throw null; } } + + public string PackageName { get { throw null; } } + + public string PackageVersion { get { throw null; } } + } + public sealed partial class AspireExportData { public string? Description { get { throw null; } init { } } @@ -417,6 +428,19 @@ public sealed partial class CommandSpec public required string Command { get { throw null; } init { } } public System.Collections.Generic.Dictionary? EnvironmentVariables { get { throw null; } init { } } + + public CommandUpToDateCheck? UpToDateCheck { get { throw null; } init { } } + } + + public sealed partial class CommandUpToDateCheck + { + public string[]? FileExtensions { get { throw null; } init { } } + + public required string[] Inputs { get { throw null; } init { } } + + public string[]? Outputs { get { throw null; } init { } } + + public required string StampFile { get { throw null; } init { } } } public sealed partial class DetectionResult @@ -459,6 +483,13 @@ public static partial class HostingTypeNames public const string ValueProviderInterface = "Aspire.Hosting.ApplicationModel.IValueProvider"; } + public partial interface IApiReferenceExporter + { + string Language { get; } + + System.Text.Json.JsonElement ExportApi(AtsContext context, ApiReferenceExportOptions options, System.Threading.CancellationToken cancellationToken); + } + public partial interface ICodeGenerator { string Language { get; } @@ -468,6 +499,8 @@ public partial interface ICodeGenerator public partial interface ILanguageSupport { + string? CertificateBundleEnvironmentVariable { get; } + string Language { get; } DetectionResult Detect(string directoryPath); @@ -484,6 +517,8 @@ public sealed partial class ObsoleteData public sealed partial class RuntimeSpec { + public string? CertificateBundleEnvironmentVariable { get { throw null; } init { } } + public required string CodeGenLanguage { get { throw null; } init { } } public required string[] DetectionPatterns { get { throw null; } init { } } diff --git a/src/Components/Aspire.Azure.AI.Inference/api/Aspire.Azure.AI.Inference.cs b/src/Components/Aspire.Azure.AI.Inference/api/Aspire.Azure.AI.Inference.cs index 99136031095..97e793d61f1 100644 --- a/src/Components/Aspire.Azure.AI.Inference/api/Aspire.Azure.AI.Inference.cs +++ b/src/Components/Aspire.Azure.AI.Inference/api/Aspire.Azure.AI.Inference.cs @@ -44,6 +44,8 @@ public sealed partial class ChatCompletionsClientSettings public string? DeploymentName { get { throw null; } set { } } + public bool DisableHealthChecks { get { throw null; } set { } } + public bool DisableMetrics { get { throw null; } set { } } public bool DisableTracing { get { throw null; } set { } } diff --git a/src/Components/Aspire.Microsoft.Azure.Cosmos/api/Aspire.Microsoft.Azure.Cosmos.cs b/src/Components/Aspire.Microsoft.Azure.Cosmos/api/Aspire.Microsoft.Azure.Cosmos.cs index c8e3a16ce63..fa1c0e21623 100644 --- a/src/Components/Aspire.Microsoft.Azure.Cosmos/api/Aspire.Microsoft.Azure.Cosmos.cs +++ b/src/Components/Aspire.Microsoft.Azure.Cosmos/api/Aspire.Microsoft.Azure.Cosmos.cs @@ -27,6 +27,8 @@ public sealed partial class MicrosoftAzureCosmosSettings public string? DatabaseName { get { throw null; } set { } } + public bool DisableHealthChecks { get { throw null; } set { } } + public bool DisableTracing { get { throw null; } set { } } } }