# MosquittoBuilderExtensions Methods

- Package: [CommunityToolkit.Aspire.Hosting.Mosquitto](/reference/api/csharp/communitytoolkit.aspire.hosting.mosquitto.md)
- Type: [MosquittoBuilderExtensions](/reference/api/csharp/communitytoolkit.aspire.hosting.mosquitto/mosquittobuilderextensions.md)
- Kind: `Methods`
- Members: `3`

Provides extension methods for adding Mosquitto resources to an `Hosting.IDistributedApplicationBuilder`.

<a id="addmosquitto"></a>
<a id="addmosquitto-idistributedapplicationbuilder-string-int"></a>

## AddMosquitto(IDistributedApplicationBuilder, string, int?)

- Name: `AddMosquitto(IDistributedApplicationBuilder, string, int?)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<MosquittoServerResource>`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/4ff8268fbd97ddd23cb73dc8eff9cc92718156d1/src/CommunityToolkit.Aspire.Hosting.Mosquitto/MosquittoBuilderExtensions.cs#L42-L81)

Adds a Mosquitto container resource to the application. Mosquitto is an open source MQTT message broker, so the resource can be referenced by any MQTT client integration.

```csharp
public static class MosquittoBuilderExtensions
{
    public static IResourceBuilder<MosquittoServerResource> AddMosquitto(
        this IDistributedApplicationBuilder builder,
        string name,
        int? port = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IDistributedApplicationBuilder`)
  The `Hosting.IDistributedApplicationBuilder` to add the resource to.
- `name` (`string`)
  The name of the resource. This name is used as the connection string name when referenced in a dependency.
- `port` (`int?`) `optional`
  The host port that the MQTT endpoint is exposed on. If `null` a random port is assigned.

## Returns

`IResourceBuilder<MosquittoServerResource>` -- A reference to the `ApplicationModel.IResourceBuilder`1`.

## Remarks

This version of the package defaults to the tag of the container image.

## ATS metadata

### ATS export

- Available to Polyglot AppHosts through the Aspire Type System.

<a id="withdatabindmount"></a>
<a id="withdatabindmount-iresourcebuilder-mosquittoserverresource-string-bool"></a>

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

- Name: `WithDataBindMount(IResourceBuilder<MosquittoServerResource>, string, bool)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<MosquittoServerResource>`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/4ff8268fbd97ddd23cb73dc8eff9cc92718156d1/src/CommunityToolkit.Aspire.Hosting.Mosquitto/MosquittoBuilderExtensions.cs#L109-L112)

Adds a bind mount for the data folder to a Mosquitto container resource.

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

## Parameters

- `builder` (`IResourceBuilder<MosquittoServerResource>`)
  The resource builder.
- `source` (`string`)
  The source directory on the host to mount into the container.
- `isReadOnly` (`bool`) `optional`
  A flag that indicates if this is a read-only mount.

## Returns

`IResourceBuilder<MosquittoServerResource>` -- A reference to the `ApplicationModel.IResourceBuilder`1`.

## ATS metadata

### ATS export

- Available to Polyglot AppHosts through the Aspire Type System.

<a id="withdatavolume"></a>
<a id="withdatavolume-iresourcebuilder-mosquittoserverresource-string-bool"></a>

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

- Name: `WithDataVolume(IResourceBuilder<MosquittoServerResource>, string?, bool)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<MosquittoServerResource>`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/4ff8268fbd97ddd23cb73dc8eff9cc92718156d1/src/CommunityToolkit.Aspire.Hosting.Mosquitto/MosquittoBuilderExtensions.cs#L94-L96)

Adds a named volume for the data folder to a Mosquitto container resource.

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

## Parameters

- `builder` (`IResourceBuilder<MosquittoServerResource>`)
  The resource builder.
- `name` (`string?`) `optional`
  The name of the volume. Defaults to an auto-generated name based on the application and resource names.
- `isReadOnly` (`bool`) `optional`
  A flag that indicates if this is a read-only volume.

## Returns

`IResourceBuilder<MosquittoServerResource>` -- A reference to the `ApplicationModel.IResourceBuilder`1`.

## ATS metadata

### ATS export

- Available to Polyglot AppHosts through the Aspire Type System.
