# ClickHouseBuilderExtensions Methods

- Package: [Aspire.Hosting.ClickHouse](/reference/api/csharp/aspire.hosting.clickhouse.md)
- Type: [ClickHouseBuilderExtensions](/reference/api/csharp/aspire.hosting.clickhouse/clickhousebuilderextensions.md)
- Kind: `Methods`
- Members: `5`

Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.

## AddClickHouse(IDistributedApplicationBuilder, string, int?)

- Name: `AddClickHouse(IDistributedApplicationBuilder, string, int?)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<ClickHouseServerResource>`

```csharp
public static class ClickHouseBuilderExtensions
{
    public static IResourceBuilder<ClickHouseServerResource> AddClickHouse(
        this IDistributedApplicationBuilder builder,
        string name,
        int? port)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IDistributedApplicationBuilder`)
- `name` (`string`)
- `port` (`int?`)

## AddClickHouse(IDistributedApplicationBuilder, string, int?, IResourceBuilder<ParameterResource>, IResourceBuilder<ParameterResource>)

- Name: `AddClickHouse(IDistributedApplicationBuilder, string, int?, IResourceBuilder<ParameterResource>, IResourceBuilder<ParameterResource>)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<ClickHouseServerResource>`

```csharp
public static class ClickHouseBuilderExtensions
{
    public static IResourceBuilder<ClickHouseServerResource> AddClickHouse(
        this IDistributedApplicationBuilder builder,
        string name,
        int? port = null,
        IResourceBuilder<ParameterResource>? userName = null,
        IResourceBuilder<ParameterResource>? password = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IDistributedApplicationBuilder`)
- `name` (`string`)
- `port` (`int?`) `optional`
- `userName` (`IResourceBuilder<ParameterResource>`) `optional`
- `password` (`IResourceBuilder<ParameterResource>`) `optional`

## AddDatabase(IResourceBuilder<ClickHouseServerResource>, string, string?)

- Name: `AddDatabase(IResourceBuilder<ClickHouseServerResource>, string, string?)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<ClickHouseDatabaseResource>`

```csharp
public static class ClickHouseBuilderExtensions
{
    public static IResourceBuilder<ClickHouseDatabaseResource> AddDatabase(
        this IResourceBuilder<ClickHouseServerResource> builder,
        string name,
        string? databaseName = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<ClickHouseServerResource>`)
- `name` (`string`)
- `databaseName` (`string?`) `optional`

## WithDataBindMount(IResourceBuilder<ClickHouseServerResource>, string, bool)

- Name: `WithDataBindMount(IResourceBuilder<ClickHouseServerResource>, string, bool)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<ClickHouseServerResource>`

```csharp
public static class ClickHouseBuilderExtensions
{
    public static IResourceBuilder<ClickHouseServerResource> WithDataBindMount(
        this IResourceBuilder<ClickHouseServerResource> builder,
        string source,
        bool isReadOnly = false)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<ClickHouseServerResource>`)
- `source` (`string`)
- `isReadOnly` (`bool`) `optional`

## WithDataVolume(IResourceBuilder<ClickHouseServerResource>, string?, bool)

- Name: `WithDataVolume(IResourceBuilder<ClickHouseServerResource>, string?, bool)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<ClickHouseServerResource>`

```csharp
public static class ClickHouseBuilderExtensions
{
    public static IResourceBuilder<ClickHouseServerResource> WithDataVolume(
        this IResourceBuilder<ClickHouseServerResource> builder,
        string? name = null,
        bool isReadOnly = false)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<ClickHouseServerResource>`)
- `name` (`string?`) `optional`
- `isReadOnly` (`bool`) `optional`
