java.lang.Object
software.amazon.jsii.JsiiObject
All Implemented Interfaces:
IConstruct, IDependable, IInspectable, software.amazon.jsii.JsiiSerializable, software.constructs.IConstruct

@Generated(value="jsii-pacmak/1.84.0 (build 5404dcf)", date="2023-06-19T16:29:55.566Z") @Stability(Stable) public class CfnFlow extends CfnResource implements IInspectable
A CloudFormation AWS::AppFlow::Flow.

The AWS::AppFlow::Flow resource is an Amazon AppFlow resource type that specifies a new flow.

If you want to use AWS CloudFormation to create a connector profile for connectors that implement OAuth (such as Salesforce, Slack, Zendesk, and Google Analytics), you must fetch the access and refresh tokens. You can do this by implementing your own UI for OAuth, or by retrieving the tokens from elsewhere. Alternatively, you can use the Amazon AppFlow console to create the connector profile, and then use that connector profile in the flow creation CloudFormation template.

Example:

 // The code below shows an example of how to instantiate this type.
 // The values are placeholders you should change.
 import software.amazon.awscdk.services.appflow.*;
 CfnFlow cfnFlow = CfnFlow.Builder.create(this, "MyCfnFlow")
         .destinationFlowConfigList(List.of(DestinationFlowConfigProperty.builder()
                 .connectorType("connectorType")
                 .destinationConnectorProperties(DestinationConnectorPropertiesProperty.builder()
                         .customConnector(CustomConnectorDestinationPropertiesProperty.builder()
                                 .entityName("entityName")
                                 // the properties below are optional
                                 .customProperties(Map.of(
                                         "customPropertiesKey", "customProperties"))
                                 .errorHandlingConfig(ErrorHandlingConfigProperty.builder()
                                         .bucketName("bucketName")
                                         .bucketPrefix("bucketPrefix")
                                         .failOnFirstError(false)
                                         .build())
                                 .idFieldNames(List.of("idFieldNames"))
                                 .writeOperationType("writeOperationType")
                                 .build())
                         .eventBridge(EventBridgeDestinationPropertiesProperty.builder()
                                 .object("object")
                                 // the properties below are optional
                                 .errorHandlingConfig(ErrorHandlingConfigProperty.builder()
                                         .bucketName("bucketName")
                                         .bucketPrefix("bucketPrefix")
                                         .failOnFirstError(false)
                                         .build())
                                 .build())
                         .lookoutMetrics(LookoutMetricsDestinationPropertiesProperty.builder()
                                 .object("object")
                                 .build())
                         .marketo(MarketoDestinationPropertiesProperty.builder()
                                 .object("object")
                                 // the properties below are optional
                                 .errorHandlingConfig(ErrorHandlingConfigProperty.builder()
                                         .bucketName("bucketName")
                                         .bucketPrefix("bucketPrefix")
                                         .failOnFirstError(false)
                                         .build())
                                 .build())
                         .redshift(RedshiftDestinationPropertiesProperty.builder()
                                 .intermediateBucketName("intermediateBucketName")
                                 .object("object")
                                 // the properties below are optional
                                 .bucketPrefix("bucketPrefix")
                                 .errorHandlingConfig(ErrorHandlingConfigProperty.builder()
                                         .bucketName("bucketName")
                                         .bucketPrefix("bucketPrefix")
                                         .failOnFirstError(false)
                                         .build())
                                 .build())
                         .s3(S3DestinationPropertiesProperty.builder()
                                 .bucketName("bucketName")
                                 // the properties below are optional
                                 .bucketPrefix("bucketPrefix")
                                 .s3OutputFormatConfig(S3OutputFormatConfigProperty.builder()
                                         .aggregationConfig(AggregationConfigProperty.builder()
                                                 .aggregationType("aggregationType")
                                                 .targetFileSize(123)
                                                 .build())
                                         .fileType("fileType")
                                         .prefixConfig(PrefixConfigProperty.builder()
                                                 .pathPrefixHierarchy(List.of("pathPrefixHierarchy"))
                                                 .prefixFormat("prefixFormat")
                                                 .prefixType("prefixType")
                                                 .build())
                                         .preserveSourceDataTyping(false)
                                         .build())
                                 .build())
                         .salesforce(SalesforceDestinationPropertiesProperty.builder()
                                 .object("object")
                                 // the properties below are optional
                                 .dataTransferApi("dataTransferApi")
                                 .errorHandlingConfig(ErrorHandlingConfigProperty.builder()
                                         .bucketName("bucketName")
                                         .bucketPrefix("bucketPrefix")
                                         .failOnFirstError(false)
                                         .build())
                                 .idFieldNames(List.of("idFieldNames"))
                                 .writeOperationType("writeOperationType")
                                 .build())
                         .sapoData(SAPODataDestinationPropertiesProperty.builder()
                                 .objectPath("objectPath")
                                 // the properties below are optional
                                 .errorHandlingConfig(ErrorHandlingConfigProperty.builder()
                                         .bucketName("bucketName")
                                         .bucketPrefix("bucketPrefix")
                                         .failOnFirstError(false)
                                         .build())
                                 .idFieldNames(List.of("idFieldNames"))
                                 .successResponseHandlingConfig(SuccessResponseHandlingConfigProperty.builder()
                                         .bucketName("bucketName")
                                         .bucketPrefix("bucketPrefix")
                                         .build())
                                 .writeOperationType("writeOperationType")
                                 .build())
                         .snowflake(SnowflakeDestinationPropertiesProperty.builder()
                                 .intermediateBucketName("intermediateBucketName")
                                 .object("object")
                                 // the properties below are optional
                                 .bucketPrefix("bucketPrefix")
                                 .errorHandlingConfig(ErrorHandlingConfigProperty.builder()
                                         .bucketName("bucketName")
                                         .bucketPrefix("bucketPrefix")
                                         .failOnFirstError(false)
                                         .build())
                                 .build())
                         .upsolver(UpsolverDestinationPropertiesProperty.builder()
                                 .bucketName("bucketName")
                                 .s3OutputFormatConfig(UpsolverS3OutputFormatConfigProperty.builder()
                                         .prefixConfig(PrefixConfigProperty.builder()
                                                 .pathPrefixHierarchy(List.of("pathPrefixHierarchy"))
                                                 .prefixFormat("prefixFormat")
                                                 .prefixType("prefixType")
                                                 .build())
                                         // the properties below are optional
                                         .aggregationConfig(AggregationConfigProperty.builder()
                                                 .aggregationType("aggregationType")
                                                 .targetFileSize(123)
                                                 .build())
                                         .fileType("fileType")
                                         .build())
                                 // the properties below are optional
                                 .bucketPrefix("bucketPrefix")
                                 .build())
                         .zendesk(ZendeskDestinationPropertiesProperty.builder()
                                 .object("object")
                                 // the properties below are optional
                                 .errorHandlingConfig(ErrorHandlingConfigProperty.builder()
                                         .bucketName("bucketName")
                                         .bucketPrefix("bucketPrefix")
                                         .failOnFirstError(false)
                                         .build())
                                 .idFieldNames(List.of("idFieldNames"))
                                 .writeOperationType("writeOperationType")
                                 .build())
                         .build())
                 // the properties below are optional
                 .apiVersion("apiVersion")
                 .connectorProfileName("connectorProfileName")
                 .build()))
         .flowName("flowName")
         .sourceFlowConfig(SourceFlowConfigProperty.builder()
                 .connectorType("connectorType")
                 .sourceConnectorProperties(SourceConnectorPropertiesProperty.builder()
                         .amplitude(AmplitudeSourcePropertiesProperty.builder()
                                 .object("object")
                                 .build())
                         .customConnector(CustomConnectorSourcePropertiesProperty.builder()
                                 .entityName("entityName")
                                 // the properties below are optional
                                 .customProperties(Map.of(
                                         "customPropertiesKey", "customProperties"))
                                 .build())
                         .datadog(DatadogSourcePropertiesProperty.builder()
                                 .object("object")
                                 .build())
                         .dynatrace(DynatraceSourcePropertiesProperty.builder()
                                 .object("object")
                                 .build())
                         .googleAnalytics(GoogleAnalyticsSourcePropertiesProperty.builder()
                                 .object("object")
                                 .build())
                         .inforNexus(InforNexusSourcePropertiesProperty.builder()
                                 .object("object")
                                 .build())
                         .marketo(MarketoSourcePropertiesProperty.builder()
                                 .object("object")
                                 .build())
                         .pardot(PardotSourcePropertiesProperty.builder()
                                 .object("object")
                                 .build())
                         .s3(S3SourcePropertiesProperty.builder()
                                 .bucketName("bucketName")
                                 .bucketPrefix("bucketPrefix")
                                 // the properties below are optional
                                 .s3InputFormatConfig(S3InputFormatConfigProperty.builder()
                                         .s3InputFileType("s3InputFileType")
                                         .build())
                                 .build())
                         .salesforce(SalesforceSourcePropertiesProperty.builder()
                                 .object("object")
                                 // the properties below are optional
                                 .dataTransferApi("dataTransferApi")
                                 .enableDynamicFieldUpdate(false)
                                 .includeDeletedRecords(false)
                                 .build())
                         .sapoData(SAPODataSourcePropertiesProperty.builder()
                                 .objectPath("objectPath")
                                 .build())
                         .serviceNow(ServiceNowSourcePropertiesProperty.builder()
                                 .object("object")
                                 .build())
                         .singular(SingularSourcePropertiesProperty.builder()
                                 .object("object")
                                 .build())
                         .slack(SlackSourcePropertiesProperty.builder()
                                 .object("object")
                                 .build())
                         .trendmicro(TrendmicroSourcePropertiesProperty.builder()
                                 .object("object")
                                 .build())
                         .veeva(VeevaSourcePropertiesProperty.builder()
                                 .object("object")
                                 // the properties below are optional
                                 .documentType("documentType")
                                 .includeAllVersions(false)
                                 .includeRenditions(false)
                                 .includeSourceFiles(false)
                                 .build())
                         .zendesk(ZendeskSourcePropertiesProperty.builder()
                                 .object("object")
                                 .build())
                         .build())
                 // the properties below are optional
                 .apiVersion("apiVersion")
                 .connectorProfileName("connectorProfileName")
                 .incrementalPullConfig(IncrementalPullConfigProperty.builder()
                         .datetimeTypeFieldName("datetimeTypeFieldName")
                         .build())
                 .build())
         .tasks(List.of(TaskProperty.builder()
                 .sourceFields(List.of("sourceFields"))
                 .taskType("taskType")
                 // the properties below are optional
                 .connectorOperator(ConnectorOperatorProperty.builder()
                         .amplitude("amplitude")
                         .customConnector("customConnector")
                         .datadog("datadog")
                         .dynatrace("dynatrace")
                         .googleAnalytics("googleAnalytics")
                         .inforNexus("inforNexus")
                         .marketo("marketo")
                         .pardot("pardot")
                         .s3("s3")
                         .salesforce("salesforce")
                         .sapoData("sapoData")
                         .serviceNow("serviceNow")
                         .singular("singular")
                         .slack("slack")
                         .trendmicro("trendmicro")
                         .veeva("veeva")
                         .zendesk("zendesk")
                         .build())
                 .destinationField("destinationField")
                 .taskProperties(List.of(TaskPropertiesObjectProperty.builder()
                         .key("key")
                         .value("value")
                         .build()))
                 .build()))
         .triggerConfig(TriggerConfigProperty.builder()
                 .triggerType("triggerType")
                 // the properties below are optional
                 .triggerProperties(ScheduledTriggerPropertiesProperty.builder()
                         .scheduleExpression("scheduleExpression")
                         // the properties below are optional
                         .dataPullMode("dataPullMode")
                         .firstExecutionFrom(123)
                         .flowErrorDeactivationThreshold(123)
                         .scheduleEndTime(123)
                         .scheduleOffset(123)
                         .scheduleStartTime(123)
                         .timeZone("timeZone")
                         .build())
                 .build())
         // the properties below are optional
         .description("description")
         .flowStatus("flowStatus")
         .kmsArn("kmsArn")
         .metadataCatalogConfig(MetadataCatalogConfigProperty.builder()
                 .glueDataCatalog(GlueDataCatalogProperty.builder()
                         .databaseName("databaseName")
                         .roleArn("roleArn")
                         .tablePrefix("tablePrefix")
                         .build())
                 .build())
         .tags(List.of(CfnTag.builder()
                 .key("key")
                 .value("value")
                 .build()))
         .build();
 
  • Field Details

    • CFN_RESOURCE_TYPE_NAME

      @Stability(Stable) public static final String CFN_RESOURCE_TYPE_NAME
      The CloudFormation resource type name for this resource class.
  • Constructor Details

    • CfnFlow

      protected CfnFlow(software.amazon.jsii.JsiiObjectRef objRef)
    • CfnFlow

      protected CfnFlow(software.amazon.jsii.JsiiObject.InitializationMode initializationMode)
    • CfnFlow

      @Stability(Stable) public CfnFlow(@NotNull Construct scope, @NotNull String id, @NotNull CfnFlowProps props)
      Create a new AWS::AppFlow::Flow.

      Parameters:
      scope -
      • scope in which this resource is defined.
      This parameter is required.
      id -
      • scoped id of the resource.
      This parameter is required.
      props -
      • resource properties.
      This parameter is required.
  • Method Details

    • inspect

      @Stability(Stable) public void inspect(@NotNull TreeInspector inspector)
      Examines the CloudFormation resource and discloses attributes.

      Specified by:
      inspect in interface IInspectable
      Parameters:
      inspector -
      • tree inspector to collect and process attributes.
      This parameter is required.
    • renderProperties

      @Stability(Stable) @NotNull protected Map<String,Object> renderProperties(@NotNull Map<String,Object> props)
      Overrides:
      renderProperties in class CfnResource
      Parameters:
      props - This parameter is required.
    • getAttrFlowArn

      @Stability(Stable) @NotNull public String getAttrFlowArn()
      The flow's Amazon Resource Name (ARN).
    • getCfnProperties

      @Stability(Stable) @NotNull protected Map<String,Object> getCfnProperties()
      Overrides:
      getCfnProperties in class CfnResource
    • getTags

      @Stability(Stable) @NotNull public TagManager getTags()
      The tags used to organize, track, or control access for your flow.
    • getDestinationFlowConfigList

      @Stability(Stable) @NotNull public Object getDestinationFlowConfigList()
      The configuration that controls how Amazon AppFlow places data in the destination connector.
    • setDestinationFlowConfigList

      @Stability(Stable) public void setDestinationFlowConfigList(@NotNull IResolvable value)
      The configuration that controls how Amazon AppFlow places data in the destination connector.
    • setDestinationFlowConfigList

      @Stability(Stable) public void setDestinationFlowConfigList(@NotNull List<Object> value)
      The configuration that controls how Amazon AppFlow places data in the destination connector.
    • getFlowName

      @Stability(Stable) @NotNull public String getFlowName()
      The specified name of the flow.

      Spaces are not allowed. Use underscores (_) or hyphens (-) only.

    • setFlowName

      @Stability(Stable) public void setFlowName(@NotNull String value)
      The specified name of the flow.

      Spaces are not allowed. Use underscores (_) or hyphens (-) only.

    • getSourceFlowConfig

      @Stability(Stable) @NotNull public Object getSourceFlowConfig()
      Contains information about the configuration of the source connector used in the flow.
    • setSourceFlowConfig

      @Stability(Stable) public void setSourceFlowConfig(@NotNull IResolvable value)
      Contains information about the configuration of the source connector used in the flow.
    • setSourceFlowConfig

      @Stability(Stable) public void setSourceFlowConfig(@NotNull CfnFlow.SourceFlowConfigProperty value)
      Contains information about the configuration of the source connector used in the flow.
    • getTasks

      @Stability(Stable) @NotNull public Object getTasks()
      A list of tasks that Amazon AppFlow performs while transferring the data in the flow run.
    • setTasks

      @Stability(Stable) public void setTasks(@NotNull IResolvable value)
      A list of tasks that Amazon AppFlow performs while transferring the data in the flow run.
    • setTasks

      @Stability(Stable) public void setTasks(@NotNull List<Object> value)
      A list of tasks that Amazon AppFlow performs while transferring the data in the flow run.
    • getTriggerConfig

      @Stability(Stable) @NotNull public Object getTriggerConfig()
      The trigger settings that determine how and when Amazon AppFlow runs the specified flow.
    • setTriggerConfig

      @Stability(Stable) public void setTriggerConfig(@NotNull IResolvable value)
      The trigger settings that determine how and when Amazon AppFlow runs the specified flow.
    • setTriggerConfig

      @Stability(Stable) public void setTriggerConfig(@NotNull CfnFlow.TriggerConfigProperty value)
      The trigger settings that determine how and when Amazon AppFlow runs the specified flow.
    • getDescription

      @Stability(Stable) @Nullable public String getDescription()
      A user-entered description of the flow.
    • setDescription

      @Stability(Stable) public void setDescription(@Nullable String value)
      A user-entered description of the flow.
    • getFlowStatus

      @Stability(Stable) @Nullable public String getFlowStatus()
      Sets the status of the flow. You can specify one of the following values:.

      • Active - The flow runs based on the trigger settings that you defined. Active scheduled flows run as scheduled, and active event-triggered flows run when the specified change event occurs. However, active on-demand flows run only when you manually start them by using Amazon AppFlow.
      • Suspended - You can use this option to deactivate an active flow. Scheduled and event-triggered flows will cease to run until you reactive them. This value only affects scheduled and event-triggered flows. It has no effect for on-demand flows.

      If you omit the FlowStatus parameter, Amazon AppFlow creates the flow with a default status. The default status for on-demand flows is Active. The default status for scheduled and event-triggered flows is Draft, which means they’re not yet active.

    • setFlowStatus

      @Stability(Stable) public void setFlowStatus(@Nullable String value)
      Sets the status of the flow. You can specify one of the following values:.

      • Active - The flow runs based on the trigger settings that you defined. Active scheduled flows run as scheduled, and active event-triggered flows run when the specified change event occurs. However, active on-demand flows run only when you manually start them by using Amazon AppFlow.
      • Suspended - You can use this option to deactivate an active flow. Scheduled and event-triggered flows will cease to run until you reactive them. This value only affects scheduled and event-triggered flows. It has no effect for on-demand flows.

      If you omit the FlowStatus parameter, Amazon AppFlow creates the flow with a default status. The default status for on-demand flows is Active. The default status for scheduled and event-triggered flows is Draft, which means they’re not yet active.

    • getKmsArn

      @Stability(Stable) @Nullable public String getKmsArn()
      The ARN (Amazon Resource Name) of the Key Management Service (KMS) key you provide for encryption.

      This is required if you do not want to use the Amazon AppFlow-managed KMS key. If you don't provide anything here, Amazon AppFlow uses the Amazon AppFlow-managed KMS key.

    • setKmsArn

      @Stability(Stable) public void setKmsArn(@Nullable String value)
      The ARN (Amazon Resource Name) of the Key Management Service (KMS) key you provide for encryption.

      This is required if you do not want to use the Amazon AppFlow-managed KMS key. If you don't provide anything here, Amazon AppFlow uses the Amazon AppFlow-managed KMS key.

    • getMetadataCatalogConfig

      @Stability(Stable) @Nullable public Object getMetadataCatalogConfig()
      AWS::AppFlow::Flow.MetadataCatalogConfig.
    • setMetadataCatalogConfig

      @Stability(Stable) public void setMetadataCatalogConfig(@Nullable IResolvable value)
      AWS::AppFlow::Flow.MetadataCatalogConfig.
    • setMetadataCatalogConfig

      @Stability(Stable) public void setMetadataCatalogConfig(@Nullable CfnFlow.MetadataCatalogConfigProperty value)
      AWS::AppFlow::Flow.MetadataCatalogConfig.