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

The configuration that determines how Amazon AppFlow should format the flow * output data when Amazon S3 is used as the destination.

See Also:

* AWS * API Reference

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

Indicates the file type that Amazon AppFlow places in the Amazon S3 bucket. *

*/ inline const FileType& GetFileType() const{ return m_fileType; } /** *

Indicates the file type that Amazon AppFlow places in the Amazon S3 bucket. *

*/ inline bool FileTypeHasBeenSet() const { return m_fileTypeHasBeenSet; } /** *

Indicates the file type that Amazon AppFlow places in the Amazon S3 bucket. *

*/ inline void SetFileType(const FileType& value) { m_fileTypeHasBeenSet = true; m_fileType = value; } /** *

Indicates the file type that Amazon AppFlow places in the Amazon S3 bucket. *

*/ inline void SetFileType(FileType&& value) { m_fileTypeHasBeenSet = true; m_fileType = std::move(value); } /** *

Indicates the file type that Amazon AppFlow places in the Amazon S3 bucket. *

*/ inline S3OutputFormatConfig& WithFileType(const FileType& value) { SetFileType(value); return *this;} /** *

Indicates the file type that Amazon AppFlow places in the Amazon S3 bucket. *

*/ inline S3OutputFormatConfig& WithFileType(FileType&& value) { SetFileType(std::move(value)); return *this;} /** *

Determines the prefix that Amazon AppFlow applies to the folder name in the * Amazon S3 bucket. You can name folders according to the flow frequency and date. *

*/ inline const PrefixConfig& GetPrefixConfig() const{ return m_prefixConfig; } /** *

Determines the prefix that Amazon AppFlow applies to the folder name in the * Amazon S3 bucket. You can name folders according to the flow frequency and date. *

*/ inline bool PrefixConfigHasBeenSet() const { return m_prefixConfigHasBeenSet; } /** *

Determines the prefix that Amazon AppFlow applies to the folder name in the * Amazon S3 bucket. You can name folders according to the flow frequency and date. *

*/ inline void SetPrefixConfig(const PrefixConfig& value) { m_prefixConfigHasBeenSet = true; m_prefixConfig = value; } /** *

Determines the prefix that Amazon AppFlow applies to the folder name in the * Amazon S3 bucket. You can name folders according to the flow frequency and date. *

*/ inline void SetPrefixConfig(PrefixConfig&& value) { m_prefixConfigHasBeenSet = true; m_prefixConfig = std::move(value); } /** *

Determines the prefix that Amazon AppFlow applies to the folder name in the * Amazon S3 bucket. You can name folders according to the flow frequency and date. *

*/ inline S3OutputFormatConfig& WithPrefixConfig(const PrefixConfig& value) { SetPrefixConfig(value); return *this;} /** *

Determines the prefix that Amazon AppFlow applies to the folder name in the * Amazon S3 bucket. You can name folders according to the flow frequency and date. *

*/ inline S3OutputFormatConfig& WithPrefixConfig(PrefixConfig&& value) { SetPrefixConfig(std::move(value)); return *this;} inline const AggregationConfig& GetAggregationConfig() const{ return m_aggregationConfig; } inline bool AggregationConfigHasBeenSet() const { return m_aggregationConfigHasBeenSet; } inline void SetAggregationConfig(const AggregationConfig& value) { m_aggregationConfigHasBeenSet = true; m_aggregationConfig = value; } inline void SetAggregationConfig(AggregationConfig&& value) { m_aggregationConfigHasBeenSet = true; m_aggregationConfig = std::move(value); } inline S3OutputFormatConfig& WithAggregationConfig(const AggregationConfig& value) { SetAggregationConfig(value); return *this;} inline S3OutputFormatConfig& WithAggregationConfig(AggregationConfig&& value) { SetAggregationConfig(std::move(value)); return *this;} /** *

If your file output format is Parquet, use this parameter to set whether * Amazon AppFlow preserves the data types in your source data when it writes the * output to Amazon S3.

  • true: Amazon AppFlow * preserves the data types when it writes to Amazon S3. For example, an integer or * 1 in your source data is still an integer in your output.

  • *
  • false: Amazon AppFlow converts all of the source data into * strings when it writes to Amazon S3. For example, an integer of 1 * in your source data becomes the string "1" in the output.

  • *
*/ inline bool GetPreserveSourceDataTyping() const{ return m_preserveSourceDataTyping; } /** *

If your file output format is Parquet, use this parameter to set whether * Amazon AppFlow preserves the data types in your source data when it writes the * output to Amazon S3.

  • true: Amazon AppFlow * preserves the data types when it writes to Amazon S3. For example, an integer or * 1 in your source data is still an integer in your output.

  • *
  • false: Amazon AppFlow converts all of the source data into * strings when it writes to Amazon S3. For example, an integer of 1 * in your source data becomes the string "1" in the output.

  • *
*/ inline bool PreserveSourceDataTypingHasBeenSet() const { return m_preserveSourceDataTypingHasBeenSet; } /** *

If your file output format is Parquet, use this parameter to set whether * Amazon AppFlow preserves the data types in your source data when it writes the * output to Amazon S3.

  • true: Amazon AppFlow * preserves the data types when it writes to Amazon S3. For example, an integer or * 1 in your source data is still an integer in your output.

  • *
  • false: Amazon AppFlow converts all of the source data into * strings when it writes to Amazon S3. For example, an integer of 1 * in your source data becomes the string "1" in the output.

  • *
*/ inline void SetPreserveSourceDataTyping(bool value) { m_preserveSourceDataTypingHasBeenSet = true; m_preserveSourceDataTyping = value; } /** *

If your file output format is Parquet, use this parameter to set whether * Amazon AppFlow preserves the data types in your source data when it writes the * output to Amazon S3.

  • true: Amazon AppFlow * preserves the data types when it writes to Amazon S3. For example, an integer or * 1 in your source data is still an integer in your output.

  • *
  • false: Amazon AppFlow converts all of the source data into * strings when it writes to Amazon S3. For example, an integer of 1 * in your source data becomes the string "1" in the output.

  • *
*/ inline S3OutputFormatConfig& WithPreserveSourceDataTyping(bool value) { SetPreserveSourceDataTyping(value); return *this;} private: FileType m_fileType; bool m_fileTypeHasBeenSet = false; PrefixConfig m_prefixConfig; bool m_prefixConfigHasBeenSet = false; AggregationConfig m_aggregationConfig; bool m_aggregationConfigHasBeenSet = false; bool m_preserveSourceDataTyping; bool m_preserveSourceDataTypingHasBeenSet = false; }; } // namespace Model } // namespace Appflow } // namespace Aws