import * as pulumi from "@pulumi/pulumi";
import * as outputs from "./types/output";
/**
 * Provides information about a Linode PostgreSQL Database.
 * For more information, see the [Linode APIv4 docs](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instance-backups).
 *
 * ## Example Usage
 *
 * Get information about a PostgreSQL database:
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as linode from "@pulumi/linode";
 *
 * const my_db = linode.getDatabasePostgresqlV2({
 *     id: "12345",
 * });
 * ```
 *
 * ## pendingUpdates
 *
 * The following arguments are exposed by each entry in the `pendingUpdates` attribute:
 *
 * * `deadline` - The time when a mandatory update needs to be applied.
 *
 * * `description` - A description of the update.
 *
 * * `plannedFor` - The date and time a maintenance update will be applied.
 *
 * ## updates
 *
 * The following arguments are supported in the `updates` specification block:
 *
 * * `dayOfWeek` - The day to perform maintenance. (`monday`, `tuesday`, ...)
 *
 * * `duration` - The maximum maintenance window time in hours. (`1`..`3`)
 *
 * * `frequency` - The frequency at which maintenance occurs. (`weekly`)
 *
 * * `hourOfDay` - The hour to begin maintenance based in UTC time. (`0`..`23`)
 */
export declare function getDatabasePostgresqlV2(args: GetDatabasePostgresqlV2Args, opts?: pulumi.InvokeOptions): Promise<GetDatabasePostgresqlV2Result>;
/**
 * A collection of arguments for invoking getDatabasePostgresqlV2.
 */
export interface GetDatabasePostgresqlV2Args {
    /**
     * The ID of the PostgreSQL database.
     */
    id: string;
}
/**
 * A collection of values returned by getDatabasePostgresqlV2.
 */
export interface GetDatabasePostgresqlV2Result {
    /**
     * A list of IP addresses that can access the Managed Database. Each item can be a single IP address or a range in CIDR format. Use `linode.DatabaseAccessControls` to manage your allow list separately.
     */
    readonly allowLists: string[];
    /**
     * The base64-encoded SSL CA certificate for the Managed Database.
     */
    readonly caCert: string;
    /**
     * The number of Linode Instance nodes deployed to the Managed Database. (default `1`)
     */
    readonly clusterSize: number;
    /**
     * When this Managed Database was created.
     */
    readonly created: string;
    /**
     * Whether the Managed Databases is encrypted.
     */
    readonly encrypted: boolean;
    /**
     * The Managed Database engine. (e.g. `postgresql`)
     */
    readonly engine: string;
    /**
     * The Managed Database engine in engine/version format. (e.g. `postgresql/16`)
     */
    readonly engineId: string;
    /**
     * The database timestamp from which it was restored.
     */
    readonly forkRestoreTime: string;
    /**
     * The ID of the database that was forked from.
     */
    readonly forkSource: number;
    /**
     * The primary host for the Managed Database.
     */
    readonly hostPrimary: string;
    /**
     * The secondary/private host for the managed database.
     */
    readonly hostSecondary: string;
    readonly id: string;
    /**
     * A unique, user-defined string referring to the Managed Database.
     */
    readonly label: string;
    readonly members: {
        [key: string]: string;
    };
    readonly oldestRestoreTime: string;
    readonly pendingUpdates: outputs.GetDatabasePostgresqlV2PendingUpdate[];
    /**
     * The back-end platform for relational databases used by the service.
     */
    readonly platform: string;
    /**
     * The access port for this Managed Database.
     */
    readonly port: number;
    /**
     * The region to use for the Managed Database.
     */
    readonly region: string;
    /**
     * The randomly-generated root password for the Managed Database instance.
     */
    readonly rootPassword: string;
    /**
     * The root username for the Managed Database instance.
     */
    readonly rootUsername: string;
    /**
     * Whether to require SSL credentials to establish a connection to the Managed Database.
     */
    readonly sslConnection: boolean;
    /**
     * The operating status of the Managed Database.
     */
    readonly status: string;
    /**
     * Whether this Managed Database is suspended.
     */
    readonly suspended: boolean;
    /**
     * The Linode Instance type used for the nodes of the Managed Database.
     */
    readonly type: string;
    /**
     * When this Managed Database was last updated.
     */
    readonly updated: string;
    readonly updates: outputs.GetDatabasePostgresqlV2Updates;
    /**
     * The Managed Database engine version. (e.g. `13.2`)
     */
    readonly version: string;
}
/**
 * Provides information about a Linode PostgreSQL Database.
 * For more information, see the [Linode APIv4 docs](https://techdocs.akamai.com/linode-api/reference/get-databases-postgre-sql-instance-backups).
 *
 * ## Example Usage
 *
 * Get information about a PostgreSQL database:
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as linode from "@pulumi/linode";
 *
 * const my_db = linode.getDatabasePostgresqlV2({
 *     id: "12345",
 * });
 * ```
 *
 * ## pendingUpdates
 *
 * The following arguments are exposed by each entry in the `pendingUpdates` attribute:
 *
 * * `deadline` - The time when a mandatory update needs to be applied.
 *
 * * `description` - A description of the update.
 *
 * * `plannedFor` - The date and time a maintenance update will be applied.
 *
 * ## updates
 *
 * The following arguments are supported in the `updates` specification block:
 *
 * * `dayOfWeek` - The day to perform maintenance. (`monday`, `tuesday`, ...)
 *
 * * `duration` - The maximum maintenance window time in hours. (`1`..`3`)
 *
 * * `frequency` - The frequency at which maintenance occurs. (`weekly`)
 *
 * * `hourOfDay` - The hour to begin maintenance based in UTC time. (`0`..`23`)
 */
export declare function getDatabasePostgresqlV2Output(args: GetDatabasePostgresqlV2OutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetDatabasePostgresqlV2Result>;
/**
 * A collection of arguments for invoking getDatabasePostgresqlV2.
 */
export interface GetDatabasePostgresqlV2OutputArgs {
    /**
     * The ID of the PostgreSQL database.
     */
    id: pulumi.Input<string>;
}
