# AtsParameterInfo Properties

- Package: [Aspire.TypeSystem](/reference/api/csharp/aspire.typesystem.md)
- Type: [AtsParameterInfo](/reference/api/csharp/aspire.typesystem/atsparameterinfo.md)
- Kind: `Properties`
- Members: `9`

Represents a parameter in an ATS capability.

## CallbackParameters

- Name: `CallbackParameters`
- Modifiers: `nullable` `get; init`
- Returns: [IReadOnlyList<AtsCallbackParameterInfo>](/reference/api/csharp/aspire.typesystem/atscallbackparameterinfo.md)
- Source: [GitHub](https://github.com/microsoft/aspire/blob/a3766e994fd2cba86c8ac60b8a80268cab7e6383/src/Aspire.TypeSystem/AtsCapabilityInfo.cs)

Gets or sets the parameters of the callback delegate. Only populated when [AtsParameterInfo.IsCallback](/reference/api/csharp/aspire.typesystem/atsparameterinfo/properties.md#iscallback) is true.

```csharp
public IReadOnlyList<AtsCallbackParameterInfo>? CallbackParameters { get; init; }
```

## CallbackReturnType

- Name: `CallbackReturnType`
- Modifiers: `nullable` `get; init`
- Returns: [AtsTypeRef?](/reference/api/csharp/aspire.typesystem/atstyperef.md)
- Source: [GitHub](https://github.com/microsoft/aspire/blob/a3766e994fd2cba86c8ac60b8a80268cab7e6383/src/Aspire.TypeSystem/AtsCapabilityInfo.cs)

Gets or sets the return type for the callback delegate. Only populated when [AtsParameterInfo.IsCallback](/reference/api/csharp/aspire.typesystem/atsparameterinfo/properties.md#iscallback) is true.

```csharp
public AtsTypeRef? CallbackReturnType { get; init; }
```

## DefaultValue

- Name: `DefaultValue`
- Modifiers: `nullable` `get; init`
- Returns: `object?`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/a3766e994fd2cba86c8ac60b8a80268cab7e6383/src/Aspire.TypeSystem/AtsCapabilityInfo.cs)

Gets or sets the default value for optional parameters.

```csharp
public object? DefaultValue { get; init; }
```

## Documentation

- Name: `Documentation`
- Modifiers: `nullable` `get; init`
- Returns: [AtsDocumentationInfo?](/reference/api/csharp/aspire.typesystem/atsdocumentationinfo.md)
- Source: [GitHub](https://github.com/microsoft/aspire/blob/a3766e994fd2cba86c8ac60b8a80268cab7e6383/src/Aspire.TypeSystem/AtsCapabilityInfo.cs)

Gets or sets the XML documentation captured for this parameter.

```csharp
public AtsDocumentationInfo? Documentation { get; init; }
```

## IsCallback

- Name: `IsCallback`
- Modifiers: `get; init`
- Returns: `bool`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/a3766e994fd2cba86c8ac60b8a80268cab7e6383/src/Aspire.TypeSystem/AtsCapabilityInfo.cs)

Gets or sets whether this parameter is a callback delegate. Callbacks are inferred from delegate types (Func, Action, custom delegates).

```csharp
public bool IsCallback { get; init; }
```

## IsNullable

- Name: `IsNullable`
- Modifiers: `get; init`
- Returns: `bool`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/a3766e994fd2cba86c8ac60b8a80268cab7e6383/src/Aspire.TypeSystem/AtsCapabilityInfo.cs)

Gets or sets whether this parameter is nullable.

```csharp
public bool IsNullable { get; init; }
```

## IsOptional

- Name: `IsOptional`
- Modifiers: `get; init`
- Returns: `bool`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/a3766e994fd2cba86c8ac60b8a80268cab7e6383/src/Aspire.TypeSystem/AtsCapabilityInfo.cs)

Gets or sets whether this parameter is optional.

```csharp
public bool IsOptional { get; init; }
```

## Name

- Name: `Name`
- Modifiers: `get; init`
- Returns: `string`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/a3766e994fd2cba86c8ac60b8a80268cab7e6383/src/Aspire.TypeSystem/AtsCapabilityInfo.cs)

Gets or sets the parameter name.

```csharp
public string Name { get; init; }
```

## Type

- Name: `Type`
- Modifiers: `nullable` `get; init`
- Returns: [AtsTypeRef?](/reference/api/csharp/aspire.typesystem/atstyperef.md)
- Source: [GitHub](https://github.com/microsoft/aspire/blob/a3766e994fd2cba86c8ac60b8a80268cab7e6383/src/Aspire.TypeSystem/AtsCapabilityInfo.cs)

Gets or sets the type reference with full type metadata.

```csharp
public AtsTypeRef? Type { get; init; }
```
