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

## AuthServiceKeyDescriptor Class

A service key together with the lifecycle metadata that lives AROUND it, never on it \- the
[JsonWebKey](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.JsonWebKey 'Abblix\.Jwt\.JsonWebKey') stays a pure JOSE / RFC 7517 model\. This is the unit a persistent store saves
at generation and the read seam gates by time; the durable backend and the rotation that advances
[Status](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.AuthServiceKeyDescriptor#Abblix.Oidc.Server.Common.AuthServiceKeyDescriptor.Status 'Abblix\.Oidc\.Server\.Common\.AuthServiceKeyDescriptor\.Status') ship separately\.

```csharp
public sealed record AuthServiceKeyDescriptor : System.IEquatable<Abblix.Oidc.Server.Common.AuthServiceKeyDescriptor>
```

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

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

## AuthServiceKeyDescriptor\(JsonWebKey, KeyLifecycleStatus, DateTimeOffset, DateTimeOffset, DateTimeOffset\) Constructor {#Abblix.Oidc.Server.Common.AuthServiceKeyDescriptor.AuthServiceKeyDescriptor(Abblix.Jwt.JsonWebKey,Abblix.Oidc.Server.Common.KeyLifecycleStatus,System.DateTimeOffset,System.DateTimeOffset,System.DateTimeOffset)}

A service key together with the lifecycle metadata that lives AROUND it, never on it \- the
[JsonWebKey](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.JsonWebKey 'Abblix\.Jwt\.JsonWebKey') stays a pure JOSE / RFC 7517 model\. This is the unit a persistent store saves
at generation and the read seam gates by time; the durable backend and the rotation that advances
[Status](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.AuthServiceKeyDescriptor#Abblix.Oidc.Server.Common.AuthServiceKeyDescriptor.Status 'Abblix\.Oidc\.Server\.Common\.AuthServiceKeyDescriptor\.Status') ship separately\.

```csharp
public AuthServiceKeyDescriptor(Abblix.Jwt.JsonWebKey Key, Abblix.Oidc.Server.Common.KeyLifecycleStatus Status, System.DateTimeOffset NotBefore, System.DateTimeOffset NotAfter, System.DateTimeOffset DeleteAfter);
```
#### Parameters

###### `Key` [JsonWebKey](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.JsonWebKey 'Abblix\.Jwt\.JsonWebKey') {#Abblix.Oidc.Server.Common.AuthServiceKeyDescriptor.AuthServiceKeyDescriptor(Abblix.Jwt.JsonWebKey,Abblix.Oidc.Server.Common.KeyLifecycleStatus,System.DateTimeOffset,System.DateTimeOffset,System.DateTimeOffset).Key}

The key itself\. Its `use` is the standard JOSE member on the key; secret material
            is present for a local key and absent for an external one \(whose private half lives with a custodian\)\.

###### `Status` [KeyLifecycleStatus](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.KeyLifecycleStatus 'Abblix\.Oidc\.Server\.Common\.KeyLifecycleStatus') {#Abblix.Oidc.Server.Common.AuthServiceKeyDescriptor.AuthServiceKeyDescriptor(Abblix.Jwt.JsonWebKey,Abblix.Oidc.Server.Common.KeyLifecycleStatus,System.DateTimeOffset,System.DateTimeOffset,System.DateTimeOffset).Status}

The lifecycle state; see [KeyLifecycleStatus](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.KeyLifecycleStatus 'Abblix\.Oidc\.Server\.Common\.KeyLifecycleStatus')\.

###### `NotBefore` [System\.DateTimeOffset](https://learn.microsoft.com/en-us/dotnet/api/system.datetimeoffset 'System\.DateTimeOffset') {#Abblix.Oidc.Server.Common.AuthServiceKeyDescriptor.AuthServiceKeyDescriptor(Abblix.Jwt.JsonWebKey,Abblix.Oidc.Server.Common.KeyLifecycleStatus,System.DateTimeOffset,System.DateTimeOffset,System.DateTimeOffset).NotBefore}

When the key becomes eligible to sign\.

###### `NotAfter` [System\.DateTimeOffset](https://learn.microsoft.com/en-us/dotnet/api/system.datetimeoffset 'System\.DateTimeOffset') {#Abblix.Oidc.Server.Common.AuthServiceKeyDescriptor.AuthServiceKeyDescriptor(Abblix.Jwt.JsonWebKey,Abblix.Oidc.Server.Common.KeyLifecycleStatus,System.DateTimeOffset,System.DateTimeOffset,System.DateTimeOffset).NotAfter}

When the key stops signing\. After this the key still verifies published tokens
            until [DeleteAfter](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.AuthServiceKeyDescriptor#Abblix.Oidc.Server.Common.AuthServiceKeyDescriptor.DeleteAfter 'Abblix\.Oidc\.Server\.Common\.AuthServiceKeyDescriptor\.DeleteAfter')\.

###### `DeleteAfter` [System\.DateTimeOffset](https://learn.microsoft.com/en-us/dotnet/api/system.datetimeoffset 'System\.DateTimeOffset') {#Abblix.Oidc.Server.Common.AuthServiceKeyDescriptor.AuthServiceKeyDescriptor(Abblix.Jwt.JsonWebKey,Abblix.Oidc.Server.Common.KeyLifecycleStatus,System.DateTimeOffset,System.DateTimeOffset,System.DateTimeOffset).DeleteAfter}

When the key may be removed from publication entirely\. It is
            [NotAfter](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.AuthServiceKeyDescriptor#Abblix.Oidc.Server.Common.AuthServiceKeyDescriptor.NotAfter 'Abblix\.Oidc\.Server\.Common\.AuthServiceKeyDescriptor\.NotAfter') plus the maximum lifetime of any token the key could have signed, so no live
            token can still reference it\.
### Properties

## AuthServiceKeyDescriptor\.DeleteAfter Property {#Abblix.Oidc.Server.Common.AuthServiceKeyDescriptor.DeleteAfter}

When the key may be removed from publication entirely\. It is
            [NotAfter](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.AuthServiceKeyDescriptor#Abblix.Oidc.Server.Common.AuthServiceKeyDescriptor.NotAfter 'Abblix\.Oidc\.Server\.Common\.AuthServiceKeyDescriptor\.NotAfter') plus the maximum lifetime of any token the key could have signed, so no live
            token can still reference it\.

```csharp
public System.DateTimeOffset DeleteAfter { get; init; }
```

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

## AuthServiceKeyDescriptor\.Key Property {#Abblix.Oidc.Server.Common.AuthServiceKeyDescriptor.Key}

The key itself\. Its `use` is the standard JOSE member on the key; secret material
            is present for a local key and absent for an external one \(whose private half lives with a custodian\)\.

```csharp
public Abblix.Jwt.JsonWebKey Key { get; init; }
```

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

## AuthServiceKeyDescriptor\.NotAfter Property {#Abblix.Oidc.Server.Common.AuthServiceKeyDescriptor.NotAfter}

When the key stops signing\. After this the key still verifies published tokens
            until [DeleteAfter](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.AuthServiceKeyDescriptor#Abblix.Oidc.Server.Common.AuthServiceKeyDescriptor.DeleteAfter 'Abblix\.Oidc\.Server\.Common\.AuthServiceKeyDescriptor\.DeleteAfter')\.

```csharp
public System.DateTimeOffset NotAfter { get; init; }
```

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

## AuthServiceKeyDescriptor\.NotBefore Property {#Abblix.Oidc.Server.Common.AuthServiceKeyDescriptor.NotBefore}

When the key becomes eligible to sign\.

```csharp
public System.DateTimeOffset NotBefore { get; init; }
```

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

## AuthServiceKeyDescriptor\.Status Property {#Abblix.Oidc.Server.Common.AuthServiceKeyDescriptor.Status}

The lifecycle state; see [KeyLifecycleStatus](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.KeyLifecycleStatus 'Abblix\.Oidc\.Server\.Common\.KeyLifecycleStatus')\.

```csharp
public Abblix.Oidc.Server.Common.KeyLifecycleStatus Status { get; init; }
```

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