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

## UpdateClientHandler Class

Handles client configuration update requests in OAuth 2\.0 Dynamic Client Registration Management protocol per RFC 7592\.
Coordinates validation and processing to securely update registered client information\.

```csharp
public class UpdateClientHandler : Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.IUpdateClientHandler
```

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

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

## UpdateClientHandler\(IUpdateClientRequestValidator, IUpdateClientRequestProcessor\) Constructor {#Abblix.Oidc.Server.Endpoints.DynamicClientManagement.UpdateClientHandler.UpdateClientHandler(Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.IUpdateClientRequestValidator,Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.IUpdateClientRequestProcessor)}

Handles client configuration update requests in OAuth 2\.0 Dynamic Client Registration Management protocol per RFC 7592\.
Coordinates validation and processing to securely update registered client information\.

```csharp
public UpdateClientHandler(Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.IUpdateClientRequestValidator validator, Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.IUpdateClientRequestProcessor processor);
```
#### Parameters

###### `validator` [IUpdateClientRequestValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.IUpdateClientRequestValidator 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.Interfaces\.IUpdateClientRequestValidator') {#Abblix.Oidc.Server.Endpoints.DynamicClientManagement.UpdateClientHandler.UpdateClientHandler(Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.IUpdateClientRequestValidator,Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.IUpdateClientRequestProcessor).validator}

Validates client authentication and authorization for configuration updates\.

###### `processor` [IUpdateClientRequestProcessor](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.IUpdateClientRequestProcessor 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.Interfaces\.IUpdateClientRequestProcessor') {#Abblix.Oidc.Server.Endpoints.DynamicClientManagement.UpdateClientHandler.UpdateClientHandler(Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.IUpdateClientRequestValidator,Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.IUpdateClientRequestProcessor).processor}

Updates and formats client configuration data\.
### Methods

## UpdateClientHandler\.HandleAsync\(UpdateClientRequest\) Method {#Abblix.Oidc.Server.Endpoints.DynamicClientManagement.UpdateClientHandler.HandleAsync(Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.UpdateClientRequest)}

Processes a client configuration update request per RFC 7592 Section 2\.2\.

```csharp
public System.Threading.Tasks.Task<Abblix.Utils.Result<Abblix.Oidc.Server.Model.ReadClientSuccessfulResponse,Abblix.Oidc.Server.Common.OidcError>> HandleAsync(Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.UpdateClientRequest request);
```
#### Parameters

###### `request` [UpdateClientRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.UpdateClientRequest 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.Interfaces\.UpdateClientRequest') {#Abblix.Oidc.Server.Endpoints.DynamicClientManagement.UpdateClientHandler.HandleAsync(Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.UpdateClientRequest).request}

The update request containing client authentication and updated metadata\.

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

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[Abblix\.Utils\.Result&lt;](https://learn.microsoft.com/en-us/dotnet/api/abblix.utils.result-2 'Abblix\.Utils\.Result\`2')[ReadClientSuccessfulResponse](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.ReadClientSuccessfulResponse 'Abblix\.Oidc\.Server\.Model\.ReadClientSuccessfulResponse')[,](https://learn.microsoft.com/en-us/dotnet/api/abblix.utils.result-2 'Abblix\.Utils\.Result\`2')[OidcError](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.OidcError 'Abblix\.Oidc\.Server\.Common\.OidcError')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/abblix.utils.result-2 'Abblix\.Utils\.Result\`2')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')  
A task that results in updated client configuration or an error response\.

#### Exceptions

[UnexpectedTypeException](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Exceptions.UnexpectedTypeException 'Abblix\.Oidc\.Server\.Common\.Exceptions\.UnexpectedTypeException')  
Thrown if the validation result does not match expected types\.

### Remarks
This method serves as a critical part of dynamic client management, allowing for the secure update of client
configurations\. It ensures that only valid and authorized requests are processed, safeguarding against
unauthorized modifications to client information\.
