import { FilterRuleProps } from './task/FilterRuleProps';
import { Value } from '../../cloudformation/Value';
import { OptionsProps } from './task/OptionsProps';
import { TaskScheduleProps } from './task/TaskScheduleProps';
import { TaskReportConfigProps } from './task/TaskReportConfigProps';
import { Tag } from '../Tag';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type TaskAttributes = {
    Status: Attribute<string>;
    SourceNetworkInterfaceArns: Attribute<string[]>;
    DestinationNetworkInterfaceArns: Attribute<string[]>;
    TaskArn: Attribute<string>;
};
export type Task = AwsResource<'AWS::DataSync::Task', TaskProperties, TaskAttributes>;
/**
  The <code>AWS::DataSync::Task</code> resource specifies a task. A task is a set of two locations (source and destination) and a set of <code>Options</code> that you use to control the behavior of a task. If you don’t specify <code>Options</code> when you create a task, AWS DataSync populates them with service defaults.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-task.html">the AWS Docs</a>
*/
export declare function task(taskProps: TaskProperties): Task;
/**
  The <code>AWS::DataSync::Task</code> resource specifies a task. A task is a set of two locations (source and destination) and a set of <code>Options</code> that you use to control the behavior of a task. If you don’t specify <code>Options</code> when you create a task, AWS DataSync populates them with service defaults.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-task.html">the AWS Docs</a>
*/
export interface TaskProperties {
    /** <code>Includes</code>  <a name="cfn-datasync-task-includes"></a>
  Specifies a list of filter rules that include specific data during your transfer. For more information and examples, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html">Filtering data transferred by DataSync</a>.<br />
  
  Required: No<br />
  
  Maximum: <code>1</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    includes?: FilterRuleProps[];
    /** <code>DestinationLocationArn</code>  <a name="cfn-datasync-task-destinationlocationarn"></a>
  The Amazon Resource Name (ARN) of an AWS storage resource’s location.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    destinationLocationArn: Value<string>;
    /** <code>Options</code>  <a name="cfn-datasync-task-options"></a>
  Specifies the configuration options for a task. Some options include preserving file or object metadata and verifying data integrity.<br />
  You can also override these options before starting an individual run of a task (also known as a
  task execution:  For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html">StartTaskExecution</a>.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    options?: OptionsProps;
    /** <code>Schedule</code>  <a name="cfn-datasync-task-schedule"></a>
  Specifies a schedule used to periodically transfer files from a source to a destination location. The schedule should be specified in UTC time. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/task-scheduling.html">Scheduling your task</a>.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    schedule?: TaskScheduleProps;
    /** <code>CloudWatchLogGroupArn</code>  <a name="cfn-datasync-task-cloudwatchloggrouparn"></a>
  The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that is used to monitor and log events in the task.<br />
  For more information about how to use CloudWatch Logs with DataSync, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/monitor-datasync.html#cloudwatchlogs">Monitoring Your Task</a> in the * AWS DataSync User Guide.*<br />
  For more information about these groups, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html">Working with Log Groups and Log Streams</a> in the
  Amazon CloudWatch Logs User Guide: br />
  
  Required: No<br />
  
  Maximum: <code>562</code><br />
  
  Pattern: <code>^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):logs:[a-z\-0-9]+:[0-9]{12}:log-group:([^:\*]*)(:\*)?$</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    cloudWatchLogGroupArn?: Value<string>;
    /** <code>SourceLocationArn</code>  <a name="cfn-datasync-task-sourcelocationarn"></a>
  The Amazon Resource Name (ARN) of the source location for the task.<br />
  
  Required: Yes<br />
  
  Maximum: <code>128</code><br />
  
  Pattern: <code>^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    sourceLocationArn: Value<string>;
    /** <code>TaskReportConfig</code>  <a name="cfn-datasync-task-taskreportconfig"></a>
  Specifies how you want to configure a task report, which provides detailed information about for your DataSync transfer.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    taskReportConfig?: TaskReportConfigProps;
    /** <code>Excludes</code>  <a name="cfn-datasync-task-excludes"></a>
  Specifies a list of filter rules that exclude specific data during your transfer. For more information and examples, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html">Filtering data transferred by DataSync</a>.<br />
  
  Required: No<br />
  
  Maximum: <code>1</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    excludes?: FilterRuleProps[];
    /** <code>Tags</code>  <a name="cfn-datasync-task-tags"></a>
  Specifies the tags that you want to apply to the Amazon Resource Name (ARN) representing the task.<br />
  
  Tags: re key-value pairs that help you manage, filter, and search for your DataSync resources.<br />
  
  Required: No<br />
  
  Maximum: <code>50</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    tags?: Tag[];
    /** <code>Name</code>  <a name="cfn-datasync-task-name"></a>
  The name of a task. This value is a text reference that is used to identify the task in the console.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>256</code><br />
  
  Pattern: <code>^[a-zA-Z0-9\s+=._:@/-]+$</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    name?: Value<string>;
}
