# ToolRegistrationOptions

> 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.toolregistrationoptions/
> Summary: ToolRegistrationOptions: Configures metadata for a tool registration.

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

Configures metadata for a tool registration.

```csharp
public sealed class ToolRegistrationOptions
```

<dl class="api-relations"><dt>Inheritance</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.object">object</a> ← <a href="/api/tracon.toolregistrationoptions/">ToolRegistrationOptions</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>

## Constructors

### <a id="Tracon_ToolRegistrationOptions__ctor"></a> ToolRegistrationOptions\(\)

```csharp
public ToolRegistrationOptions()
```

## Properties

### <a id="Tracon_ToolRegistrationOptions_Effect"></a> Effect

Gets or sets the tool effect. The default is [ToolEffect.Read](/api/tracon.tooleffect/).

```csharp
public ToolEffect Effect { get; set; }
```

#### Property Value

 [ToolEffect](/api/tracon.tooleffect/)

### <a id="Tracon_ToolRegistrationOptions_MaxOutputBytes"></a> MaxOutputBytes

Gets or sets the maximum UTF-8 result size, or [null](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null) to use the installation default.

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

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

Gets or sets the permission required to invoke the tool.

```csharp
public string? RequiredPermission { get; set; }
```

#### Property Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)?

### <a id="Tracon_ToolRegistrationOptions_RequiresApproval"></a> RequiresApproval

Gets or sets whether a call needs explicit approval.

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

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="Tracon_ToolRegistrationOptions_SafeToRepeat"></a> SafeToRepeat

Gets or sets whether an interrupted external or destructive call may be repeated.

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

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="Tracon_ToolRegistrationOptions_Source"></a> Source

Gets or sets the tool source. Code-defined tools use [null](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null).

```csharp
public string? Source { get; set; }
```

#### Property Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)?

### <a id="Tracon_ToolRegistrationOptions_Timeout"></a> Timeout

Gets or sets the tool timeout, or [null](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null) to use the installation default.

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

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