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

## AuthorizationDetailDescriptor Class

Host\-renderable description of a single RFC 9396 `authorization_details` entry, produced
by [BuildConsentDescriptorAsync\(AuthorizationDetail, ClientInfo, CancellationToken\)](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.RichAuthorizationRequests.IAuthorizationDetailValidator#Abblix.Oidc.Server.Features.RichAuthorizationRequests.IAuthorizationDetailValidator.BuildConsentDescriptorAsync(Abblix.Jwt.AuthorizationDetail,Abblix.Oidc.Server.Features.ClientInformation.ClientInfo,System.Threading.CancellationToken) 'Abblix\.Oidc\.Server\.Features\.RichAuthorizationRequests\.IAuthorizationDetailValidator\.BuildConsentDescriptorAsync\(Abblix\.Jwt\.AuthorizationDetail, Abblix\.Oidc\.Server\.Features\.ClientInformation\.ClientInfo, System\.Threading\.CancellationToken\)')\. Surfaces a structured,
localisable shape the consent UI can render directly \-\- without the host having to inspect the
per\-type JSON payload itself\. Validators that do not override the default implementation return
`null`, and the host is expected to fall back to a raw JSON dump\.

```csharp
public record AuthorizationDetailDescriptor : System.IEquatable<Abblix.Oidc.Server.Features.RichAuthorizationRequests.AuthorizationDetailDescriptor>
```

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

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

## AuthorizationDetailDescriptor\(string, string, IReadOnlyList\<KeyValuePair\<string,string\>\>\) Constructor {#Abblix.Oidc.Server.Features.RichAuthorizationRequests.AuthorizationDetailDescriptor.AuthorizationDetailDescriptor(string,string,System.Collections.Generic.IReadOnlyList_System.Collections.Generic.KeyValuePair_string,string__)}

Host\-renderable description of a single RFC 9396 `authorization_details` entry, produced
by [BuildConsentDescriptorAsync\(AuthorizationDetail, ClientInfo, CancellationToken\)](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.RichAuthorizationRequests.IAuthorizationDetailValidator#Abblix.Oidc.Server.Features.RichAuthorizationRequests.IAuthorizationDetailValidator.BuildConsentDescriptorAsync(Abblix.Jwt.AuthorizationDetail,Abblix.Oidc.Server.Features.ClientInformation.ClientInfo,System.Threading.CancellationToken) 'Abblix\.Oidc\.Server\.Features\.RichAuthorizationRequests\.IAuthorizationDetailValidator\.BuildConsentDescriptorAsync\(Abblix\.Jwt\.AuthorizationDetail, Abblix\.Oidc\.Server\.Features\.ClientInformation\.ClientInfo, System\.Threading\.CancellationToken\)')\. Surfaces a structured,
localisable shape the consent UI can render directly \-\- without the host having to inspect the
per\-type JSON payload itself\. Validators that do not override the default implementation return
`null`, and the host is expected to fall back to a raw JSON dump\.

```csharp
public AuthorizationDetailDescriptor(string Title, string Summary, System.Collections.Generic.IReadOnlyList<System.Collections.Generic.KeyValuePair<string,string>>? Details=null);
```
#### Parameters

###### `Title` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.Oidc.Server.Features.RichAuthorizationRequests.AuthorizationDetailDescriptor.AuthorizationDetailDescriptor(string,string,System.Collections.Generic.IReadOnlyList_System.Collections.Generic.KeyValuePair_string,string__).Title}

Short heading naming the operation \(e\.g\. "Payment transfer", "Account
            information access"\)\. One short phrase, no end punctuation\.

###### `Summary` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.Oidc.Server.Features.RichAuthorizationRequests.AuthorizationDetailDescriptor.AuthorizationDetailDescriptor(string,string,System.Collections.Generic.IReadOnlyList_System.Collections.Generic.KeyValuePair_string,string__).Summary}

One\-sentence human\-readable summary of what consenting to this entry
            authorises \(e\.g\. "Transfer 500 EUR to IBAN DE02 100100100123456789"\)\. The consent UI typically
            shows this directly under the title\.

###### `Details` [System\.Collections\.Generic\.IReadOnlyList&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ireadonlylist-1 'System\.Collections\.Generic\.IReadOnlyList\`1')[System\.Collections\.Generic\.KeyValuePair&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.keyvaluepair-2 'System\.Collections\.Generic\.KeyValuePair\`2')[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')[,](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.keyvaluepair-2 'System\.Collections\.Generic\.KeyValuePair\`2')[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.keyvaluepair-2 'System\.Collections\.Generic\.KeyValuePair\`2')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ireadonlylist-1 'System\.Collections\.Generic\.IReadOnlyList\`1') {#Abblix.Oidc.Server.Features.RichAuthorizationRequests.AuthorizationDetailDescriptor.AuthorizationDetailDescriptor(string,string,System.Collections.Generic.IReadOnlyList_System.Collections.Generic.KeyValuePair_string,string__).Details}

Optional structured key/value pairs the UI can render as a labelled list
            \(e\.g\. \{"Currency": "EUR", "Amount": "500\.00", "Beneficiary IBAN": "DE02\.\.\."\}\)\. Order is preserved
            by the caller; keys are display\-side labels and may be localisable by the host before they reach
            this record\. `null` when the entry has no field\-level breakdown worth showing\.
### Properties

## AuthorizationDetailDescriptor\.Details Property {#Abblix.Oidc.Server.Features.RichAuthorizationRequests.AuthorizationDetailDescriptor.Details}

Optional structured key/value pairs the UI can render as a labelled list
            \(e\.g\. \{"Currency": "EUR", "Amount": "500\.00", "Beneficiary IBAN": "DE02\.\.\."\}\)\. Order is preserved
            by the caller; keys are display\-side labels and may be localisable by the host before they reach
            this record\. `null` when the entry has no field\-level breakdown worth showing\.

```csharp
public System.Collections.Generic.IReadOnlyList<System.Collections.Generic.KeyValuePair<string,string>>? Details { get; init; }
```

#### Property Value
[System\.Collections\.Generic\.IReadOnlyList&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ireadonlylist-1 'System\.Collections\.Generic\.IReadOnlyList\`1')[System\.Collections\.Generic\.KeyValuePair&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.keyvaluepair-2 'System\.Collections\.Generic\.KeyValuePair\`2')[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')[,](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.keyvaluepair-2 'System\.Collections\.Generic\.KeyValuePair\`2')[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.keyvaluepair-2 'System\.Collections\.Generic\.KeyValuePair\`2')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ireadonlylist-1 'System\.Collections\.Generic\.IReadOnlyList\`1')

## AuthorizationDetailDescriptor\.Summary Property {#Abblix.Oidc.Server.Features.RichAuthorizationRequests.AuthorizationDetailDescriptor.Summary}

One\-sentence human\-readable summary of what consenting to this entry
            authorises \(e\.g\. "Transfer 500 EUR to IBAN DE02 100100100123456789"\)\. The consent UI typically
            shows this directly under the title\.

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

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

## AuthorizationDetailDescriptor\.Title Property {#Abblix.Oidc.Server.Features.RichAuthorizationRequests.AuthorizationDetailDescriptor.Title}

Short heading naming the operation \(e\.g\. "Payment transfer", "Account
            information access"\)\. One short phrase, no end punctuation\.

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

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