import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource provides the Database Snapshot Standby resource in Oracle Cloud Infrastructure Database service.
 *
 * Performs transition from standby database into a snapshot standby and vice versa.
 * The transition performed based on the current role of the database, if the current role is standby then this operation will convert it to snapshot standby and if the current role is snapshot standby then this operation will convert it to standby.
 *
 * This operation should be performed on respective standby/snapshot standby database.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testDatabaseSnapshotStandby = new oci.database.DatabaseSnapshotStandby("test_database_snapshot_standby", {
 *     databaseAdminPassword: databaseSnapshotStandbyDatabaseAdminPassword,
 *     databaseId: testDatabase.id,
 *     standbyConversionType: databaseSnapshotStandbyStandbyConversionType,
 *     snapshotDurationInDays: Number(databaseSnapshotStandbySnapshotDurationInDays),
 * });
 * ```
 *
 * ## Import
 *
 * DatabaseSnapshotStandby can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:Database/databaseSnapshotStandby:DatabaseSnapshotStandby test_database_snapshot_standby "id"
 * ```
 */
export declare class DatabaseSnapshotStandby extends pulumi.CustomResource {
    /**
     * Get an existing DatabaseSnapshotStandby 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?: DatabaseSnapshotStandbyState, opts?: pulumi.CustomResourceOptions): DatabaseSnapshotStandby;
    /**
     * Returns true if the given object is an instance of DatabaseSnapshotStandby.  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 DatabaseSnapshotStandby;
    /**
     * The character set for the database.
     */
    readonly characterSet: pulumi.Output<string>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
     */
    readonly compartmentId: pulumi.Output<string>;
    /**
     * The Connection strings used to connect to the Oracle Database.
     */
    readonly connectionStrings: pulumi.Output<outputs.Database.DatabaseSnapshotStandbyConnectionString[]>;
    /**
     * Details of Data Guard setup that the given database is part of.  Also includes information about databases part of this Data Guard group and properties for their Data Guard configuration.
     */
    readonly dataGuardGroups: pulumi.Output<outputs.Database.DatabaseSnapshotStandbyDataGuardGroup[]>;
    /**
     * The administrator password of the primary database in this Data Guard association.
     *
     * **The password MUST be the same as the primary admin password.**
     */
    readonly databaseAdminPassword: pulumi.Output<string>;
    /**
     * The database [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
     */
    readonly databaseId: pulumi.Output<string>;
    /**
     * The configuration of the Database Management service.
     */
    readonly databaseManagementConfigs: pulumi.Output<outputs.Database.DatabaseSnapshotStandbyDatabaseManagementConfig[]>;
    /**
     * The database software image [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
     */
    readonly databaseSoftwareImageId: pulumi.Output<string>;
    /**
     * Backup Options To use any of the API operations, you must be authorized in an IAM policy. If you're not authorized, talk to an administrator. If you're an administrator who needs to write policies to give users access, see [Getting Started with Policies](https://docs.cloud.oracle.com/iaas/Content/Identity/Concepts/policygetstarted.htm).
     */
    readonly dbBackupConfigs: pulumi.Output<outputs.Database.DatabaseSnapshotStandbyDbBackupConfig[]>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Database Home.
     */
    readonly dbHomeId: pulumi.Output<string>;
    /**
     * The database name.
     */
    readonly dbName: pulumi.Output<string>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the DB system.
     */
    readonly dbSystemId: pulumi.Output<string>;
    /**
     * A system-generated name for the database to ensure uniqueness within an Oracle Data Guard group (a primary database and its standby databases). The unique name cannot be changed.
     */
    readonly dbUniqueName: pulumi.Output<string>;
    /**
     * **Deprecated.** The dbWorkload field has been deprecated for Exadata Database Service on Dedicated Infrastructure, Exadata Database Service on Cloud@Customer, and Base Database Service. Support for this attribute will end in November 2023. You may choose to update your custom scripts to exclude the dbWorkload attribute. After November 2023 if you pass a value to the dbWorkload attribute, it will be ignored.
     */
    readonly dbWorkload: pulumi.Output<string>;
    /**
     * 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;
    }>;
    /**
     * 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;
    }>;
    /**
     * True if the database is a container database.
     */
    readonly isCdb: pulumi.Output<boolean>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the key store of Oracle Vault.
     */
    readonly keyStoreId: pulumi.Output<string>;
    /**
     * The wallet name for Oracle Key Vault.
     */
    readonly keyStoreWalletName: pulumi.Output<string>;
    /**
     * The OCID of the key container that is used as the master encryption key in database transparent data encryption (TDE) operations.
     */
    readonly kmsKeyId: pulumi.Output<string>;
    /**
     * 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 Database Serverless does not use key versions, hence is not applicable for Autonomous Database Serverless instances.
     */
    readonly kmsKeyVersionId: pulumi.Output<string>;
    /**
     * The duration when the latest database backup created.
     */
    readonly lastBackupDurationInSeconds: pulumi.Output<number>;
    /**
     * The date and time when the latest database backup was created.
     */
    readonly lastBackupTimestamp: pulumi.Output<string>;
    /**
     * The date and time when the latest database backup failed.
     */
    readonly lastFailedBackupTimestamp: pulumi.Output<string>;
    /**
     * Additional information about the current lifecycle state.
     */
    readonly lifecycleDetails: pulumi.Output<string>;
    /**
     * The national character set for the database.
     */
    readonly ncharacterSet: pulumi.Output<string>;
    /**
     * The name of the pluggable database. The name must begin with an alphabetic character and can contain a maximum of thirty alphanumeric characters. Special characters are not permitted. Pluggable database should not be same as database name.
     */
    readonly pdbName: pulumi.Output<string>;
    /**
     * Specifies a prefix for the `Oracle SID` of the database to be created.
     */
    readonly sidPrefix: pulumi.Output<string>;
    /**
     * SnapshotDurationInDays is the duration in day(s) after which the Snapshot Standby Database will get converted back to Physical Standby. The minimum value of snapshotDurationInDays is 3 days and maximum value is 14 days. Default value will be 7 days if not provided in the Request.
     *
     * This field is only applicable if the requested database role is snapshot standby.
     */
    readonly snapshotDurationInDays: pulumi.Output<number>;
    /**
     * Point in time recovery timeStamp of the source database at which cloned database system is cloned from the source database system, as described in [RFC 3339](https://tools.ietf.org/rfc/rfc3339)
     */
    readonly sourceDatabasePointInTimeRecoveryTimestamp: pulumi.Output<string>;
    /**
     * Defines the conversion type of the standby database. Specify this to convert a physical standby to a snapshot standby and vice versa.
     *
     * Valid standbyConversionType:
     * * SNAPSHOT
     * * PHYSICAL
     *
     *
     * ** 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 standbyConversionType: pulumi.Output<string>;
    /**
     * The current state of the database.
     */
    readonly state: pulumi.Output<string>;
    /**
     * The date and time the database was created.
     */
    readonly timeCreated: pulumi.Output<string>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Oracle Cloud Infrastructure [vault](https://docs.cloud.oracle.com/iaas/Content/KeyManagement/Concepts/keyoverview.htm#concepts). This parameter and `secretId` are required for Customer Managed Keys.
     */
    readonly vaultId: pulumi.Output<string>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VM cluster.
     */
    readonly vmClusterId: pulumi.Output<string>;
    /**
     * Create a DatabaseSnapshotStandby 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: DatabaseSnapshotStandbyArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering DatabaseSnapshotStandby resources.
 */
export interface DatabaseSnapshotStandbyState {
    /**
     * The character set for the database.
     */
    characterSet?: pulumi.Input<string | undefined>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
     */
    compartmentId?: pulumi.Input<string | undefined>;
    /**
     * The Connection strings used to connect to the Oracle Database.
     */
    connectionStrings?: pulumi.Input<pulumi.Input<inputs.Database.DatabaseSnapshotStandbyConnectionString>[] | undefined>;
    /**
     * Details of Data Guard setup that the given database is part of.  Also includes information about databases part of this Data Guard group and properties for their Data Guard configuration.
     */
    dataGuardGroups?: pulumi.Input<pulumi.Input<inputs.Database.DatabaseSnapshotStandbyDataGuardGroup>[] | undefined>;
    /**
     * The administrator password of the primary database in this Data Guard association.
     *
     * **The password MUST be the same as the primary admin password.**
     */
    databaseAdminPassword?: pulumi.Input<string | undefined>;
    /**
     * The database [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
     */
    databaseId?: pulumi.Input<string | undefined>;
    /**
     * The configuration of the Database Management service.
     */
    databaseManagementConfigs?: pulumi.Input<pulumi.Input<inputs.Database.DatabaseSnapshotStandbyDatabaseManagementConfig>[] | undefined>;
    /**
     * The database software image [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
     */
    databaseSoftwareImageId?: pulumi.Input<string | undefined>;
    /**
     * Backup Options To use any of the API operations, you must be authorized in an IAM policy. If you're not authorized, talk to an administrator. If you're an administrator who needs to write policies to give users access, see [Getting Started with Policies](https://docs.cloud.oracle.com/iaas/Content/Identity/Concepts/policygetstarted.htm).
     */
    dbBackupConfigs?: pulumi.Input<pulumi.Input<inputs.Database.DatabaseSnapshotStandbyDbBackupConfig>[] | undefined>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Database Home.
     */
    dbHomeId?: pulumi.Input<string | undefined>;
    /**
     * The database name.
     */
    dbName?: pulumi.Input<string | undefined>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the DB system.
     */
    dbSystemId?: pulumi.Input<string | undefined>;
    /**
     * A system-generated name for the database to ensure uniqueness within an Oracle Data Guard group (a primary database and its standby databases). The unique name cannot be changed.
     */
    dbUniqueName?: pulumi.Input<string | undefined>;
    /**
     * **Deprecated.** The dbWorkload field has been deprecated for Exadata Database Service on Dedicated Infrastructure, Exadata Database Service on Cloud@Customer, and Base Database Service. Support for this attribute will end in November 2023. You may choose to update your custom scripts to exclude the dbWorkload attribute. After November 2023 if you pass a value to the dbWorkload attribute, it will be ignored.
     */
    dbWorkload?: pulumi.Input<string | undefined>;
    /**
     * 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>;
    /**
     * 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>;
    /**
     * True if the database is a container database.
     */
    isCdb?: pulumi.Input<boolean | undefined>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the key store of Oracle Vault.
     */
    keyStoreId?: pulumi.Input<string | undefined>;
    /**
     * The wallet name for Oracle Key Vault.
     */
    keyStoreWalletName?: pulumi.Input<string | undefined>;
    /**
     * The OCID of the key container that is used as the master encryption key in database transparent data encryption (TDE) operations.
     */
    kmsKeyId?: 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 Database Serverless does not use key versions, hence is not applicable for Autonomous Database Serverless instances.
     */
    kmsKeyVersionId?: pulumi.Input<string | undefined>;
    /**
     * The duration when the latest database backup created.
     */
    lastBackupDurationInSeconds?: pulumi.Input<number | undefined>;
    /**
     * The date and time when the latest database backup was created.
     */
    lastBackupTimestamp?: pulumi.Input<string | undefined>;
    /**
     * The date and time when the latest database backup failed.
     */
    lastFailedBackupTimestamp?: pulumi.Input<string | undefined>;
    /**
     * Additional information about the current lifecycle state.
     */
    lifecycleDetails?: pulumi.Input<string | undefined>;
    /**
     * The national character set for the database.
     */
    ncharacterSet?: pulumi.Input<string | undefined>;
    /**
     * The name of the pluggable database. The name must begin with an alphabetic character and can contain a maximum of thirty alphanumeric characters. Special characters are not permitted. Pluggable database should not be same as database name.
     */
    pdbName?: pulumi.Input<string | undefined>;
    /**
     * Specifies a prefix for the `Oracle SID` of the database to be created.
     */
    sidPrefix?: pulumi.Input<string | undefined>;
    /**
     * SnapshotDurationInDays is the duration in day(s) after which the Snapshot Standby Database will get converted back to Physical Standby. The minimum value of snapshotDurationInDays is 3 days and maximum value is 14 days. Default value will be 7 days if not provided in the Request.
     *
     * This field is only applicable if the requested database role is snapshot standby.
     */
    snapshotDurationInDays?: pulumi.Input<number | undefined>;
    /**
     * Point in time recovery timeStamp of the source database at which cloned database system is cloned from the source database system, as described in [RFC 3339](https://tools.ietf.org/rfc/rfc3339)
     */
    sourceDatabasePointInTimeRecoveryTimestamp?: pulumi.Input<string | undefined>;
    /**
     * Defines the conversion type of the standby database. Specify this to convert a physical standby to a snapshot standby and vice versa.
     *
     * Valid standbyConversionType:
     * * SNAPSHOT
     * * PHYSICAL
     *
     *
     * ** 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
     */
    standbyConversionType?: pulumi.Input<string | undefined>;
    /**
     * The current state of the database.
     */
    state?: pulumi.Input<string | undefined>;
    /**
     * The date and time the database was created.
     */
    timeCreated?: pulumi.Input<string | undefined>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Oracle Cloud Infrastructure [vault](https://docs.cloud.oracle.com/iaas/Content/KeyManagement/Concepts/keyoverview.htm#concepts). This parameter and `secretId` are required for Customer Managed Keys.
     */
    vaultId?: pulumi.Input<string | undefined>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VM cluster.
     */
    vmClusterId?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a DatabaseSnapshotStandby resource.
 */
export interface DatabaseSnapshotStandbyArgs {
    /**
     * The administrator password of the primary database in this Data Guard association.
     *
     * **The password MUST be the same as the primary admin password.**
     */
    databaseAdminPassword: pulumi.Input<string>;
    /**
     * The database [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
     */
    databaseId: pulumi.Input<string>;
    /**
     * SnapshotDurationInDays is the duration in day(s) after which the Snapshot Standby Database will get converted back to Physical Standby. The minimum value of snapshotDurationInDays is 3 days and maximum value is 14 days. Default value will be 7 days if not provided in the Request.
     *
     * This field is only applicable if the requested database role is snapshot standby.
     */
    snapshotDurationInDays?: pulumi.Input<number | undefined>;
    /**
     * Defines the conversion type of the standby database. Specify this to convert a physical standby to a snapshot standby and vice versa.
     *
     * Valid standbyConversionType:
     * * SNAPSHOT
     * * PHYSICAL
     *
     *
     * ** 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
     */
    standbyConversionType: pulumi.Input<string>;
}
//# sourceMappingURL=databaseSnapshotStandby.d.ts.map