Class: AWSCDK::AppFlow::CfnFlow::SalesforceSourcePropertiesProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
app_flow/cfn_flow.rb

Overview

The properties that are applied when Salesforce is being used as a source.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(object:, data_transfer_api: nil, enable_dynamic_field_update: nil, include_deleted_records: nil) ⇒ SalesforceSourcePropertiesProperty

Returns a new instance of SalesforceSourcePropertiesProperty.

Parameters:

  • object (String)

    The object specified in the Salesforce flow source.

  • data_transfer_api (String, nil) (defaults to: nil)

    Specifies which Salesforce API is used by Amazon AppFlow when your flow transfers data from Salesforce.

  • enable_dynamic_field_update (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    The flag that enables dynamic fetching of new (recently added) fields in the Salesforce objects while running a flow.

  • include_deleted_records (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    Indicates whether Amazon AppFlow includes deleted files in the flow run.



2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
# File 'app_flow/cfn_flow.rb', line 2431

def initialize(object:, data_transfer_api: nil, enable_dynamic_field_update: nil, include_deleted_records: nil)
  @object = object
  Jsii::Type.check_type(@object, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "object")
  @data_transfer_api = data_transfer_api
  Jsii::Type.check_type(@data_transfer_api, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "dataTransferApi") unless @data_transfer_api.nil?
  @enable_dynamic_field_update = enable_dynamic_field_update
  Jsii::Type.check_type(@enable_dynamic_field_update, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "enableDynamicFieldUpdate") unless @enable_dynamic_field_update.nil?
  @include_deleted_records = include_deleted_records
  Jsii::Type.check_type(@include_deleted_records, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "includeDeletedRecords") unless @include_deleted_records.nil?
end

Instance Attribute Details

#data_transfer_apiString? (readonly)

Specifies which Salesforce API is used by Amazon AppFlow when your flow transfers data from Salesforce.

  • AUTOMATIC - The default. Amazon AppFlow selects which API to use based on the number of records that your flow transfers from Salesforce. If your flow transfers fewer than 1,000,000 records, Amazon AppFlow uses Salesforce REST API. If your flow transfers 1,000,000 records or more, Amazon AppFlow uses Salesforce Bulk API 2.0.

Each of these Salesforce APIs structures data differently. If Amazon AppFlow selects the API automatically, be aware that, for recurring flows, the data output might vary from one flow run to the next. For example, if a flow runs daily, it might use REST API on one day to transfer 900,000 records, and it might use Bulk API 2.0 on the next day to transfer 1,100,000 records. For each of these flow runs, the respective Salesforce API formats the data differently. Some of the differences include how dates are formatted and null values are represented. Also, Bulk API 2.0 doesn't transfer Salesforce compound fields.

By choosing this option, you optimize flow performance for both small and large data transfers, but the tradeoff is inconsistent formatting in the output.

  • BULKV2 - Amazon AppFlow uses only Salesforce Bulk API 2.0. This API runs asynchronous data transfers, and it's optimal for large sets of data. By choosing this option, you ensure that your flow writes consistent output, but you optimize performance only for large data transfers.

Note that Bulk API 2.0 does not transfer Salesforce compound fields.

  • REST_SYNC - Amazon AppFlow uses only Salesforce REST API. By choosing this option, you ensure that your flow writes consistent output, but you decrease performance for large data transfers that are better suited for Bulk API 2.0. In some cases, if your flow attempts to transfer a vary large set of data, it might fail wituh a timed out error.


2463
2464
2465
# File 'app_flow/cfn_flow.rb', line 2463

def data_transfer_api
  @data_transfer_api
end

#enable_dynamic_field_updateBoolean, ... (readonly)

The flag that enables dynamic fetching of new (recently added) fields in the Salesforce objects while running a flow.



2468
2469
2470
# File 'app_flow/cfn_flow.rb', line 2468

def enable_dynamic_field_update
  @enable_dynamic_field_update
end

#include_deleted_recordsBoolean, ... (readonly)

Indicates whether Amazon AppFlow includes deleted files in the flow run.



2473
2474
2475
# File 'app_flow/cfn_flow.rb', line 2473

def include_deleted_records
  @include_deleted_records
end

#objectString (readonly)

The object specified in the Salesforce flow source.



2446
2447
2448
# File 'app_flow/cfn_flow.rb', line 2446

def object
  @object
end

Class Method Details

.jsii_propertiesObject



2475
2476
2477
2478
2479
2480
2481
2482
# File 'app_flow/cfn_flow.rb', line 2475

def self.jsii_properties
  {
    :object => "object",
    :data_transfer_api => "dataTransferApi",
    :enable_dynamic_field_update => "enableDynamicFieldUpdate",
    :include_deleted_records => "includeDeletedRecords",
  }
end

Instance Method Details

#to_jsiiObject



2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
# File 'app_flow/cfn_flow.rb', line 2484

def to_jsii
  result = {}
  result.merge!({
    "object" => @object,
    "dataTransferApi" => @data_transfer_api,
    "enableDynamicFieldUpdate" => @enable_dynamic_field_update,
    "includeDeletedRecords" => @include_deleted_records,
  })
  result.compact
end