# ProductionProfileResult

> 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.productionprofileresult/
> Summary: ProductionProfileResult: The answer one production profile check gives.

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

The answer one production profile check gives.

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

Built through the three factory methods rather than a constructor, so a
permissive answer cannot be written without the two things that make it
actionable: what the setting is today, and how to change it. A startup
failure that only names the setting sends the reader to the source.

**No text on this type may carry a configuration VALUE.** Every
field is written into the startup exception and into the log, so a key, a
connection string or a token placed here leaves the process. Describe the
state ("no content guard is registered"), never the material.

Deliberately not a `record`: the generated `ToString` prints every
field, which turns any log statement that formats the object into a second,
unreviewed disclosure path.

## Properties

### <a id="Tracon_ProductionProfileResult_Observed"></a> Observed

Gets what the check observed, described rather than quoted. Empty for
[ProductionProfileState.Satisfied](/api/tracon.productionprofilestate/).

```csharp
public string Observed { get; }
```

#### Property Value

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

Gets how to answer the decision. Empty unless the state is
[ProductionProfileState.Permissive](/api/tracon.productionprofilestate/).

```csharp
public string Remedy { get; }
```

#### Property Value

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

Gets the setting or registration the check inspected, named the way a
consumer would search for it — a configuration key such as
`Tracon:RateLimit:Enabled`, or a contract such as
`IContentGuard`.

```csharp
public string Setting { get; }
```

#### Property Value

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

Gets what the check found.

```csharp
public ProductionProfileState State { get; }
```

#### Property Value

 [ProductionProfileState](/api/tracon.productionprofilestate/)

## Methods

### <a id="Tracon_ProductionProfileResult_NotApplicable_System_String_System_String_"></a> NotApplicable\(string, string\)

The decision does not apply to this composition.

```csharp
public static ProductionProfileResult NotApplicable(string setting, string reason)
```

#### Parameters

`setting` [string](https://learn.microsoft.com/dotnet/api/system.string)

The setting or registration that was inspected.

`reason` [string](https://learn.microsoft.com/dotnet/api/system.string)

Why the decision is meaningless here.

#### Returns

 [ProductionProfileResult](/api/tracon.productionprofileresult/)

A not-applicable result.

#### Exceptions

 [ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception)

An argument is empty or white space.

 [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception)

An argument is [null](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null).

### <a id="Tracon_ProductionProfileResult_Permissive_System_String_System_String_System_String_"></a> Permissive\(string, string, string\)

The setting is still on its permissive default.

```csharp
public static ProductionProfileResult Permissive(string setting, string observed, string remedy)
```

#### Parameters

`setting` [string](https://learn.microsoft.com/dotnet/api/system.string)

The setting or registration that was inspected.

`observed` [string](https://learn.microsoft.com/dotnet/api/system.string)

What the setting is today, described without quoting its value.

`remedy` [string](https://learn.microsoft.com/dotnet/api/system.string)

How to answer the decision.

#### Returns

 [ProductionProfileResult](/api/tracon.productionprofileresult/)

A permissive result.

#### Exceptions

 [ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception)

An argument is empty or white space.

 [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception)

An argument is [null](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null).

### <a id="Tracon_ProductionProfileResult_Satisfied_System_String_"></a> Satisfied\(string\)

The feature is on; the decision was answered.

```csharp
public static ProductionProfileResult Satisfied(string setting)
```

#### Parameters

`setting` [string](https://learn.microsoft.com/dotnet/api/system.string)

The setting or registration that was inspected.

#### Returns

 [ProductionProfileResult](/api/tracon.productionprofileresult/)

A satisfied result.

#### Exceptions

 [ArgumentException](https://learn.microsoft.com/dotnet/api/system.argumentexception)

`setting` is empty or white space.

 [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception)

`setting` is [null](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null).
