import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
import * as enums from "../types/enums";
/**
 * Resource schema for AWS::DataSync::Task.
 *
 * ## Example Usage
 * ### Example
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws_native from "@pulumi/aws-native";
 *
 * const task = new aws_native.datasync.Task("task", {
 *     sourceLocationArn: "arn:aws:datasync:us-east-2:111222333444:location/loc-07db7abfc326c50s3",
 *     destinationLocationArn: "arn:aws:datasync:us-east-2:111222333444:location/loc-18ec8bcgd437d61t4",
 * });
 *
 * ```
 * ### Example
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws_native from "@pulumi/aws-native";
 *
 * const task = new aws_native.datasync.Task("task", {
 *     sourceLocationArn: "arn:aws:datasync:us-east-2:111222333444:location/loc-07db7abfc326c50s3",
 *     destinationLocationArn: "arn:aws:datasync:us-east-2:111222333444:location/loc-18ec8bcgd437d61t4",
 * });
 *
 * ```
 */
export declare class Task extends pulumi.CustomResource {
    /**
     * Get an existing Task 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 opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): Task;
    /**
     * Returns true if the given object is an instance of Task.  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 Task;
    /**
     * The ARN of the Amazon CloudWatch log group that is used to monitor and log events in the task.
     */
    readonly cloudWatchLogGroupArn: pulumi.Output<string | undefined>;
    /**
     * The ARN of an AWS storage resource's location.
     */
    readonly destinationLocationArn: pulumi.Output<string>;
    /**
     * The ARNs of the destination elastic network interfaces (ENIs) that were created for your subnet.
     */
    readonly destinationNetworkInterfaceArns: pulumi.Output<string[]>;
    /**
     * Specifies exclude filters that define the files, objects, and folders in your source location that you don't want DataSync to transfer. For more information and examples, see [Specifying what DataSync transfers by using filters](https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html) .
     */
    readonly excludes: pulumi.Output<outputs.datasync.TaskFilterRule[] | undefined>;
    /**
     * Specifies include filters that define the files, objects, and folders in your source location that you want DataSync to transfer. For more information and examples, see [Specifying what DataSync transfers by using filters](https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html) .
     */
    readonly includes: pulumi.Output<outputs.datasync.TaskFilterRule[] | undefined>;
    /**
     * The configuration of the manifest that lists the files or objects that you want DataSync to transfer. For more information, see [Specifying what DataSync transfers by using a manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html) .
     */
    readonly manifestConfig: pulumi.Output<outputs.datasync.TaskManifestConfig | undefined>;
    /**
     * The name of a task. This value is a text reference that is used to identify the task in the console.
     */
    readonly name: pulumi.Output<string | undefined>;
    /**
     * Specifies your task's settings, such as preserving file metadata, verifying data integrity, among other options.
     */
    readonly options: pulumi.Output<outputs.datasync.TaskOptions | undefined>;
    /**
     * Specifies a schedule for when you want your task to run. For more information, see [Scheduling your task](https://docs.aws.amazon.com/datasync/latest/userguide/task-scheduling.html) .
     */
    readonly schedule: pulumi.Output<outputs.datasync.TaskSchedule | undefined>;
    /**
     * The ARN of the source location for the task.
     */
    readonly sourceLocationArn: pulumi.Output<string>;
    /**
     * The ARNs of the source ENIs that were created for your subnet.
     */
    readonly sourceNetworkInterfaceArns: pulumi.Output<string[]>;
    /**
     * The status of the task that was described.
     */
    readonly status: pulumi.Output<enums.datasync.TaskStatus>;
    /**
     * An array of key-value pairs to apply to this resource.
     */
    readonly tags: pulumi.Output<outputs.Tag[] | undefined>;
    /**
     * The ARN of the task.
     */
    readonly taskArn: pulumi.Output<string>;
    /**
     * Specifies the task mode for the task.
     */
    readonly taskMode: pulumi.Output<enums.datasync.TaskMode | undefined>;
    /**
     * The configuration of your task report, which provides detailed information about your DataSync transfer. For more information, see [Monitoring your DataSync transfers with task reports](https://docs.aws.amazon.com/datasync/latest/userguide/task-reports.html) .
     */
    readonly taskReportConfig: pulumi.Output<outputs.datasync.TaskReportConfig | undefined>;
    /**
     * Create a Task 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: TaskArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a Task resource.
 */
export interface TaskArgs {
    /**
     * The ARN of the Amazon CloudWatch log group that is used to monitor and log events in the task.
     */
    cloudWatchLogGroupArn?: pulumi.Input<string>;
    /**
     * The ARN of an AWS storage resource's location.
     */
    destinationLocationArn: pulumi.Input<string>;
    /**
     * Specifies exclude filters that define the files, objects, and folders in your source location that you don't want DataSync to transfer. For more information and examples, see [Specifying what DataSync transfers by using filters](https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html) .
     */
    excludes?: pulumi.Input<pulumi.Input<inputs.datasync.TaskFilterRuleArgs>[]>;
    /**
     * Specifies include filters that define the files, objects, and folders in your source location that you want DataSync to transfer. For more information and examples, see [Specifying what DataSync transfers by using filters](https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html) .
     */
    includes?: pulumi.Input<pulumi.Input<inputs.datasync.TaskFilterRuleArgs>[]>;
    /**
     * The configuration of the manifest that lists the files or objects that you want DataSync to transfer. For more information, see [Specifying what DataSync transfers by using a manifest](https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html) .
     */
    manifestConfig?: pulumi.Input<inputs.datasync.TaskManifestConfigArgs>;
    /**
     * The name of a task. This value is a text reference that is used to identify the task in the console.
     */
    name?: pulumi.Input<string>;
    /**
     * Specifies your task's settings, such as preserving file metadata, verifying data integrity, among other options.
     */
    options?: pulumi.Input<inputs.datasync.TaskOptionsArgs>;
    /**
     * Specifies a schedule for when you want your task to run. For more information, see [Scheduling your task](https://docs.aws.amazon.com/datasync/latest/userguide/task-scheduling.html) .
     */
    schedule?: pulumi.Input<inputs.datasync.TaskScheduleArgs>;
    /**
     * The ARN of the source location for the task.
     */
    sourceLocationArn: pulumi.Input<string>;
    /**
     * An array of key-value pairs to apply to this resource.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.TagArgs>[]>;
    /**
     * Specifies the task mode for the task.
     */
    taskMode?: pulumi.Input<enums.datasync.TaskMode>;
    /**
     * The configuration of your task report, which provides detailed information about your DataSync transfer. For more information, see [Monitoring your DataSync transfers with task reports](https://docs.aws.amazon.com/datasync/latest/userguide/task-reports.html) .
     */
    taskReportConfig?: pulumi.Input<inputs.datasync.TaskReportConfigArgs>;
}
