# AspireDataLakeExtensions Methods

- Package: [Aspire.Azure.Storage.Files.DataLake](/reference/api/csharp/aspire.azure.storage.files.datalake.md)
- Type: [AspireDataLakeExtensions](/reference/api/csharp/aspire.azure.storage.files.datalake/aspiredatalakeextensions.md)
- Kind: `Methods`
- Members: `4`

Provides extension methods for registering `DataLake.DataLakeServiceClient` as a singleton in the services provided by the `Hosting.IHostApplicationBuilder`.

## AddAzureDataLakeFileSystemClient(IHostApplicationBuilder, string, Action<AzureDataLakeFileSystemSettings>, Action<IAzureClientBuilder<DataLakeFileSystemClient, DataLakeClientOptions>>)

- Name: `AddAzureDataLakeFileSystemClient(IHostApplicationBuilder, string, Action<AzureDataLakeFileSystemSettings>, Action<IAzureClientBuilder<DataLakeFileSystemClient, DataLakeClientOptions>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Azure.Storage.Files.DataLake/AspireDataLakeExtensions.cs#L111-L120)

Registers `DataLake.DataLakeFileSystemClient` as a singleton in the services provided by the `builder`. Enables retries, corresponding health check, logging and telemetry.

```csharp
public static class AspireDataLakeExtensions
{
    public static void AddAzureDataLakeFileSystemClient(
        this IHostApplicationBuilder builder,
        string connectionName,
        Action<AzureDataLakeFileSystemSettings>? configureSettings = null,
        Action<IAzureClientBuilder<DataLakeFileSystemClient, DataLakeClientOptions>>? configureClientBuilder = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
  The `Hosting.IHostApplicationBuilder` to read config from and add services to.
- `connectionName` (`string`)
  A name used to retrieve the connection string from the ConnectionStrings configuration section.
- `configureSettings` (`Action<AzureDataLakeFileSystemSettings>`) `optional`
  An optional method that can be used for customizing the [AzureDataLakeFileSystemSettings](/reference/api/csharp/aspire.azure.storage.files.datalake/azuredatalakefilesystemsettings.md). It's invoked after the settings are read from the configuration.
- `configureClientBuilder` (`Action<IAzureClientBuilder<DataLakeFileSystemClient, DataLakeClientOptions>>`) `optional`
  An optional method that can be used for customizing the `Extensions.IAzureClientBuilder`2`.

## Exceptions

- `InvalidOperationException` -- Neither [AzureDataLakeSettings.ConnectionString](/reference/api/csharp/aspire.azure.storage.files.datalake/azuredatalakesettings/properties.md#connectionstring) nor [AzureDataLakeSettings.ServiceUri](/reference/api/csharp/aspire.azure.storage.files.datalake/azuredatalakesettings/properties.md#serviceuri) is provided. - or - [AzureDataLakeFileSystemSettings.FileSystemName](/reference/api/csharp/aspire.azure.storage.files.datalake/azuredatalakefilesystemsettings/properties.md#filesystemname) is not provided in the configuration section.

## Remarks

Reads the configuration from "Aspire:Azure:Storage:Files:DataLake" section.

## AddAzureDataLakeServiceClient(IHostApplicationBuilder, string, Action<AzureDataLakeSettings>, Action<IAzureClientBuilder<DataLakeServiceClient, DataLakeClientOptions>>)

- Name: `AddAzureDataLakeServiceClient(IHostApplicationBuilder, string, Action<AzureDataLakeSettings>, Action<IAzureClientBuilder<DataLakeServiceClient, DataLakeClientOptions>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Azure.Storage.Files.DataLake/AspireDataLakeExtensions.cs#L36-L46)

Registers `DataLake.DataLakeServiceClient` as a singleton in the services provided by the `builder`. Enables retries, corresponding health check, logging and telemetry.

```csharp
public static class AspireDataLakeExtensions
{
    public static void AddAzureDataLakeServiceClient(
        this IHostApplicationBuilder builder,
        string connectionName,
        Action<AzureDataLakeSettings>? configureSettings = null,
        Action<IAzureClientBuilder<DataLakeServiceClient, DataLakeClientOptions>>? configureClientBuilder = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
  The `Hosting.IHostApplicationBuilder` to read config from and add services to.
- `connectionName` (`string`)
  A name used to retrieve the connection string from the ConnectionStrings configuration section.
- `configureSettings` (`Action<AzureDataLakeSettings>`) `optional`
  An optional method that can be used for customizing the [AzureDataLakeSettings](/reference/api/csharp/aspire.azure.storage.files.datalake/azuredatalakesettings.md). It's invoked after the settings are read from the configuration.
- `configureClientBuilder` (`Action<IAzureClientBuilder<DataLakeServiceClient, DataLakeClientOptions>>`) `optional`
  An optional method that can be used for customizing the `Extensions.IAzureClientBuilder`2`.

## Exceptions

- `InvalidOperationException` -- Neither [AzureDataLakeSettings.ConnectionString](/reference/api/csharp/aspire.azure.storage.files.datalake/azuredatalakesettings/properties.md#connectionstring) nor [AzureDataLakeSettings.ServiceUri](/reference/api/csharp/aspire.azure.storage.files.datalake/azuredatalakesettings/properties.md#serviceuri) is provided.

## Remarks

Reads the configuration from "Aspire:Azure:Storage:Files:DataLake" section.

## AddKeyedAzureDataLakeFileSystemClient(IHostApplicationBuilder, string, Action<AzureDataLakeFileSystemSettings>, Action<IAzureClientBuilder<DataLakeFileSystemClient, DataLakeClientOptions>>)

- Name: `AddKeyedAzureDataLakeFileSystemClient(IHostApplicationBuilder, string, Action<AzureDataLakeFileSystemSettings>, Action<IAzureClientBuilder<DataLakeFileSystemClient, DataLakeClientOptions>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Azure.Storage.Files.DataLake/AspireDataLakeExtensions.cs#L147-L156)

Registers `DataLake.DataLakeFileSystemClient` as a singleton in the services provided by the `builder`. Enables retries, corresponding health check, logging and telemetry.

```csharp
public static class AspireDataLakeExtensions
{
    public static void AddKeyedAzureDataLakeFileSystemClient(
        this IHostApplicationBuilder builder,
        string name,
        Action<AzureDataLakeFileSystemSettings>? configureSettings = null,
        Action<IAzureClientBuilder<DataLakeFileSystemClient, DataLakeClientOptions>>? configureClientBuilder = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
  The `Hosting.IHostApplicationBuilder` to read config from and add services to.
- `name` (`string`)
  A name used to retrieve the connection string from the ConnectionStrings configuration section.
- `configureSettings` (`Action<AzureDataLakeFileSystemSettings>`) `optional`
  An optional method that can be used for customizing the [AzureDataLakeFileSystemSettings](/reference/api/csharp/aspire.azure.storage.files.datalake/azuredatalakefilesystemsettings.md). It's invoked after the settings are read from the configuration.
- `configureClientBuilder` (`Action<IAzureClientBuilder<DataLakeFileSystemClient, DataLakeClientOptions>>`) `optional`
  An optional method that can be used for customizing the `Extensions.IAzureClientBuilder`2`.

## Exceptions

- `InvalidOperationException` -- Neither [AzureDataLakeSettings.ConnectionString](/reference/api/csharp/aspire.azure.storage.files.datalake/azuredatalakesettings/properties.md#connectionstring) nor [AzureDataLakeSettings.ServiceUri](/reference/api/csharp/aspire.azure.storage.files.datalake/azuredatalakesettings/properties.md#serviceuri) is provided. - or - [AzureDataLakeFileSystemSettings.FileSystemName](/reference/api/csharp/aspire.azure.storage.files.datalake/azuredatalakefilesystemsettings/properties.md#filesystemname) is not provided in the configuration section.

## Remarks

Reads the configuration from "Aspire:Azure:Storage:Files:DataLake" section.

## AddKeyedAzureDataLakeServiceClient(IHostApplicationBuilder, string, Action<AzureDataLakeSettings>, Action<IAzureClientBuilder<DataLakeServiceClient, DataLakeClientOptions>>)

- Name: `AddKeyedAzureDataLakeServiceClient(IHostApplicationBuilder, string, Action<AzureDataLakeSettings>, Action<IAzureClientBuilder<DataLakeServiceClient, DataLakeClientOptions>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Azure.Storage.Files.DataLake/AspireDataLakeExtensions.cs#L74-L84)

Registers `DataLake.DataLakeServiceClient` as a singleton for given `name` in the services provided by the `builder`. Enables retries, corresponding health check, logging and telemetry.

```csharp
public static class AspireDataLakeExtensions
{
    public static void AddKeyedAzureDataLakeServiceClient(
        this IHostApplicationBuilder builder,
        string name,
        Action<AzureDataLakeSettings>? configureSettings = null,
        Action<IAzureClientBuilder<DataLakeServiceClient, DataLakeClientOptions>>? configureClientBuilder = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
  The `Hosting.IHostApplicationBuilder` to read config from and add services to.
- `name` (`string`)
  The name of the component, which is used as the `ServiceDescriptor.ServiceKey` of the service and also to retrieve the connection string from the ConnectionStrings configuration section.
- `configureSettings` (`Action<AzureDataLakeSettings>`) `optional`
  An optional method that can be used for customizing the [AzureDataLakeSettings](/reference/api/csharp/aspire.azure.storage.files.datalake/azuredatalakesettings.md). It's invoked after the settings are read from the configuration.
- `configureClientBuilder` (`Action<IAzureClientBuilder<DataLakeServiceClient, DataLakeClientOptions>>`) `optional`
  An optional method that can be used for customizing the `Extensions.IAzureClientBuilder`2`.

## Exceptions

- `InvalidOperationException` -- Neither [AzureDataLakeSettings.ConnectionString](/reference/api/csharp/aspire.azure.storage.files.datalake/azuredatalakesettings/properties.md#connectionstring) nor [AzureDataLakeSettings.ServiceUri](/reference/api/csharp/aspire.azure.storage.files.datalake/azuredatalakesettings/properties.md#serviceuri) is provided.

## Remarks

Reads the configuration from "Aspire:Azure:Storage:Files:DataLake:{name}" section.
