# TraconApprovalOptions

> Tracon documentation. Tracon is a .NET package family that adds a control
> plane on Microsoft Agent Framework, published as NuGet packages that run
> inside your own ASP.NET Core application.
>
> Page: https://tracon.dev/api/tracon.traconapprovaloptions/
> Summary: TraconApprovalOptions: Options for asynchronous approvals.

<div class="api-provenance">Namespace Tracon · Assembly <code>Tracon.Core.dll</code></div>

Options for asynchronous approvals.

```csharp
public sealed class TraconApprovalOptions
```

<dl class="api-relations"><dt>Inheritance</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.object">object</a> ← <a href="/api/tracon.traconapprovaloptions/">TraconApprovalOptions</a></dd><dt>Inherited Members</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object?, object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object?, object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a></dd></dl>

## Remarks

Reads values from the `Tracon:Approvals` configuration section. See
`TraconServiceCollectionExtensions.AddTracon`.

## Constructors

### <a id="Tracon_TraconApprovalOptions__ctor"></a> TraconApprovalOptions\(\)

```csharp
public TraconApprovalOptions()
```

## Fields

### <a id="Tracon_TraconApprovalOptions_SectionName"></a> SectionName

The configuration section name.

```csharp
public const string SectionName = "Tracon:Approvals"
```

#### Field Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)

## Properties

### <a id="Tracon_TraconApprovalOptions_DefaultExpiration"></a> DefaultExpiration

A pending approval request has [ApprovalStatus.Expired](/api/tracon.approvalstatus/) status
after this duration.

```csharp
public TimeSpan DefaultExpiration { get; set; }
```

#### Property Value

 [TimeSpan](https://learn.microsoft.com/dotnet/api/system.timespan)

#### Remarks

The default is 24 hours. An approval often needs a person, and a short
limit, such as one hour, is not enough for an overnight shift.

### <a id="Tracon_TraconApprovalOptions_ExpirationEnabled"></a> ExpirationEnabled

Gets or sets a value that enables the background scan that closes expired requests.

```csharp
public bool ExpirationEnabled { get; set; }
```

#### Property Value

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

#### Remarks

The default is [true](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool). Unlike [RunReconciliationOptions](/api/tracon.runreconciliationoptions/),
this is a security requirement, not a maintenance convenience. An approval
request that waits forever is a leak. See `IPendingApprovalStore.ExpireAsync`.

### <a id="Tracon_TraconApprovalOptions_MaxPerScan"></a> MaxPerScan

The maximum number of requests to close in one scan.

```csharp
public int MaxPerScan { get; set; }
```

#### Property Value

 [int](https://learn.microsoft.com/dotnet/api/system.int32)

### <a id="Tracon_TraconApprovalOptions_ScanInterval"></a> ScanInterval

The delay between expiration scans.

```csharp
public TimeSpan ScanInterval { get; set; }
```

#### Property Value

 [TimeSpan](https://learn.microsoft.com/dotnet/api/system.timespan)
