Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.aws.datasync.kotlin.TaskArgs.kt Maven / Gradle / Ivy
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.aws.datasync.kotlin
import com.pulumi.aws.datasync.TaskArgs.builder
import com.pulumi.aws.datasync.kotlin.inputs.TaskExcludesArgs
import com.pulumi.aws.datasync.kotlin.inputs.TaskExcludesArgsBuilder
import com.pulumi.aws.datasync.kotlin.inputs.TaskIncludesArgs
import com.pulumi.aws.datasync.kotlin.inputs.TaskIncludesArgsBuilder
import com.pulumi.aws.datasync.kotlin.inputs.TaskOptionsArgs
import com.pulumi.aws.datasync.kotlin.inputs.TaskOptionsArgsBuilder
import com.pulumi.aws.datasync.kotlin.inputs.TaskScheduleArgs
import com.pulumi.aws.datasync.kotlin.inputs.TaskScheduleArgsBuilder
import com.pulumi.aws.datasync.kotlin.inputs.TaskTaskReportConfigArgs
import com.pulumi.aws.datasync.kotlin.inputs.TaskTaskReportConfigArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.Map
import kotlin.jvm.JvmName
/**
* Manages an AWS DataSync Task, which represents a configuration for synchronization. Starting an execution of these DataSync Tasks (actually synchronizing files) is performed outside of this resource.
* ## Example Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
* const example = new aws.datasync.Task("example", {
* destinationLocationArn: destination.arn,
* name: "example",
* sourceLocationArn: source.arn,
* options: {
* bytesPerSecond: -1,
* },
* });
* ```
* ```python
* import pulumi
* import pulumi_aws as aws
* example = aws.datasync.Task("example",
* destination_location_arn=destination["arn"],
* name="example",
* source_location_arn=source["arn"],
* options={
* "bytes_per_second": -1,
* })
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using Aws = Pulumi.Aws;
* return await Deployment.RunAsync(() =>
* {
* var example = new Aws.DataSync.Task("example", new()
* {
* DestinationLocationArn = destination.Arn,
* Name = "example",
* SourceLocationArn = source.Arn,
* Options = new Aws.DataSync.Inputs.TaskOptionsArgs
* {
* BytesPerSecond = -1,
* },
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-aws/sdk/v6/go/aws"
* "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/datasync"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* _, err := datasync.NewTask(ctx, "example", &datasync.TaskArgs{
* DestinationLocationArn: pulumi.Any(destination.Arn),
* Name: pulumi.String("example"),
* SourceLocationArn: pulumi.Any(source.Arn),
* Options: &datasync.TaskOptionsArgs{
* BytesPerSecond: int(-1),
* },
* })
* if err != nil {
* return err
* }
* return nil
* })
* }
* ```
* ```yaml
* resources:
* example:
* type: aws:datasync:Task
* properties:
* destinationLocationArn: ${destination.arn}
* name: example
* sourceLocationArn: ${source.arn}
* options:
* bytesPerSecond: -1
* ```
*
* ### With Scheduling
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
* const example = new aws.datasync.Task("example", {
* destinationLocationArn: destination.arn,
* name: "example",
* sourceLocationArn: source.arn,
* schedule: {
* scheduleExpression: "cron(0 12 ? * SUN,WED *)",
* },
* });
* ```
* ```python
* import pulumi
* import pulumi_aws as aws
* example = aws.datasync.Task("example",
* destination_location_arn=destination["arn"],
* name="example",
* source_location_arn=source["arn"],
* schedule={
* "schedule_expression": "cron(0 12 ? * SUN,WED *)",
* })
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using Aws = Pulumi.Aws;
* return await Deployment.RunAsync(() =>
* {
* var example = new Aws.DataSync.Task("example", new()
* {
* DestinationLocationArn = destination.Arn,
* Name = "example",
* SourceLocationArn = source.Arn,
* Schedule = new Aws.DataSync.Inputs.TaskScheduleArgs
* {
* ScheduleExpression = "cron(0 12 ? * SUN,WED *)",
* },
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-aws/sdk/v6/go/aws"
* "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/datasync"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* _, err := datasync.NewTask(ctx, "example", &datasync.TaskArgs{
* DestinationLocationArn: pulumi.Any(destination.Arn),
* Name: pulumi.String("example"),
* SourceLocationArn: pulumi.Any(source.Arn),
* Schedule: &datasync.TaskScheduleArgs{
* ScheduleExpression: pulumi.String("cron(0 12 ? * SUN,WED *)"),
* },
* })
* if err != nil {
* return err
* }
* return nil
* })
* }
* ```
* ```java
* package generated_program;
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.aws.datasync.Task;
* import com.pulumi.aws.datasync.TaskArgs;
* import com.pulumi.aws.datasync.inputs.TaskScheduleArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
* import java.nio.file.Paths;
* public class App {
* public static void main(String[] args) {
* Pulumi.run(App::stack);
* }
* public static void stack(Context ctx) {
* var example = new Task("example", TaskArgs.builder()
* .destinationLocationArn(destination.arn())
* .name("example")
* .sourceLocationArn(source.arn())
* .schedule(TaskScheduleArgs.builder()
* .scheduleExpression("cron(0 12 ? * SUN,WED *)")
* .build())
* .build());
* }
* }
* ```
* ```yaml
* resources:
* example:
* type: aws:datasync:Task
* properties:
* destinationLocationArn: ${destination.arn}
* name: example
* sourceLocationArn: ${source.arn}
* schedule:
* scheduleExpression: cron(0 12 ? * SUN,WED *)
* ```
*
* ### With Filtering
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
* const example = new aws.datasync.Task("example", {
* destinationLocationArn: destination.arn,
* name: "example",
* sourceLocationArn: source.arn,
* excludes: {
* filterType: "SIMPLE_PATTERN",
* value: "/folder1|/folder2",
* },
* includes: {
* filterType: "SIMPLE_PATTERN",
* value: "/folder1|/folder2",
* },
* });
* ```
* ```python
* import pulumi
* import pulumi_aws as aws
* example = aws.datasync.Task("example",
* destination_location_arn=destination["arn"],
* name="example",
* source_location_arn=source["arn"],
* excludes={
* "filter_type": "SIMPLE_PATTERN",
* "value": "/folder1|/folder2",
* },
* includes={
* "filter_type": "SIMPLE_PATTERN",
* "value": "/folder1|/folder2",
* })
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using Aws = Pulumi.Aws;
* return await Deployment.RunAsync(() =>
* {
* var example = new Aws.DataSync.Task("example", new()
* {
* DestinationLocationArn = destination.Arn,
* Name = "example",
* SourceLocationArn = source.Arn,
* Excludes = new Aws.DataSync.Inputs.TaskExcludesArgs
* {
* FilterType = "SIMPLE_PATTERN",
* Value = "/folder1|/folder2",
* },
* Includes = new Aws.DataSync.Inputs.TaskIncludesArgs
* {
* FilterType = "SIMPLE_PATTERN",
* Value = "/folder1|/folder2",
* },
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-aws/sdk/v6/go/aws"
* "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/datasync"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* _, err := datasync.NewTask(ctx, "example", &datasync.TaskArgs{
* DestinationLocationArn: pulumi.Any(destination.Arn),
* Name: pulumi.String("example"),
* SourceLocationArn: pulumi.Any(source.Arn),
* Excludes: &datasync.TaskExcludesArgs{
* FilterType: pulumi.String("SIMPLE_PATTERN"),
* Value: pulumi.String("/folder1|/folder2"),
* },
* Includes: &datasync.TaskIncludesArgs{
* FilterType: pulumi.String("SIMPLE_PATTERN"),
* Value: pulumi.String("/folder1|/folder2"),
* },
* })
* if err != nil {
* return err
* }
* return nil
* })
* }
* ```
* ```java
* package generated_program;
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.aws.datasync.Task;
* import com.pulumi.aws.datasync.TaskArgs;
* import com.pulumi.aws.datasync.inputs.TaskExcludesArgs;
* import com.pulumi.aws.datasync.inputs.TaskIncludesArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
* import java.nio.file.Paths;
* public class App {
* public static void main(String[] args) {
* Pulumi.run(App::stack);
* }
* public static void stack(Context ctx) {
* var example = new Task("example", TaskArgs.builder()
* .destinationLocationArn(destination.arn())
* .name("example")
* .sourceLocationArn(source.arn())
* .excludes(TaskExcludesArgs.builder()
* .filterType("SIMPLE_PATTERN")
* .value("/folder1|/folder2")
* .build())
* .includes(TaskIncludesArgs.builder()
* .filterType("SIMPLE_PATTERN")
* .value("/folder1|/folder2")
* .build())
* .build());
* }
* }
* ```
* ```yaml
* resources:
* example:
* type: aws:datasync:Task
* properties:
* destinationLocationArn: ${destination.arn}
* name: example
* sourceLocationArn: ${source.arn}
* excludes:
* filterType: SIMPLE_PATTERN
* value: /folder1|/folder2
* includes:
* filterType: SIMPLE_PATTERN
* value: /folder1|/folder2
* ```
*
* ## Import
* Using `pulumi import`, import `aws_datasync_task` using the DataSync Task Amazon Resource Name (ARN). For example:
* ```sh
* $ pulumi import aws:datasync/task:Task example arn:aws:datasync:us-east-1:123456789012:task/task-12345678901234567
* ```
* @property cloudwatchLogGroupArn Amazon Resource Name (ARN) of the CloudWatch Log Group that is used to monitor and log events in the sync task.
* @property destinationLocationArn Amazon Resource Name (ARN) of destination DataSync Location.
* @property excludes Filter rules that determines which files to exclude from a task.
* @property includes Filter rules that determines which files to include in a task.
* @property name Name of the DataSync Task.
* @property options Configuration block containing option that controls the default behavior when you start an execution of this DataSync Task. For each individual task execution, you can override these options by specifying an overriding configuration in those executions.
* @property schedule Specifies a schedule used to periodically transfer files from a source to a destination location.
* @property sourceLocationArn Amazon Resource Name (ARN) of source DataSync Location.
* @property tags Key-value pairs of resource tags to assign to the DataSync Task. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
* @property taskReportConfig Configuration block containing the configuration of a DataSync Task Report. See `task_report_config` below.
*/
public data class TaskArgs(
public val cloudwatchLogGroupArn: Output? = null,
public val destinationLocationArn: Output? = null,
public val excludes: Output? = null,
public val includes: Output? = null,
public val name: Output? = null,
public val options: Output? = null,
public val schedule: Output? = null,
public val sourceLocationArn: Output? = null,
public val tags: Output>? = null,
public val taskReportConfig: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.aws.datasync.TaskArgs =
com.pulumi.aws.datasync.TaskArgs.builder()
.cloudwatchLogGroupArn(cloudwatchLogGroupArn?.applyValue({ args0 -> args0 }))
.destinationLocationArn(destinationLocationArn?.applyValue({ args0 -> args0 }))
.excludes(excludes?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.includes(includes?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.name(name?.applyValue({ args0 -> args0 }))
.options(options?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.schedule(schedule?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.sourceLocationArn(sourceLocationArn?.applyValue({ args0 -> args0 }))
.tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
.taskReportConfig(
taskReportConfig?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
).build()
}
/**
* Builder for [TaskArgs].
*/
@PulumiTagMarker
public class TaskArgsBuilder internal constructor() {
private var cloudwatchLogGroupArn: Output? = null
private var destinationLocationArn: Output? = null
private var excludes: Output? = null
private var includes: Output? = null
private var name: Output? = null
private var options: Output? = null
private var schedule: Output? = null
private var sourceLocationArn: Output? = null
private var tags: Output>? = null
private var taskReportConfig: Output? = null
/**
* @param value Amazon Resource Name (ARN) of the CloudWatch Log Group that is used to monitor and log events in the sync task.
*/
@JvmName("uaebrtpqtgdariub")
public suspend fun cloudwatchLogGroupArn(`value`: Output) {
this.cloudwatchLogGroupArn = value
}
/**
* @param value Amazon Resource Name (ARN) of destination DataSync Location.
*/
@JvmName("qqcyfyahejvhbogi")
public suspend fun destinationLocationArn(`value`: Output) {
this.destinationLocationArn = value
}
/**
* @param value Filter rules that determines which files to exclude from a task.
*/
@JvmName("rfagjvsmrsquhdev")
public suspend fun excludes(`value`: Output) {
this.excludes = value
}
/**
* @param value Filter rules that determines which files to include in a task.
*/
@JvmName("jooadqoidjjefcvb")
public suspend fun includes(`value`: Output) {
this.includes = value
}
/**
* @param value Name of the DataSync Task.
*/
@JvmName("yixvxniivrinylac")
public suspend fun name(`value`: Output) {
this.name = value
}
/**
* @param value Configuration block containing option that controls the default behavior when you start an execution of this DataSync Task. For each individual task execution, you can override these options by specifying an overriding configuration in those executions.
*/
@JvmName("eoymuuqcpopolhqt")
public suspend fun options(`value`: Output) {
this.options = value
}
/**
* @param value Specifies a schedule used to periodically transfer files from a source to a destination location.
*/
@JvmName("huxilfiwugkingfh")
public suspend fun schedule(`value`: Output) {
this.schedule = value
}
/**
* @param value Amazon Resource Name (ARN) of source DataSync Location.
*/
@JvmName("pppuopxriktjpqwd")
public suspend fun sourceLocationArn(`value`: Output) {
this.sourceLocationArn = value
}
/**
* @param value Key-value pairs of resource tags to assign to the DataSync Task. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
*/
@JvmName("puttdrgscbseoxib")
public suspend fun tags(`value`: Output>) {
this.tags = value
}
/**
* @param value Configuration block containing the configuration of a DataSync Task Report. See `task_report_config` below.
*/
@JvmName("nabpxeqvojlkrtwf")
public suspend fun taskReportConfig(`value`: Output) {
this.taskReportConfig = value
}
/**
* @param value Amazon Resource Name (ARN) of the CloudWatch Log Group that is used to monitor and log events in the sync task.
*/
@JvmName("hrjwcpkjyrhudrkj")
public suspend fun cloudwatchLogGroupArn(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.cloudwatchLogGroupArn = mapped
}
/**
* @param value Amazon Resource Name (ARN) of destination DataSync Location.
*/
@JvmName("lnqhpojsxwdppwda")
public suspend fun destinationLocationArn(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.destinationLocationArn = mapped
}
/**
* @param value Filter rules that determines which files to exclude from a task.
*/
@JvmName("alkgrqwetgkysain")
public suspend fun excludes(`value`: TaskExcludesArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.excludes = mapped
}
/**
* @param argument Filter rules that determines which files to exclude from a task.
*/
@JvmName("ayggcpcqptioolvg")
public suspend fun excludes(argument: suspend TaskExcludesArgsBuilder.() -> Unit) {
val toBeMapped = TaskExcludesArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.excludes = mapped
}
/**
* @param value Filter rules that determines which files to include in a task.
*/
@JvmName("oyagjmehixtxlant")
public suspend fun includes(`value`: TaskIncludesArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.includes = mapped
}
/**
* @param argument Filter rules that determines which files to include in a task.
*/
@JvmName("uoyixwridangceio")
public suspend fun includes(argument: suspend TaskIncludesArgsBuilder.() -> Unit) {
val toBeMapped = TaskIncludesArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.includes = mapped
}
/**
* @param value Name of the DataSync Task.
*/
@JvmName("dfstovpqswyweryi")
public suspend fun name(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.name = mapped
}
/**
* @param value Configuration block containing option that controls the default behavior when you start an execution of this DataSync Task. For each individual task execution, you can override these options by specifying an overriding configuration in those executions.
*/
@JvmName("rhfrnifgrjtxgwjr")
public suspend fun options(`value`: TaskOptionsArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.options = mapped
}
/**
* @param argument Configuration block containing option that controls the default behavior when you start an execution of this DataSync Task. For each individual task execution, you can override these options by specifying an overriding configuration in those executions.
*/
@JvmName("wqnagwrvscdxelin")
public suspend fun options(argument: suspend TaskOptionsArgsBuilder.() -> Unit) {
val toBeMapped = TaskOptionsArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.options = mapped
}
/**
* @param value Specifies a schedule used to periodically transfer files from a source to a destination location.
*/
@JvmName("iyjunmjnhhnpdqer")
public suspend fun schedule(`value`: TaskScheduleArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.schedule = mapped
}
/**
* @param argument Specifies a schedule used to periodically transfer files from a source to a destination location.
*/
@JvmName("kcauitdiuijadksm")
public suspend fun schedule(argument: suspend TaskScheduleArgsBuilder.() -> Unit) {
val toBeMapped = TaskScheduleArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.schedule = mapped
}
/**
* @param value Amazon Resource Name (ARN) of source DataSync Location.
*/
@JvmName("iqhidnnejffbvvix")
public suspend fun sourceLocationArn(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.sourceLocationArn = mapped
}
/**
* @param value Key-value pairs of resource tags to assign to the DataSync Task. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
*/
@JvmName("tshhjpcitswuadcs")
public suspend fun tags(`value`: Map?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.tags = mapped
}
/**
* @param values Key-value pairs of resource tags to assign to the DataSync Task. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
*/
@JvmName("amafyoalokhgqdqn")
public fun tags(vararg values: Pair) {
val toBeMapped = values.toMap()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.tags = mapped
}
/**
* @param value Configuration block containing the configuration of a DataSync Task Report. See `task_report_config` below.
*/
@JvmName("prlqtqhkhicuyrid")
public suspend fun taskReportConfig(`value`: TaskTaskReportConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.taskReportConfig = mapped
}
/**
* @param argument Configuration block containing the configuration of a DataSync Task Report. See `task_report_config` below.
*/
@JvmName("sohdbbqwcvmxdwok")
public suspend fun taskReportConfig(argument: suspend TaskTaskReportConfigArgsBuilder.() -> Unit) {
val toBeMapped = TaskTaskReportConfigArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.taskReportConfig = mapped
}
internal fun build(): TaskArgs = TaskArgs(
cloudwatchLogGroupArn = cloudwatchLogGroupArn,
destinationLocationArn = destinationLocationArn,
excludes = excludes,
includes = includes,
name = name,
options = options,
schedule = schedule,
sourceLocationArn = sourceLocationArn,
tags = tags,
taskReportConfig = taskReportConfig,
)
}