/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace Appflow { namespace Model { /** *

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

See Also:

AWS * API Reference

*/ class SalesforceSourceProperties { public: AWS_APPFLOW_API SalesforceSourceProperties(); AWS_APPFLOW_API SalesforceSourceProperties(Aws::Utils::Json::JsonView jsonValue); AWS_APPFLOW_API SalesforceSourceProperties& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_APPFLOW_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The object specified in the Salesforce flow source.

*/ inline const Aws::String& GetObject() const{ return m_object; } /** *

The object specified in the Salesforce flow source.

*/ inline bool ObjectHasBeenSet() const { return m_objectHasBeenSet; } /** *

The object specified in the Salesforce flow source.

*/ inline void SetObject(const Aws::String& value) { m_objectHasBeenSet = true; m_object = value; } /** *

The object specified in the Salesforce flow source.

*/ inline void SetObject(Aws::String&& value) { m_objectHasBeenSet = true; m_object = std::move(value); } /** *

The object specified in the Salesforce flow source.

*/ inline void SetObject(const char* value) { m_objectHasBeenSet = true; m_object.assign(value); } /** *

The object specified in the Salesforce flow source.

*/ inline SalesforceSourceProperties& WithObject(const Aws::String& value) { SetObject(value); return *this;} /** *

The object specified in the Salesforce flow source.

*/ inline SalesforceSourceProperties& WithObject(Aws::String&& value) { SetObject(std::move(value)); return *this;} /** *

The object specified in the Salesforce flow source.

*/ inline SalesforceSourceProperties& WithObject(const char* value) { SetObject(value); return *this;} /** *

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

*/ inline bool GetEnableDynamicFieldUpdate() const{ return m_enableDynamicFieldUpdate; } /** *

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

*/ inline bool EnableDynamicFieldUpdateHasBeenSet() const { return m_enableDynamicFieldUpdateHasBeenSet; } /** *

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

*/ inline void SetEnableDynamicFieldUpdate(bool value) { m_enableDynamicFieldUpdateHasBeenSet = true; m_enableDynamicFieldUpdate = value; } /** *

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

*/ inline SalesforceSourceProperties& WithEnableDynamicFieldUpdate(bool value) { SetEnableDynamicFieldUpdate(value); return *this;} /** *

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

*/ inline bool GetIncludeDeletedRecords() const{ return m_includeDeletedRecords; } /** *

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

*/ inline bool IncludeDeletedRecordsHasBeenSet() const { return m_includeDeletedRecordsHasBeenSet; } /** *

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

*/ inline void SetIncludeDeletedRecords(bool value) { m_includeDeletedRecordsHasBeenSet = true; m_includeDeletedRecords = value; } /** *

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

*/ inline SalesforceSourceProperties& WithIncludeDeletedRecords(bool value) { SetIncludeDeletedRecords(value); return *this;} /** *

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.

*/ inline const SalesforceDataTransferApi& GetDataTransferApi() const{ return m_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.

*/ inline bool DataTransferApiHasBeenSet() const { return m_dataTransferApiHasBeenSet; } /** *

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.

*/ inline void SetDataTransferApi(const SalesforceDataTransferApi& value) { m_dataTransferApiHasBeenSet = true; m_dataTransferApi = value; } /** *

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.

*/ inline void SetDataTransferApi(SalesforceDataTransferApi&& value) { m_dataTransferApiHasBeenSet = true; m_dataTransferApi = std::move(value); } /** *

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.

*/ inline SalesforceSourceProperties& WithDataTransferApi(const SalesforceDataTransferApi& value) { SetDataTransferApi(value); return *this;} /** *

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.

*/ inline SalesforceSourceProperties& WithDataTransferApi(SalesforceDataTransferApi&& value) { SetDataTransferApi(std::move(value)); return *this;} private: Aws::String m_object; bool m_objectHasBeenSet = false; bool m_enableDynamicFieldUpdate; bool m_enableDynamicFieldUpdateHasBeenSet = false; bool m_includeDeletedRecords; bool m_includeDeletedRecordsHasBeenSet = false; SalesforceDataTransferApi m_dataTransferApi; bool m_dataTransferApiHasBeenSet = false; }; } // namespace Model } // namespace Appflow } // namespace Aws