# ToolApprovalRule

> 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/http-api/schemas/toolapprovalrule/
> Summary: OpenAPI request or response schema for ToolApprovalRule, including required fields, defaults, constraints, and linked nested types.

[← All HTTP schemas](/http-api/schemas/)

A persistent approval rule for a tool call the user said "do not ask again" for.

**Shape:** `object`

| Property | Required | Type | Description | Rules |
|---|---|---|---|---|
| `id` | yes | `string (uuid)` | Gets the rule id. A time-ordered UUID (v7). | — |
| `tenantId` | yes | `string` | Gets the tenant the rule holds in. | — |
| `agentName` | no | `string` | Gets the agent the rule holds for. When `null` it covers every agent of the tenant. | — |
| `toolName` | yes | `string` | Gets the tool the rule holds for. | — |
| `argumentsHash` | no | `string` | Gets the argument fingerprint. When it is populated the rule covers only a call made with the same arguments. | — |
| `argumentConditions` | no | array of [`ToolArgumentCondition`](/http-api/schemas/toolargumentcondition/) | Gets the argument conditions. All conditions must match for the rule to apply (`AND`); an empty list matches every call of the tool. Mutually exclusive with `ArgumentsHash` — a rule carries one or the other, never both. | — |
| `sourceFingerprint` | no | `string` | Gets the fingerprint of the remote source the tool came from when the rule was written, or `null` for a tool that does not come from a remote source (a tool defined in code). | — |
| `createdBy` | no | `string` | Gets who created the rule, or `null` when there is no authentication. | — |
| `createdAt` | yes | `string (date-time)` | Gets the creation time (UTC). | — |
