import * as core from "@terrascript/core"; export interface OptionsArgs extends core.SchemaArgs { atime?: string | core.StringOut; bytesPerSecond?: number | core.NumberOut; gid?: string | core.StringOut; logLevel?: string | core.StringOut; mtime?: string | core.StringOut; overwriteMode?: string | core.StringOut; posixPermissions?: string | core.StringOut; preserveDeletedFiles?: string | core.StringOut; preserveDevices?: string | core.StringOut; taskQueueing?: string | core.StringOut; transferMode?: string | core.StringOut; uid?: string | core.StringOut; verifyMode?: string | core.StringOut; } export class Options extends core.Schema { @core.attr(String) public atime?: string | core.StringOut; @core.attr(Number) public bytesPerSecond?: number | core.NumberOut; @core.attr(String) public gid?: string | core.StringOut; @core.attr(String) public logLevel?: string | core.StringOut; @core.attr(String) public mtime?: string | core.StringOut; @core.attr(String) public overwriteMode?: string | core.StringOut; @core.attr(String) public posixPermissions?: string | core.StringOut; @core.attr(String) public preserveDeletedFiles?: string | core.StringOut; @core.attr(String) public preserveDevices?: string | core.StringOut; @core.attr(String) public taskQueueing?: string | core.StringOut; @core.attr(String) public transferMode?: string | core.StringOut; @core.attr(String) public uid?: string | core.StringOut; @core.attr(String) public verifyMode?: string | core.StringOut; } export interface IncludesArgs extends core.SchemaArgs { filterType?: string | core.StringOut; value?: string | core.StringOut; } export class Includes extends core.Schema { @core.attr(String) public filterType?: string | core.StringOut; @core.attr(String) public value?: string | core.StringOut; } export interface ExcludesArgs extends core.SchemaArgs { filterType?: string | core.StringOut; value?: string | core.StringOut; } export class Excludes extends core.Schema { @core.attr(String) public filterType?: string | core.StringOut; @core.attr(String) public value?: string | core.StringOut; } export interface ScheduleArgs extends core.SchemaArgs { scheduleExpression: string | core.StringOut; } export class Schedule extends core.Schema { @core.attr(String) public scheduleExpression!: string | core.StringOut; } export interface TaskArgs extends core.ResourceArgs { /** * (Optional) Amazon Resource Name (ARN) of the CloudWatch Log Group that is used to monitor and log ev * ents in the sync task. */ cloudwatchLogGroupArn?: string | core.StringOut; /** * (Required) Amazon Resource Name (ARN) of destination DataSync Location. */ destinationLocationArn: string | core.StringOut; /** * (Optional) Filter rules that determines which files to exclude from a task. */ excludes?: Excludes; /** * (Optional) Filter rules that determines which files to include in a task. */ includes?: Includes; /** * (Optional) Name of the DataSync Task. */ name?: string | core.StringOut; /** * (Optional) Configuration block containing option that controls the default behavior when you start a * n execution of this DataSync Task. For each individual task execution, you can override these option * s by specifying an overriding configuration in those executions. */ options?: Options; /** * (Optional) Specifies a schedule used to periodically transfer files from a source to a destination l * ocation. */ schedule?: Schedule; /** * (Required) Amazon Resource Name (ARN) of source DataSync Location. */ sourceLocationArn: string | core.StringOut; /** * (Optional) Key-value pairs of resource tags to assign to the DataSync Task. If configured with a pro * vider [`default_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/lat * est/docs#default_tags-configuration-block) present, tags with matching keys will overwrite those def * ined at the provider-level. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; } export class Task extends core.Resource { /** * Amazon Resource Name (ARN) of the DataSync Task. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) Amazon Resource Name (ARN) of the CloudWatch Log Group that is used to monitor and log ev * ents in the sync task. */ @core.attr(String) public cloudwatchLogGroupArn?: string | core.StringOut; /** * (Required) Amazon Resource Name (ARN) of destination DataSync Location. */ @core.attr(String) public destinationLocationArn!: string | core.StringOut; /** * (Optional) Filter rules that determines which files to exclude from a task. */ @core.attr(Excludes) public excludes?: Excludes; /** * Amazon Resource Name (ARN) of the DataSync Task. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) Filter rules that determines which files to include in a task. */ @core.attr(Includes) public includes?: Includes; /** * (Optional) Name of the DataSync Task. */ @core.attr(String) public name?: string | core.StringOut; /** * (Optional) Configuration block containing option that controls the default behavior when you start a * n execution of this DataSync Task. For each individual task execution, you can override these option * s by specifying an overriding configuration in those executions. */ @core.attr(Options) public options?: Options; /** * (Optional) Specifies a schedule used to periodically transfer files from a source to a destination l * ocation. */ @core.attr(Schedule) public schedule?: Schedule; /** * (Required) Amazon Resource Name (ARN) of source DataSync Location. */ @core.attr(String) public sourceLocationArn!: string | core.StringOut; /** * (Optional) Key-value pairs of resource tags to assign to the DataSync Task. If configured with a pro * vider [`default_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/lat * est/docs#default_tags-configuration-block) present, tags with matching keys will overwrite those def * ined at the provider-level. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; constructor(name: string, args?: TaskArgs) { super(name, "aws_datasync_task", args); } public override getNamespace(): string { return "aws_datasync"; } }