> ## 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.

# DeviceAuthorizationResponse

> The RFC 8628 section 3.2 device authorization response returned from a device authorization endpoint.

## Definition

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

**Namespace:** Microsoft.OData.Mcp.Authentication.Outbound

**Inheritance:** System.Object

## Syntax

```csharp theme={null}
Microsoft.OData.Mcp.Authentication.Outbound.DeviceAuthorizationResponse
```

## Summary

The RFC 8628 section 3.2 device authorization response returned from a device authorization endpoint.

## Remarks

Deserialized exclusively through [OutboundOAuthJsonContext](https://learn.microsoft.com/dotnet/api/microsoft.odata.mcp.authentication.outbound.outboundoauthjsoncontext) (AOT: JSON source-gen; no
reflection). [DeviceAuthorizationResponse.Interval](https://ai.easyaf.dev/odata-mcp/api-reference/Microsoft/OData/Mcp/Authentication/Outbound/DeviceAuthorizationResponse.md#interval) is [`null`](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null) when the server omits it; RFC 8628
callers treat an absent interval as five seconds, but this type does not bake that default in so the
distinction between "absent" and "explicitly five" survives for callers that care.

## Examples

```csharp theme={null}
var response = JsonSerializer.Deserialize(json, OutboundOAuthJsonContext.Default.DeviceAuthorizationResponse);
var pollInterval = response!.Interval ?? 5;
```

## Constructors

### &#x20;.ctor

#### Syntax

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

### &#x20;.ctor Inherited

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

#### Syntax

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

## Properties

### &#x20;DeviceCode

Gets or sets the device verification code the client polls the token endpoint with.

#### Syntax

```csharp theme={null}
public string DeviceCode { get; set; }
```

#### Property Value

Type: `string`

### &#x20;ExpiresIn

Gets or sets the lifetime, in seconds, of [DeviceAuthorizationResponse.DeviceCode](https://ai.easyaf.dev/odata-mcp/api-reference/Microsoft/OData/Mcp/Authentication/Outbound/DeviceAuthorizationResponse.md#devicecode) and [DeviceAuthorizationResponse.UserCode](https://ai.easyaf.dev/odata-mcp/api-reference/Microsoft/OData/Mcp/Authentication/Outbound/DeviceAuthorizationResponse.md#usercode).

#### Syntax

```csharp theme={null}
public int ExpiresIn { get; set; }
```

#### Property Value

Type: `int`

### &#x20;Interval

Gets or sets the minimum number of seconds the client must wait between token endpoint polls, or
[`null`](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null) when the server did not advertise one.

#### Syntax

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

#### Property Value

Type: `System.Nullable<int>`

#### Remarks

A caller should treat a [`null`](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null) value as five seconds per RFC 8628 section 3.2.

### &#x20;UserCode

Gets or sets the end-user verification code.

#### Syntax

```csharp theme={null}
public string UserCode { get; set; }
```

#### Property Value

Type: `string`

### &#x20;VerificationUri

Gets or sets the end-user verification URI the client displays or opens.

#### Syntax

```csharp theme={null}
public string VerificationUri { get; set; }
```

#### Property Value

Type: `string`

### &#x20;VerificationUriComplete

Gets or sets a verification URI that already carries [DeviceAuthorizationResponse.UserCode](https://ai.easyaf.dev/odata-mcp/api-reference/Microsoft/OData/Mcp/Authentication/Outbound/DeviceAuthorizationResponse.md#usercode), or [`null`](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null)
when the server did not advertise one.

#### Syntax

```csharp theme={null}
public string VerificationUriComplete { get; set; }
```

#### Property Value

Type: `string?`

## Methods

### &#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 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.