#### [Abblix\.Oidc\.Server](https://www.abblix.com/en/docs/api/abblix-oidc-server 'index')
### [Abblix\.Oidc\.Server\.Features\.Storages\.Proto](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Storages.Proto 'Abblix\.Oidc\.Server\.Features\.Storages\.Proto')

## DeviceAuthorizationRequest Class

Represents a device authorization request \(RFC 8628\)

```csharp
public sealed class DeviceAuthorizationRequest : Google.Protobuf.IMessage<Abblix.Oidc.Server.Features.Storages.Proto.DeviceAuthorizationRequest>, Google.Protobuf.IMessage, System.IEquatable<Abblix.Oidc.Server.Features.Storages.Proto.DeviceAuthorizationRequest>, Google.Protobuf.IDeepCloneable<Abblix.Oidc.Server.Features.Storages.Proto.DeviceAuthorizationRequest>, Google.Protobuf.IBufferMessage
```

Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → DeviceAuthorizationRequest

Implements [Google\.Protobuf\.IMessage&lt;](https://learn.microsoft.com/en-us/dotnet/api/google.protobuf.imessage-1 'Google\.Protobuf\.IMessage\`1')[DeviceAuthorizationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Storages.Proto.DeviceAuthorizationRequest 'Abblix\.Oidc\.Server\.Features\.Storages\.Proto\.DeviceAuthorizationRequest')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/google.protobuf.imessage-1 'Google\.Protobuf\.IMessage\`1'), [Google\.Protobuf\.IMessage](https://learn.microsoft.com/en-us/dotnet/api/google.protobuf.imessage 'Google\.Protobuf\.IMessage'), [System\.IEquatable&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.iequatable-1 'System\.IEquatable\`1')[DeviceAuthorizationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Storages.Proto.DeviceAuthorizationRequest 'Abblix\.Oidc\.Server\.Features\.Storages\.Proto\.DeviceAuthorizationRequest')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.iequatable-1 'System\.IEquatable\`1'), [Google\.Protobuf\.IDeepCloneable&lt;](https://learn.microsoft.com/en-us/dotnet/api/google.protobuf.ideepcloneable-1 'Google\.Protobuf\.IDeepCloneable\`1')[DeviceAuthorizationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Storages.Proto.DeviceAuthorizationRequest 'Abblix\.Oidc\.Server\.Features\.Storages\.Proto\.DeviceAuthorizationRequest')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/google.protobuf.ideepcloneable-1 'Google\.Protobuf\.IDeepCloneable\`1'), [Google\.Protobuf\.IBufferMessage](https://learn.microsoft.com/en-us/dotnet/api/google.protobuf.ibuffermessage 'Google\.Protobuf\.IBufferMessage')
### Fields

## DeviceAuthorizationRequest\.AuthorizationDetailsJsonFieldNumber Field {#Abblix.Oidc.Server.Features.Storages.Proto.DeviceAuthorizationRequest.AuthorizationDetailsJsonFieldNumber}

Field number for the "authorization\_details\_json" field\.

```csharp
public const int AuthorizationDetailsJsonFieldNumber = 8;
```

#### Field Value
[System\.Int32](https://learn.microsoft.com/en-us/dotnet/api/system.int32 'System\.Int32')

## DeviceAuthorizationRequest\.AuthorizedGrantFieldNumber Field {#Abblix.Oidc.Server.Features.Storages.Proto.DeviceAuthorizationRequest.AuthorizedGrantFieldNumber}

Field number for the "authorized\_grant" field\.

```csharp
public const int AuthorizedGrantFieldNumber = 7;
```

#### Field Value
[System\.Int32](https://learn.microsoft.com/en-us/dotnet/api/system.int32 'System\.Int32')

## DeviceAuthorizationRequest\.ClientIdFieldNumber Field {#Abblix.Oidc.Server.Features.Storages.Proto.DeviceAuthorizationRequest.ClientIdFieldNumber}

Field number for the "client\_id" field\.

```csharp
public const int ClientIdFieldNumber = 1;
```

#### Field Value
[System\.Int32](https://learn.microsoft.com/en-us/dotnet/api/system.int32 'System\.Int32')

## DeviceAuthorizationRequest\.ExpiresAtFieldNumber Field {#Abblix.Oidc.Server.Features.Storages.Proto.DeviceAuthorizationRequest.ExpiresAtFieldNumber}

Field number for the "expires\_at" field\.

```csharp
public const int ExpiresAtFieldNumber = 9;
```

#### Field Value
[System\.Int32](https://learn.microsoft.com/en-us/dotnet/api/system.int32 'System\.Int32')

## DeviceAuthorizationRequest\.NextPollAtFieldNumber Field {#Abblix.Oidc.Server.Features.Storages.Proto.DeviceAuthorizationRequest.NextPollAtFieldNumber}

Field number for the "next\_poll\_at" field\.

```csharp
public const int NextPollAtFieldNumber = 5;
```

#### Field Value
[System\.Int32](https://learn.microsoft.com/en-us/dotnet/api/system.int32 'System\.Int32')

## DeviceAuthorizationRequest\.ResourcesFieldNumber Field {#Abblix.Oidc.Server.Features.Storages.Proto.DeviceAuthorizationRequest.ResourcesFieldNumber}

Field number for the "resources" field\.

```csharp
public const int ResourcesFieldNumber = 3;
```

#### Field Value
[System\.Int32](https://learn.microsoft.com/en-us/dotnet/api/system.int32 'System\.Int32')

## DeviceAuthorizationRequest\.ScopeFieldNumber Field {#Abblix.Oidc.Server.Features.Storages.Proto.DeviceAuthorizationRequest.ScopeFieldNumber}

Field number for the "scope" field\.

```csharp
public const int ScopeFieldNumber = 2;
```

#### Field Value
[System\.Int32](https://learn.microsoft.com/en-us/dotnet/api/system.int32 'System\.Int32')

## DeviceAuthorizationRequest\.StatusFieldNumber Field {#Abblix.Oidc.Server.Features.Storages.Proto.DeviceAuthorizationRequest.StatusFieldNumber}

Field number for the "status" field\.

```csharp
public const int StatusFieldNumber = 6;
```

#### Field Value
[System\.Int32](https://learn.microsoft.com/en-us/dotnet/api/system.int32 'System\.Int32')

## DeviceAuthorizationRequest\.UserCodeFieldNumber Field {#Abblix.Oidc.Server.Features.Storages.Proto.DeviceAuthorizationRequest.UserCodeFieldNumber}

Field number for the "user\_code" field\.

```csharp
public const int UserCodeFieldNumber = 4;
```

#### Field Value
[System\.Int32](https://learn.microsoft.com/en-us/dotnet/api/system.int32 'System\.Int32')
### Properties

## DeviceAuthorizationRequest\.AuthorizationDetailsJson Property {#Abblix.Oidc.Server.Features.Storages.Proto.DeviceAuthorizationRequest.AuthorizationDetailsJson}

RFC 9396 §3 authorization\_details array, serialised as a JSON string\. Same scheme as
AuthorizationContext\.proto / AuthorizationRequest\.proto — byte\-exact preservation of
member order and type\-specific payload until the user\-verification step decides what
to grant\.

```csharp
public string AuthorizationDetailsJson { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## DeviceAuthorizationRequest\.AuthorizedGrant Property {#Abblix.Oidc.Server.Features.Storages.Proto.DeviceAuthorizationRequest.AuthorizedGrant}

The authorized grant \(set when user authorizes\)

```csharp
public Abblix.Oidc.Server.Features.Storages.Proto.AuthorizedGrant AuthorizedGrant { get; set; }
```

#### Property Value
[AuthorizedGrant](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Storages.Proto.AuthorizedGrant 'Abblix\.Oidc\.Server\.Features\.Storages\.Proto\.AuthorizedGrant')

## DeviceAuthorizationRequest\.ClientId Property {#Abblix.Oidc.Server.Features.Storages.Proto.DeviceAuthorizationRequest.ClientId}

The client identifier that initiated the request

```csharp
public string ClientId { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## DeviceAuthorizationRequest\.ExpiresAt Property {#Abblix.Oidc.Server.Features.Storages.Proto.DeviceAuthorizationRequest.ExpiresAt}

Absolute expiry \(RFC 8628 §3\.2 fixed lifetime\); read to cap the remaining cache TTL

```csharp
public Google.Protobuf.WellKnownTypes.Timestamp ExpiresAt { get; set; }
```

#### Property Value
[Google\.Protobuf\.WellKnownTypes\.Timestamp](https://learn.microsoft.com/en-us/dotnet/api/google.protobuf.wellknowntypes.timestamp 'Google\.Protobuf\.WellKnownTypes\.Timestamp')

## DeviceAuthorizationRequest\.HasAuthorizationDetailsJson Property {#Abblix.Oidc.Server.Features.Storages.Proto.DeviceAuthorizationRequest.HasAuthorizationDetailsJson}

Gets whether the "authorization\_details\_json" field is set

```csharp
public bool HasAuthorizationDetailsJson { get; }
```

#### Property Value
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')

## DeviceAuthorizationRequest\.NextPollAt Property {#Abblix.Oidc.Server.Features.Storages.Proto.DeviceAuthorizationRequest.NextPollAt}

Next time the client should poll for updates

```csharp
public Google.Protobuf.WellKnownTypes.Timestamp NextPollAt { get; set; }
```

#### Property Value
[Google\.Protobuf\.WellKnownTypes\.Timestamp](https://learn.microsoft.com/en-us/dotnet/api/google.protobuf.wellknowntypes.timestamp 'Google\.Protobuf\.WellKnownTypes\.Timestamp')

## DeviceAuthorizationRequest\.Resources Property {#Abblix.Oidc.Server.Features.Storages.Proto.DeviceAuthorizationRequest.Resources}

The requested resources \(RFC 8707\)

```csharp
public Google.Protobuf.Collections.RepeatedField<string> Resources { get; }
```

#### Property Value
[Google\.Protobuf\.Collections\.RepeatedField&lt;](https://learn.microsoft.com/en-us/dotnet/api/google.protobuf.collections.repeatedfield-1 'Google\.Protobuf\.Collections\.RepeatedField\`1')[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/google.protobuf.collections.repeatedfield-1 'Google\.Protobuf\.Collections\.RepeatedField\`1')

## DeviceAuthorizationRequest\.Scope Property {#Abblix.Oidc.Server.Features.Storages.Proto.DeviceAuthorizationRequest.Scope}

The requested scopes

```csharp
public Google.Protobuf.Collections.RepeatedField<string> Scope { get; }
```

#### Property Value
[Google\.Protobuf\.Collections\.RepeatedField&lt;](https://learn.microsoft.com/en-us/dotnet/api/google.protobuf.collections.repeatedfield-1 'Google\.Protobuf\.Collections\.RepeatedField\`1')[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/google.protobuf.collections.repeatedfield-1 'Google\.Protobuf\.Collections\.RepeatedField\`1')

## DeviceAuthorizationRequest\.Status Property {#Abblix.Oidc.Server.Features.Storages.Proto.DeviceAuthorizationRequest.Status}

Current status of the authorization request

```csharp
public Abblix.Oidc.Server.Features.Storages.Proto.DeviceAuthorizationStatus Status { get; set; }
```

#### Property Value
[DeviceAuthorizationStatus](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Storages.Proto.DeviceAuthorizationStatus 'Abblix\.Oidc\.Server\.Features\.Storages\.Proto\.DeviceAuthorizationStatus')

## DeviceAuthorizationRequest\.UserCode Property {#Abblix.Oidc.Server.Features.Storages.Proto.DeviceAuthorizationRequest.UserCode}

The user\-friendly code displayed to the user

```csharp
public string UserCode { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
### Methods

## DeviceAuthorizationRequest\.ClearAuthorizationDetailsJson\(\) Method {#Abblix.Oidc.Server.Features.Storages.Proto.DeviceAuthorizationRequest.ClearAuthorizationDetailsJson()}

Clears the value of the "authorization\_details\_json" field

```csharp
public void ClearAuthorizationDetailsJson();
```
