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

## ValidAuthorizationRequest Class

Output of [IAuthorizationRequestValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationRequestValidator 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.IAuthorizationRequestValidator') handed to
[IAuthorizationRequestProcessor](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationRequestProcessor 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.IAuthorizationRequestProcessor')\. Snapshot of the data resolved during
validation: the wire\-level request, the authenticated client, the negotiated response
mode \(per OAuth 2\.0 Multiple Response Types / Form Post\), and the materialized scope and
resource definitions ready for consent and token issuance\.

```csharp
public record ValidAuthorizationRequest : System.IEquatable<Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest>
```

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

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

## ValidAuthorizationRequest\(AuthorizationValidationContext\) Constructor {#Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest.ValidAuthorizationRequest(Abblix.Oidc.Server.Endpoints.Authorization.Validation.AuthorizationValidationContext)}

Snapshots the validated state from the shared [AuthorizationValidationContext](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Validation.AuthorizationValidationContext 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Validation\.AuthorizationValidationContext')
once the validator pipeline has completed\.

```csharp
public ValidAuthorizationRequest(Abblix.Oidc.Server.Endpoints.Authorization.Validation.AuthorizationValidationContext context);
```
#### Parameters

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

## ValidAuthorizationRequest\.AuthorizationDetails Property {#Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest.AuthorizationDetails}

RFC 9396 Rich Authorization Requests array, snapshot from
[AuthorizationDetails](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Validation.AuthorizationValidationContext#Abblix.Oidc.Server.Endpoints.Authorization.Validation.AuthorizationValidationContext.AuthorizationDetails 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Validation\.AuthorizationValidationContext\.AuthorizationDetails') at the end of the validator pipeline \-\-
i\.e\. post per\-client allowlist filtering and post per\-type validator narrow/extend mutations\.
[IUserConsentsProvider](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Consents.IUserConsentsProvider 'Abblix\.Oidc\.Server\.Features\.Consents\.IUserConsentsProvider') reads this slot to render the consent UI;
downstream consent emits its \(possibly further\-narrowed\) decision via
[AuthorizationDetails](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Consents.ConsentDefinition#Abblix.Oidc.Server.Features.Consents.ConsentDefinition.AuthorizationDetails 'Abblix\.Oidc\.Server\.Features\.Consents\.ConsentDefinition\.AuthorizationDetails')\.
`null` when the request did not include `authorization_details`\.

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

#### 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')

## ValidAuthorizationRequest\.ClientInfo Property {#Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest.ClientInfo}

Information about the client making the request, as determined during validation\.

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

#### 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')

## ValidAuthorizationRequest\.Model Property {#Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest.Model}

The original or recovered request model that was validated\.

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

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

## ValidAuthorizationRequest\.RequestUri Property {#Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest.RequestUri}

The pushed authorization request URN \(RFC 9126\) this request was resolved from, or `null` when
the request was not pushed\. Surfaced here so the single\-use decorator can consume it once a code or
token has been issued, without reaching into [Model](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest#Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest.Model 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.ValidAuthorizationRequest\.Model')\.

```csharp
public System.Uri? RequestUri { get; init; }
```

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

## ValidAuthorizationRequest\.Resources Property {#Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest.Resources}

The resources associated with the authorization request, detailing the specific resources the client
is requesting access to\.

```csharp
public Abblix.Oidc.Server.Common.Constants.ResourceDefinition[] Resources { get; set; }
```

#### Property Value
[ResourceDefinition](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Constants.ResourceDefinition 'Abblix\.Oidc\.Server\.Common\.Constants\.ResourceDefinition')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')

## ValidAuthorizationRequest\.ResponseMode Property {#Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest.ResponseMode}

The response mode to be used for delivering the authorization response\.

```csharp
public string ResponseMode { get; init; }
```

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

## ValidAuthorizationRequest\.Scope Property {#Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest.Scope}

The scope associated with the authorization request, indicating the permissions requested by the client\.

```csharp
public Abblix.Oidc.Server.Common.Constants.ScopeDefinition[] Scope { get; set; }
```

#### Property Value
[ScopeDefinition](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Constants.ScopeDefinition 'Abblix\.Oidc\.Server\.Common\.Constants\.ScopeDefinition')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')
