import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource provides the Backup resource in Oracle Cloud Infrastructure Database service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/database/latest/Backup
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/database
 *
 * Creates a new backup in the specified database based on the request parameters you provide. If you previously used RMAN or dbcli to configure backups and then you switch to using the Console or the API for backups, a new backup configuration is created and associated with your database. This means that you can no longer rely on your previously configured unmanaged backups to work.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testBackup = new oci.database.Backup("test_backup", {
 *     databaseId: testDatabase.id,
 *     displayName: backupDisplayName,
 * });
 * ```
 *
 * ## Import
 *
 * Backups can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:Database/backup:Backup test_backup "id"
 * ```
 */
export declare class Backup extends pulumi.CustomResource {
    /**
     * Get an existing Backup 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?: BackupState, opts?: pulumi.CustomResourceOptions): Backup;
    /**
     * Returns true if the given object is an instance of Backup.  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 Backup;
    /**
     * The name of the availability domain where the database backup is stored.
     */
    readonly availabilityDomain: pulumi.Output<string>;
    readonly backupDestinationType: 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 Oracle Database Edition that applies to all the databases on the DB system. Exadata DB systems and 2-node RAC DB systems require ENTERPRISE_EDITION_EXTREME_PERFORMANCE.
     */
    readonly databaseEdition: pulumi.Output<string>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the database.
     */
    readonly databaseId: pulumi.Output<string>;
    /**
     * The size of the database in gigabytes at the time the backup was taken.
     */
    readonly databaseSizeInGbs: pulumi.Output<number>;
    /**
     * The user-friendly name for the backup. The name does not have to be unique.
     *
     *
     * ** 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 displayName: pulumi.Output<string>;
    /**
     * Types of providers supported for managing database encryption keys
     */
    readonly encryptionKeyLocationDetails: pulumi.Output<outputs.Database.BackupEncryptionKeyLocationDetail[]>;
    readonly isUsingOracleManagedKeys: 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 AI Database Serverless does not use key versions, hence is not applicable for Autonomous AI Database Serverless instances.
     */
    readonly kmsKeyVersionId: pulumi.Output<string>;
    /**
     * Additional information about the current lifecycle state.
     */
    readonly lifecycleDetails: pulumi.Output<string>;
    readonly retentionPeriodInDays: pulumi.Output<number>;
    readonly retentionPeriodInYears: pulumi.Output<number>;
    readonly secondaryKmsKeyIds: pulumi.Output<string[]>;
    /**
     * Shape of the backup's source database.
     */
    readonly shape: pulumi.Output<string>;
    /**
     * The current state of the backup.
     */
    readonly state: pulumi.Output<string>;
    /**
     * The date and time the backup was completed.
     */
    readonly timeEnded: pulumi.Output<string>;
    readonly timeExpiryScheduled: pulumi.Output<string>;
    /**
     * The date and time the backup started.
     */
    readonly timeStarted: pulumi.Output<string>;
    /**
     * The type of backup.
     */
    readonly type: 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>;
    /**
     * Version of the backup's source database
     */
    readonly version: pulumi.Output<string>;
    /**
     * Create a Backup 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: BackupArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Backup resources.
 */
export interface BackupState {
    /**
     * The name of the availability domain where the database backup is stored.
     */
    availabilityDomain?: pulumi.Input<string | undefined>;
    backupDestinationType?: 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 Oracle Database Edition that applies to all the databases on the DB system. Exadata DB systems and 2-node RAC DB systems require ENTERPRISE_EDITION_EXTREME_PERFORMANCE.
     */
    databaseEdition?: pulumi.Input<string | undefined>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the database.
     */
    databaseId?: pulumi.Input<string | undefined>;
    /**
     * The size of the database in gigabytes at the time the backup was taken.
     */
    databaseSizeInGbs?: pulumi.Input<number | undefined>;
    /**
     * The user-friendly name for the backup. The name does not have to be unique.
     *
     *
     * ** 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
     */
    displayName?: pulumi.Input<string | undefined>;
    /**
     * Types of providers supported for managing database encryption keys
     */
    encryptionKeyLocationDetails?: pulumi.Input<pulumi.Input<inputs.Database.BackupEncryptionKeyLocationDetail>[] | undefined>;
    isUsingOracleManagedKeys?: 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 AI Database Serverless does not use key versions, hence is not applicable for Autonomous AI Database Serverless instances.
     */
    kmsKeyVersionId?: pulumi.Input<string | undefined>;
    /**
     * Additional information about the current lifecycle state.
     */
    lifecycleDetails?: pulumi.Input<string | undefined>;
    retentionPeriodInDays?: pulumi.Input<number | undefined>;
    retentionPeriodInYears?: pulumi.Input<number | undefined>;
    secondaryKmsKeyIds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Shape of the backup's source database.
     */
    shape?: pulumi.Input<string | undefined>;
    /**
     * The current state of the backup.
     */
    state?: pulumi.Input<string | undefined>;
    /**
     * The date and time the backup was completed.
     */
    timeEnded?: pulumi.Input<string | undefined>;
    timeExpiryScheduled?: pulumi.Input<string | undefined>;
    /**
     * The date and time the backup started.
     */
    timeStarted?: pulumi.Input<string | undefined>;
    /**
     * The type of backup.
     */
    type?: 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>;
    /**
     * Version of the backup's source database
     */
    version?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a Backup resource.
 */
export interface BackupArgs {
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the database.
     */
    databaseId: pulumi.Input<string>;
    /**
     * The user-friendly name for the backup. The name does not have to be unique.
     *
     *
     * ** 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
     */
    displayName: pulumi.Input<string>;
    retentionPeriodInDays?: pulumi.Input<number | undefined>;
    retentionPeriodInYears?: pulumi.Input<number | undefined>;
}
//# sourceMappingURL=backup.d.ts.map