import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource provides the Pluggable Database resource in Oracle Cloud Infrastructure Database service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/database/latest/PluggableDatabase
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/database
 *
 * Creates and starts a pluggable database in the specified container database.
 * Pluggable Database can be created using different operations (e.g. LocalClone, RemoteClone, Relocate ) with this API.
 * Use the [StartPluggableDatabase](https://docs.cloud.oracle.com/iaas/api/#/en/database/latest/PluggableDatabase/StartPluggableDatabase) and [StopPluggableDatabase](https://docs.cloud.oracle.com/iaas/api/#/en/database/latest/PluggableDatabase/StopPluggableDatabase) APIs to start and stop the pluggable database.
 *
 * ## Import
 *
 * PluggableDatabases can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:Database/pluggableDatabase:PluggableDatabase test_pluggable_database "id"
 * ```
 */
export declare class PluggableDatabase extends pulumi.CustomResource {
    /**
     * Get an existing PluggableDatabase 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?: PluggableDatabaseState, opts?: pulumi.CustomResourceOptions): PluggableDatabase;
    /**
     * Returns true if the given object is an instance of PluggableDatabase.  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 PluggableDatabase;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
     */
    readonly compartmentId: pulumi.Output<string>;
    /**
     * Connection strings to connect to an Oracle Pluggable Database.
     */
    readonly connectionStrings: pulumi.Output<outputs.Database.PluggableDatabaseConnectionString[]>;
    /**
     * The DB system administrator password of the Container Database.
     */
    readonly containerDatabaseAdminPassword: pulumi.Output<string>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the CDB
     */
    readonly containerDatabaseId: pulumi.Output<string>;
    /**
     * (Updatable) An optional property when incremented triggers Convert To Regular. Could be set to any integer value.
     */
    readonly convertToRegularTrigger: pulumi.Output<number | undefined>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
     */
    readonly definedTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).  Example: `{"Department": "Finance"}`
     */
    readonly freeformTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * The restricted mode of the pluggable database. If a pluggable database is opened in restricted mode, the user needs both create a session and have restricted session privileges to connect to it.
     */
    readonly isRestricted: pulumi.Output<boolean>;
    /**
     * The OCID of the key container version that is used in database transparent data encryption (TDE) operations KMS Key can have multiple key versions. If none is specified, the current key version (latest) of the Key Id is used for the operation. Autonomous AI Database Serverless does not use key versions, hence is not applicable for Autonomous AI Database Serverless instances.
     */
    readonly kmsKeyVersionId: pulumi.Output<string | undefined>;
    /**
     * Detailed message for the lifecycle state.
     */
    readonly lifecycleDetails: pulumi.Output<string>;
    /**
     * The mode that pluggable database is in. Open mode can only be changed to READ_ONLY or MIGRATE directly from the backend (within the Oracle Database software).
     */
    readonly openMode: pulumi.Output<string>;
    /**
     * The patch version of the pluggable database.
     */
    readonly patchVersion: pulumi.Output<string>;
    /**
     * A strong password for PDB Admin. The password must be at least nine characters and contain at least two uppercase, two lowercase, two numbers, and two special characters. The special characters must be _, \#, or -.
     */
    readonly pdbAdminPassword: pulumi.Output<string>;
    /**
     * The Pluggable Database creation type. Use `LOCAL_CLONE_PDB` for creating a new PDB using Local Clone on Source Pluggable Database. This will Clone and starts a pluggable database (PDB) in the same database (CDB) as the source PDB. The source PDB must be in the `READ_WRITE` openMode to perform the clone operation. isThinClone options are supported for Exadata VM cluster on Exascale Infrastructure, Exadata Cloud@Customer VM Cluster on Exadata Cloud@Customer infrastructure, and Exadata Cloud VM cluster on cloud Exadata infrastructure Use `REMOTE_CLONE_PDB` for creating a new PDB using Remote Clone on Source Pluggable Database. This will Clone a pluggable database (PDB) to a different database from the source PDB. The cloned PDB will be started upon completion of the clone operation. The source PDB must be in the `READ_WRITE` openMode when performing the clone. For Exadata Cloud@Customer instances, the source pluggable database (PDB) must be on the same Exadata Infrastructure as the target container database (CDB) to create a remote clone. isThinClone options are supported for Exadata VM cluster on Exascale Infrastructure, Exadata Cloud@Customer VM Cluster on Exadata Cloud@Customer infrastructure, and Exadata Cloud VM cluster on cloud Exadata infrastructure. Use `RELOCATE_PDB` for relocating the Pluggable Database from Source CDB and creating it in target CDB. This will relocate a pluggable database (PDB) to a different database from the source PDB. The source PDB must be in the `READ_WRITE` openMode when performing the relocate.
     */
    readonly pdbCreationTypeDetails: pulumi.Output<outputs.Database.PluggableDatabasePdbCreationTypeDetails>;
    /**
     * The name for the pluggable database (PDB). The name is unique in the context of a [container database](https://docs.cloud.oracle.com/iaas/api/#/en/database/latest/Database/). The name must begin with an alphabetic character and can contain a maximum of thirty alphanumeric characters. Special characters are not permitted. The pluggable database name should not be same as the container database name.
     */
    readonly pdbName: pulumi.Output<string>;
    /**
     * Pluggable Database Node Level Details. Example: [{"nodeName" : "node1", "openMode" : "READ_WRITE"}, {"nodeName" : "node2", "openMode" : "READ_ONLY"}]
     */
    readonly pdbNodeLevelDetails: pulumi.Output<outputs.Database.PluggableDatabasePdbNodeLevelDetail[]>;
    /**
     * The configuration of the Pluggable Database Management service.
     */
    readonly pluggableDatabaseManagementConfigs: pulumi.Output<outputs.Database.PluggableDatabasePluggableDatabaseManagementConfig[]>;
    /**
     * (Updatable) An optional property when incremented triggers Refresh. Could be set to any integer value.
     */
    readonly refreshTrigger: pulumi.Output<number | undefined>;
    /**
     * Pluggable Database Refreshable Clone Configuration.
     */
    readonly refreshableCloneConfigs: pulumi.Output<outputs.Database.PluggableDatabaseRefreshableCloneConfig[]>;
    /**
     * (Updatable) An optional property when incremented triggers Rotate Key. Could be set to any integer value.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    readonly rotateKeyTrigger: pulumi.Output<number | undefined>;
    /**
     * Indicates whether to take Pluggable Database Backup after the operation.
     */
    readonly shouldCreatePdbBackup: pulumi.Output<boolean>;
    /**
     * The locked mode of the pluggable database admin account. If false, the user needs to provide the PDB Admin Password to connect to it. If true, the pluggable database will be locked and user cannot login to it.
     */
    readonly shouldPdbAdminAccountBeLocked: pulumi.Output<boolean>;
    /**
     * The current state of the pluggable database.
     */
    readonly state: pulumi.Output<string>;
    /**
     * System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
     */
    readonly systemTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * The existing TDE wallet password of the CDB.
     */
    readonly tdeWalletPassword: pulumi.Output<string>;
    /**
     * The date and time the pluggable database was created.
     */
    readonly timeCreated: pulumi.Output<string>;
    /**
     * Create a PluggableDatabase 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: PluggableDatabaseArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering PluggableDatabase resources.
 */
export interface PluggableDatabaseState {
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
     */
    compartmentId?: pulumi.Input<string | undefined>;
    /**
     * Connection strings to connect to an Oracle Pluggable Database.
     */
    connectionStrings?: pulumi.Input<pulumi.Input<inputs.Database.PluggableDatabaseConnectionString>[] | undefined>;
    /**
     * The DB system administrator password of the Container Database.
     */
    containerDatabaseAdminPassword?: pulumi.Input<string | undefined>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the CDB
     */
    containerDatabaseId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) An optional property when incremented triggers Convert To Regular. Could be set to any integer value.
     */
    convertToRegularTrigger?: pulumi.Input<number | undefined>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).  Example: `{"Department": "Finance"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The restricted mode of the pluggable database. If a pluggable database is opened in restricted mode, the user needs both create a session and have restricted session privileges to connect to it.
     */
    isRestricted?: pulumi.Input<boolean | undefined>;
    /**
     * The OCID of the key container version that is used in database transparent data encryption (TDE) operations KMS Key can have multiple key versions. If none is specified, the current key version (latest) of the Key Id is used for the operation. Autonomous AI Database Serverless does not use key versions, hence is not applicable for Autonomous AI Database Serverless instances.
     */
    kmsKeyVersionId?: pulumi.Input<string | undefined>;
    /**
     * Detailed message for the lifecycle state.
     */
    lifecycleDetails?: pulumi.Input<string | undefined>;
    /**
     * The mode that pluggable database is in. Open mode can only be changed to READ_ONLY or MIGRATE directly from the backend (within the Oracle Database software).
     */
    openMode?: pulumi.Input<string | undefined>;
    /**
     * The patch version of the pluggable database.
     */
    patchVersion?: pulumi.Input<string | undefined>;
    /**
     * A strong password for PDB Admin. The password must be at least nine characters and contain at least two uppercase, two lowercase, two numbers, and two special characters. The special characters must be _, \#, or -.
     */
    pdbAdminPassword?: pulumi.Input<string | undefined>;
    /**
     * The Pluggable Database creation type. Use `LOCAL_CLONE_PDB` for creating a new PDB using Local Clone on Source Pluggable Database. This will Clone and starts a pluggable database (PDB) in the same database (CDB) as the source PDB. The source PDB must be in the `READ_WRITE` openMode to perform the clone operation. isThinClone options are supported for Exadata VM cluster on Exascale Infrastructure, Exadata Cloud@Customer VM Cluster on Exadata Cloud@Customer infrastructure, and Exadata Cloud VM cluster on cloud Exadata infrastructure Use `REMOTE_CLONE_PDB` for creating a new PDB using Remote Clone on Source Pluggable Database. This will Clone a pluggable database (PDB) to a different database from the source PDB. The cloned PDB will be started upon completion of the clone operation. The source PDB must be in the `READ_WRITE` openMode when performing the clone. For Exadata Cloud@Customer instances, the source pluggable database (PDB) must be on the same Exadata Infrastructure as the target container database (CDB) to create a remote clone. isThinClone options are supported for Exadata VM cluster on Exascale Infrastructure, Exadata Cloud@Customer VM Cluster on Exadata Cloud@Customer infrastructure, and Exadata Cloud VM cluster on cloud Exadata infrastructure. Use `RELOCATE_PDB` for relocating the Pluggable Database from Source CDB and creating it in target CDB. This will relocate a pluggable database (PDB) to a different database from the source PDB. The source PDB must be in the `READ_WRITE` openMode when performing the relocate.
     */
    pdbCreationTypeDetails?: pulumi.Input<inputs.Database.PluggableDatabasePdbCreationTypeDetails | undefined>;
    /**
     * The name for the pluggable database (PDB). The name is unique in the context of a [container database](https://docs.cloud.oracle.com/iaas/api/#/en/database/latest/Database/). The name must begin with an alphabetic character and can contain a maximum of thirty alphanumeric characters. Special characters are not permitted. The pluggable database name should not be same as the container database name.
     */
    pdbName?: pulumi.Input<string | undefined>;
    /**
     * Pluggable Database Node Level Details. Example: [{"nodeName" : "node1", "openMode" : "READ_WRITE"}, {"nodeName" : "node2", "openMode" : "READ_ONLY"}]
     */
    pdbNodeLevelDetails?: pulumi.Input<pulumi.Input<inputs.Database.PluggableDatabasePdbNodeLevelDetail>[] | undefined>;
    /**
     * The configuration of the Pluggable Database Management service.
     */
    pluggableDatabaseManagementConfigs?: pulumi.Input<pulumi.Input<inputs.Database.PluggableDatabasePluggableDatabaseManagementConfig>[] | undefined>;
    /**
     * (Updatable) An optional property when incremented triggers Refresh. Could be set to any integer value.
     */
    refreshTrigger?: pulumi.Input<number | undefined>;
    /**
     * Pluggable Database Refreshable Clone Configuration.
     */
    refreshableCloneConfigs?: pulumi.Input<pulumi.Input<inputs.Database.PluggableDatabaseRefreshableCloneConfig>[] | undefined>;
    /**
     * (Updatable) An optional property when incremented triggers Rotate Key. Could be set to any integer value.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    rotateKeyTrigger?: pulumi.Input<number | undefined>;
    /**
     * Indicates whether to take Pluggable Database Backup after the operation.
     */
    shouldCreatePdbBackup?: pulumi.Input<boolean | undefined>;
    /**
     * The locked mode of the pluggable database admin account. If false, the user needs to provide the PDB Admin Password to connect to it. If true, the pluggable database will be locked and user cannot login to it.
     */
    shouldPdbAdminAccountBeLocked?: pulumi.Input<boolean | undefined>;
    /**
     * The current state of the pluggable database.
     */
    state?: pulumi.Input<string | undefined>;
    /**
     * System tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
     */
    systemTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The existing TDE wallet password of the CDB.
     */
    tdeWalletPassword?: pulumi.Input<string | undefined>;
    /**
     * The date and time the pluggable database was created.
     */
    timeCreated?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a PluggableDatabase resource.
 */
export interface PluggableDatabaseArgs {
    /**
     * The DB system administrator password of the Container Database.
     */
    containerDatabaseAdminPassword?: pulumi.Input<string | undefined>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the CDB
     */
    containerDatabaseId: pulumi.Input<string>;
    /**
     * (Updatable) An optional property when incremented triggers Convert To Regular. Could be set to any integer value.
     */
    convertToRegularTrigger?: pulumi.Input<number | undefined>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).  Example: `{"Department": "Finance"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The OCID of the key container version that is used in database transparent data encryption (TDE) operations KMS Key can have multiple key versions. If none is specified, the current key version (latest) of the Key Id is used for the operation. Autonomous AI Database Serverless does not use key versions, hence is not applicable for Autonomous AI Database Serverless instances.
     */
    kmsKeyVersionId?: pulumi.Input<string | undefined>;
    /**
     * A strong password for PDB Admin. The password must be at least nine characters and contain at least two uppercase, two lowercase, two numbers, and two special characters. The special characters must be _, \#, or -.
     */
    pdbAdminPassword?: pulumi.Input<string | undefined>;
    /**
     * The Pluggable Database creation type. Use `LOCAL_CLONE_PDB` for creating a new PDB using Local Clone on Source Pluggable Database. This will Clone and starts a pluggable database (PDB) in the same database (CDB) as the source PDB. The source PDB must be in the `READ_WRITE` openMode to perform the clone operation. isThinClone options are supported for Exadata VM cluster on Exascale Infrastructure, Exadata Cloud@Customer VM Cluster on Exadata Cloud@Customer infrastructure, and Exadata Cloud VM cluster on cloud Exadata infrastructure Use `REMOTE_CLONE_PDB` for creating a new PDB using Remote Clone on Source Pluggable Database. This will Clone a pluggable database (PDB) to a different database from the source PDB. The cloned PDB will be started upon completion of the clone operation. The source PDB must be in the `READ_WRITE` openMode when performing the clone. For Exadata Cloud@Customer instances, the source pluggable database (PDB) must be on the same Exadata Infrastructure as the target container database (CDB) to create a remote clone. isThinClone options are supported for Exadata VM cluster on Exascale Infrastructure, Exadata Cloud@Customer VM Cluster on Exadata Cloud@Customer infrastructure, and Exadata Cloud VM cluster on cloud Exadata infrastructure. Use `RELOCATE_PDB` for relocating the Pluggable Database from Source CDB and creating it in target CDB. This will relocate a pluggable database (PDB) to a different database from the source PDB. The source PDB must be in the `READ_WRITE` openMode when performing the relocate.
     */
    pdbCreationTypeDetails?: pulumi.Input<inputs.Database.PluggableDatabasePdbCreationTypeDetails | undefined>;
    /**
     * The name for the pluggable database (PDB). The name is unique in the context of a [container database](https://docs.cloud.oracle.com/iaas/api/#/en/database/latest/Database/). The name must begin with an alphabetic character and can contain a maximum of thirty alphanumeric characters. Special characters are not permitted. The pluggable database name should not be same as the container database name.
     */
    pdbName: pulumi.Input<string>;
    /**
     * (Updatable) An optional property when incremented triggers Refresh. Could be set to any integer value.
     */
    refreshTrigger?: pulumi.Input<number | undefined>;
    /**
     * (Updatable) An optional property when incremented triggers Rotate Key. Could be set to any integer value.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    rotateKeyTrigger?: pulumi.Input<number | undefined>;
    /**
     * Indicates whether to take Pluggable Database Backup after the operation.
     */
    shouldCreatePdbBackup?: pulumi.Input<boolean | undefined>;
    /**
     * The locked mode of the pluggable database admin account. If false, the user needs to provide the PDB Admin Password to connect to it. If true, the pluggable database will be locked and user cannot login to it.
     */
    shouldPdbAdminAccountBeLocked?: pulumi.Input<boolean | undefined>;
    /**
     * The existing TDE wallet password of the CDB.
     */
    tdeWalletPassword?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=pluggableDatabase.d.ts.map