/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ /* * Do not modify this file. This file is generated from the appflow-2020-08-23.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.Appflow.Model { /// /// The properties that are applied when Salesforce is being used as a source. /// public partial class SalesforceSourceProperties { private SalesforceDataTransferApi _dataTransferApi; private bool? _enableDynamicFieldUpdate; private bool? _includeDeletedRecords; private string _object; /// /// Gets and sets the property 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. /// ///
///
public SalesforceDataTransferApi DataTransferApi { get { return this._dataTransferApi; } set { this._dataTransferApi = value; } } // Check to see if DataTransferApi property is set internal bool IsSetDataTransferApi() { return this._dataTransferApi != null; } /// /// Gets and sets the property EnableDynamicFieldUpdate. /// /// The flag that enables dynamic fetching of new (recently added) fields in the Salesforce /// objects while running a flow. /// /// public bool EnableDynamicFieldUpdate { get { return this._enableDynamicFieldUpdate.GetValueOrDefault(); } set { this._enableDynamicFieldUpdate = value; } } // Check to see if EnableDynamicFieldUpdate property is set internal bool IsSetEnableDynamicFieldUpdate() { return this._enableDynamicFieldUpdate.HasValue; } /// /// Gets and sets the property IncludeDeletedRecords. /// /// Indicates whether Amazon AppFlow includes deleted files in the flow run. /// /// public bool IncludeDeletedRecords { get { return this._includeDeletedRecords.GetValueOrDefault(); } set { this._includeDeletedRecords = value; } } // Check to see if IncludeDeletedRecords property is set internal bool IsSetIncludeDeletedRecords() { return this._includeDeletedRecords.HasValue; } /// /// Gets and sets the property Object. /// /// The object specified in the Salesforce flow source. /// /// [AWSProperty(Required=true, Max=512)] public string Object { get { return this._object; } set { this._object = value; } } // Check to see if Object property is set internal bool IsSetObject() { return this._object != null; } } }