> ## Documentation Index
> Fetch the complete documentation index at: https://ai.easyaf.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# ServiceProbeResult

> Everything a [ServiceProbe](/odata-mcp/api-reference/Microsoft/OData/Mcp/Core/Diagnostics/ServiceProbe) learned about one service: the three steps, the parsed model wh...

## Definition

**Assembly:** Microsoft.OData.Mcp.Core.dll

**Namespace:** Microsoft.OData.Mcp.Core.Diagnostics

**Inheritance:** System.Object

## Syntax

```csharp theme={null}
Microsoft.OData.Mcp.Core.Diagnostics.ServiceProbeResult
```

## Summary

Everything a [ServiceProbe](https://ai.easyaf.dev/odata-mcp/api-reference/Microsoft/OData/Mcp/Core/Diagnostics/ServiceProbe.md) learned about one service: the three steps, the parsed model when
there was one, the entity set that was sampled, and the overall verdict.

## Constructors

### &#x20;.ctor

Initializes a new instance of the [ServiceProbeResult](https://ai.easyaf.dev/odata-mcp/api-reference/Microsoft/OData/Mcp/Core/Diagnostics/ServiceProbeResult.md) class.

#### Syntax

```csharp theme={null}
public ServiceProbeResult(System.Uri serviceRoot, Microsoft.OData.Mcp.Core.Diagnostics.ProbeStep metadata, Microsoft.OData.Mcp.Core.Diagnostics.ProbeStep data, Microsoft.OData.Mcp.Core.Diagnostics.ProbeStep results, Microsoft.OData.Mcp.Core.Models.EdmModel model, string entitySet, string entityType)
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `serviceRoot` | `System.Uri` | - |
| `metadata` | `Microsoft.OData.Mcp.Core.Diagnostics.ProbeStep` | - |
| `data` | `Microsoft.OData.Mcp.Core.Diagnostics.ProbeStep` | - |
| `results` | `Microsoft.OData.Mcp.Core.Diagnostics.ProbeStep` | - |
| `model` | `Microsoft.OData.Mcp.Core.Models.EdmModel?` | - |
| `entitySet` | `string?` | - |
| `entityType` | `string?` | - |

### &#x20;.ctor Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
public Object()
```

## Properties

### &#x20;Challenges

Every `WWW-Authenticate` value seen on a 401 or 403, metadata first.

#### Syntax

```csharp theme={null}
public System.Collections.Generic.IReadOnlyList<string> Challenges { get; }
```

#### Property Value

Type: `System.Collections.Generic.IReadOnlyList<string>`

### &#x20;Data

Step 2: `GET {root}{EntitySet}?$top=1`.

#### Syntax

```csharp theme={null}
public Microsoft.OData.Mcp.Core.Diagnostics.ProbeStep Data { get; }
```

#### Property Value

Type: `Microsoft.OData.Mcp.Core.Diagnostics.ProbeStep`

### &#x20;EntitySet

The entity set that was sampled, or `null` when the model declared none.

#### Syntax

```csharp theme={null}
public string EntitySet { get; }
```

#### Property Value

Type: `string?`

### &#x20;EntityType

The qualified name of the type behind [ServiceProbeResult.EntitySet](https://ai.easyaf.dev/odata-mcp/api-reference/Microsoft/OData/Mcp/Core/Diagnostics/ServiceProbeResult.md#entityset), or `null`.

#### Syntax

```csharp theme={null}
public string EntityType { get; }
```

#### Property Value

Type: `string?`

### &#x20;Metadata

Step 1: `GET {root}$metadata` and parse.

#### Syntax

```csharp theme={null}
public Microsoft.OData.Mcp.Core.Diagnostics.ProbeStep Metadata { get; }
```

#### Property Value

Type: `Microsoft.OData.Mcp.Core.Diagnostics.ProbeStep`

### &#x20;Model

The parsed model when step 1 passed, otherwise `null`.

#### Syntax

```csharp theme={null}
public Microsoft.OData.Mcp.Core.Models.EdmModel Model { get; }
```

#### Property Value

Type: `Microsoft.OData.Mcp.Core.Models.EdmModel?`

### &#x20;Results

Step 3: does the sampled row match the model?

#### Syntax

```csharp theme={null}
public Microsoft.OData.Mcp.Core.Diagnostics.ProbeStep Results { get; }
```

#### Property Value

Type: `Microsoft.OData.Mcp.Core.Diagnostics.ProbeStep`

### &#x20;SecuredStatusCode

The HTTP status of the step that refused access, when one did. Used to drive OAuth discovery.

#### Syntax

```csharp theme={null}
public System.Nullable<int> SecuredStatusCode { get; }
```

#### Property Value

Type: `System.Nullable<int>`

### &#x20;ServiceRoot

The normalized service root, always ending in `/`.

#### Syntax

```csharp theme={null}
public System.Uri ServiceRoot { get; }
```

#### Property Value

Type: `System.Uri`

### &#x20;Verdict

The overall conclusion.

#### Syntax

```csharp theme={null}
public Microsoft.OData.Mcp.Core.Diagnostics.ServiceVerdict Verdict { get; }
```

#### Property Value

Type: `Microsoft.OData.Mcp.Core.Diagnostics.ServiceVerdict`

## Methods

### &#x20;Decide

Derives the verdict from the three steps.

#### Syntax

```csharp theme={null}
public static Microsoft.OData.Mcp.Core.Diagnostics.ServiceVerdict Decide(Microsoft.OData.Mcp.Core.Diagnostics.ProbeStep metadata, Microsoft.OData.Mcp.Core.Diagnostics.ProbeStep data, Microsoft.OData.Mcp.Core.Diagnostics.ProbeStep results)
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `metadata` | `Microsoft.OData.Mcp.Core.Diagnostics.ProbeStep` | Step 1. |
| `data` | `Microsoft.OData.Mcp.Core.Diagnostics.ProbeStep` | Step 2. |
| `results` | `Microsoft.OData.Mcp.Core.Diagnostics.ProbeStep` | Step 3. |

#### Returns

Type: `Microsoft.OData.Mcp.Core.Diagnostics.ServiceVerdict`
The verdict. Security refusals win over reachability, which wins over readability.

### &#x20;Equals Inherited Virtual

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
public virtual bool Equals(object obj)
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `obj` | `object?` | - |

#### Returns

Type: `bool`

### &#x20;Equals Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
public static bool Equals(object objA, object objB)
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `objA` | `object?` | - |
| `objB` | `object?` | - |

#### Returns

Type: `bool`

### &#x20;GetHashCode Inherited Virtual

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
public virtual int GetHashCode()
```

#### Returns

Type: `int`

### &#x20;GetType Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
public System.Type GetType()
```

#### Returns

Type: `System.Type`

### &#x20;MemberwiseClone Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
protected internal object MemberwiseClone()
```

#### Returns

Type: `object`

### &#x20;ReferenceEquals Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
public static bool ReferenceEquals(object objA, object objB)
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `objA` | `object?` | - |
| `objB` | `object?` | - |

#### Returns

Type: `bool`

### &#x20;ToString Override

#### Syntax

```csharp theme={null}
public override string ToString()
```

#### Returns

Type: `string`

### &#x20;ToString Inherited Virtual

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={null}
public virtual string ToString()
```

#### Returns

Type: `string?`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.