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

## ValidIntrospectionRequest Class

Output of [IIntrospectionRequestValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Introspection.Interfaces.IIntrospectionRequestValidator 'Abblix\.Oidc\.Server\.Endpoints\.Introspection\.Interfaces\.IIntrospectionRequestValidator') handed to the processor: pairs the
original request with either the parsed token \(active branch\) or a `null` token
\(inactive branch produced via [InvalidToken\(IntrospectionRequest, ClientInfo\)](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Introspection.Interfaces.ValidIntrospectionRequest#Abblix.Oidc.Server.Endpoints.Introspection.Interfaces.ValidIntrospectionRequest.InvalidToken(Abblix.Oidc.Server.Model.IntrospectionRequest,Abblix.Oidc.Server.Features.ClientInformation.ClientInfo) 'Abblix\.Oidc\.Server\.Endpoints\.Introspection\.Interfaces\.ValidIntrospectionRequest\.InvalidToken\(Abblix\.Oidc\.Server\.Model\.IntrospectionRequest, Abblix\.Oidc\.Server\.Features\.ClientInformation\.ClientInfo\)'), used so token\-level failures
flow through the same processing path without disclosing why per RFC 7662 §2\.2\)\.

```csharp
public record ValidIntrospectionRequest : System.IEquatable<Abblix.Oidc.Server.Endpoints.Introspection.Interfaces.ValidIntrospectionRequest>
```

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

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

## ValidIntrospectionRequest\(IntrospectionRequest, ClientInfo, JsonWebToken\) Constructor {#Abblix.Oidc.Server.Endpoints.Introspection.Interfaces.ValidIntrospectionRequest.ValidIntrospectionRequest(Abblix.Oidc.Server.Model.IntrospectionRequest,Abblix.Oidc.Server.Features.ClientInformation.ClientInfo,Abblix.Jwt.JsonWebToken)}

Active\-branch constructor: the token authenticated, was issued to this client and
passed validation\.

```csharp
public ValidIntrospectionRequest(Abblix.Oidc.Server.Model.IntrospectionRequest model, Abblix.Oidc.Server.Features.ClientInformation.ClientInfo clientInfo, Abblix.Jwt.JsonWebToken token);
```
#### Parameters

###### `model` [IntrospectionRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.IntrospectionRequest 'Abblix\.Oidc\.Server\.Model\.IntrospectionRequest') {#Abblix.Oidc.Server.Endpoints.Introspection.Interfaces.ValidIntrospectionRequest.ValidIntrospectionRequest(Abblix.Oidc.Server.Model.IntrospectionRequest,Abblix.Oidc.Server.Features.ClientInformation.ClientInfo,Abblix.Jwt.JsonWebToken).model}

The introspection request model\.

###### `clientInfo` [ClientInfo](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.ClientInfo 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.ClientInfo') {#Abblix.Oidc.Server.Endpoints.Introspection.Interfaces.ValidIntrospectionRequest.ValidIntrospectionRequest(Abblix.Oidc.Server.Model.IntrospectionRequest,Abblix.Oidc.Server.Features.ClientInformation.ClientInfo,Abblix.Jwt.JsonWebToken).clientInfo}

The authenticated client making the introspection request; it determines the
            response format \(plain JSON vs\. a signed/encrypted JWT per RFC 9701\)\.

###### `token` [JsonWebToken](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.JsonWebToken 'Abblix\.Jwt\.JsonWebToken') {#Abblix.Oidc.Server.Endpoints.Introspection.Interfaces.ValidIntrospectionRequest.ValidIntrospectionRequest(Abblix.Oidc.Server.Model.IntrospectionRequest,Abblix.Oidc.Server.Features.ClientInformation.ClientInfo,Abblix.Jwt.JsonWebToken).token}

The parsed JWT to be reported as `active=true`\.
### Properties

## ValidIntrospectionRequest\.ClientInfo Property {#Abblix.Oidc.Server.Endpoints.Introspection.Interfaces.ValidIntrospectionRequest.ClientInfo}

The authenticated client making the introspection request, used to select the response format \(RFC 9701\)\.

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

## ValidIntrospectionRequest\.Model Property {#Abblix.Oidc.Server.Endpoints.Introspection.Interfaces.ValidIntrospectionRequest.Model}

The introspection request model\.

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

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

## ValidIntrospectionRequest\.Token Property {#Abblix.Oidc.Server.Endpoints.Introspection.Interfaces.ValidIntrospectionRequest.Token}

The JSON Web Token to introspect\.

```csharp
public Abblix.Jwt.JsonWebToken? Token { get; }
```

#### Property Value
[JsonWebToken](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.JsonWebToken 'Abblix\.Jwt\.JsonWebToken')
### Methods

## ValidIntrospectionRequest\.InvalidToken\(IntrospectionRequest, ClientInfo\) Method {#Abblix.Oidc.Server.Endpoints.Introspection.Interfaces.ValidIntrospectionRequest.InvalidToken(Abblix.Oidc.Server.Model.IntrospectionRequest,Abblix.Oidc.Server.Features.ClientInformation.ClientInfo)}

Creates a valid introspection request for an invalid token\.

```csharp
public static Abblix.Oidc.Server.Endpoints.Introspection.Interfaces.ValidIntrospectionRequest InvalidToken(Abblix.Oidc.Server.Model.IntrospectionRequest model, Abblix.Oidc.Server.Features.ClientInformation.ClientInfo clientInfo);
```
#### Parameters

###### `model` [IntrospectionRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.IntrospectionRequest 'Abblix\.Oidc\.Server\.Model\.IntrospectionRequest') {#Abblix.Oidc.Server.Endpoints.Introspection.Interfaces.ValidIntrospectionRequest.InvalidToken(Abblix.Oidc.Server.Model.IntrospectionRequest,Abblix.Oidc.Server.Features.ClientInformation.ClientInfo).model}

The introspection request model\.

###### `clientInfo` [ClientInfo](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.ClientInfo 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.ClientInfo') {#Abblix.Oidc.Server.Endpoints.Introspection.Interfaces.ValidIntrospectionRequest.InvalidToken(Abblix.Oidc.Server.Model.IntrospectionRequest,Abblix.Oidc.Server.Features.ClientInformation.ClientInfo).clientInfo}

The authenticated client making the introspection request\.

#### Returns
[ValidIntrospectionRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Introspection.Interfaces.ValidIntrospectionRequest 'Abblix\.Oidc\.Server\.Endpoints\.Introspection\.Interfaces\.ValidIntrospectionRequest')  
A valid introspection request with the "active" field set to "false\."

### Remarks
See https://www.rfc-editor.org/rfc/rfc7662\#section-5.2
