![JAR search and dependency download from the Maven repository](/logo.png)
com.pulumi.digitalocean.kotlin.DatabaseConnectionPool.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pulumi-digitalocean-kotlin Show documentation
Show all versions of pulumi-digitalocean-kotlin Show documentation
Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.digitalocean.kotlin
import com.pulumi.core.Output
import com.pulumi.kotlin.KotlinCustomResource
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.ResourceMapper
import com.pulumi.kotlin.options.CustomResourceOptions
import com.pulumi.kotlin.options.CustomResourceOptionsBuilder
import com.pulumi.resources.Resource
import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
/**
* Builder for [DatabaseConnectionPool].
*/
@PulumiTagMarker
public class DatabaseConnectionPoolResourceBuilder internal constructor() {
public var name: String? = null
public var args: DatabaseConnectionPoolArgs = DatabaseConnectionPoolArgs()
public var opts: CustomResourceOptions = CustomResourceOptions()
/**
* @param name The _unique_ name of the resulting resource.
*/
public fun name(`value`: String) {
this.name = value
}
/**
* @param block The arguments to use to populate this resource's properties.
*/
public suspend fun args(block: suspend DatabaseConnectionPoolArgsBuilder.() -> Unit) {
val builder = DatabaseConnectionPoolArgsBuilder()
block(builder)
this.args = builder.build()
}
/**
* @param block A bag of options that control this resource's behavior.
*/
public suspend fun opts(block: suspend CustomResourceOptionsBuilder.() -> Unit) {
this.opts = com.pulumi.kotlin.options.CustomResourceOptions.opts(block)
}
internal fun build(): DatabaseConnectionPool {
val builtJavaResource = com.pulumi.digitalocean.DatabaseConnectionPool(
this.name,
this.args.toJava(),
this.opts.toJava(),
)
return DatabaseConnectionPool(builtJavaResource)
}
}
/**
* Provides a DigitalOcean database connection pool resource.
* ## Example Usage
* ### Create a new PostgreSQL database connection pool
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as digitalocean from "@pulumi/digitalocean";
* const postgres_example = new digitalocean.DatabaseCluster("postgres-example", {
* name: "example-postgres-cluster",
* engine: "pg",
* version: "15",
* size: digitalocean.DatabaseSlug.DB_1VPCU1GB,
* region: digitalocean.Region.NYC1,
* nodeCount: 1,
* });
* const pool_01 = new digitalocean.DatabaseConnectionPool("pool-01", {
* clusterId: postgres_example.id,
* name: "pool-01",
* mode: "transaction",
* size: 20,
* dbName: "defaultdb",
* user: "doadmin",
* });
* ```
* ```python
* import pulumi
* import pulumi_digitalocean as digitalocean
* postgres_example = digitalocean.DatabaseCluster("postgres-example",
* name="example-postgres-cluster",
* engine="pg",
* version="15",
* size=digitalocean.DatabaseSlug.D_B_1_VPCU1_GB,
* region=digitalocean.Region.NYC1,
* node_count=1)
* pool_01 = digitalocean.DatabaseConnectionPool("pool-01",
* cluster_id=postgres_example.id,
* name="pool-01",
* mode="transaction",
* size=20,
* db_name="defaultdb",
* user="doadmin")
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using DigitalOcean = Pulumi.DigitalOcean;
* return await Deployment.RunAsync(() =>
* {
* var postgres_example = new DigitalOcean.DatabaseCluster("postgres-example", new()
* {
* Name = "example-postgres-cluster",
* Engine = "pg",
* Version = "15",
* Size = DigitalOcean.DatabaseSlug.DB_1VPCU1GB,
* Region = DigitalOcean.Region.NYC1,
* NodeCount = 1,
* });
* var pool_01 = new DigitalOcean.DatabaseConnectionPool("pool-01", new()
* {
* ClusterId = postgres_example.Id,
* Name = "pool-01",
* Mode = "transaction",
* Size = 20,
* DbName = "defaultdb",
* User = "doadmin",
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-digitalocean/sdk/v4/go/digitalocean"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* _, err := digitalocean.NewDatabaseCluster(ctx, "postgres-example", &digitalocean.DatabaseClusterArgs{
* Name: pulumi.String("example-postgres-cluster"),
* Engine: pulumi.String("pg"),
* Version: pulumi.String("15"),
* Size: pulumi.String(digitalocean.DatabaseSlug_DB_1VPCU1GB),
* Region: pulumi.String(digitalocean.RegionNYC1),
* NodeCount: pulumi.Int(1),
* })
* if err != nil {
* return err
* }
* _, err = digitalocean.NewDatabaseConnectionPool(ctx, "pool-01", &digitalocean.DatabaseConnectionPoolArgs{
* ClusterId: postgres_example.ID(),
* Name: pulumi.String("pool-01"),
* Mode: pulumi.String("transaction"),
* Size: pulumi.Int(20),
* DbName: pulumi.String("defaultdb"),
* User: pulumi.String("doadmin"),
* })
* if err != nil {
* return err
* }
* return nil
* })
* }
* ```
* ```java
* package generated_program;
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.digitalocean.DatabaseCluster;
* import com.pulumi.digitalocean.DatabaseClusterArgs;
* import com.pulumi.digitalocean.DatabaseConnectionPool;
* import com.pulumi.digitalocean.DatabaseConnectionPoolArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
* import java.nio.file.Paths;
* public class App {
* public static void main(String[] args) {
* Pulumi.run(App::stack);
* }
* public static void stack(Context ctx) {
* var postgres_example = new DatabaseCluster("postgres-example", DatabaseClusterArgs.builder()
* .name("example-postgres-cluster")
* .engine("pg")
* .version("15")
* .size("db-s-1vcpu-1gb")
* .region("nyc1")
* .nodeCount(1)
* .build());
* var pool_01 = new DatabaseConnectionPool("pool-01", DatabaseConnectionPoolArgs.builder()
* .clusterId(postgres_example.id())
* .name("pool-01")
* .mode("transaction")
* .size(20)
* .dbName("defaultdb")
* .user("doadmin")
* .build());
* }
* }
* ```
* ```yaml
* resources:
* pool-01:
* type: digitalocean:DatabaseConnectionPool
* properties:
* clusterId: ${["postgres-example"].id}
* name: pool-01
* mode: transaction
* size: 20
* dbName: defaultdb
* user: doadmin
* postgres-example:
* type: digitalocean:DatabaseCluster
* properties:
* name: example-postgres-cluster
* engine: pg
* version: '15'
* size: db-s-1vcpu-1gb
* region: nyc1
* nodeCount: 1
* ```
*
* ## Import
* Database connection pools can be imported using the `id` of the source database cluster
* and the `name` of the connection pool joined with a comma. For example:
* ```sh
* $ pulumi import digitalocean:index/databaseConnectionPool:DatabaseConnectionPool pool-01 245bcfd0-7f31-4ce6-a2bc-475a116cca97,pool-01
* ```
*/
public class DatabaseConnectionPool internal constructor(
override val javaResource: com.pulumi.digitalocean.DatabaseConnectionPool,
) : KotlinCustomResource(javaResource, DatabaseConnectionPoolMapper) {
/**
* The ID of the source database cluster. Note: This must be a PostgreSQL cluster.
*/
public val clusterId: Output
get() = javaResource.clusterId().applyValue({ args0 -> args0 })
/**
* The database for use with the connection pool.
*/
public val dbName: Output
get() = javaResource.dbName().applyValue({ args0 -> args0 })
/**
* The hostname used to connect to the database connection pool.
*/
public val host: Output
get() = javaResource.host().applyValue({ args0 -> args0 })
/**
* The PGBouncer transaction mode for the connection pool. The allowed values are session, transaction, and statement.
*/
public val mode: Output
get() = javaResource.mode().applyValue({ args0 -> args0 })
/**
* The name for the database connection pool.
*/
public val name: Output
get() = javaResource.name().applyValue({ args0 -> args0 })
/**
* Password for the connection pool's user.
*/
public val password: Output
get() = javaResource.password().applyValue({ args0 -> args0 })
/**
* Network port that the database connection pool is listening on.
*/
public val port: Output
get() = javaResource.port().applyValue({ args0 -> args0 })
/**
* Same as `host`, but only accessible from resources within the account and in the same region.
*/
public val privateHost: Output
get() = javaResource.privateHost().applyValue({ args0 -> args0 })
/**
* Same as `uri`, but only accessible from resources within the account and in the same region.
*/
public val privateUri: Output
get() = javaResource.privateUri().applyValue({ args0 -> args0 })
/**
* The desired size of the PGBouncer connection pool.
*/
public val size: Output
get() = javaResource.size().applyValue({ args0 -> args0 })
/**
* The full URI for connecting to the database connection pool.
*/
public val uri: Output
get() = javaResource.uri().applyValue({ args0 -> args0 })
/**
* The name of the database user for use with the connection pool. When excluded, all sessions connect to the database as the inbound user.
*/
public val user: Output?
get() = javaResource.user().applyValue({ args0 -> args0.map({ args0 -> args0 }).orElse(null) })
}
public object DatabaseConnectionPoolMapper : ResourceMapper {
override fun supportsMappingOfType(javaResource: Resource): Boolean =
com.pulumi.digitalocean.DatabaseConnectionPool::class == javaResource::class
override fun map(javaResource: Resource): DatabaseConnectionPool =
DatabaseConnectionPool(javaResource as com.pulumi.digitalocean.DatabaseConnectionPool)
}
/**
* @see [DatabaseConnectionPool].
* @param name The _unique_ name of the resulting resource.
* @param block Builder for [DatabaseConnectionPool].
*/
public suspend fun databaseConnectionPool(
name: String,
block: suspend DatabaseConnectionPoolResourceBuilder.() -> Unit,
): DatabaseConnectionPool {
val builder = DatabaseConnectionPoolResourceBuilder()
builder.name(name)
block(builder)
return builder.build()
}
/**
* @see [DatabaseConnectionPool].
* @param name The _unique_ name of the resulting resource.
*/
public fun databaseConnectionPool(name: String): DatabaseConnectionPool {
val builder = DatabaseConnectionPoolResourceBuilder()
builder.name(name)
return builder.build()
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy