Flow Args
data class FlowArgs(val description: Output<String>? = null, val destinationFlowConfigs: Output<List<FlowDestinationFlowConfigArgs>>? = null, val kmsArn: Output<String>? = null, val name: Output<String>? = null, val sourceFlowConfig: Output<FlowSourceFlowConfigArgs>? = null, val tags: Output<Map<String, String>>? = null, val tasks: Output<List<FlowTaskArgs>>? = null, val triggerConfig: Output<FlowTriggerConfigArgs>? = null) : ConvertibleToJava<FlowArgs>
Provides an AppFlow flow resource.
Example Usage
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.s3.BucketV2;
import com.pulumi.aws.iam.IamFunctions;
import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
import com.pulumi.aws.s3.BucketPolicy;
import com.pulumi.aws.s3.BucketPolicyArgs;
import com.pulumi.aws.s3.BucketObjectv2;
import com.pulumi.aws.s3.BucketObjectv2Args;
import com.pulumi.aws.appflow.Flow;
import com.pulumi.aws.appflow.FlowArgs;
import com.pulumi.aws.appflow.inputs.FlowSourceFlowConfigArgs;
import com.pulumi.aws.appflow.inputs.FlowSourceFlowConfigSourceConnectorPropertiesArgs;
import com.pulumi.aws.appflow.inputs.FlowSourceFlowConfigSourceConnectorPropertiesS3Args;
import com.pulumi.aws.appflow.inputs.FlowDestinationFlowConfigArgs;
import com.pulumi.aws.appflow.inputs.FlowDestinationFlowConfigDestinationConnectorPropertiesArgs;
import com.pulumi.aws.appflow.inputs.FlowDestinationFlowConfigDestinationConnectorPropertiesS3Args;
import com.pulumi.aws.appflow.inputs.FlowDestinationFlowConfigDestinationConnectorPropertiesS3S3OutputFormatConfigArgs;
import com.pulumi.aws.appflow.inputs.FlowDestinationFlowConfigDestinationConnectorPropertiesS3S3OutputFormatConfigPrefixConfigArgs;
import com.pulumi.aws.appflow.inputs.FlowTaskArgs;
import com.pulumi.aws.appflow.inputs.FlowTriggerConfigArgs;
import com.pulumi.asset.FileAsset;
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 exampleSourceBucketV2 = new BucketV2("exampleSourceBucketV2");
final var exampleSourcePolicyDocument = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
.statements(GetPolicyDocumentStatementArgs.builder()
.sid("AllowAppFlowSourceActions")
.effect("Allow")
.principals(GetPolicyDocumentStatementPrincipalArgs.builder()
.type("Service")
.identifiers("appflow.amazonaws.com")
.build())
.actions(
"s3:ListBucket",
"s3:GetObject")
.resources(
"arn:aws:s3:::example_source",
"arn:aws:s3:::example_source/*")
.build())
.build());
var exampleSourceBucketPolicy = new BucketPolicy("exampleSourceBucketPolicy", BucketPolicyArgs.builder()
.bucket(exampleSourceBucketV2.id())
.policy(exampleSourcePolicyDocument.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
.build());
var exampleBucketObjectv2 = new BucketObjectv2("exampleBucketObjectv2", BucketObjectv2Args.builder()
.bucket(exampleSourceBucketV2.id())
.key("example_source.csv")
.source(new FileAsset("example_source.csv"))
.build());
var exampleDestinationBucketV2 = new BucketV2("exampleDestinationBucketV2");
final var exampleDestinationPolicyDocument = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
.statements(GetPolicyDocumentStatementArgs.builder()
.sid("AllowAppFlowDestinationActions")
.effect("Allow")
.principals(GetPolicyDocumentStatementPrincipalArgs.builder()
.type("Service")
.identifiers("appflow.amazonaws.com")
.build())
.actions(
"s3:PutObject",
"s3:AbortMultipartUpload",
"s3:ListMultipartUploadParts",
"s3:ListBucketMultipartUploads",
"s3:GetBucketAcl",
"s3:PutObjectAcl")
.resources(
"arn:aws:s3:::example_destination",
"arn:aws:s3:::example_destination/*")
.build())
.build());
var exampleDestinationBucketPolicy = new BucketPolicy("exampleDestinationBucketPolicy", BucketPolicyArgs.builder()
.bucket(exampleDestinationBucketV2.id())
.policy(exampleDestinationPolicyDocument.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
.build());
var exampleFlow = new Flow("exampleFlow", FlowArgs.builder()
.sourceFlowConfig(FlowSourceFlowConfigArgs.builder()
.connectorType("S3")
.sourceConnectorProperties(FlowSourceFlowConfigSourceConnectorPropertiesArgs.builder()
.s3(FlowSourceFlowConfigSourceConnectorPropertiesS3Args.builder()
.bucketName(exampleSourceBucketPolicy.bucket())
.bucketPrefix("example")
.build())
.build())
.build())
.destinationFlowConfigs(FlowDestinationFlowConfigArgs.builder()
.connectorType("S3")
.destinationConnectorProperties(FlowDestinationFlowConfigDestinationConnectorPropertiesArgs.builder()
.s3(FlowDestinationFlowConfigDestinationConnectorPropertiesS3Args.builder()
.bucketName(exampleDestinationBucketPolicy.bucket())
.s3OutputFormatConfig(FlowDestinationFlowConfigDestinationConnectorPropertiesS3S3OutputFormatConfigArgs.builder()
.prefixConfig(FlowDestinationFlowConfigDestinationConnectorPropertiesS3S3OutputFormatConfigPrefixConfigArgs.builder()
.prefixType("PATH")
.build())
.build())
.build())
.build())
.build())
.tasks(FlowTaskArgs.builder()
.sourceFields("exampleField")
.destinationField("exampleField")
.taskType("Map")
.connectorOperators(FlowTaskConnectorOperatorArgs.builder()
.s3("NO_OP")
.build())
.build())
.triggerConfig(FlowTriggerConfigArgs.builder()
.triggerType("OnDemand")
.build())
.build());
}
}
Content copied to clipboard
Import
Using pulumi import
, import AppFlow flows using the arn
. For example:
$ pulumi import aws:appflow/flow:Flow example arn:aws:appflow:us-west-2:123456789012:flow/example-flow
Content copied to clipboard
Constructors
Link copied to clipboard
fun FlowArgs(description: Output<String>? = null, destinationFlowConfigs: Output<List<FlowDestinationFlowConfigArgs>>? = null, kmsArn: Output<String>? = null, name: Output<String>? = null, sourceFlowConfig: Output<FlowSourceFlowConfigArgs>? = null, tags: Output<Map<String, String>>? = null, tasks: Output<List<FlowTaskArgs>>? = null, triggerConfig: Output<FlowTriggerConfigArgs>? = null)