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

## ConsentDefinition Class

Defines the details of user consents required for specific scopes and resources\.
This record is used to manage and validate user consent for accessing specific scopes, resources, and
RFC 9396 Rich Authorization Requests entries, ensuring that consent is explicitly granted according to
the requirements of the application and compliance standards\.

```csharp
public record ConsentDefinition : System.IEquatable<Abblix.Oidc.Server.Features.Consents.ConsentDefinition>
```

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

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

## ConsentDefinition\(ScopeDefinition\[\], ResourceDefinition\[\]\) Constructor {#Abblix.Oidc.Server.Features.Consents.ConsentDefinition.ConsentDefinition(Abblix.Oidc.Server.Common.Constants.ScopeDefinition[],Abblix.Oidc.Server.Common.Constants.ResourceDefinition[])}

Defines the details of user consents required for specific scopes and resources\.
This record is used to manage and validate user consent for accessing specific scopes, resources, and
RFC 9396 Rich Authorization Requests entries, ensuring that consent is explicitly granted according to
the requirements of the application and compliance standards\.

```csharp
public ConsentDefinition(Abblix.Oidc.Server.Common.Constants.ScopeDefinition[] Scopes, Abblix.Oidc.Server.Common.Constants.ResourceDefinition[] Resources);
```
#### Parameters

###### `Scopes` [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') {#Abblix.Oidc.Server.Features.Consents.ConsentDefinition.ConsentDefinition(Abblix.Oidc.Server.Common.Constants.ScopeDefinition[],Abblix.Oidc.Server.Common.Constants.ResourceDefinition[]).Scopes}

An array of [ScopeDefinition](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Constants.ScopeDefinition 'Abblix\.Oidc\.Server\.Common\.Constants\.ScopeDefinition') that represents the scopes for which user consent
            is needed\.

###### `Resources` [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') {#Abblix.Oidc.Server.Features.Consents.ConsentDefinition.ConsentDefinition(Abblix.Oidc.Server.Common.Constants.ScopeDefinition[],Abblix.Oidc.Server.Common.Constants.ResourceDefinition[]).Resources}

An array of [ResourceDefinition](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Constants.ResourceDefinition 'Abblix\.Oidc\.Server\.Common\.Constants\.ResourceDefinition') that represents the resources for which
            user consent is needed\.
### Properties

## ConsentDefinition\.AuthorizationDetails Property {#Abblix.Oidc.Server.Features.Consents.ConsentDefinition.AuthorizationDetails}

RFC 9396 `authorization_details` entries for which user consent is
            needed \(in [Pending](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Consents.UserConsents#Abblix.Oidc.Server.Features.Consents.UserConsents.Pending 'Abblix\.Oidc\.Server\.Features\.Consents\.UserConsents\.Pending')\) or has been granted \(in [Granted](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Consents.UserConsents#Abblix.Oidc.Server.Features.Consents.UserConsents.Granted 'Abblix\.Oidc\.Server\.Features\.Consents\.UserConsents\.Granted')\)\.
            The provider may return a narrower set than the request carried \-\- entries removed here never appear in
            the issued token; mutations within an entry \(e\.g\. amount narrowed by a UI slider\) survive byte\-exact
            because storage is the raw [System\.Text\.Json\.Nodes\.JsonArray](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonarray 'System\.Text\.Json\.Nodes\.JsonArray')\. `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')

## ConsentDefinition\.Resources Property {#Abblix.Oidc.Server.Features.Consents.ConsentDefinition.Resources}

An array of [ResourceDefinition](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Constants.ResourceDefinition 'Abblix\.Oidc\.Server\.Common\.Constants\.ResourceDefinition') that represents the resources for which
            user consent is needed\.

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

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

## ConsentDefinition\.Scopes Property {#Abblix.Oidc.Server.Features.Consents.ConsentDefinition.Scopes}

An array of [ScopeDefinition](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Constants.ScopeDefinition 'Abblix\.Oidc\.Server\.Common\.Constants\.ScopeDefinition') that represents the scopes for which user consent
            is needed\.

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

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