import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Manages a Proxmox VE cluster backup job.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as proxmoxve from "@muhlba91/pulumi-proxmoxve";
 *
 * const dailyBackup = new proxmoxve.backup.Job("daily_backup", {
 *     resourceId: "daily-backup",
 *     schedule: "*-*-* 02:00",
 *     storage: "local",
 *     all: true,
 *     mode: "snapshot",
 *     compress: "zstd",
 * });
 * ```
 *
 * ## Import
 *
 * ```sh
 * $ pulumi import proxmoxve:backup/job:Job daily_backup daily-backup
 * ```
 */
export declare class Job extends pulumi.CustomResource {
    /**
     * Get an existing Job 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?: JobState, opts?: pulumi.CustomResourceOptions): Job;
    /**
     * Returns true if the given object is an instance of Job.  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 Job;
    /**
     * Whether to back up all known guests on the node.
     */
    readonly all: pulumi.Output<boolean>;
    /**
     * I/O bandwidth limit in KiB/s.
     */
    readonly bwlimit: pulumi.Output<number>;
    /**
     * The compression algorithm (0, 1, gzip, lzo, or zstd).
     */
    readonly compress: pulumi.Output<string>;
    /**
     * Whether the backup job is enabled.
     */
    readonly enabled: pulumi.Output<boolean>;
    /**
     * A list of paths to exclude from the backup.
     */
    readonly excludePaths: pulumi.Output<string[] | undefined>;
    /**
     * Fleecing configuration for the backup job.
     */
    readonly fleecing: pulumi.Output<outputs.backup.JobFleecing | undefined>;
    /**
     * I/O priority (0-8).
     */
    readonly ionice: pulumi.Output<number>;
    /**
     * Maximum wait time in minutes for the global lock.
     */
    readonly lockwait: pulumi.Output<number | undefined>;
    /**
     * Email notification setting (always or failure).
     */
    readonly mailnotification: pulumi.Output<string>;
    /**
     * A list of email addresses to send notifications to.
     */
    readonly mailtos: pulumi.Output<string[] | undefined>;
    /**
     * Deprecated: use pruneBackups instead. Maximum number of backup files per guest.
     */
    readonly maxfiles: pulumi.Output<number | undefined>;
    /**
     * The backup mode (snapshot, suspend, or stop).
     */
    readonly mode: pulumi.Output<string>;
    /**
     * The cluster node name to limit the backup job to.
     */
    readonly node: pulumi.Output<string | undefined>;
    /**
     * Template for notes attached to the backup.
     */
    readonly notesTemplate: pulumi.Output<string | undefined>;
    /**
     * PBS change detection mode (legacy, data, or metadata).
     */
    readonly pbsChangeDetectionMode: pulumi.Output<string | undefined>;
    /**
     * Performance-related settings for the backup job.
     */
    readonly performance: pulumi.Output<outputs.backup.JobPerformance | undefined>;
    /**
     * Number of pigz threads (0 disables, 1 uses single-threaded gzip).
     */
    readonly pigz: pulumi.Output<number | undefined>;
    /**
     * Limit backup to guests in the specified pool.
     */
    readonly pool: pulumi.Output<string | undefined>;
    /**
     * Whether the backup should be marked as protected.
     */
    readonly protected: pulumi.Output<boolean>;
    /**
     * Retention options as a map of keep policies (e.g. keep-last = "3", keep-weekly = "2").
     */
    readonly pruneBackups: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * Whether to remove old backups if there are more than maxfiles.
     */
    readonly remove: pulumi.Output<boolean>;
    /**
     * Whether to repeat missed backup jobs as soon as possible.
     */
    readonly repeatMissed: pulumi.Output<boolean>;
    /**
     * The identifier of the backup job.
     */
    readonly resourceId: pulumi.Output<string>;
    /**
     * Backup schedule in systemd calendar event format.
     */
    readonly schedule: pulumi.Output<string>;
    /**
     * Path to a script to execute before/after the backup job.
     */
    readonly script: pulumi.Output<string | undefined>;
    /**
     * The scheduled start time (HH:MM).
     */
    readonly starttime: pulumi.Output<string | undefined>;
    /**
     * Whether to exclude common temporary files from the backup.
     */
    readonly stdexcludes: pulumi.Output<boolean>;
    /**
     * Maximum wait time in minutes for a guest to stop.
     */
    readonly stopwait: pulumi.Output<number | undefined>;
    /**
     * The storage identifier for the backup.
     */
    readonly storage: pulumi.Output<string>;
    /**
     * Path to the temporary directory for the backup job.
     */
    readonly tmpdir: pulumi.Output<string | undefined>;
    /**
     * A list of guest VM/CT IDs to include in the backup job.
     */
    readonly vmids: pulumi.Output<string[] | undefined>;
    /**
     * Number of zstd threads (0 uses half of available cores).
     */
    readonly zstd: pulumi.Output<number | undefined>;
    /**
     * Create a Job 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: JobArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Job resources.
 */
export interface JobState {
    /**
     * Whether to back up all known guests on the node.
     */
    all?: pulumi.Input<boolean | undefined>;
    /**
     * I/O bandwidth limit in KiB/s.
     */
    bwlimit?: pulumi.Input<number | undefined>;
    /**
     * The compression algorithm (0, 1, gzip, lzo, or zstd).
     */
    compress?: pulumi.Input<string | undefined>;
    /**
     * Whether the backup job is enabled.
     */
    enabled?: pulumi.Input<boolean | undefined>;
    /**
     * A list of paths to exclude from the backup.
     */
    excludePaths?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Fleecing configuration for the backup job.
     */
    fleecing?: pulumi.Input<inputs.backup.JobFleecing | undefined>;
    /**
     * I/O priority (0-8).
     */
    ionice?: pulumi.Input<number | undefined>;
    /**
     * Maximum wait time in minutes for the global lock.
     */
    lockwait?: pulumi.Input<number | undefined>;
    /**
     * Email notification setting (always or failure).
     */
    mailnotification?: pulumi.Input<string | undefined>;
    /**
     * A list of email addresses to send notifications to.
     */
    mailtos?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Deprecated: use pruneBackups instead. Maximum number of backup files per guest.
     */
    maxfiles?: pulumi.Input<number | undefined>;
    /**
     * The backup mode (snapshot, suspend, or stop).
     */
    mode?: pulumi.Input<string | undefined>;
    /**
     * The cluster node name to limit the backup job to.
     */
    node?: pulumi.Input<string | undefined>;
    /**
     * Template for notes attached to the backup.
     */
    notesTemplate?: pulumi.Input<string | undefined>;
    /**
     * PBS change detection mode (legacy, data, or metadata).
     */
    pbsChangeDetectionMode?: pulumi.Input<string | undefined>;
    /**
     * Performance-related settings for the backup job.
     */
    performance?: pulumi.Input<inputs.backup.JobPerformance | undefined>;
    /**
     * Number of pigz threads (0 disables, 1 uses single-threaded gzip).
     */
    pigz?: pulumi.Input<number | undefined>;
    /**
     * Limit backup to guests in the specified pool.
     */
    pool?: pulumi.Input<string | undefined>;
    /**
     * Whether the backup should be marked as protected.
     */
    protected?: pulumi.Input<boolean | undefined>;
    /**
     * Retention options as a map of keep policies (e.g. keep-last = "3", keep-weekly = "2").
     */
    pruneBackups?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * Whether to remove old backups if there are more than maxfiles.
     */
    remove?: pulumi.Input<boolean | undefined>;
    /**
     * Whether to repeat missed backup jobs as soon as possible.
     */
    repeatMissed?: pulumi.Input<boolean | undefined>;
    /**
     * The identifier of the backup job.
     */
    resourceId?: pulumi.Input<string | undefined>;
    /**
     * Backup schedule in systemd calendar event format.
     */
    schedule?: pulumi.Input<string | undefined>;
    /**
     * Path to a script to execute before/after the backup job.
     */
    script?: pulumi.Input<string | undefined>;
    /**
     * The scheduled start time (HH:MM).
     */
    starttime?: pulumi.Input<string | undefined>;
    /**
     * Whether to exclude common temporary files from the backup.
     */
    stdexcludes?: pulumi.Input<boolean | undefined>;
    /**
     * Maximum wait time in minutes for a guest to stop.
     */
    stopwait?: pulumi.Input<number | undefined>;
    /**
     * The storage identifier for the backup.
     */
    storage?: pulumi.Input<string | undefined>;
    /**
     * Path to the temporary directory for the backup job.
     */
    tmpdir?: pulumi.Input<string | undefined>;
    /**
     * A list of guest VM/CT IDs to include in the backup job.
     */
    vmids?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Number of zstd threads (0 uses half of available cores).
     */
    zstd?: pulumi.Input<number | undefined>;
}
/**
 * The set of arguments for constructing a Job resource.
 */
export interface JobArgs {
    /**
     * Whether to back up all known guests on the node.
     */
    all?: pulumi.Input<boolean | undefined>;
    /**
     * I/O bandwidth limit in KiB/s.
     */
    bwlimit?: pulumi.Input<number | undefined>;
    /**
     * The compression algorithm (0, 1, gzip, lzo, or zstd).
     */
    compress?: pulumi.Input<string | undefined>;
    /**
     * Whether the backup job is enabled.
     */
    enabled?: pulumi.Input<boolean | undefined>;
    /**
     * A list of paths to exclude from the backup.
     */
    excludePaths?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Fleecing configuration for the backup job.
     */
    fleecing?: pulumi.Input<inputs.backup.JobFleecing | undefined>;
    /**
     * I/O priority (0-8).
     */
    ionice?: pulumi.Input<number | undefined>;
    /**
     * Maximum wait time in minutes for the global lock.
     */
    lockwait?: pulumi.Input<number | undefined>;
    /**
     * Email notification setting (always or failure).
     */
    mailnotification?: pulumi.Input<string | undefined>;
    /**
     * A list of email addresses to send notifications to.
     */
    mailtos?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Deprecated: use pruneBackups instead. Maximum number of backup files per guest.
     */
    maxfiles?: pulumi.Input<number | undefined>;
    /**
     * The backup mode (snapshot, suspend, or stop).
     */
    mode?: pulumi.Input<string | undefined>;
    /**
     * The cluster node name to limit the backup job to.
     */
    node?: pulumi.Input<string | undefined>;
    /**
     * Template for notes attached to the backup.
     */
    notesTemplate?: pulumi.Input<string | undefined>;
    /**
     * PBS change detection mode (legacy, data, or metadata).
     */
    pbsChangeDetectionMode?: pulumi.Input<string | undefined>;
    /**
     * Performance-related settings for the backup job.
     */
    performance?: pulumi.Input<inputs.backup.JobPerformance | undefined>;
    /**
     * Number of pigz threads (0 disables, 1 uses single-threaded gzip).
     */
    pigz?: pulumi.Input<number | undefined>;
    /**
     * Limit backup to guests in the specified pool.
     */
    pool?: pulumi.Input<string | undefined>;
    /**
     * Whether the backup should be marked as protected.
     */
    protected?: pulumi.Input<boolean | undefined>;
    /**
     * Retention options as a map of keep policies (e.g. keep-last = "3", keep-weekly = "2").
     */
    pruneBackups?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * Whether to remove old backups if there are more than maxfiles.
     */
    remove?: pulumi.Input<boolean | undefined>;
    /**
     * Whether to repeat missed backup jobs as soon as possible.
     */
    repeatMissed?: pulumi.Input<boolean | undefined>;
    /**
     * The identifier of the backup job.
     */
    resourceId: pulumi.Input<string>;
    /**
     * Backup schedule in systemd calendar event format.
     */
    schedule: pulumi.Input<string>;
    /**
     * Path to a script to execute before/after the backup job.
     */
    script?: pulumi.Input<string | undefined>;
    /**
     * The scheduled start time (HH:MM).
     */
    starttime?: pulumi.Input<string | undefined>;
    /**
     * Whether to exclude common temporary files from the backup.
     */
    stdexcludes?: pulumi.Input<boolean | undefined>;
    /**
     * Maximum wait time in minutes for a guest to stop.
     */
    stopwait?: pulumi.Input<number | undefined>;
    /**
     * The storage identifier for the backup.
     */
    storage: pulumi.Input<string>;
    /**
     * Path to the temporary directory for the backup job.
     */
    tmpdir?: pulumi.Input<string | undefined>;
    /**
     * A list of guest VM/CT IDs to include in the backup job.
     */
    vmids?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Number of zstd threads (0 uses half of available cores).
     */
    zstd?: pulumi.Input<number | undefined>;
}
//# sourceMappingURL=job.d.ts.map