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

## ValidDeviceAuthorizationRequest Class

A device authorization request \(RFC 8628 §3\.1\) that has passed all validators, paired with the
authenticated client and the scope/resource sets resolved against the provider's catalog\.

```csharp
public record ValidDeviceAuthorizationRequest : System.IEquatable<Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Interfaces.ValidDeviceAuthorizationRequest>
```

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

Implements [System\.IEquatable&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.iequatable-1 'System\.IEquatable\`1')[ValidDeviceAuthorizationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Interfaces.ValidDeviceAuthorizationRequest 'Abblix\.Oidc\.Server\.Endpoints\.DeviceAuthorization\.Interfaces\.ValidDeviceAuthorizationRequest')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.iequatable-1 'System\.IEquatable\`1')
### Constructors

## ValidDeviceAuthorizationRequest\(DeviceAuthorizationValidationContext\) Constructor {#Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Interfaces.ValidDeviceAuthorizationRequest.ValidDeviceAuthorizationRequest(Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Validation.DeviceAuthorizationValidationContext)}

Builds the validated request snapshot from a populated [DeviceAuthorizationValidationContext](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Validation.DeviceAuthorizationValidationContext 'Abblix\.Oidc\.Server\.Endpoints\.DeviceAuthorization\.Validation\.DeviceAuthorizationValidationContext'),
flattening scope and resource definitions to their wire\-form identifiers\.

```csharp
public ValidDeviceAuthorizationRequest(Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Validation.DeviceAuthorizationValidationContext context);
```
#### Parameters

###### `context` [DeviceAuthorizationValidationContext](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Validation.DeviceAuthorizationValidationContext 'Abblix\.Oidc\.Server\.Endpoints\.DeviceAuthorization\.Validation\.DeviceAuthorizationValidationContext') {#Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Interfaces.ValidDeviceAuthorizationRequest.ValidDeviceAuthorizationRequest(Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Validation.DeviceAuthorizationValidationContext).context}
### Properties

## ValidDeviceAuthorizationRequest\.AuthorizationDetails Property {#Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Interfaces.ValidDeviceAuthorizationRequest.AuthorizationDetails}

RFC 9396 §3 Rich Authorization Requests array \(post\-validation\), which the downstream
processor stashes on the persisted `DeviceAuthorizationRequest` so the
user\-verification step can carry it onto the eventual `AuthorizedGrant`\.

```csharp
public System.Text.Json.Nodes.JsonArray? AuthorizationDetails { get; }
```

#### Property Value
[System\.Text\.Json\.Nodes\.JsonArray](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonarray 'System\.Text\.Json\.Nodes\.JsonArray')

## ValidDeviceAuthorizationRequest\.ClientInfo Property {#Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Interfaces.ValidDeviceAuthorizationRequest.ClientInfo}

The authenticated client information\.

```csharp
public Abblix.Oidc.Server.Features.ClientInformation.ClientInfo ClientInfo { get; }
```

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

## ValidDeviceAuthorizationRequest\.Model Property {#Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Interfaces.ValidDeviceAuthorizationRequest.Model}

The original device authorization request model\.

```csharp
public Abblix.Oidc.Server.Model.DeviceAuthorizationRequest Model { get; }
```

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

## ValidDeviceAuthorizationRequest\.Resources Property {#Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Interfaces.ValidDeviceAuthorizationRequest.Resources}

The validated and resolved resources for the request\.

```csharp
public System.Uri[]? Resources { get; }
```

#### Property Value
[System\.Uri](https://learn.microsoft.com/en-us/dotnet/api/system.uri 'System\.Uri')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')

## ValidDeviceAuthorizationRequest\.Scope Property {#Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Interfaces.ValidDeviceAuthorizationRequest.Scope}

The validated and resolved scopes for the request\.

```csharp
public string[] Scope { get; }
```

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