import * as pulumi from "@pulumi/pulumi";
/**
 * 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",
 * });
 * ```
 *
 * ## 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
 * ```
 */
export declare class DatabaseConnectionPool extends pulumi.CustomResource {
    /**
     * Get an existing DatabaseConnectionPool resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: DatabaseConnectionPoolState, opts?: pulumi.CustomResourceOptions): DatabaseConnectionPool;
    /**
     * Returns true if the given object is an instance of DatabaseConnectionPool.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is DatabaseConnectionPool;
    /**
     * The ID of the source database cluster. Note: This must be a PostgreSQL cluster.
     */
    readonly clusterId: pulumi.Output<string>;
    /**
     * The database for use with the connection pool.
     */
    readonly dbName: pulumi.Output<string>;
    /**
     * The hostname used to connect to the database connection pool.
     */
    readonly host: pulumi.Output<string>;
    /**
     * The PGBouncer transaction mode for the connection pool. The allowed values are session, transaction, and statement.
     */
    readonly mode: pulumi.Output<string>;
    /**
     * The name for the database connection pool.
     */
    readonly name: pulumi.Output<string>;
    /**
     * Password for the connection pool's user.
     */
    readonly password: pulumi.Output<string>;
    /**
     * Network port that the database connection pool is listening on.
     */
    readonly port: pulumi.Output<number>;
    /**
     * Same as `host`, but only accessible from resources within the account and in the same region.
     */
    readonly privateHost: pulumi.Output<string>;
    /**
     * Same as `uri`, but only accessible from resources within the account and in the same region.
     */
    readonly privateUri: pulumi.Output<string>;
    /**
     * The desired size of the PGBouncer connection pool.
     */
    readonly size: pulumi.Output<number>;
    /**
     * The full URI for connecting to the database connection pool.
     */
    readonly uri: pulumi.Output<string>;
    /**
     * The name of the database user for use with the connection pool. When excluded, all sessions connect to the database as the inbound user.
     */
    readonly user: pulumi.Output<string | undefined>;
    /**
     * Create a DatabaseConnectionPool resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: DatabaseConnectionPoolArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering DatabaseConnectionPool resources.
 */
export interface DatabaseConnectionPoolState {
    /**
     * The ID of the source database cluster. Note: This must be a PostgreSQL cluster.
     */
    clusterId?: pulumi.Input<string | undefined>;
    /**
     * The database for use with the connection pool.
     */
    dbName?: pulumi.Input<string | undefined>;
    /**
     * The hostname used to connect to the database connection pool.
     */
    host?: pulumi.Input<string | undefined>;
    /**
     * The PGBouncer transaction mode for the connection pool. The allowed values are session, transaction, and statement.
     */
    mode?: pulumi.Input<string | undefined>;
    /**
     * The name for the database connection pool.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Password for the connection pool's user.
     */
    password?: pulumi.Input<string | undefined>;
    /**
     * Network port that the database connection pool is listening on.
     */
    port?: pulumi.Input<number | undefined>;
    /**
     * Same as `host`, but only accessible from resources within the account and in the same region.
     */
    privateHost?: pulumi.Input<string | undefined>;
    /**
     * Same as `uri`, but only accessible from resources within the account and in the same region.
     */
    privateUri?: pulumi.Input<string | undefined>;
    /**
     * The desired size of the PGBouncer connection pool.
     */
    size?: pulumi.Input<number | undefined>;
    /**
     * The full URI for connecting to the database connection pool.
     */
    uri?: pulumi.Input<string | undefined>;
    /**
     * The name of the database user for use with the connection pool. When excluded, all sessions connect to the database as the inbound user.
     */
    user?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a DatabaseConnectionPool resource.
 */
export interface DatabaseConnectionPoolArgs {
    /**
     * The ID of the source database cluster. Note: This must be a PostgreSQL cluster.
     */
    clusterId: pulumi.Input<string>;
    /**
     * The database for use with the connection pool.
     */
    dbName: pulumi.Input<string>;
    /**
     * The PGBouncer transaction mode for the connection pool. The allowed values are session, transaction, and statement.
     */
    mode: pulumi.Input<string>;
    /**
     * The name for the database connection pool.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The desired size of the PGBouncer connection pool.
     */
    size: pulumi.Input<number>;
    /**
     * The name of the database user for use with the connection pool. When excluded, all sessions connect to the database as the inbound user.
     */
    user?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=databaseConnectionPool.d.ts.map