import * as pulumi from "@pulumi/pulumi";
/**
 * Provides a resource to manage redis backup restore
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as volcengine from "@pulumi/volcengine";
 * import * as volcengine from "@volcengine/pulumi";
 *
 * const fooZones = volcengine.ecs.getZones({});
 * const fooVpc = new volcengine.vpc.Vpc("fooVpc", {
 *     vpcName: "acc-test-vpc",
 *     cidrBlock: "172.16.0.0/16",
 * });
 * const fooSubnet = new volcengine.vpc.Subnet("fooSubnet", {
 *     subnetName: "acc-test-subnet",
 *     cidrBlock: "172.16.0.0/24",
 *     zoneId: fooZones.then(fooZones => fooZones.zones?.[0]?.id),
 *     vpcId: fooVpc.id,
 * });
 * const fooInstance = new volcengine.redis.Instance("fooInstance", {
 *     zoneIds: [fooZones.then(fooZones => fooZones.zones?.[0]?.id)],
 *     instanceName: "acc-test-tf-redis",
 *     shardedCluster: 1,
 *     password: "1qaz!QAZ12",
 *     nodeNumber: 2,
 *     shardCapacity: 1024,
 *     shardNumber: 2,
 *     engineVersion: "5.0",
 *     subnetId: fooSubnet.id,
 *     deletionProtection: "disabled",
 *     vpcAuthMode: "close",
 *     chargeType: "PostPaid",
 *     port: 6381,
 *     projectName: "default",
 * });
 * const fooBackup = new volcengine.redis.Backup("fooBackup", {instanceId: fooInstance.id});
 * const fooBackupRestore = new volcengine.redis.BackupRestore("fooBackupRestore", {
 *     instanceId: fooInstance.id,
 *     timePoint: fooBackup.endTime,
 *     backupType: "Full",
 * });
 * ```
 *
 * ## Import
 *
 * Redis Backup Restore can be imported using the restore:instanceId, e.g.
 *
 * ```sh
 * $ pulumi import volcengine:redis/backupRestore:BackupRestore default restore:redis-asdljioeixxxx
 * ```
 */
export declare class BackupRestore extends pulumi.CustomResource {
    /**
     * Get an existing BackupRestore 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?: BackupRestoreState, opts?: pulumi.CustomResourceOptions): BackupRestore;
    /**
     * Returns true if the given object is an instance of BackupRestore.  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 BackupRestore;
    /**
     * Backup ID, used to specify the backups to be used when restoring by the backup set. When choosing to restore by backup set (i.e., BackupType is Full), this parameter is required. Use lifecycle and ignoreChanges in import.
     */
    readonly backupPointId: pulumi.Output<string | undefined>;
    /**
     * The type of backup. The value can be Full or Inc.
     */
    readonly backupType: pulumi.Output<string | undefined>;
    /**
     * Id of instance.
     */
    readonly instanceId: pulumi.Output<string>;
    /**
     * Time point of backup, for example: 2021-11-09T06:07:26Z. Use lifecycle and ignoreChanges in import.
     */
    readonly timePoint: pulumi.Output<string | undefined>;
    /**
     * Create a BackupRestore 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: BackupRestoreArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering BackupRestore resources.
 */
export interface BackupRestoreState {
    /**
     * Backup ID, used to specify the backups to be used when restoring by the backup set. When choosing to restore by backup set (i.e., BackupType is Full), this parameter is required. Use lifecycle and ignoreChanges in import.
     */
    backupPointId?: pulumi.Input<string>;
    /**
     * The type of backup. The value can be Full or Inc.
     */
    backupType?: pulumi.Input<string>;
    /**
     * Id of instance.
     */
    instanceId?: pulumi.Input<string>;
    /**
     * Time point of backup, for example: 2021-11-09T06:07:26Z. Use lifecycle and ignoreChanges in import.
     */
    timePoint?: pulumi.Input<string>;
}
/**
 * The set of arguments for constructing a BackupRestore resource.
 */
export interface BackupRestoreArgs {
    /**
     * Backup ID, used to specify the backups to be used when restoring by the backup set. When choosing to restore by backup set (i.e., BackupType is Full), this parameter is required. Use lifecycle and ignoreChanges in import.
     */
    backupPointId?: pulumi.Input<string>;
    /**
     * The type of backup. The value can be Full or Inc.
     */
    backupType?: pulumi.Input<string>;
    /**
     * Id of instance.
     */
    instanceId: pulumi.Input<string>;
    /**
     * Time point of backup, for example: 2021-11-09T06:07:26Z. Use lifecycle and ignoreChanges in import.
     */
    timePoint?: pulumi.Input<string>;
}
