Class SalesforceSourceProperties

java.lang.Object
software.amazon.awssdk.services.appflow.model.SalesforceSourceProperties
All Implemented Interfaces:
Serializable, SdkPojo, ToCopyableBuilder<SalesforceSourceProperties.Builder,SalesforceSourceProperties>

@Generated("software.amazon.awssdk:codegen") public final class SalesforceSourceProperties extends Object implements SdkPojo, Serializable, ToCopyableBuilder<SalesforceSourceProperties.Builder,SalesforceSourceProperties>

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

See Also:
  • Method Details

    • object

      public final String object()

      The object specified in the Salesforce flow source.

      Returns:
      The object specified in the Salesforce flow source.
    • enableDynamicFieldUpdate

      public final Boolean enableDynamicFieldUpdate()

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

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

      public final Boolean includeDeletedRecords()

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

      Returns:
      Indicates whether Amazon AppFlow includes deleted files in the flow run.
    • dataTransferApi

      public final SalesforceDataTransferApi dataTransferApi()

      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.

      If the service returns an enum value that is not available in the current SDK version, dataTransferApi will return SalesforceDataTransferApi.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from dataTransferApiAsString().

      Returns:
      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.

      See Also:
    • dataTransferApiAsString

      public final String dataTransferApiAsString()

      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.

      If the service returns an enum value that is not available in the current SDK version, dataTransferApi will return SalesforceDataTransferApi.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from dataTransferApiAsString().

      Returns:
      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.

      See Also:
    • toBuilder

      Description copied from interface: ToCopyableBuilder
      Take this object and create a builder that contains all of the current property values of this object.
      Specified by:
      toBuilder in interface ToCopyableBuilder<SalesforceSourceProperties.Builder,SalesforceSourceProperties>
      Returns:
      a builder for type T
    • builder

      public static SalesforceSourceProperties.Builder builder()
    • serializableBuilderClass

      public static Class<? extends SalesforceSourceProperties.Builder> serializableBuilderClass()
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public final boolean equals(Object obj)
      Overrides:
      equals in class Object
    • equalsBySdkFields

      public final boolean equalsBySdkFields(Object obj)
      Description copied from interface: SdkPojo
      Indicates whether some other object is "equal to" this one by SDK fields. An SDK field is a modeled, non-inherited field in an SdkPojo class, and is generated based on a service model.

      If an SdkPojo class does not have any inherited fields, equalsBySdkFields and equals are essentially the same.

      Specified by:
      equalsBySdkFields in interface SdkPojo
      Parameters:
      obj - the object to be compared with
      Returns:
      true if the other object equals to this object by sdk fields, false otherwise.
    • toString

      public final String toString()
      Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be redacted from this string using a placeholder value.
      Overrides:
      toString in class Object
    • getValueForField

      public final <T> Optional<T> getValueForField(String fieldName, Class<T> clazz)
    • sdkFields

      public final List<SdkField<?>> sdkFields()
      Specified by:
      sdkFields in interface SdkPojo
      Returns:
      List of SdkField in this POJO. May be empty list but should never be null.