import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource provides the Volume Group Backup resource in Oracle Cloud Infrastructure Core service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/iaas/latest/VolumeGroupBackup
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/
 *
 * Creates a new backup volume group of the specified volume group.
 * For more information, see [Volume Groups](https://docs.cloud.oracle.com/iaas/Content/Block/Concepts/volumegroups.htm).
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testVolumeGroupBackup = new oci.core.VolumeGroupBackup("test_volume_group_backup", {
 *     volumeGroupId: testVolumeGroup.id,
 *     compartmentId: compartmentId,
 *     definedTags: {
 *         "Operations.CostCenter": "42",
 *     },
 *     displayName: volumeGroupBackupDisplayName,
 *     freeformTags: {
 *         Department: "Finance",
 *     },
 *     type: volumeGroupBackupType,
 * });
 * ```
 *
 * ## Import
 *
 * VolumeGroupBackups can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:Core/volumeGroupBackup:VolumeGroupBackup test_volume_group_backup "id"
 * ```
 */
export declare class VolumeGroupBackup extends pulumi.CustomResource {
    /**
     * Get an existing VolumeGroupBackup 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?: VolumeGroupBackupState, opts?: pulumi.CustomResourceOptions): VolumeGroupBackup;
    /**
     * Returns true if the given object is an instance of VolumeGroupBackup.  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 VolumeGroupBackup;
    /**
     * (Updatable) The OCID of the compartment that will contain the volume group backup. This parameter is optional, by default backup will be created in the same compartment and source volume group.
     */
    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 group backup will expire and be automatically deleted. Format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). This parameter will always be present for volume group backups that were created automatically by a scheduled-backup policy. For manually created volume group 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;
    }>;
    /**
     * The aggregate size of the volume group backup, in GBs.
     */
    readonly sizeInGbs: pulumi.Output<string>;
    /**
     * The aggregate size of the volume group backup, in MBs.
     */
    readonly sizeInMbs: pulumi.Output<string>;
    /**
     * Details of the volume group backup source in the cloud.
     */
    readonly sourceDetails: pulumi.Output<outputs.Core.VolumeGroupBackupSourceDetails | undefined>;
    /**
     * Specifies whether the volume group backup was created manually, or via scheduled backup policy.
     */
    readonly sourceType: pulumi.Output<string>;
    /**
     * The OCID of the source volume group backup.
     */
    readonly sourceVolumeGroupBackupId: pulumi.Output<string>;
    /**
     * The current state of a volume group backup.
     */
    readonly state: pulumi.Output<string>;
    /**
     * The date and time the volume group backup was created. This is the time the actual point-in-time image of the volume group 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 group 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.
     * * Allowed values are :
     * * FULL
     * * INCREMENTAL
     */
    readonly type: pulumi.Output<string>;
    /**
     * The aggregate size used by the volume group backup, in GBs.  It is typically smaller than `sizeInGbs`, depending on the space consumed on the volume group and whether the volume backup is full or incremental.
     */
    readonly uniqueSizeInGbs: pulumi.Output<string>;
    /**
     * The aggregate size used by the volume group backup, in MBs.  It is typically smaller than `sizeInMbs`, depending on the space consumed on the volume group and whether the volume backup is full or incremental.
     */
    readonly uniqueSizeInMbs: pulumi.Output<string>;
    /**
     * OCIDs for the volume backups in this volume group backup.
     */
    readonly volumeBackupIds: pulumi.Output<string[]>;
    /**
     * The OCID of the volume group that needs to be backed up.
     */
    readonly volumeGroupId: pulumi.Output<string>;
    /**
     * Create a VolumeGroupBackup 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?: VolumeGroupBackupArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering VolumeGroupBackup resources.
 */
export interface VolumeGroupBackupState {
    /**
     * (Updatable) The OCID of the compartment that will contain the volume group backup. This parameter is optional, by default backup will be created in the same compartment and source volume group.
     */
    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 group backup will expire and be automatically deleted. Format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). This parameter will always be present for volume group backups that were created automatically by a scheduled-backup policy. For manually created volume group 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>;
    /**
     * The aggregate size of the volume group backup, in GBs.
     */
    sizeInGbs?: pulumi.Input<string | undefined>;
    /**
     * The aggregate size of the volume group backup, in MBs.
     */
    sizeInMbs?: pulumi.Input<string | undefined>;
    /**
     * Details of the volume group backup source in the cloud.
     */
    sourceDetails?: pulumi.Input<inputs.Core.VolumeGroupBackupSourceDetails | undefined>;
    /**
     * Specifies whether the volume group backup was created manually, or via scheduled backup policy.
     */
    sourceType?: pulumi.Input<string | undefined>;
    /**
     * The OCID of the source volume group backup.
     */
    sourceVolumeGroupBackupId?: pulumi.Input<string | undefined>;
    /**
     * The current state of a volume group backup.
     */
    state?: pulumi.Input<string | undefined>;
    /**
     * The date and time the volume group backup was created. This is the time the actual point-in-time image of the volume group 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 group 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.
     * * Allowed values are :
     * * FULL
     * * INCREMENTAL
     */
    type?: pulumi.Input<string | undefined>;
    /**
     * The aggregate size used by the volume group backup, in GBs.  It is typically smaller than `sizeInGbs`, depending on the space consumed on the volume group and whether the volume backup is full or incremental.
     */
    uniqueSizeInGbs?: pulumi.Input<string | undefined>;
    /**
     * The aggregate size used by the volume group backup, in MBs.  It is typically smaller than `sizeInMbs`, depending on the space consumed on the volume group and whether the volume backup is full or incremental.
     */
    uniqueSizeInMbs?: pulumi.Input<string | undefined>;
    /**
     * OCIDs for the volume backups in this volume group backup.
     */
    volumeBackupIds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The OCID of the volume group that needs to be backed up.
     */
    volumeGroupId?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a VolumeGroupBackup resource.
 */
export interface VolumeGroupBackupArgs {
    /**
     * (Updatable) The OCID of the compartment that will contain the volume group backup. This parameter is optional, by default backup will be created in the same compartment and source volume group.
     */
    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>;
    /**
     * Details of the volume group backup source in the cloud.
     */
    sourceDetails?: pulumi.Input<inputs.Core.VolumeGroupBackupSourceDetails | undefined>;
    /**
     * The type of backup to create. If omitted, defaults to incremental.
     * * Allowed values are :
     * * FULL
     * * INCREMENTAL
     */
    type?: pulumi.Input<string | undefined>;
    /**
     * The OCID of the volume group that needs to be backed up.
     */
    volumeGroupId?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=volumeGroupBackup.d.ts.map