import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource provides the Mysql Backup resource in Oracle Cloud Infrastructure MySQL Database service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/mysql/latest/MysqlBackup
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/mysql
 *
 * Create a backup of a DB System.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testMysqlBackup = new oci.mysql.MysqlBackup("test_mysql_backup", {
 *     dbSystemId: testDbSystem.id,
 *     backupType: mysqlBackupBackupType,
 *     definedTags: {
 *         "foo-namespace.bar-key": "value",
 *     },
 *     description: mysqlBackupDescription,
 *     displayName: mysqlBackupDisplayName,
 *     freeformTags: {
 *         "bar-key": "value",
 *     },
 *     retentionInDays: Number(mysqlBackupRetentionInDays),
 *     softDelete: mysqlBackupSoftDelete,
 * });
 * ```
 *
 * ## Import
 *
 * MysqlBackups can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:Mysql/mysqlBackup:MysqlBackup test_mysql_backup "id"
 * ```
 */
export declare class MysqlBackup extends pulumi.CustomResource {
    /**
     * Get an existing MysqlBackup 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?: MysqlBackupState, opts?: pulumi.CustomResourceOptions): MysqlBackup;
    /**
     * Returns true if the given object is an instance of MysqlBackup.  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 MysqlBackup;
    /**
     * The size of the backup in base-2 (IEC) gibibytes. (GiB).
     */
    readonly backupSizeInGbs: pulumi.Output<number>;
    /**
     * The type of backup.
     */
    readonly backupType: pulumi.Output<string>;
    /**
     * Backup validation details.
     */
    readonly backupValidationDetails: pulumi.Output<outputs.Mysql.MysqlBackupBackupValidationDetail[]>;
    /**
     * (Updatable) The OCID of the compartment the backup exists in.
     */
    readonly compartmentId: pulumi.Output<string>;
    /**
     * Indicates how the backup was created: manually, automatic, or by an Operator.
     */
    readonly creationType: pulumi.Output<string>;
    /**
     * DEPRECATED: User specified size of the data volume. May be less than current allocatedStorageSizeInGBs. Replaced by dataStorage.dataStorageSizeInGBs.
     */
    readonly dataStorageSizeInGb: pulumi.Output<number>;
    /**
     * The OCID of the DB System the Backup is associated with.
     */
    readonly dbSystemId: pulumi.Output<string>;
    readonly dbSystemSnapshotSummaries: pulumi.Output<outputs.Mysql.MysqlBackupDbSystemSnapshotSummary[]>;
    /**
     * Snapshot of the DbSystem details at the time of the backup
     */
    readonly dbSystemSnapshots: pulumi.Output<outputs.Mysql.MysqlBackupDbSystemSnapshot[]>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"foo-namespace.bar-key": "value"}`
     */
    readonly definedTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * (Updatable) A user-supplied description for the backup.
     */
    readonly description: pulumi.Output<string>;
    /**
     * (Updatable) A user-supplied display name for the backup.
     */
    readonly displayName: pulumi.Output<string>;
    /**
     * Encrypt data details.
     */
    readonly encryptData: pulumi.Output<outputs.Mysql.MysqlBackupEncryptData>;
    /**
     * (Updatable) Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example: `{"bar-key": "value"}`
     */
    readonly freeformTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * The OCID of the immediate source DB system backup from which this DB system backup was copied.
     */
    readonly immediateSourceBackupId: pulumi.Output<string>;
    /**
     * Additional information about the current lifecycleState.
     */
    readonly lifecycleDetails: pulumi.Output<string>;
    /**
     * The MySQL server version of the DB System used for backup.
     */
    readonly mysqlVersion: pulumi.Output<string>;
    /**
     * The OCID of the original source DB system backup from which this DB system backup was copied.
     */
    readonly originalSourceBackupId: pulumi.Output<string>;
    /**
     * (Updatable) Number of days to retain this backup.
     */
    readonly retentionInDays: pulumi.Output<number>;
    /**
     * The shape of the DB System instance used for backup.
     */
    readonly shapeName: pulumi.Output<string>;
    /**
     * (Updatable) Retains the backup to be deleted due to the retention policy in DELETE SCHEDULED state for 7 days before permanently deleting it.
     */
    readonly softDelete: pulumi.Output<string>;
    /**
     * Details of backup source in the cloud.
     */
    readonly sourceDetails: pulumi.Output<outputs.Mysql.MysqlBackupSourceDetails | undefined>;
    /**
     * The state of the backup.
     */
    readonly state: pulumi.Output<string>;
    /**
     * Usage of system tag keys. These predefined keys are scoped to namespaces. Example: `{"orcl-cloud.free-tier-retained": "true"}`
     */
    readonly systemTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * The date and time the DB system backup copy was created, as described by [RFC 3339](https://tools.ietf.org/rfc/rfc3339).
     */
    readonly timeCopyCreated: pulumi.Output<string>;
    /**
     * The time the backup record was created.
     */
    readonly timeCreated: pulumi.Output<string>;
    /**
     * The time at which the backup was updated.
     */
    readonly timeUpdated: pulumi.Output<string>;
    readonly validateBackupDetails: pulumi.Output<outputs.Mysql.MysqlBackupValidateBackupDetail[] | undefined>;
    /**
     * (Updatable) An optional integer property when incremented will trigger a validation of the backup. Set the integer to 1 initially and increment it by 1 to re-trigger validation.
     * * `validate-backup-details` - Details required to validate backup. **Note:** Validate action can only be called from update resource operation.
     */
    readonly validateTrigger: pulumi.Output<number | undefined>;
    /**
     * Create a MysqlBackup 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?: MysqlBackupArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering MysqlBackup resources.
 */
export interface MysqlBackupState {
    /**
     * The size of the backup in base-2 (IEC) gibibytes. (GiB).
     */
    backupSizeInGbs?: pulumi.Input<number | undefined>;
    /**
     * The type of backup.
     */
    backupType?: pulumi.Input<string | undefined>;
    /**
     * Backup validation details.
     */
    backupValidationDetails?: pulumi.Input<pulumi.Input<inputs.Mysql.MysqlBackupBackupValidationDetail>[] | undefined>;
    /**
     * (Updatable) The OCID of the compartment the backup exists in.
     */
    compartmentId?: pulumi.Input<string | undefined>;
    /**
     * Indicates how the backup was created: manually, automatic, or by an Operator.
     */
    creationType?: pulumi.Input<string | undefined>;
    /**
     * DEPRECATED: User specified size of the data volume. May be less than current allocatedStorageSizeInGBs. Replaced by dataStorage.dataStorageSizeInGBs.
     */
    dataStorageSizeInGb?: pulumi.Input<number | undefined>;
    /**
     * The OCID of the DB System the Backup is associated with.
     */
    dbSystemId?: pulumi.Input<string | undefined>;
    dbSystemSnapshotSummaries?: pulumi.Input<pulumi.Input<inputs.Mysql.MysqlBackupDbSystemSnapshotSummary>[] | undefined>;
    /**
     * Snapshot of the DbSystem details at the time of the backup
     */
    dbSystemSnapshots?: pulumi.Input<pulumi.Input<inputs.Mysql.MysqlBackupDbSystemSnapshot>[] | undefined>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"foo-namespace.bar-key": "value"}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) A user-supplied description for the backup.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) A user-supplied display name for the backup.
     */
    displayName?: pulumi.Input<string | undefined>;
    /**
     * Encrypt data details.
     */
    encryptData?: pulumi.Input<inputs.Mysql.MysqlBackupEncryptData | undefined>;
    /**
     * (Updatable) Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example: `{"bar-key": "value"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The OCID of the immediate source DB system backup from which this DB system backup was copied.
     */
    immediateSourceBackupId?: pulumi.Input<string | undefined>;
    /**
     * Additional information about the current lifecycleState.
     */
    lifecycleDetails?: pulumi.Input<string | undefined>;
    /**
     * The MySQL server version of the DB System used for backup.
     */
    mysqlVersion?: pulumi.Input<string | undefined>;
    /**
     * The OCID of the original source DB system backup from which this DB system backup was copied.
     */
    originalSourceBackupId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Number of days to retain this backup.
     */
    retentionInDays?: pulumi.Input<number | undefined>;
    /**
     * The shape of the DB System instance used for backup.
     */
    shapeName?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Retains the backup to be deleted due to the retention policy in DELETE SCHEDULED state for 7 days before permanently deleting it.
     */
    softDelete?: pulumi.Input<string | undefined>;
    /**
     * Details of backup source in the cloud.
     */
    sourceDetails?: pulumi.Input<inputs.Mysql.MysqlBackupSourceDetails | undefined>;
    /**
     * The state of the backup.
     */
    state?: pulumi.Input<string | undefined>;
    /**
     * Usage of system tag keys. These predefined keys are scoped to namespaces. Example: `{"orcl-cloud.free-tier-retained": "true"}`
     */
    systemTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The date and time the DB system backup copy was created, as described by [RFC 3339](https://tools.ietf.org/rfc/rfc3339).
     */
    timeCopyCreated?: pulumi.Input<string | undefined>;
    /**
     * The time the backup record was created.
     */
    timeCreated?: pulumi.Input<string | undefined>;
    /**
     * The time at which the backup was updated.
     */
    timeUpdated?: pulumi.Input<string | undefined>;
    validateBackupDetails?: pulumi.Input<pulumi.Input<inputs.Mysql.MysqlBackupValidateBackupDetail>[] | undefined>;
    /**
     * (Updatable) An optional integer property when incremented will trigger a validation of the backup. Set the integer to 1 initially and increment it by 1 to re-trigger validation.
     * * `validate-backup-details` - Details required to validate backup. **Note:** Validate action can only be called from update resource operation.
     */
    validateTrigger?: pulumi.Input<number | undefined>;
}
/**
 * The set of arguments for constructing a MysqlBackup resource.
 */
export interface MysqlBackupArgs {
    /**
     * The type of backup.
     */
    backupType?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The OCID of the compartment the backup exists in.
     */
    compartmentId?: pulumi.Input<string | undefined>;
    /**
     * The OCID of the DB System the Backup is associated with.
     */
    dbSystemId?: pulumi.Input<string | undefined>;
    dbSystemSnapshotSummaries?: pulumi.Input<pulumi.Input<inputs.Mysql.MysqlBackupDbSystemSnapshotSummary>[] | undefined>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"foo-namespace.bar-key": "value"}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) A user-supplied description for the backup.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) A user-supplied display name for the backup.
     */
    displayName?: pulumi.Input<string | undefined>;
    /**
     * Encrypt data details.
     */
    encryptData?: pulumi.Input<inputs.Mysql.MysqlBackupEncryptData | undefined>;
    /**
     * (Updatable) Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example: `{"bar-key": "value"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) Number of days to retain this backup.
     */
    retentionInDays?: pulumi.Input<number | undefined>;
    /**
     * (Updatable) Retains the backup to be deleted due to the retention policy in DELETE SCHEDULED state for 7 days before permanently deleting it.
     */
    softDelete?: pulumi.Input<string | undefined>;
    /**
     * Details of backup source in the cloud.
     */
    sourceDetails?: pulumi.Input<inputs.Mysql.MysqlBackupSourceDetails | undefined>;
    validateBackupDetails?: pulumi.Input<pulumi.Input<inputs.Mysql.MysqlBackupValidateBackupDetail>[] | undefined>;
    /**
     * (Updatable) An optional integer property when incremented will trigger a validation of the backup. Set the integer to 1 initially and increment it by 1 to re-trigger validation.
     * * `validate-backup-details` - Details required to validate backup. **Note:** Validate action can only be called from update resource operation.
     */
    validateTrigger?: pulumi.Input<number | undefined>;
}
//# sourceMappingURL=mysqlBackup.d.ts.map