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

## ClientCredentials Class

Encapsulates both transmission and storage formats of client credentials\.
Maintains plain\-text secret for immediate transmission in registration response,
while also providing SHA\-512 hash for secure persistence\.

```csharp
public record ClientCredentials : System.IEquatable<Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.ClientCredentials>
```

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

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

## ClientCredentials\(string, string, byte\[\], Nullable\<DateTimeOffset\>\) Constructor {#Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.ClientCredentials.ClientCredentials(string,string,byte[],System.Nullable_System.DateTimeOffset_)}

Encapsulates both transmission and storage formats of client credentials\.
Maintains plain\-text secret for immediate transmission in registration response,
while also providing SHA\-512 hash for secure persistence\.

```csharp
public ClientCredentials(string ClientId, string? ClientSecret, byte[]? Sha512Hash, System.Nullable<System.DateTimeOffset> ExpiresAt);
```
#### Parameters

###### `ClientId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.ClientCredentials.ClientCredentials(string,string,byte[],System.Nullable_System.DateTimeOffset_).ClientId}

Generated or provided identifier for the OAuth 2\.0 client\.

###### `ClientSecret` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.ClientCredentials.ClientCredentials(string,string,byte[],System.Nullable_System.DateTimeOffset_).ClientSecret}

Plain\-text secret sent to client in registration response; null for public clients or private\_key\_jwt\.

###### `Sha512Hash` [System\.Byte](https://learn.microsoft.com/en-us/dotnet/api/system.byte 'System\.Byte')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array') {#Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.ClientCredentials.ClientCredentials(string,string,byte[],System.Nullable_System.DateTimeOffset_).Sha512Hash}

SHA\-512 hash for secure storage; prevents storing plain\-text secrets in database\.

###### `ExpiresAt` [System\.Nullable&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1')[System\.DateTimeOffset](https://learn.microsoft.com/en-us/dotnet/api/system.datetimeoffset 'System\.DateTimeOffset')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1') {#Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.ClientCredentials.ClientCredentials(string,string,byte[],System.Nullable_System.DateTimeOffset_).ExpiresAt}

Enables secret rotation by enforcing time\-limited validity; null indicates no expiration\.
### Properties

## ClientCredentials\.ClientId Property {#Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.ClientCredentials.ClientId}

Generated or provided identifier for the OAuth 2\.0 client\.

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

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

## ClientCredentials\.ClientSecret Property {#Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.ClientCredentials.ClientSecret}

Plain\-text secret sent to client in registration response; null for public clients or private\_key\_jwt\.

```csharp
public string? ClientSecret { get; init; }
```

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

## ClientCredentials\.ExpiresAt Property {#Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.ClientCredentials.ExpiresAt}

Enables secret rotation by enforcing time\-limited validity; null indicates no expiration\.

```csharp
public System.Nullable<System.DateTimeOffset> ExpiresAt { get; init; }
```

#### Property Value
[System\.Nullable&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1')[System\.DateTimeOffset](https://learn.microsoft.com/en-us/dotnet/api/system.datetimeoffset 'System\.DateTimeOffset')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1')

## ClientCredentials\.Sha512Hash Property {#Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.ClientCredentials.Sha512Hash}

SHA\-512 hash for secure storage; prevents storing plain\-text secrets in database\.

```csharp
public byte[]? Sha512Hash { get; init; }
```

#### Property Value
[System\.Byte](https://learn.microsoft.com/en-us/dotnet/api/system.byte 'System\.Byte')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')
