# ListmonkResource

- Module: [CommunityToolkit.Aspire.Hosting.Listmonk](/reference/api/typescript/communitytoolkit.aspire.hosting.listmonk.md)
- Version: `13.5.0`
- Kind: `handle`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/tree/4ff8268fbd97ddd23cb73dc8eff9cc92718156d1)

A resource that represents a listmonk instance.

## Definition

```typescript
interface ListmonkResource
  extends IComputeResource,
    IExpressionValue,
    IManifestExpressionProvider,
    IResource,
    IResourceWithArgs,
    IResourceWithConnectionString,
    IResourceWithEndpoints,
    IResourceWithEnvironment,
    IResourceWithProbes,
    IResourceWithWaitSupport,
    IValueProvider,
    IValueWithReferences,
    IResourceWithServiceDiscovery {
  readonly connectionStringExpression: ReferenceExpression;
  readonly host: EndpointReferenceExpression;
  readonly port: EndpointReferenceExpression;
  readonly primaryEndpoint: EndpointReference;
  readonly uriExpression: ReferenceExpression;
  withAdminCredentials(
      username: string,
      password: ParameterResource): ListmonkResource;
  withAdminPassword(password: ParameterResource): ListmonkResource;
  withAdminUser(username: string): ListmonkResource;
  withAppAddress(address: string): ListmonkResource;
  withDatabaseMaxIdleConnections(maxIdle: number): ListmonkResource;
  withDatabaseMaxLifetime(maxLifetime: string): ListmonkResource;
  withDatabaseMaxOpenConnections(maxOpen: number): ListmonkResource;
  withDatabaseParameters(parameters: string): ListmonkResource;
  withDatabaseSslMode(sslMode: string): ListmonkResource;
  withGroupId(groupId: number): ListmonkResource;
  withReference(database: PostgresDatabaseResource): ListmonkResource;
  withTimeZone(timeZone: string): ListmonkResource;
  withUploadsBindMount(source: string): ListmonkResource;
  withUploadsVolume(name?: string): ListmonkResource;
  withUserId(userId: number): ListmonkResource;
}
```

## Properties

- `connectionStringExpression`: `ReferenceExpression` `get` -- Gets the connection string expression for the listmonk instance.
- `host`: `EndpointReferenceExpression` `get` -- Gets the host endpoint reference for this resource.
- `port`: `EndpointReferenceExpression` `get` -- Gets the port endpoint reference for this resource.
- `primaryEndpoint`: `EndpointReference` `get` -- Gets the primary HTTP endpoint for the listmonk instance.
- `uriExpression`: `ReferenceExpression` `get` -- Gets the connection URI expression for the listmonk instance.

## Methods

- [withAdminCredentials](/reference/api/typescript/communitytoolkit.aspire.hosting.listmonk/listmonkresource/withadmincredentials.md) -- `method` -- Configures the first-run listmonk Super Admin credentials.
    ```typescript
  withAdminCredentials(username: string, password: ParameterResource): ListmonkResource
  ```
- [withAdminPassword](/reference/api/typescript/communitytoolkit.aspire.hosting.listmonk/listmonkresource/withadminpassword.md) -- `method` -- Configures the first-run listmonk Super Admin password.
    ```typescript
  withAdminPassword(password: ParameterResource): ListmonkResource
  ```
- [withAdminUser](/reference/api/typescript/communitytoolkit.aspire.hosting.listmonk/listmonkresource/withadminuser.md) -- `method` -- Configures the first-run listmonk Super Admin username.
    ```typescript
  withAdminUser(username: string): ListmonkResource
  ```
- [withAppAddress](/reference/api/typescript/communitytoolkit.aspire.hosting.listmonk/listmonkresource/withappaddress.md) -- `method` -- Configures the listmonk web server address.
    ```typescript
  withAppAddress(address: string): ListmonkResource
  ```
- [withDatabaseMaxIdleConnections](/reference/api/typescript/communitytoolkit.aspire.hosting.listmonk/listmonkresource/withdatabasemaxidleconnections.md) -- `method` -- Configures the maximum number of idle PostgreSQL connections.
    ```typescript
  withDatabaseMaxIdleConnections(maxIdle: number): ListmonkResource
  ```
- [withDatabaseMaxLifetime](/reference/api/typescript/communitytoolkit.aspire.hosting.listmonk/listmonkresource/withdatabasemaxlifetime.md) -- `method` -- Configures the maximum lifetime for PostgreSQL connections.
    ```typescript
  withDatabaseMaxLifetime(maxLifetime: string): ListmonkResource
  ```
- [withDatabaseMaxOpenConnections](/reference/api/typescript/communitytoolkit.aspire.hosting.listmonk/listmonkresource/withdatabasemaxopenconnections.md) -- `method` -- Configures the maximum number of open PostgreSQL connections.
    ```typescript
  withDatabaseMaxOpenConnections(maxOpen: number): ListmonkResource
  ```
- [withDatabaseParameters](/reference/api/typescript/communitytoolkit.aspire.hosting.listmonk/listmonkresource/withdatabaseparameters.md) -- `method` -- Configures additional PostgreSQL DSN parameters.
    ```typescript
  withDatabaseParameters(parameters: string): ListmonkResource
  ```
- [withDatabaseSslMode](/reference/api/typescript/communitytoolkit.aspire.hosting.listmonk/listmonkresource/withdatabasesslmode.md) -- `method` -- Configures the PostgreSQL SSL mode used by listmonk.
    ```typescript
  withDatabaseSslMode(sslMode: string): ListmonkResource
  ```
- [withGroupId](/reference/api/typescript/communitytoolkit.aspire.hosting.listmonk/listmonkresource/withgroupid.md) -- `method` -- Configures the group ID used by the listmonk container entrypoint.
    ```typescript
  withGroupId(groupId: number): ListmonkResource
  ```
- [withReference](/reference/api/typescript/communitytoolkit.aspire.hosting.listmonk/listmonkresource/withreference.md) -- `method` -- References a `PostgresDatabaseResource` as the PostgreSQL database for the listmonk resource.
    ```typescript
  withReference(database: PostgresDatabaseResource): ListmonkResource
  ```
- [withTimeZone](/reference/api/typescript/communitytoolkit.aspire.hosting.listmonk/listmonkresource/withtimezone.md) -- `method` -- Configures the time zone used by the listmonk container.
    ```typescript
  withTimeZone(timeZone: string): ListmonkResource
  ```
- [withUploadsBindMount](/reference/api/typescript/communitytoolkit.aspire.hosting.listmonk/listmonkresource/withuploadsbindmount.md) -- `method` -- Adds a bind mount for listmonk media uploads.
    ```typescript
  withUploadsBindMount(source: string): ListmonkResource
  ```
- [withUploadsVolume](/reference/api/typescript/communitytoolkit.aspire.hosting.listmonk/listmonkresource/withuploadsvolume.md) -- `method` -- Adds a named volume for listmonk media uploads.
    ```typescript
  withUploadsVolume(name?: string): ListmonkResource
  ```
- [withUserId](/reference/api/typescript/communitytoolkit.aspire.hosting.listmonk/listmonkresource/withuserid.md) -- `method` -- Configures the user ID used by the listmonk container entrypoint.
    ```typescript
  withUserId(userId: number): ListmonkResource
  ```
