43 instantiations of AtsCapabilityInfo
Aspire.Hosting.CodeGeneration.Go.Tests (3)
AtsGoDerivedBuilderTests.cs (1)
671AtsTypeRef returnType) => new()
GoDocCommentTests.cs (1)
497return new AtsCapabilityInfo
GoGeneratorEscapingTests.cs (1)
232return new AtsCapabilityInfo
Aspire.Hosting.CodeGeneration.Java.Tests (6)
AtsJavaCodeGeneratorTests.cs (6)
2787var callbackCapability = new AtsCapabilityInfo 2819var capability = new AtsCapabilityInfo 2842var capability = new AtsCapabilityInfo 3068var callbackCapability = new AtsCapabilityInfo 3419var capability = new AtsCapabilityInfo 3743return new AtsCapabilityInfo
Aspire.Hosting.CodeGeneration.Python (1)
AtsPythonCodeGenerator.cs (1)
414var merged = new AtsCapabilityInfo
Aspire.Hosting.CodeGeneration.Python.Tests (6)
AtsPythonCodeGeneratorTests.cs (6)
877new AtsCapabilityInfo 933new AtsCapabilityInfo 1009new AtsCapabilityInfo 1093new AtsCapabilityInfo 1197new AtsCapabilityInfo 1219new AtsCapabilityInfo
Aspire.Hosting.CodeGeneration.TypeScript.Tests (12)
AtsTypeScriptCodeGeneratorTests.cs (12)
292new AtsCapabilityInfo 304new AtsCapabilityInfo 1739return new AtsCapabilityInfo 2001new() 2023return new AtsCapabilityInfo 3030new AtsCapabilityInfo 3042new AtsCapabilityInfo 3054new AtsCapabilityInfo 3066new AtsCapabilityInfo 3322new AtsCapabilityInfo 3437return new AtsCapabilityInfo 3486new AtsCapabilityInfo
Aspire.Hosting.Native.CodeGeneration (4)
src\Aspire.Hosting.RemoteHost\AtsCapabilityScanner.cs (4)
1756capabilities.Add(new AtsCapabilityInfo 1799capabilities.Add(new AtsCapabilityInfo 1980capabilities.Add(new AtsCapabilityInfo 2155return new AtsCapabilityInfo
Aspire.Hosting.RemoteHost (6)
Ats\ExternalCapabilityRegistry.cs (1)
763return new AtsCapabilityInfo
AtsCapabilityScanner.cs (4)
1756capabilities.Add(new AtsCapabilityInfo 1799capabilities.Add(new AtsCapabilityInfo 1980capabilities.Add(new AtsCapabilityInfo 2155return new AtsCapabilityInfo
AtsContextFilter.cs (1)
332yield return new AtsCapabilityInfo
Aspire.Hosting.RemoteHost.Tests (5)
AtsContextFilterTests.cs (3)
180var supportingCapability = new AtsCapabilityInfo 496var selectedCapability = new AtsCapabilityInfo 553var unrelatedCapability = new AtsCapabilityInfo
ExternalCapabilityRegistryTests.cs (2)
889var managedCapability = new AtsCapabilityInfo 915var managedCapability = new AtsCapabilityInfo
496 references to AtsCapabilityInfo
aspire-managed (7)
AppHostServerV2CodeGeneration.cs (1)
41var capability = export.Capability;
src\Shared\NativeProviderContractReader.cs (6)
11internal sealed record NativeProviderExport(AtsCapabilityInfo Capability, string? LifecyclePhase); 40var capability = metadata.Deserialize<AtsCapabilityInfo>(s_options) 86if (info.Type == typeof(AtsCapabilityInfo)) 92nameof(AtsCapabilityInfo.CapabilityId) => "id", 93nameof(AtsCapabilityInfo.MethodName) => "method",
Aspire.Hosting.Azure.EntraId.Tests (1)
EntraIdPolyglotTests.cs (1)
178var capability = Assert.Single(exports.Capabilities, c => c.CapabilityId == CertificateCapabilityId);
Aspire.Hosting.CodeGeneration.Go (59)
AtsGoCodeGenerator.ApiProjection.cs (11)
364private Dictionary<string, (AtsCapabilityInfo Capability, List<string> UsedBy)> CollectOptionsProducers(AtsContext context) 366var producers = new Dictionary<string, (AtsCapabilityInfo Capability, List<string> UsedBy)>(StringComparer.Ordinal); 367foreach (var capability in context.Capabilities) 669Dictionary<string, List<AtsCapabilityInfo>> capabilitiesByConcreteImpl) 688foreach (var capability in ordered) 716AtsCapabilityInfo capability, 750private GoApiMember ProjectListDictGetter(string interfaceName, AtsCapabilityInfo capability, string owner) 764AtsCapabilityInfo capability, 824private static List<AtsParameterInfo> GetNonTargetParameters(AtsCapabilityInfo capability) 1020private static string GetCapabilityOwningAssemblyName(AtsContext context, AtsCapabilityInfo capability) 1057foreach (var capability in context.Capabilities)
AtsGoCodeGenerator.cs (45)
202foreach (var capability in context.Capabilities) 280var optionsNameFirstCapability = new Dictionary<string, AtsCapabilityInfo>(StringComparer.Ordinal); 281foreach (var capability in context.Capabilities) 318if (optionsNameFirstCapability.TryGetValue(simpleName, out var firstCap) 519private static Dictionary<string, List<AtsCapabilityInfo>> GroupCapabilitiesByDirectTarget( 520IReadOnlyList<AtsCapabilityInfo> capabilities) 522var result = new Dictionary<string, List<AtsCapabilityInfo>>(StringComparer.Ordinal); 523foreach (var capability in capabilities) 531list = new List<AtsCapabilityInfo>(); 544private Dictionary<string, List<AtsCapabilityInfo>> GroupCapabilitiesByConcreteImpl( 545IReadOnlyList<AtsCapabilityInfo> capabilities) 547var result = new Dictionary<string, List<AtsCapabilityInfo>>(StringComparer.Ordinal); 549foreach (var capability in capabilities) 576list = new List<AtsCapabilityInfo>(); 671private GoDocContent CreateCapabilityDoc(AtsCapabilityInfo capability) 1094private void GenerateMarkerInterfaces(Dictionary<string, List<AtsCapabilityInfo>> capabilitiesByDirectTarget) 1181private void GenerateConcreteHandleTypes(Dictionary<string, List<AtsCapabilityInfo>> capabilitiesByConcreteImpl) 1202: new List<AtsCapabilityInfo>(); 1211foreach (var capability in capabilities) 1224CollectListDictGetters(IReadOnlyList<AtsCapabilityInfo> capabilities) 1227foreach (var capability in capabilities) 1260IReadOnlyList<AtsCapabilityInfo> capabilities, 1288foreach (var capability in capabilities) 1455private string RenderMethodSignature(string currentTypeId, string interfaceName, AtsCapabilityInfo capability) 1509AtsCapabilityInfo capability) 1594private string RenderReturnSignature(string currentTypeId, string interfaceName, AtsCapabilityInfo capability) 1620private static bool IsSameType(string? typeId, AtsCapabilityInfo capability, string? currentTypeId = null) 1647AtsCapabilityInfo capability, 1694AtsCapabilityInfo capability, 1767AtsCapabilityInfo capability, 1792AtsCapabilityInfo capability, 1813private void EmitHandleParamErrorChecks(string indent, AtsCapabilityInfo capability, string errorAction) 1830AtsCapabilityInfo capability, 2061AtsCapabilityInfo capability) 2090private void GenerateOptionsStructs(IReadOnlyList<AtsCapabilityInfo> capabilities) 2096foreach (var capability in capabilities) 2200private string GetOptionsTypeName(AtsCapabilityInfo capability) 2207private string GetOptionsQualifiedName(AtsCapabilityInfo capability, string simpleName) 2223private bool AreOptionsCompatible(AtsCapabilityInfo a, AtsCapabilityInfo b) 2272private static List<AtsParameterInfo> GetUnionParameters(AtsCapabilityInfo capability) 2301AtsCapabilityInfo capability, 2321private void EmitUnionAllowedTypesDoc(AtsCapabilityInfo capability) 2331private List<string> GetUnionNotes(AtsCapabilityInfo capability) 2381AtsCapabilityInfo capability,
src\Shared\CodeGeneration\AtsTypeSystemCompatibility.cs (3)
16typeof(AtsCapabilityInfo).GetProperty(nameof(AtsCapabilityInfo.IsExperimental), BindingFlags.Instance | BindingFlags.Public); 18public static bool IsExperimental(AtsCapabilityInfo capability)
Aspire.Hosting.CodeGeneration.Go.Tests (17)
AtsGoCodeGeneratorTests.cs (12)
1310var addTestRedis = capabilities.First(c => c.CapabilityId == $"{TestTypesAssemblyName}/addTestRedis"); 1313var withPersistence = capabilities.First(c => c.CapabilityId == $"{TestTypesAssemblyName}/withPersistence"); 1324var addTestRedis = capabilities.First(c => c.CapabilityId == $"{TestTypesAssemblyName}/addTestRedis"); 1339var addTestRedis = capabilities.FirstOrDefault(c => c.CapabilityId == $"{TestTypesAssemblyName}/addTestRedis"); 1345var withPersistence = capabilities.FirstOrDefault(c => c.CapabilityId == $"{TestTypesAssemblyName}/withPersistence"); 1357var addTestRedis = capabilities.FirstOrDefault(c => c.CapabilityId == $"{TestTypesAssemblyName}/addTestRedis"); 1369var withPersistence = capabilities.FirstOrDefault(c => c.CapabilityId == $"{TestTypesAssemblyName}/withPersistence"); 1381var withOptionalString = capabilities.FirstOrDefault(c => c.CapabilityId == $"{TestTypesAssemblyName}/withOptionalString"); 1393var addContainer = capabilities.FirstOrDefault(c => c.CapabilityId == "Aspire.Hosting/addContainer"); 2007private static List<AtsCapabilityInfo> ScanCapabilitiesFromTestAssembly() 2031private static List<AtsCapabilityInfo> ScanCapabilitiesFromHostingAssembly() 2038private static List<AtsCapabilityInfo> ScanCapabilitiesFromBothAssemblies()
AtsGoDerivedBuilderTests.cs (3)
660private static AtsCapabilityInfo Factory(string methodName, AtsTypeRef returnType) => 663private static AtsCapabilityInfo Consumer(string methodName, params AtsParameterInfo[] parameters) => 666private static AtsCapabilityInfo Method(
GoDocCommentTests.cs (1)
485private static AtsCapabilityInfo Capability(
GoGeneratorEscapingTests.cs (1)
218private static AtsCapabilityInfo Capability(
Aspire.Hosting.CodeGeneration.Java (18)
AtsJavaCodeGenerator.cs (18)
945private void CollectOptionsClasses(IReadOnlyList<AtsCapabilityInfo> capabilities) 947foreach (var capability in capabilities) 1107private string? ResolveOptionsClassName(AtsCapabilityInfo capability) => 1253Dictionary<string, List<AtsCapabilityInfo>> capabilitiesByTarget) 1276foreach (var method in methods) 1362private void GenerateCapabilityMethod(JavaHandleType handleType, AtsCapabilityInfo capability) 1727AtsCapabilityInfo capability, 1800private void GenerateCapabilityMethodImplementation(AtsCapabilityInfo capability, JavaCapabilityReturnInfo returnInfo, string methodName, string targetParamName, List<AtsParameterInfo> parameters, bool isPublic) 1882private JavaCapabilityReturnInfo GetMethodReturnInfo(JavaHandleType handleType, AtsCapabilityInfo capability) 2254private void GenerateListOrDictProperty(AtsCapabilityInfo capability, string methodName) 2426foreach (var capability in context.Capabilities) 2501private static Dictionary<string, List<AtsCapabilityInfo>> GroupCapabilitiesByTarget( 2502IReadOnlyList<AtsCapabilityInfo> capabilities) 2504var result = new Dictionary<string, List<AtsCapabilityInfo>>(StringComparer.Ordinal); 2506foreach (var capability in capabilities) 2528list = new List<AtsCapabilityInfo>(); 2538private static Dictionary<string, bool> CollectListAndDictTypeIds(IReadOnlyList<AtsCapabilityInfo> capabilities) 2542foreach (var capability in capabilities)
Aspire.Hosting.CodeGeneration.Java.Tests (22)
AtsJavaCodeGeneratorTests.cs (22)
167var addTestRedis = capabilities.First(c => c.CapabilityId == $"{TestTypesAssemblyName}/addTestRedis"); 170var withPersistence = capabilities.First(c => c.CapabilityId == $"{TestTypesAssemblyName}/withPersistence"); 181var addTestRedis = capabilities.First(c => c.CapabilityId == $"{TestTypesAssemblyName}/addTestRedis"); 196var addTestRedis = capabilities.FirstOrDefault(c => c.CapabilityId == $"{TestTypesAssemblyName}/addTestRedis"); 202var withPersistence = capabilities.FirstOrDefault(c => c.CapabilityId == $"{TestTypesAssemblyName}/withPersistence"); 214var addTestRedis = capabilities.FirstOrDefault(c => c.CapabilityId == $"{TestTypesAssemblyName}/addTestRedis"); 226var withPersistence = capabilities.FirstOrDefault(c => c.CapabilityId == $"{TestTypesAssemblyName}/withPersistence"); 238var withOptionalString = capabilities.FirstOrDefault(c => c.CapabilityId == $"{TestTypesAssemblyName}/withOptionalString"); 250var addContainer = capabilities.FirstOrDefault(c => c.CapabilityId == "Aspire.Hosting/addContainer"); 261var withReference = Assert.Single(capabilities, c => c.CapabilityId == "Aspire.Hosting/withReference"); 264var waitFor = Assert.Single(capabilities, c => c.CapabilityId == "Aspire.Hosting/waitFor"); 2600private static List<AtsCapabilityInfo> ScanCapabilitiesFromTestAssembly() 2624private static List<AtsCapabilityInfo> ScanCapabilitiesFromHostingAssembly() 2631private static List<AtsCapabilityInfo> ScanCapabilitiesFromBothAssemblies() 2787var callbackCapability = new AtsCapabilityInfo 2819var capability = new AtsCapabilityInfo 2842var capability = new AtsCapabilityInfo 2883var parameterValue = Assert.Single(ScanCapabilitiesFromHostingAssembly(), 3068var callbackCapability = new AtsCapabilityInfo 3419var capability = new AtsCapabilityInfo 3730private static AtsContext CreateContextWithProbeCapabilities(AtsTypeRef resourceType, params AtsCapabilityInfo[] capabilities) 3741private static AtsCapabilityInfo CreateProbeCapability(AtsTypeRef resourceType, string methodName, AtsTypeRef returnType)
Aspire.Hosting.CodeGeneration.Python (46)
AtsPythonCodeGenerator.cs (46)
22public required List<AtsCapabilityInfo> Capabilities { get; init; } 318/// Merges capabilities that share the same <see cref="AtsCapabilityInfo.SourceLocation"/> and differ 322private List<AtsCapabilityInfo> MergeCapabilitiesBySourceLocation(List<AtsCapabilityInfo> capabilities) 324var result = new List<AtsCapabilityInfo>(); 340foreach (var item in items.Skip(1)) 362var capWithExtra = items.First(c => c.Parameters.Any(p => string.Equals(p.Name, extraParamName, StringComparison.Ordinal))); 379var shortest = items.OrderBy(c => c.MethodName.Length).ThenBy(c => c.MethodName, StringComparer.Ordinal).First(); 382var fullCap = items.OrderByDescending(c => c.Parameters.Count).First(); 410var capWithoutExtra = items.FirstOrDefault(c => !c.Parameters.Any(p => string.Equals(p.Name, extraParamName, StringComparison.Ordinal))); 414var merged = new AtsCapabilityInfo 691private static string? GetReturnTypeId(AtsCapabilityInfo capability) => capability.ReturnType?.TypeId; 802foreach (var cap in capabilities) 1166foreach (var method in allMethods) 1214private static List<(string PropertyName, AtsCapabilityInfo? Getter, AtsCapabilityInfo? Setter)> GroupPropertiesByName( 1215List<AtsCapabilityInfo> getters, List<AtsCapabilityInfo> setters) 1217var result = new List<(string PropertyName, AtsCapabilityInfo? Getter, AtsCapabilityInfo? Setter)>(); 1221foreach (var getter in getters) 1232var setter = setters.FirstOrDefault(s => ExtractPropertyName(s.MethodName).Equals(setterName, StringComparison.OrdinalIgnoreCase)); 1238foreach (var setter in setters) 1272private void GeneratePropertyMethods(System.Text.StringBuilder sb, string propertyName, AtsCapabilityInfo? getter, AtsCapabilityInfo? setter, bool isInterface = false) 1360AtsCapabilityInfo capability, 1518foreach (var capability in methods) 1652foreach (var capability in methods) 1672private void GenerateBuilderMethod(System.Text.StringBuilder sb, AtsCapabilityInfo capability, bool isInterface, 1818private void GenerateEntryPointFunctions(System.Text.StringBuilder sb, List<AtsCapabilityInfo> entryPoints) 1825foreach (var capability in entryPoints) 1831private void GenerateEntryPointFunction(System.Text.StringBuilder sb, AtsCapabilityInfo capability) 1919private List<BuilderModel> CreateBuilderModels(IReadOnlyList<AtsCapabilityInfo> capabilities) 1922var capabilitiesByTypeId = new Dictionary<string, List<AtsCapabilityInfo>>(); 1928var interfaceCapabilities = new Dictionary<string, List<AtsCapabilityInfo>>(); 1930foreach (var cap in capabilities) 2058var applicableCapabilities = new List<AtsCapabilityInfo>(); 2178private Dictionary<string, AtsTypeRef> CollectAllReferencedTypes(IReadOnlyList<AtsCapabilityInfo> capabilities) 2222foreach (var cap in capabilities) 2250private static List<AtsCapabilityInfo> GetEntryPointCapabilities(IReadOnlyList<AtsCapabilityInfo> capabilities) 2460AtsCapabilityInfo capability, 2530private string AddParameterMapping(AtsCapabilityInfo capability, List<AtsParameterInfo> requiredParameters, List<AtsParameterInfo> optionalParameters) 2555private string ResolveParameterMappingName(AtsCapabilityInfo capability, List<AtsParameterInfo> requiredParameters, List<AtsParameterInfo> optionalParameters) 2606private static string GetNamespaceQualifiedParameterMappingName(AtsCapabilityInfo capability) 2692AtsCapabilityInfo capability,
Aspire.Hosting.CodeGeneration.Python.Tests (12)
AtsPythonCodeGeneratorTests.cs (12)
85var addTestRedis = capabilities.First(c => c.CapabilityId == $"{TestTypesAssemblyName}/addTestRedis"); 88var withPersistence = capabilities.First(c => c.CapabilityId == $"{TestTypesAssemblyName}/withPersistence"); 99var addTestRedis = capabilities.First(c => c.CapabilityId == $"{TestTypesAssemblyName}/addTestRedis"); 114var addTestRedis = capabilities.FirstOrDefault(c => c.CapabilityId == $"{TestTypesAssemblyName}/addTestRedis"); 120var withPersistence = capabilities.FirstOrDefault(c => c.CapabilityId == $"{TestTypesAssemblyName}/withPersistence"); 132var addTestRedis = capabilities.FirstOrDefault(c => c.CapabilityId == $"{TestTypesAssemblyName}/addTestRedis"); 144var withPersistence = capabilities.FirstOrDefault(c => c.CapabilityId == $"{TestTypesAssemblyName}/withPersistence"); 156var withOptionalString = capabilities.FirstOrDefault(c => c.CapabilityId == $"{TestTypesAssemblyName}/withOptionalString"); 168var addContainer = capabilities.FirstOrDefault(c => c.CapabilityId == "Aspire.Hosting/addContainer"); 808private static List<AtsCapabilityInfo> ScanCapabilitiesFromTestAssembly() 832private static List<AtsCapabilityInfo> ScanCapabilitiesFromHostingAssembly() 839private static List<AtsCapabilityInfo> ScanCapabilitiesFromBothAssemblies()
Aspire.Hosting.CodeGeneration.Rust (12)
AtsRustCodeGenerator.cs (12)
403Dictionary<string, List<AtsCapabilityInfo>> capabilitiesByTarget) 448foreach (var method in methods) 459private void GenerateCapabilityMethod(string structName, AtsCapabilityInfo capability) 660private void GenerateListOrDictProperty(string structName, AtsCapabilityInfo capability, string methodName) 791foreach (var capability in context.Capabilities) 840private static Dictionary<string, List<AtsCapabilityInfo>> GroupCapabilitiesByTarget( 841IReadOnlyList<AtsCapabilityInfo> capabilities) 843var result = new Dictionary<string, List<AtsCapabilityInfo>>(StringComparer.Ordinal); 845foreach (var capability in capabilities) 867list = new List<AtsCapabilityInfo>(); 877private static HashSet<string> CollectListAndDictTypeIds(IReadOnlyList<AtsCapabilityInfo> capabilities) 880foreach (var capability in capabilities)
Aspire.Hosting.CodeGeneration.Rust.Tests (12)
AtsRustCodeGeneratorTests.cs (12)
243var addTestRedis = capabilities.First(c => c.CapabilityId == $"{TestTypesAssemblyName}/addTestRedis"); 246var withPersistence = capabilities.First(c => c.CapabilityId == $"{TestTypesAssemblyName}/withPersistence"); 257var addTestRedis = capabilities.First(c => c.CapabilityId == $"{TestTypesAssemblyName}/addTestRedis"); 272var addTestRedis = capabilities.FirstOrDefault(c => c.CapabilityId == $"{TestTypesAssemblyName}/addTestRedis"); 278var withPersistence = capabilities.FirstOrDefault(c => c.CapabilityId == $"{TestTypesAssemblyName}/withPersistence"); 290var addTestRedis = capabilities.FirstOrDefault(c => c.CapabilityId == $"{TestTypesAssemblyName}/addTestRedis"); 302var withPersistence = capabilities.FirstOrDefault(c => c.CapabilityId == $"{TestTypesAssemblyName}/withPersistence"); 314var withOptionalString = capabilities.FirstOrDefault(c => c.CapabilityId == $"{TestTypesAssemblyName}/withOptionalString"); 326var addContainer = capabilities.FirstOrDefault(c => c.CapabilityId == "Aspire.Hosting/addContainer"); 442private static List<AtsCapabilityInfo> ScanCapabilitiesFromTestAssembly() 466private static List<AtsCapabilityInfo> ScanCapabilitiesFromHostingAssembly() 473private static List<AtsCapabilityInfo> ScanCapabilitiesFromBothAssemblies()
Aspire.Hosting.CodeGeneration.TypeScript (81)
AtsTypeScriptCodeGenerator.cs (38)
20public required List<AtsCapabilityInfo> Capabilities { get; init; } 115AtsCapabilityInfo capability, 143private void WritePropertyDocComment(string indent, AtsCapabilityInfo? getter, AtsCapabilityInfo? setter) 145var capability = getter is not null && 431private static string? GetReturnTypeId(AtsCapabilityInfo capability) => capability.ReturnType?.TypeId; 776private void GenerateGetterOnlyPropertyPromiseSignature(string propertyName, AtsCapabilityInfo getter) 783private void GenerateInterfaceProperty(string propertyName, AtsCapabilityInfo? getter, AtsCapabilityInfo? setter) 863foreach (var capability in builder.Capabilities.Where(c => 919foreach (var capability in capabilities) 947private void GenerateTypeClassInterfaceMethod(BuilderModel model, string className, AtsCapabilityInfo capability) 997foreach (var method in standardMethods) 1016foreach (var method in standardMethods) 1063foreach (var capability in builder.Capabilities.Where(c => 1106private void GenerateBuilderMethod(BuilderModel builder, AtsCapabilityInfo capability) 1615foreach (var capability in capabilities) 1684private void GenerateAspireClient(List<AtsCapabilityInfo> entryPoints) 1696foreach (var capability in entryPoints) 1722private void GenerateEntryPointFunction(AtsCapabilityInfo capability) 2191foreach (var method in allMethods) 2199foreach (var method in contextMethods) 2203foreach (var method in otherMethods) 2242private void GeneratePropertyLikeObject(string propertyName, AtsCapabilityInfo? getter, AtsCapabilityInfo? setter) 2326private void GenerateGetterOnlyPropertyMethod(string propertyName, AtsCapabilityInfo getter) 2386private void GenerateWrapperGetterOnlyPropertyMethod(string propertyName, AtsCapabilityInfo getter, string wrapperClassName) 2440private void GenerateWrapperPropertyObject(string propertyName, AtsCapabilityInfo getter, AtsCapabilityInfo? setter, string wrapperClassName) 2493private void GenerateDictionaryProperty(string propertyName, AtsCapabilityInfo getter) 2529private void GenerateMutableDictionaryProperty(string propertyName, AtsCapabilityInfo getter) 2565private void GenerateListProperty(string propertyName, AtsCapabilityInfo getter) 2594private void GenerateMutableListProperty(string propertyName, AtsCapabilityInfo getter) 2637private void GenerateContextMethod(AtsCapabilityInfo method) 2753private void GenerateWrapperMethod(AtsCapabilityInfo capability) 2864private void GenerateTypeClassMethod(BuilderModel model, AtsCapabilityInfo capability) 3097private void GenerateTypeClassThenableWrapper(BuilderModel model, List<AtsCapabilityInfo> methods) 3122foreach (var capability in methods)
src\Shared\CodeGeneration\AtsTypeSystemCompatibility.cs (3)
16typeof(AtsCapabilityInfo).GetProperty(nameof(AtsCapabilityInfo.IsExperimental), BindingFlags.Instance | BindingFlags.Public); 18public static bool IsExperimental(AtsCapabilityInfo capability)
TypeScriptApiModel.cs (1)
313public required List<AtsCapabilityInfo> ClientMethods { get; init; }
TypeScriptApiProjector.cs (39)
275foreach (var cap in builders 308internal TypeScriptApiMethodSignature ResolveMethodSignature(BuilderModel? builder, AtsCapabilityInfo capability) 380private static string ResolveTypeClassMethodName(AtsCapabilityInfo capability) 390private string ResolveBuilderReturnType(BuilderModel? builder, AtsCapabilityInfo capability) 417private string ResolveTypeClassReturnType(BuilderModel builder, AtsCapabilityInfo capability) 485foreach (var entryPoint in _resolved.ClientMethods.OrderBy(c => c.MethodName, StringComparer.Ordinal)) 1005foreach (var capability in methods) 1151AtsCapabilityInfo capability) 1175AtsCapabilityInfo? getter, 1176AtsCapabilityInfo? setter) 1232private (TypeScriptApiItem Item, TypeScriptApiDeclaration Declaration) ProjectEntryPoint(AtsCapabilityInfo capability) 1278internal TypeScriptApiMethodSignature ResolveEntryPointSignature(AtsCapabilityInfo capability) 1309private string ResolveEntryPointReturnType(AtsCapabilityInfo capability) 1535private string GetCapabilityOwningAssemblyName(AtsCapabilityInfo capability) 1538/// <inheritdoc cref="GetCapabilityOwningAssemblyName(AtsCapabilityInfo)"/> 1543private static string GetCapabilityOwningAssemblyName(AtsContext context, AtsCapabilityInfo capability) 1560/// reason as <see cref="GetCapabilityOwningAssemblyName(AtsCapabilityInfo)"/>. 2091internal string ResolveOptionsInterfaceName(AtsCapabilityInfo capability) 2459internal static bool IsGetterOnlyProperty(AtsCapabilityInfo? getter, AtsCapabilityInfo? setter) => getter is not null && setter is null; 2509internal string GetBuilderPromiseInterfaceForMethod(BuilderModel builder, AtsCapabilityInfo capability) 2563internal static List<(string PropertyName, AtsCapabilityInfo? Getter, AtsCapabilityInfo? Setter)> GroupPropertiesByName( 2564List<AtsCapabilityInfo> getters, List<AtsCapabilityInfo> setters) 2566var result = new List<(string PropertyName, AtsCapabilityInfo? Getter, AtsCapabilityInfo? Setter)>(); 2570foreach (var getter in getters) 2581var setter = setters.FirstOrDefault(s => ExtractPropertyName(s.MethodName).Equals(setterName, StringComparison.OrdinalIgnoreCase)); 2587foreach (var setter in setters) 2643internal static List<BuilderModel> CreateBuilderModels(IReadOnlyList<AtsCapabilityInfo> capabilities) 2648var capabilitiesByTypeId = new Dictionary<string, List<AtsCapabilityInfo>>(); 2654var interfaceCapabilities = new Dictionary<string, List<AtsCapabilityInfo>>(); 2656foreach (var cap in capabilities) 2856private static void SortOptionsInterfaceCollisionsByCapabilityIdentity(List<AtsCapabilityInfo> capabilities) 2931internal static Dictionary<string, AtsTypeRef> CollectAllReferencedTypes(IReadOnlyList<AtsCapabilityInfo> capabilities) 2960foreach (var cap in capabilities) 2992internal static List<AtsCapabilityInfo> GetEntryPointCapabilities(IReadOnlyList<AtsCapabilityInfo> capabilities)
Aspire.Hosting.CodeGeneration.TypeScript.Tests (91)
AtsTypeScriptCodeGeneratorTests.cs (91)
154var addTestRedis = capabilities.First(c => c.CapabilityId == "Aspire.Hosting.CodeGeneration.TypeScript.Tests/addTestRedis"); 157var withPersistence = capabilities.First(c => c.CapabilityId == "Aspire.Hosting.CodeGeneration.TypeScript.Tests/withPersistence"); 170var addTestRedis = capabilities.First(c => c.CapabilityId == "Aspire.Hosting.CodeGeneration.TypeScript.Tests/addTestRedis"); 182var addTestRedis = context.Capabilities.First(c => c.CapabilityId == "Aspire.Hosting.CodeGeneration.TypeScript.Tests/addTestRedis"); 229var capability = CreateDistributedApplicationBuilderCapability( 247var capability = CreateDistributedApplicationBuilderCapability( 350var capability = CreateDistributedApplicationBuilderCapability( 372var capability = CreateDistributedApplicationBuilderCapability( 418var nameGetterCapability = capabilities.FirstOrDefault(c => c.CapabilityId == "Aspire.Hosting.CodeGeneration.TypeScript.Tests.TestTypes/TestCallbackContext.name"); 428var nameSetterCapability = capabilities.FirstOrDefault(c => c.CapabilityId == "Aspire.Hosting.CodeGeneration.TypeScript.Tests.TestTypes/TestCallbackContext.setName"); 436var valueGetterCapability = capabilities.FirstOrDefault(c => c.CapabilityId == "Aspire.Hosting.CodeGeneration.TypeScript.Tests.TestTypes/TestCallbackContext.value"); 443var valueSetterCapability = capabilities.FirstOrDefault(c => c.CapabilityId == "Aspire.Hosting.CodeGeneration.TypeScript.Tests.TestTypes/TestCallbackContext.setValue"); 498var withOptionalString = capabilities 515var withOptionalString = capabilities 556var addTestRedis = capabilities.FirstOrDefault(c => c.CapabilityId == "Aspire.Hosting.CodeGeneration.TypeScript.Tests/addTestRedis"); 572var addTestRedis = capabilities.FirstOrDefault(c => c.CapabilityId == "Aspire.Hosting.CodeGeneration.TypeScript.Tests/addTestRedis"); 578var withPersistence = capabilities.FirstOrDefault(c => c.CapabilityId == "Aspire.Hosting.CodeGeneration.TypeScript.Tests/withPersistence"); 584var withRedisSpecific = capabilities.FirstOrDefault(c => c.CapabilityId == "Aspire.Hosting.CodeGeneration.TypeScript.Tests/withRedisSpecific"); 620var withPersistence = capabilities.FirstOrDefault(c => c.CapabilityId == "Aspire.Hosting.CodeGeneration.TypeScript.Tests/withPersistence"); 632var withOptionalString = capabilities.FirstOrDefault(c => c.CapabilityId == "Aspire.Hosting.CodeGeneration.TypeScript.Tests/withOptionalString"); 644var addContainer = capabilities.FirstOrDefault(c => c.CapabilityId == "Aspire.Hosting/addContainer"); 655var setValue = Assert.Single(capabilities, c => c.CapabilityId == "Aspire.Hosting.ApplicationModel/ParameterResource.setValueAsync"); 672var tryGetCurrentValue = Assert.Single(capabilities, c => c.CapabilityId == "Aspire.Hosting.ApplicationModel/ParameterResource.tryGetCurrentValue"); 698var capability = Assert.Single(ScanCapabilitiesFromTestAssembly(), c => c.MethodName == methodName); 709var withBrowserLogs = capabilities.FirstOrDefault(c => c.CapabilityId == "Aspire.Hosting.Browsers/withBrowserLogs"); 767foreach (var cap in directContainerCapabilities) 797var withBindMount = capabilities.FirstOrDefault(c => c.CapabilityId == "Aspire.Hosting/withBindMount"); 807var withEnvironment = capabilities.FirstOrDefault(c => c.CapabilityId == "Aspire.Hosting/withEnvironment"); 824var withConnectionStringDirect = capabilities 852var withRedisSpecific = capabilities 880var withBindMount = capabilities.FirstOrDefault(c => c.CapabilityId == "Aspire.Hosting/withBindMount"); 905var withDependency = capabilities 961var capability = CreateVoidEntryPointCapability( 1082var withRedisSpecific = capabilities 1105var withConnectionStringDirect = capabilities 1139var testWithEnvironmentCallback = capabilities 1169var withReference = capabilities 1176var addContainer = capabilities 1182var withEnvironment = capabilities 1193var withReference = Assert.Single(capabilities, c => c.CapabilityId == "Aspire.Hosting/withReference"); 1208var withVolume = capabilities 1225var withProjectVolume = Assert.Single( 1241var withExecutableVolume = Assert.Single( 1252var withBindMount = capabilities 1259var withCommand = capabilities 1277var addNodePool = Assert.Single(scanResult.Capabilities, c => c.CapabilityId == $"{packageName}/addNodePool"); 1278var withSystemNodePool = Assert.Single(scanResult.Capabilities, c => c.CapabilityId == $"{packageName}/withSystemNodePool"); 1335var capability = Assert.Single( 1346var withoutStorageClassCapability = Assert.Single( 1365var capability = Assert.Single(scanResult.Capabilities, 1389var propertySetter = Assert.Single(scanResult.Capabilities, 1598var addTestRedis = scannedContext.Capabilities 1726private static AtsCapabilityInfo CreateSameNameResourceCapability<TResource>( 1728AtsCapabilityInfo distributedApplicationBuilderCapability) 1898var publishAsWebsite = Assert.Single(capabilities, c => c.CapabilityId == "Aspire.Hosting.Azure.AppService/publishAsAzureAppServiceWebsite"); 1902var publishAsContainerAppJob = Assert.Single(capabilities, c => c.CapabilityId == "Aspire.Hosting.Azure.AppContainers/publishAsAzureContainerAppJob"); 1916var capability = Assert.Single(result.Capabilities, c => c.CapabilityId == "Aspire.Hosting.Azure.AppContainers/asExpress"); 1961private static List<AtsCapabilityInfo> ScanCapabilitiesFromTestAssembly() 1979private static AtsContext WithAdditionalCapabilities(AtsContext context, params AtsCapabilityInfo[] capabilities) 2000private static AtsCapabilityInfo CreateVoidEntryPointCapability(string methodName, params AtsParameterInfo[] parameters) => 2014private static AtsCapabilityInfo CreateDistributedApplicationBuilderCapability( 2021var addTestRedis = context.Capabilities.First(c => c.CapabilityId == "Aspire.Hosting.CodeGeneration.TypeScript.Tests/addTestRedis"); 2050private static List<AtsCapabilityInfo> ScanCapabilitiesFromHostingAssembly() 2057private static List<AtsCapabilityInfo> ScanCapabilitiesFromBrowsersAssembly() 2071private static List<AtsCapabilityInfo> ScanCapabilitiesFromBothAssemblies() 2089private static List<AtsCapabilityInfo> ScanCapabilitiesFromAzureAssemblies() 2106private static void AssertCallbackParameterTypes(AtsCapabilityInfo capability, string parameterName, params Type[] expectedTypes) 2115private static void AssertTargetedMethod(IReadOnlyList<AtsCapabilityInfo> capabilities, string capabilityId, string methodName, Type targetType, Type parameterType) 2117var capability = Assert.Single(capabilities, c => c.CapabilityId == capabilityId); 2125private static void AssertAzureExistingResourceScopeCapability(IReadOnlyList<AtsCapabilityInfo> capabilities, string methodName, string[] parameterNames) 2127var capability = Assert.Single(capabilities, c => c.CapabilityId == $"Aspire.Hosting.Azure/{methodName}"); 2185var capability = capabilities.FirstOrDefault(c => c.CapabilityId == expectedId); 2205var capability = capabilities.FirstOrDefault(c => c.CapabilityId == expectedId); 2253var dictSet = capabilities.FirstOrDefault(c => c.CapabilityId == "Aspire.Hosting/Dict.set"); 2305var getValueAsync = capabilities.First(c => 2316var getValueAsync = capabilities.FirstOrDefault(c => 2330var addTestRedis = capabilities.First(c => 2401var getStatusAsync = capabilities 2432var withCancellableOperation = capabilities 2454var waitForReadyAsync = capabilities 2479var capability = Assert.Single(context.Capabilities, capability => capability.CapabilityId == "Aspire.Hosting/addProject"); 2503var addDotnetProject = Assert.Single(context.Capabilities, capability => capability.CapabilityId == "Aspire.Hosting.Dotnet/addDotnetProject"); 2517var addCSharpApp = Assert.Single(context.Capabilities, capability => capability.CapabilityId == "Aspire.Hosting/addCSharpApp"); 2656var addTestRedis = capabilities 2753var collisionCapability = CreateVoidEntryPointCapability( 2823var withNpm = result.Capabilities 2854var capability = result.Capabilities 3216var eventHubsCapability = CreateRunAsEmulatorCapability( 3224var serviceBusCapability = CreateRunAsEmulatorCapability( 3415private static AtsContext CreateApiContext(params AtsCapabilityInfo[] capabilities) 3426private static AtsCapabilityInfo CreateRunAsEmulatorCapability(
Aspire.Hosting.Native.CodeGeneration (35)
NativeCSharpProjection.cs (3)
60foreach (var capability in context.Capabilities.Where(capability => capability.TargetTypeId == handle.AtsTypeId) 75foreach (var capability in staticCapabilities.OrderBy(capability => capability.CapabilityId, StringComparer.Ordinal)) 93void AppendMethod(AtsCapabilityInfo capability, bool isStatic)
NativeProviderTypeScriptProjection.cs (3)
42foreach (var method in methods.Where(method => method.TargetTypeId is null)) 53foreach (var method in methods.Where(method => method.TargetTypeId == type)) 62void AppendMethod(AtsCapabilityInfo method, bool instance)
Program.cs (1)
80foreach (var capability in context.Capabilities.OrderBy(capability => capability.CapabilityId, StringComparer.Ordinal))
src\Aspire.Hosting.RemoteHost\AtsCapabilityScanner.cs (22)
30public required List<AtsCapabilityInfo> Capabilities { get; init; } 141var allCapabilities = new List<AtsCapabilityInfo>(); 149var seenCapabilities = new Dictionary<string, AtsCapabilityInfo>(); // Track capability ID -> first capability for duplicate detection 160foreach (var capability in result.Capabilities) 162if (seenCapabilities.TryGetValue(capability.CapabilityId, out var existingCapability)) 373var capabilities = new List<AtsCapabilityInfo>(); 512var capability = CreateCapabilityInfo(method, exportAttr, assemblyName, assemblyExportedTypeCache, out var capabilityDiagnostic); 600List<AtsCapabilityInfo> capabilities, 610foreach (var capability in capabilities) 708List<AtsCapabilityInfo> capabilities, 712foreach (var capability in capabilities) 793List<AtsCapabilityInfo> capabilities, 901List<AtsCapabilityInfo> capabilities, 909foreach (var capability in capabilities) 1009private static void FilterMethodNameCollisions(List<AtsCapabilityInfo> capabilities, List<AtsDiagnostic> diagnostics) 1044var exactTargetCapability = exactTargetCapabilities[0]; 1045foreach (var collidingCapability in collidingCapabilities) 1080foreach (var capability in capabilities) 1098public static List<AtsCapabilityInfo> ScanCapabilities( 1591public required List<AtsCapabilityInfo> Capabilities { get; init; } 1615var capabilities = new List<AtsCapabilityInfo>(); 2052private static AtsCapabilityInfo? CreateCapabilityInfo(
src\Shared\NativeProviderContractReader.cs (6)
11internal sealed record NativeProviderExport(AtsCapabilityInfo Capability, string? LifecyclePhase); 40var capability = metadata.Deserialize<AtsCapabilityInfo>(s_options) 86if (info.Type == typeof(AtsCapabilityInfo)) 92nameof(AtsCapabilityInfo.CapabilityId) => "id", 93nameof(AtsCapabilityInfo.MethodName) => "method",
Aspire.Hosting.Native.Core.Tests (1)
NativeCSharpClientTests.cs (1)
22foreach (var capability in contract.Capabilities)
Aspire.Hosting.RemoteHost (48)
Ats\CapabilityDispatcher.cs (11)
52public AtsCapabilityInfo? Capability { get; init; } 145foreach (var capability in result.Capabilities) 177private void RegisterContextTypeProperty(AtsCapabilityInfo capability, PropertyInfo property) 304private void RegisterContextTypeMethod(AtsCapabilityInfo capability, MethodInfo method) 417private void RegisterFromCapability(AtsCapabilityInfo capability, MethodInfo method) 777AtsCapabilityInfo capability, 821AtsCapabilityInfo capability, 894private static IReadOnlyList<Type>? GetUnionMemberClrTypes(ParameterInfo parameter, AtsCapabilityInfo capability) 904private static IReadOnlyList<Type>? GetUnionMemberClrTypes(PropertyInfo property, AtsCapabilityInfo capability, string parameterName) 936private static IReadOnlyList<Type>? TryGetUnionMemberClrTypes(AtsCapabilityInfo capability, string parameterName) 991AtsCapabilityInfo capability,
Ats\ExternalCapabilityRegistry.cs (2)
747private static AtsCapabilityInfo CreateProjectedCapability(ExternalCapabilityProjection capability) 825public required AtsCapabilityInfo ProjectedCapability { get; init; }
AtsCapabilityScanner.cs (22)
30public required List<AtsCapabilityInfo> Capabilities { get; init; } 141var allCapabilities = new List<AtsCapabilityInfo>(); 149var seenCapabilities = new Dictionary<string, AtsCapabilityInfo>(); // Track capability ID -> first capability for duplicate detection 160foreach (var capability in result.Capabilities) 162if (seenCapabilities.TryGetValue(capability.CapabilityId, out var existingCapability)) 373var capabilities = new List<AtsCapabilityInfo>(); 512var capability = CreateCapabilityInfo(method, exportAttr, assemblyName, assemblyExportedTypeCache, out var capabilityDiagnostic); 600List<AtsCapabilityInfo> capabilities, 610foreach (var capability in capabilities) 708List<AtsCapabilityInfo> capabilities, 712foreach (var capability in capabilities) 793List<AtsCapabilityInfo> capabilities, 901List<AtsCapabilityInfo> capabilities, 909foreach (var capability in capabilities) 1009private static void FilterMethodNameCollisions(List<AtsCapabilityInfo> capabilities, List<AtsDiagnostic> diagnostics) 1044var exactTargetCapability = exactTargetCapabilities[0]; 1045foreach (var collidingCapability in collidingCapabilities) 1080foreach (var capability in capabilities) 1098public static List<AtsCapabilityInfo> ScanCapabilities( 1591public required List<AtsCapabilityInfo> Capabilities { get; init; } 1615var capabilities = new List<AtsCapabilityInfo>(); 2052private static AtsCapabilityInfo? CreateCapabilityInfo(
AtsContextFilter.cs (10)
145foreach (var capability in capabilities) 165private static IEnumerable<string> GetCapabilityTargetTypeIds(AtsCapabilityInfo capability) 247foreach (var capability in filteredCapabilities) 291foreach (var capability in filteredCapabilities) 308private static IEnumerable<AtsCapabilityInfo> CreateApiExportSupportCapabilities( 309AtsCapabilityInfo capability, 359private static IReadOnlyList<AtsParameterInfo> CreateApiExportSupportParameters(AtsCapabilityInfo capability) 503AtsCapabilityInfo capability, 547foreach (var capability in context.Capabilities) 645foreach (var capability in context.Capabilities)
CodeGeneration\CodeGenerationService.cs (1)
111private static CapabilityResponse MapCapability(AtsCapabilityInfo c) => new()
Diagnostics\RemoteHostProfilingTelemetry.cs (2)
184public ActivityScope StartCapabilityInvoke(string capabilityId, AtsCapabilityInfo? capability) 436public void SetCapability(string capabilityId, AtsCapabilityInfo? capability)
Aspire.Hosting.RemoteHost.Tests (33)
AtsCapabilityScannerTests.cs (18)
156var enumerableParameterCapability = Assert.Single(result.Capabilities, 163var enumerableReturnCapability = Assert.Single(result.Capabilities, 188var capability = Assert.Single(result.Capabilities, 327var capability = Assert.Single(result.Capabilities, 402var capability = Assert.Single(result.Capabilities, capability => capability.OwningTypeName == typeName && capability.MethodName == methodName); 414var capability = Assert.Single(result.Capabilities, 468var baseNameCapability = Assert.Single(result.Capabilities, 488var nameGetter = Assert.Single(result.Capabilities, 493var descriptionGetter = Assert.Single(result.Capabilities, 499var mutableSetter = Assert.Single(result.Capabilities, 620var genericCapability = Assert.Single(result.Capabilities, 622var specificCapability = Assert.Single(result.Capabilities, 651var capability = result.Capabilities 678var capability = Assert.Single(result.Capabilities, 697var capability = Assert.Single(result.Capabilities, 716var capability = Assert.Single(result.Capabilities, 743var capability = Assert.Single(result.Capabilities, c => c.CapabilityId == expectedCapabilityId); 871var capability = Assert.Single(result.Capabilities,
AtsContextFilterTests.cs (4)
180var supportingCapability = new AtsCapabilityInfo 225var filteredSupport = Assert.Single( 496var selectedCapability = new AtsCapabilityInfo 553var unrelatedCapability = new AtsCapabilityInfo
AttributeDataReaderTests.cs (5)
138var capability = Assert.Single( 165var capability = Assert.Single(result.Capabilities); 210var compatibleCapability = result.Capabilities 225var officialCapability = result.Capabilities 227var thirdPartyCapability = result.Capabilities
ExternalCapabilityRegistryTests.cs (6)
540var capability = Assert.Single(registry.AugmentContext(CreateContext()).Capabilities); 568var capability = Assert.Single(registry.AugmentContext(CreateContext()).Capabilities); 889var managedCapability = new AtsCapabilityInfo 915var managedCapability = new AtsCapabilityInfo 974var capability = Assert.Single(augmented.Capabilities); 1014private static AtsContext CreateContext(params AtsCapabilityInfo[] capabilities)
Aspire.TypeSystem (1)
AtsContext.cs (1)
58public required IReadOnlyList<AtsCapabilityInfo> Capabilities { get; init; }