# AtsCapabilityInfo

- Kind: `class`
- Package: [Aspire.TypeSystem](/reference/api/csharp/aspire.typesystem.md)
- Version: `13.4.0`
- Namespace: `Aspire.TypeSystem`
- Target framework: `net8.0`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/a3766e994fd2cba86c8ac60b8a80268cab7e6383/src/Aspire.TypeSystem/AtsCapabilityInfo.cs)

Represents a discovered [AspireExport] capability.

## Definition

```csharp
namespace Aspire.TypeSystem;

public sealed class AtsCapabilityInfo
{
    // ...
}
```

## Remarks

This model is shared between code generation (using RoMethod/RoType metadata reflection) and the runtime CapabilityDispatcher (using System.Reflection).

The capability represents a single exportable method that can be invoked via `invokeCapability(capabilityId, args)` from polyglot clients.

## Constructors

- [AtsCapabilityInfo](/reference/api/csharp/aspire.typesystem/atscapabilityinfo/constructors.md#constructor)

## Properties

- [CapabilityId](/reference/api/csharp/aspire.typesystem/atscapabilityinfo/properties.md#capabilityid) : `string` `get; init` -- Gets or sets the capability ID (e.g., "Aspire.Hosting/addRedis").
- [CapabilityKind](/reference/api/csharp/aspire.typesystem/atscapabilityinfo/properties.md#capabilitykind) : [AtsCapabilityKind](/reference/api/csharp/aspire.typesystem/atscapabilitykind.md) `get; init` -- Gets or sets the kind of capability (Method, PropertyGetter, PropertySetter, InstanceMethod).
- [Description](/reference/api/csharp/aspire.typesystem/atscapabilityinfo/properties.md#description) : `string?` `get; init` -- Gets or sets the description of what this capability does.
- [Documentation](/reference/api/csharp/aspire.typesystem/atscapabilityinfo/properties.md#documentation) : [AtsDocumentationInfo?](/reference/api/csharp/aspire.typesystem/atsdocumentationinfo.md) `get; init` -- Gets or sets the XML documentation captured for this capability.
- [ExpandedTargetTypes](/reference/api/csharp/aspire.typesystem/atscapabilityinfo/properties.md#expandedtargettypes) : [IReadOnlyList<AtsTypeRef>](/reference/api/csharp/aspire.typesystem/atstyperef.md) `get; set` -- Gets or sets the expanded list of concrete types this capability applies to. Pre-computed during scanning by resolving interface targets to all implementing types.
- [IsObsolete](/reference/api/csharp/aspire.typesystem/atscapabilityinfo/properties.md#isobsolete) : `bool` `get; init` -- Gets or sets whether this capability is obsolete.
- [MethodName](/reference/api/csharp/aspire.typesystem/atscapabilityinfo/properties.md#methodname) : `string` `get; set` -- Gets or sets the simple method name for generated SDKs (e.g., "addRedis", "isRunMode"). For context type capabilities, this is just the property/method name without the type prefix.
- [ObsoleteMessage](/reference/api/csharp/aspire.typesystem/atscapabilityinfo/properties.md#obsoletemessage) : `string?` `get; init` -- Gets or sets the obsolete message for this capability.
- [OwningTypeName](/reference/api/csharp/aspire.typesystem/atscapabilityinfo/properties.md#owningtypename) : `string?` `get; init` -- Gets or sets the owning type name for property/method capabilities.
- [Parameters](/reference/api/csharp/aspire.typesystem/atscapabilityinfo/properties.md#parameters) : [IReadOnlyList<AtsParameterInfo>](/reference/api/csharp/aspire.typesystem/atsparameterinfo.md) `get; init` -- Gets or sets the parameters for this capability.
- [QualifiedMethodName](/reference/api/csharp/aspire.typesystem/atscapabilityinfo/properties.md#qualifiedmethodname) : `string` `get` -- Gets the qualified method name combining OwningTypeName and MethodName.
- [ReturnsBuilder](/reference/api/csharp/aspire.typesystem/atscapabilityinfo/properties.md#returnsbuilder) : `bool` `get; init` -- Gets or sets whether the return type is a builder type.
- [ReturnType](/reference/api/csharp/aspire.typesystem/atscapabilityinfo/properties.md#returntype) : [AtsTypeRef](/reference/api/csharp/aspire.typesystem/atstyperef.md) `get; init` -- Gets or sets the return type reference with full type metadata. Use [AtsConstants.Void](/reference/api/csharp/aspire.typesystem/atsconstants/fields.md#void) TypeId for void return types.
- [RunSyncOnBackgroundThread](/reference/api/csharp/aspire.typesystem/atscapabilityinfo/properties.md#runsynconbackgroundthread) : `bool` `get; init` -- Gets or sets whether this capability's invocation should run on a background thread.
- [SourceLocation](/reference/api/csharp/aspire.typesystem/atscapabilityinfo/properties.md#sourcelocation) : `string?` `get; init` -- Gets or sets the source location where this capability is defined.
- [TargetParameterName](/reference/api/csharp/aspire.typesystem/atscapabilityinfo/properties.md#targetparametername) : `string?` `get; init` -- Gets or sets the name of the target parameter (e.g., "builder", "resource"). This is the first parameter of the method that represents the target/receiver.
- [TargetType](/reference/api/csharp/aspire.typesystem/atscapabilityinfo/properties.md#targettype) : [AtsTypeRef?](/reference/api/csharp/aspire.typesystem/atstyperef.md) `get; init` -- Gets or sets the target type reference with full type metadata.
- [TargetTypeId](/reference/api/csharp/aspire.typesystem/atscapabilityinfo/properties.md#targettypeid) : `string?` `get; init` -- Gets or sets the original (declared) ATS type ID that this capability targets. May be an interface type (e.g., "Aspire.Hosting/IResourceWithEnvironment").
