Class Flow


  • public class Flow
    extends com.pulumi.resources.CustomResource
    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.Bucket;
     import com.pulumi.aws.s3.BucketArgs;
     import com.pulumi.aws.iam.IamFunctions;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementArgs;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs;
     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.FlowTriggerConfigArgs;
     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.FlowTaskConnectorOperatorArgs;
     import com.pulumi.asset.FileAsset;
     import java.util.ArrayList;
     import java.util.Arrays;
     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 exampleSourceBucket = new Bucket("exampleSourceBucket", BucketArgs.builder()
                 .bucket("example-source")
                 .build());
     
             final var exampleSource = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                 .statements(GetPolicyDocumentStatementArgs.builder()
                     .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                         .type("Service")
                         .identifiers("appflow.amazonaws.com")
                         .build())
                     .sid("AllowAppFlowSourceActions")
                     .effect("Allow")
                     .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(exampleSourceBucket.id())
                 .policy(exampleSource.json())
                 .build());
     
             var example = new BucketObjectv2("example", BucketObjectv2Args.builder()
                 .bucket(exampleSourceBucket.id())
                 .key("example_source.csv")
                 .source(new FileAsset("example_source.csv"))
                 .build());
     
             var exampleDestinationBucket = new Bucket("exampleDestinationBucket", BucketArgs.builder()
                 .bucket("example-destination")
                 .build());
     
             final var exampleDestination = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                 .statements(GetPolicyDocumentStatementArgs.builder()
                     .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                         .type("Service")
                         .identifiers("appflow.amazonaws.com")
                         .build())
                     .sid("AllowAppFlowDestinationActions")
                     .effect("Allow")
                     .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(exampleDestinationBucket.id())
                 .policy(exampleDestination.json())
                 .build());
     
             var exampleFlow = new Flow("exampleFlow", FlowArgs.builder()
                 .sourceFlowConfig(FlowSourceFlowConfigArgs.builder()
                     .sourceConnectorProperties(FlowSourceFlowConfigSourceConnectorPropertiesArgs.builder()
                         .s3(FlowSourceFlowConfigSourceConnectorPropertiesS3Args.builder()
                             .bucketName(exampleSourceBucketPolicy.bucket())
                             .bucketPrefix("example")
                             .build())
                         .build())
                     .connectorType("S3")
                     .build())
                 .triggerConfig(FlowTriggerConfigArgs.builder()
                     .triggerType("OnDemand")
                     .build())
                 .destinationFlowConfigs(FlowDestinationFlowConfigArgs.builder()
                     .destinationConnectorProperties(FlowDestinationFlowConfigDestinationConnectorPropertiesArgs.builder()
                         .s3(FlowDestinationFlowConfigDestinationConnectorPropertiesS3Args.builder()
                             .s3OutputFormatConfig(FlowDestinationFlowConfigDestinationConnectorPropertiesS3S3OutputFormatConfigArgs.builder()
                                 .prefixConfig(FlowDestinationFlowConfigDestinationConnectorPropertiesS3S3OutputFormatConfigPrefixConfigArgs.builder()
                                     .prefixType("PATH")
                                     .build())
                                 .build())
                             .bucketName(exampleDestinationBucketPolicy.bucket())
                             .build())
                         .build())
                     .connectorType("S3")
                     .build())
                 .tasks(FlowTaskArgs.builder()
                     .connectorOperators(FlowTaskConnectorOperatorArgs.builder()
                         .s3("NO_OP")
                         .build())
                     .sourceFields("exampleField")
                     .destinationField("exampleField")
                     .taskType("Map")
                     .build())
                 .name("example")
                 .build());
     
         }
     }
     
     
    ## Import ### Identity Schema #### Required * `name` (String) Name of the AppFlow flow. #### Optional * `accountId` (String) AWS Account where this resource is managed. * `region` (String) Region where this resource is managed. Using `pulumi import`, import AppFlow flows using the `name`. For example: ```sh $ pulumi import aws:appflow/flow:Flow example example-flow ```
    • Nested Class Summary

      • Nested classes/interfaces inherited from class com.pulumi.resources.CustomResource

        com.pulumi.resources.CustomResource.CustomResourceInternal
      • Nested classes/interfaces inherited from class com.pulumi.resources.Resource

        com.pulumi.resources.Resource.LazyField<T extends java.lang.Object>, com.pulumi.resources.Resource.LazyFields, com.pulumi.resources.Resource.ResourceInternal
    • Field Summary

      • Fields inherited from class com.pulumi.resources.Resource

        childResources, remote
    • Constructor Summary

      Constructors 
      Constructor Description
      Flow​(java.lang.String name)  
      Flow​(java.lang.String name, FlowArgs args)  
      Flow​(java.lang.String name, FlowArgs args, com.pulumi.resources.CustomResourceOptions options)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      com.pulumi.core.Output<java.lang.String> arn()  
      com.pulumi.core.Output<java.util.Optional<java.lang.String>> description()  
      com.pulumi.core.Output<java.util.List<FlowDestinationFlowConfig>> destinationFlowConfigs()  
      com.pulumi.core.Output<java.lang.String> flowStatus()  
      static Flow get​(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, FlowState state, com.pulumi.resources.CustomResourceOptions options)
      Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.
      com.pulumi.core.Output<java.lang.String> kmsArn()  
      com.pulumi.core.Output<FlowMetadataCatalogConfig> metadataCatalogConfig()  
      com.pulumi.core.Output<java.lang.String> name()  
      com.pulumi.core.Output<java.lang.String> region()  
      com.pulumi.core.Output<FlowSourceFlowConfig> sourceFlowConfig()  
      com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> tags()  
      com.pulumi.core.Output<java.util.Map<java.lang.String,​java.lang.String>> tagsAll()  
      com.pulumi.core.Output<java.util.List<FlowTask>> tasks()  
      com.pulumi.core.Output<FlowTriggerConfig> triggerConfig()  
      • Methods inherited from class com.pulumi.resources.CustomResource

        getId, id, idFuture
      • Methods inherited from class com.pulumi.resources.Resource

        getChildResources, getResourceName, getResourceType, getUrn, pulumiChildResources, pulumiResourceName, pulumiResourceType, urn
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Flow

        public Flow​(java.lang.String name)
        Parameters:
        name - The _unique_ name of the resulting resource.
      • Flow

        public Flow​(java.lang.String name,
                    FlowArgs args)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
      • Flow

        public Flow​(java.lang.String name,
                    FlowArgs args,
                    @Nullable
                    com.pulumi.resources.CustomResourceOptions options)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
        options - A bag of options that control this resource's behavior.
    • Method Detail

      • arn

        public com.pulumi.core.Output<java.lang.String> arn()
        Returns:
        Flow's ARN.
      • description

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> description()
        Returns:
        Description of the flow.
      • destinationFlowConfigs

        public com.pulumi.core.Output<java.util.List<FlowDestinationFlowConfig>> destinationFlowConfigs()
        Returns:
        Configuration that controls how Amazon AppFlow places data in the destination connector. See the `destinationFlowConfig` Block for details.
      • flowStatus

        public com.pulumi.core.Output<java.lang.String> flowStatus()
        Returns:
        Current status of the flow.
      • kmsArn

        public com.pulumi.core.Output<java.lang.String> kmsArn()
        Returns:
        ARN of the KMS key you provide for encryption. Required if you do not want to use the Amazon AppFlow-managed KMS key. Uses the Amazon AppFlow-managed KMS key when not provided.
      • metadataCatalogConfig

        public com.pulumi.core.Output<FlowMetadataCatalogConfig> metadataCatalogConfig()
        Returns:
        Configuration that determines how Amazon AppFlow catalogs the data that the flow transfers. See the `metadataCatalogConfig` Block for details.
      • name

        public com.pulumi.core.Output<java.lang.String> name()
        Returns:
        Name of the flow.
      • region

        public com.pulumi.core.Output<java.lang.String> region()
        Returns:
        Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
      • sourceFlowConfig

        public com.pulumi.core.Output<FlowSourceFlowConfig> sourceFlowConfig()
        Returns:
        Configuration that controls how Amazon AppFlow retrieves data from the source connector. See the `sourceFlowConfig` Block for details.
      • tags

        public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> tags()
        Returns:
        Key-value mapping of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
      • tagsAll

        public com.pulumi.core.Output<java.util.Map<java.lang.String,​java.lang.String>> tagsAll()
        Returns:
        Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
      • tasks

        public com.pulumi.core.Output<java.util.List<FlowTask>> tasks()
        Returns:
        Tasks that Amazon AppFlow performs while transferring the data in the flow run. See the `task` Block for details.
      • triggerConfig

        public com.pulumi.core.Output<FlowTriggerConfig> triggerConfig()
        Returns:
        Configuration that determines how and when the flow runs. See the `triggerConfig` Block for details.
      • get

        public static Flow get​(java.lang.String name,
                               com.pulumi.core.Output<java.lang.String> id,
                               @Nullable
                               FlowState state,
                               @Nullable
                               com.pulumi.resources.CustomResourceOptions options)
        Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.
        Parameters:
        name - The _unique_ name of the resulting resource.
        id - The _unique_ provider ID of the resource to lookup.
        state -
        options - Optional settings to control the behavior of the CustomResource.