# ToolInputResponse

> 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.toolinputresponse/
> Summary: ToolInputResponse: The answer to one request for user input that suspended a tool call (MCP elicitation).

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

The answer to one request for user input that suspended a tool call (MCP elicitation).

```csharp
public sealed record ToolInputResponse : IEquatable<ToolInputResponse>
```

<dl class="api-relations"><dt>Inheritance</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.object">object</a> ← <a href="/api/tracon.toolinputresponse/">ToolInputResponse</a></dd><dt>Implements</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.iequatable-1">IEquatable&lt;ToolInputResponse&gt;</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

[ToolApprovalDecision](/api/tracon.toolapprovaldecision/)'s sibling on the run request: the run response carried the request, and
the caller sends the answer back through this contract in the next run of the same session.

## Constructors

### <a id="Tracon_ToolInputResponse__ctor"></a> ToolInputResponse\(\)

```csharp
public ToolInputResponse()
```

## Properties

### <a id="Tracon_ToolInputResponse_Action"></a> Action

What the user did with the request.

```csharp
public required ToolInputAction Action { get; init; }
```

#### Property Value

 [ToolInputAction](/api/tracon.toolinputaction/)

### <a id="Tracon_ToolInputResponse_Content"></a> Content

The values of the requested fields, by field name. Meaningful only with
[ToolInputAction.Accept](/api/tracon.toolinputaction/); sending it with another action is rejected.

```csharp
public IReadOnlyDictionary<string, JsonElement>? Content { get; init; }
```

#### Property Value

 [IReadOnlyDictionary](https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlydictionary\-2)<[string](https://learn.microsoft.com/dotnet/api/system.string), [JsonElement](https://learn.microsoft.com/dotnet/api/system.text.json.jsonelement)\>?

#### Remarks

Each value must fit the field the server declared: a string, a number, an integer, a boolean or
one of the declared options. A field the request marks as required must be present. A value goes to the
MCP server that asked and nowhere else: it is not kept in the session, and it is never written to the
audit log or to the run's event stream.

### <a id="Tracon_ToolInputResponse_RequestId"></a> RequestId

Identifier of the request this answers. Matches the `requestId` the run response carried.

```csharp
public required string RequestId { get; init; }
```

#### Property Value

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

### <a id="Tracon_ToolInputResponse_Equals_System_Object_"></a> Equals\(object?\)

```csharp
public override bool Equals(object? obj)
```

#### Parameters

`obj` [object](https://learn.microsoft.com/dotnet/api/system.object)?

#### Returns

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="Tracon_ToolInputResponse_Equals_Tracon_ToolInputResponse_"></a> Equals\(ToolInputResponse?\)

```csharp
public bool Equals(ToolInputResponse? other)
```

#### Parameters

`other` [ToolInputResponse](/api/tracon.toolinputresponse/)?

#### Returns

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

```csharp
public override int GetHashCode()
```

#### Returns

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

```csharp
public override string ToString()
```

#### Returns

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

### <a id="Tracon_ToolInputResponse_op_Equality_Tracon_ToolInputResponse_Tracon_ToolInputResponse_"></a> operator ==\(ToolInputResponse?, ToolInputResponse?\)

```csharp
public static bool operator ==(ToolInputResponse? left, ToolInputResponse? right)
```

#### Parameters

`left` [ToolInputResponse](/api/tracon.toolinputresponse/)?

`right` [ToolInputResponse](/api/tracon.toolinputresponse/)?

#### Returns

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="Tracon_ToolInputResponse_op_Inequality_Tracon_ToolInputResponse_Tracon_ToolInputResponse_"></a> operator \!=\(ToolInputResponse?, ToolInputResponse?\)

```csharp
public static bool operator !=(ToolInputResponse? left, ToolInputResponse? right)
```

#### Parameters

`left` [ToolInputResponse](/api/tracon.toolinputresponse/)?

`right` [ToolInputResponse](/api/tracon.toolinputresponse/)?

#### Returns

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