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

## IClientInfoManager Interface

Defines operations for managing the lifecycle and information of OAuth 2\.0 clients in a storage system\.

```csharp
public interface IClientInfoManager
```

### Remarks
Implementations of this interface are responsible for adding, updating, and removing client information,
supporting dynamic client registration and management in OAuth 2\.0 and OpenID Connect environments\.
### Methods

## IClientInfoManager\.AddClientAsync\(ClientInfo\) Method {#Abblix.Oidc.Server.Features.ClientInformation.IClientInfoManager.AddClientAsync(Abblix.Oidc.Server.Features.ClientInformation.ClientInfo)}

Asynchronously adds a new client and its corresponding information to the storage system\.

```csharp
System.Threading.Tasks.Task AddClientAsync(Abblix.Oidc.Server.Features.ClientInformation.ClientInfo clientInfo);
```
#### Parameters

###### `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.Features.ClientInformation.IClientInfoManager.AddClientAsync(Abblix.Oidc.Server.Features.ClientInformation.ClientInfo).clientInfo}

The detailed information about the client to be added\.

#### Returns
[System\.Threading\.Tasks\.Task](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task 'System\.Threading\.Tasks\.Task')  
A task representing the asynchronous operation, indicating the completion of the addition process\.

### Remarks
This operation typically involves persisting the [clientInfo](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.IClientInfoManager#Abblix.Oidc.Server.Features.ClientInformation.IClientInfoManager.AddClientAsync(Abblix.Oidc.Server.Features.ClientInformation.ClientInfo).clientInfo 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.IClientInfoManager\.AddClientAsync\(Abblix\.Oidc\.Server\.Features\.ClientInformation\.ClientInfo\)\.clientInfo') to a database or another form of storage,
making the client available for OAuth 2\.0 and OpenID Connect authentication and authorization processes\.

## IClientInfoManager\.RemoveClientAsync\(string\) Method {#Abblix.Oidc.Server.Features.ClientInformation.IClientInfoManager.RemoveClientAsync(string)}

Asynchronously removes an existing client and its information from the storage system\.

```csharp
System.Threading.Tasks.Task RemoveClientAsync(string clientId);
```
#### Parameters

###### `clientId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.Oidc.Server.Features.ClientInformation.IClientInfoManager.RemoveClientAsync(string).clientId}

The unique identifier of the client to be removed\.

#### Returns
[System\.Threading\.Tasks\.Task](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task 'System\.Threading\.Tasks\.Task')  
A task representing the asynchronous operation, indicating the completion of the removal process\.

### Remarks
The removal process is critical for maintaining the integrity and security of the client registration system,
allowing administrators to effectively manage the lifecycle of client applications\.

## IClientInfoManager\.UpdateClientAsync\(ClientInfo\) Method {#Abblix.Oidc.Server.Features.ClientInformation.IClientInfoManager.UpdateClientAsync(Abblix.Oidc.Server.Features.ClientInformation.ClientInfo)}

Asynchronously updates an existing client's information in the storage system\.

```csharp
System.Threading.Tasks.Task UpdateClientAsync(Abblix.Oidc.Server.Features.ClientInformation.ClientInfo clientInfo);
```
#### Parameters

###### `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.Features.ClientInformation.IClientInfoManager.UpdateClientAsync(Abblix.Oidc.Server.Features.ClientInformation.ClientInfo).clientInfo}

The updated client information\.

#### Returns
[System\.Threading\.Tasks\.Task](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task 'System\.Threading\.Tasks\.Task')  
A task representing the asynchronous operation, indicating the completion of the update process\.

### Remarks
This operation updates the client metadata per RFC 7592 Section 2 \(Client Update Request\)\.
The client must already exist in the storage system\.
