import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource provides the Volume Backup resource in Oracle Cloud Infrastructure Core service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/iaas/latest/VolumeBackup
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/
 *
 * Creates a new backup of the specified volume. For general information about volume backups,
 * see [Overview of Block Volume Service Backups](https://docs.cloud.oracle.com/iaas/Content/Block/Concepts/blockvolumebackups.htm)
 *
 * When the request is received, the backup object is in a REQUEST_RECEIVED state.
 * When the data is imaged, it goes into a CREATING state.
 * After the backup is fully uploaded to the cloud, it goes into an AVAILABLE state.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testVolumeBackup = new oci.core.VolumeBackup("test_volume_backup", {
 *     volumeId: testVolume.id,
 *     definedTags: {
 *         "Operations.CostCenter": "42",
 *     },
 *     displayName: volumeBackupDisplayName,
 *     freeformTags: {
 *         Department: "Finance",
 *     },
 *     kmsKeyId: testKey.id,
 *     type: volumeBackupType,
 * });
 * ```
 *
 * ## Import
 *
 * VolumeBackups can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:Core/volumeBackup:VolumeBackup test_volume_backup "id"
 * ```
 */
export declare class VolumeBackup extends pulumi.CustomResource {
    /**
     * Get an existing VolumeBackup 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?: VolumeBackupState, opts?: pulumi.CustomResourceOptions): VolumeBackup;
    /**
     * Returns true if the given object is an instance of VolumeBackup.  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 VolumeBackup;
    /**
     * (Updatable) The OCID of the compartment that contains the volume backup.
     */
    readonly compartmentId: pulumi.Output<string>;
    /**
     * (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).  Example: `{"Operations.CostCenter": "42"}`
     */
    readonly definedTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * (Updatable) A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information.
     */
    readonly displayName: pulumi.Output<string>;
    /**
     * The date and time the volume backup will expire and be automatically deleted. Format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). This parameter will always be present for backups that were created automatically by a scheduled-backup policy. For manually created backups, it will be absent, signifying that there is no expiration time and the backup will last forever until manually deleted.
     */
    readonly expirationTime: pulumi.Output<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;
    }>;
    /**
     * (Updatable) The OCID of the Vault service key which is the master encryption key for the volume backup. For more information about the Vault service and encryption keys, see [Overview of Vault service](https://docs.cloud.oracle.com/iaas/Content/KeyManagement/Concepts/keyoverview.htm) and [Using Keys](https://docs.cloud.oracle.com/iaas/Content/KeyManagement/Tasks/usingkeys.htm).
     */
    readonly kmsKeyId: pulumi.Output<string>;
    /**
     * The size of the volume, in GBs.
     */
    readonly sizeInGbs: pulumi.Output<string>;
    /**
     * The size of the volume in MBs. The value must be a multiple of 1024. This field is deprecated. Please use `sizeInGbs`.
     *
     * @deprecated The 'size_in_mbs' field has been deprecated. Please use 'size_in_gbs' instead.
     */
    readonly sizeInMbs: pulumi.Output<string>;
    /**
     * Details of the volume backup source in the cloud.
     */
    readonly sourceDetails: pulumi.Output<outputs.Core.VolumeBackupSourceDetails | undefined>;
    /**
     * Specifies whether the backup was created manually, or via scheduled backup policy.
     */
    readonly sourceType: pulumi.Output<string>;
    /**
     * The OCID of the source volume backup.
     */
    readonly sourceVolumeBackupId: pulumi.Output<string>;
    /**
     * The current state of a volume backup.
     */
    readonly state: pulumi.Output<string>;
    /**
     * System tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"foo-namespace.bar-key": "value"}`
     */
    readonly systemTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * The date and time the volume backup was created. This is the time the actual point-in-time image of the volume data was taken. Format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
     */
    readonly timeCreated: pulumi.Output<string>;
    /**
     * The date and time the request to create the volume backup was received. Format defined by [RFC3339]https://tools.ietf.org/html/rfc3339.
     */
    readonly timeRequestReceived: pulumi.Output<string>;
    /**
     * The type of backup to create. If omitted, defaults to INCREMENTAL. Supported values are 'FULL' or 'INCREMENTAL'.
     */
    readonly type: pulumi.Output<string>;
    /**
     * The size used by the backup, in GBs. It is typically smaller than sizeInGBs, depending on the space consumed on the volume and whether the backup is full or incremental.
     */
    readonly uniqueSizeInGbs: pulumi.Output<string>;
    /**
     * The size used by the backup, in MBs. It is typically smaller than sizeInMBs, depending on the space consumed on the volume and whether the backup is full or incremental. This field is deprecated. Please use uniqueSizeInGBs.
     *
     * @deprecated The 'unique_size_in_mbs' field has been deprecated. Please use 'unique_size_in_gbs' instead.
     */
    readonly uniqueSizeInMbs: pulumi.Output<string>;
    /**
     * The OCID of the volume that needs to be backed up.**Note: To create the resource either `volumeId` or `sourceDetails` is required to be set.
     */
    readonly volumeId: pulumi.Output<string>;
    /**
     * Create a VolumeBackup 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?: VolumeBackupArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering VolumeBackup resources.
 */
export interface VolumeBackupState {
    /**
     * (Updatable) The OCID of the compartment that contains the volume backup.
     */
    compartmentId?: pulumi.Input<string | 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).  Example: `{"Operations.CostCenter": "42"}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information.
     */
    displayName?: pulumi.Input<string | undefined>;
    /**
     * The date and time the volume backup will expire and be automatically deleted. Format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). This parameter will always be present for backups that were created automatically by a scheduled-backup policy. For manually created backups, it will be absent, signifying that there is no expiration time and the backup will last forever until manually deleted.
     */
    expirationTime?: 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>;
    /**
     * (Updatable) The OCID of the Vault service key which is the master encryption key for the volume backup. For more information about the Vault service and encryption keys, see [Overview of Vault service](https://docs.cloud.oracle.com/iaas/Content/KeyManagement/Concepts/keyoverview.htm) and [Using Keys](https://docs.cloud.oracle.com/iaas/Content/KeyManagement/Tasks/usingkeys.htm).
     */
    kmsKeyId?: pulumi.Input<string | undefined>;
    /**
     * The size of the volume, in GBs.
     */
    sizeInGbs?: pulumi.Input<string | undefined>;
    /**
     * The size of the volume in MBs. The value must be a multiple of 1024. This field is deprecated. Please use `sizeInGbs`.
     *
     * @deprecated The 'size_in_mbs' field has been deprecated. Please use 'size_in_gbs' instead.
     */
    sizeInMbs?: pulumi.Input<string | undefined>;
    /**
     * Details of the volume backup source in the cloud.
     */
    sourceDetails?: pulumi.Input<inputs.Core.VolumeBackupSourceDetails | undefined>;
    /**
     * Specifies whether the backup was created manually, or via scheduled backup policy.
     */
    sourceType?: pulumi.Input<string | undefined>;
    /**
     * The OCID of the source volume backup.
     */
    sourceVolumeBackupId?: pulumi.Input<string | undefined>;
    /**
     * The current state of a volume backup.
     */
    state?: pulumi.Input<string | undefined>;
    /**
     * System tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"foo-namespace.bar-key": "value"}`
     */
    systemTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The date and time the volume backup was created. This is the time the actual point-in-time image of the volume data was taken. Format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
     */
    timeCreated?: pulumi.Input<string | undefined>;
    /**
     * The date and time the request to create the volume backup was received. Format defined by [RFC3339]https://tools.ietf.org/html/rfc3339.
     */
    timeRequestReceived?: pulumi.Input<string | undefined>;
    /**
     * The type of backup to create. If omitted, defaults to INCREMENTAL. Supported values are 'FULL' or 'INCREMENTAL'.
     */
    type?: pulumi.Input<string | undefined>;
    /**
     * The size used by the backup, in GBs. It is typically smaller than sizeInGBs, depending on the space consumed on the volume and whether the backup is full or incremental.
     */
    uniqueSizeInGbs?: pulumi.Input<string | undefined>;
    /**
     * The size used by the backup, in MBs. It is typically smaller than sizeInMBs, depending on the space consumed on the volume and whether the backup is full or incremental. This field is deprecated. Please use uniqueSizeInGBs.
     *
     * @deprecated The 'unique_size_in_mbs' field has been deprecated. Please use 'unique_size_in_gbs' instead.
     */
    uniqueSizeInMbs?: pulumi.Input<string | undefined>;
    /**
     * The OCID of the volume that needs to be backed up.**Note: To create the resource either `volumeId` or `sourceDetails` is required to be set.
     */
    volumeId?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a VolumeBackup resource.
 */
export interface VolumeBackupArgs {
    /**
     * (Updatable) The OCID of the compartment that contains the volume backup.
     */
    compartmentId?: pulumi.Input<string | 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).  Example: `{"Operations.CostCenter": "42"}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information.
     */
    displayName?: 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>;
    /**
     * (Updatable) The OCID of the Vault service key which is the master encryption key for the volume backup. For more information about the Vault service and encryption keys, see [Overview of Vault service](https://docs.cloud.oracle.com/iaas/Content/KeyManagement/Concepts/keyoverview.htm) and [Using Keys](https://docs.cloud.oracle.com/iaas/Content/KeyManagement/Tasks/usingkeys.htm).
     */
    kmsKeyId?: pulumi.Input<string | undefined>;
    /**
     * Details of the volume backup source in the cloud.
     */
    sourceDetails?: pulumi.Input<inputs.Core.VolumeBackupSourceDetails | undefined>;
    /**
     * The type of backup to create. If omitted, defaults to INCREMENTAL. Supported values are 'FULL' or 'INCREMENTAL'.
     */
    type?: pulumi.Input<string | undefined>;
    /**
     * The OCID of the volume that needs to be backed up.**Note: To create the resource either `volumeId` or `sourceDetails` is required to be set.
     */
    volumeId?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=volumeBackup.d.ts.map