This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
pxz-hos-client-cpp-module/support/aws-sdk-cpp-master/aws-cpp-sdk-dms/include/aws/dms/model/S3Settings.h

1550 lines
88 KiB
C
Raw Normal View History

/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include <aws/dms/DatabaseMigrationService_EXPORTS.h>
#include <aws/core/utils/memory/stl/AWSString.h>
#include <aws/dms/model/CompressionTypeValue.h>
#include <aws/dms/model/EncryptionModeValue.h>
#include <aws/dms/model/DataFormatValue.h>
#include <aws/dms/model/EncodingTypeValue.h>
#include <aws/dms/model/ParquetVersionValue.h>
#include <utility>
namespace Aws
{
namespace Utils
{
namespace Json
{
class JsonValue;
class JsonView;
} // namespace Json
} // namespace Utils
namespace DatabaseMigrationService
{
namespace Model
{
/**
* <p>Settings for exporting data to Amazon S3. </p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/S3Settings">AWS API
* Reference</a></p>
*/
class AWS_DATABASEMIGRATIONSERVICE_API S3Settings
{
public:
S3Settings();
S3Settings(Aws::Utils::Json::JsonView jsonValue);
S3Settings& operator=(Aws::Utils::Json::JsonView jsonValue);
Aws::Utils::Json::JsonValue Jsonize() const;
/**
* <p> The Amazon Resource Name (ARN) used by the service access IAM role. It is a
* required parameter that enables DMS to write and read objects from an 3S
* bucket.</p>
*/
inline const Aws::String& GetServiceAccessRoleArn() const{ return m_serviceAccessRoleArn; }
/**
* <p> The Amazon Resource Name (ARN) used by the service access IAM role. It is a
* required parameter that enables DMS to write and read objects from an 3S
* bucket.</p>
*/
inline bool ServiceAccessRoleArnHasBeenSet() const { return m_serviceAccessRoleArnHasBeenSet; }
/**
* <p> The Amazon Resource Name (ARN) used by the service access IAM role. It is a
* required parameter that enables DMS to write and read objects from an 3S
* bucket.</p>
*/
inline void SetServiceAccessRoleArn(const Aws::String& value) { m_serviceAccessRoleArnHasBeenSet = true; m_serviceAccessRoleArn = value; }
/**
* <p> The Amazon Resource Name (ARN) used by the service access IAM role. It is a
* required parameter that enables DMS to write and read objects from an 3S
* bucket.</p>
*/
inline void SetServiceAccessRoleArn(Aws::String&& value) { m_serviceAccessRoleArnHasBeenSet = true; m_serviceAccessRoleArn = std::move(value); }
/**
* <p> The Amazon Resource Name (ARN) used by the service access IAM role. It is a
* required parameter that enables DMS to write and read objects from an 3S
* bucket.</p>
*/
inline void SetServiceAccessRoleArn(const char* value) { m_serviceAccessRoleArnHasBeenSet = true; m_serviceAccessRoleArn.assign(value); }
/**
* <p> The Amazon Resource Name (ARN) used by the service access IAM role. It is a
* required parameter that enables DMS to write and read objects from an 3S
* bucket.</p>
*/
inline S3Settings& WithServiceAccessRoleArn(const Aws::String& value) { SetServiceAccessRoleArn(value); return *this;}
/**
* <p> The Amazon Resource Name (ARN) used by the service access IAM role. It is a
* required parameter that enables DMS to write and read objects from an 3S
* bucket.</p>
*/
inline S3Settings& WithServiceAccessRoleArn(Aws::String&& value) { SetServiceAccessRoleArn(std::move(value)); return *this;}
/**
* <p> The Amazon Resource Name (ARN) used by the service access IAM role. It is a
* required parameter that enables DMS to write and read objects from an 3S
* bucket.</p>
*/
inline S3Settings& WithServiceAccessRoleArn(const char* value) { SetServiceAccessRoleArn(value); return *this;}
/**
* <p> Specifies how tables are defined in the S3 source files only. </p>
*/
inline const Aws::String& GetExternalTableDefinition() const{ return m_externalTableDefinition; }
/**
* <p> Specifies how tables are defined in the S3 source files only. </p>
*/
inline bool ExternalTableDefinitionHasBeenSet() const { return m_externalTableDefinitionHasBeenSet; }
/**
* <p> Specifies how tables are defined in the S3 source files only. </p>
*/
inline void SetExternalTableDefinition(const Aws::String& value) { m_externalTableDefinitionHasBeenSet = true; m_externalTableDefinition = value; }
/**
* <p> Specifies how tables are defined in the S3 source files only. </p>
*/
inline void SetExternalTableDefinition(Aws::String&& value) { m_externalTableDefinitionHasBeenSet = true; m_externalTableDefinition = std::move(value); }
/**
* <p> Specifies how tables are defined in the S3 source files only. </p>
*/
inline void SetExternalTableDefinition(const char* value) { m_externalTableDefinitionHasBeenSet = true; m_externalTableDefinition.assign(value); }
/**
* <p> Specifies how tables are defined in the S3 source files only. </p>
*/
inline S3Settings& WithExternalTableDefinition(const Aws::String& value) { SetExternalTableDefinition(value); return *this;}
/**
* <p> Specifies how tables are defined in the S3 source files only. </p>
*/
inline S3Settings& WithExternalTableDefinition(Aws::String&& value) { SetExternalTableDefinition(std::move(value)); return *this;}
/**
* <p> Specifies how tables are defined in the S3 source files only. </p>
*/
inline S3Settings& WithExternalTableDefinition(const char* value) { SetExternalTableDefinition(value); return *this;}
/**
* <p> The delimiter used to separate rows in the .csv file for both source and
* target. The default is a carriage return (<code>\n</code>). </p>
*/
inline const Aws::String& GetCsvRowDelimiter() const{ return m_csvRowDelimiter; }
/**
* <p> The delimiter used to separate rows in the .csv file for both source and
* target. The default is a carriage return (<code>\n</code>). </p>
*/
inline bool CsvRowDelimiterHasBeenSet() const { return m_csvRowDelimiterHasBeenSet; }
/**
* <p> The delimiter used to separate rows in the .csv file for both source and
* target. The default is a carriage return (<code>\n</code>). </p>
*/
inline void SetCsvRowDelimiter(const Aws::String& value) { m_csvRowDelimiterHasBeenSet = true; m_csvRowDelimiter = value; }
/**
* <p> The delimiter used to separate rows in the .csv file for both source and
* target. The default is a carriage return (<code>\n</code>). </p>
*/
inline void SetCsvRowDelimiter(Aws::String&& value) { m_csvRowDelimiterHasBeenSet = true; m_csvRowDelimiter = std::move(value); }
/**
* <p> The delimiter used to separate rows in the .csv file for both source and
* target. The default is a carriage return (<code>\n</code>). </p>
*/
inline void SetCsvRowDelimiter(const char* value) { m_csvRowDelimiterHasBeenSet = true; m_csvRowDelimiter.assign(value); }
/**
* <p> The delimiter used to separate rows in the .csv file for both source and
* target. The default is a carriage return (<code>\n</code>). </p>
*/
inline S3Settings& WithCsvRowDelimiter(const Aws::String& value) { SetCsvRowDelimiter(value); return *this;}
/**
* <p> The delimiter used to separate rows in the .csv file for both source and
* target. The default is a carriage return (<code>\n</code>). </p>
*/
inline S3Settings& WithCsvRowDelimiter(Aws::String&& value) { SetCsvRowDelimiter(std::move(value)); return *this;}
/**
* <p> The delimiter used to separate rows in the .csv file for both source and
* target. The default is a carriage return (<code>\n</code>). </p>
*/
inline S3Settings& WithCsvRowDelimiter(const char* value) { SetCsvRowDelimiter(value); return *this;}
/**
* <p> The delimiter used to separate columns in the .csv file for both source and
* target. The default is a comma. </p>
*/
inline const Aws::String& GetCsvDelimiter() const{ return m_csvDelimiter; }
/**
* <p> The delimiter used to separate columns in the .csv file for both source and
* target. The default is a comma. </p>
*/
inline bool CsvDelimiterHasBeenSet() const { return m_csvDelimiterHasBeenSet; }
/**
* <p> The delimiter used to separate columns in the .csv file for both source and
* target. The default is a comma. </p>
*/
inline void SetCsvDelimiter(const Aws::String& value) { m_csvDelimiterHasBeenSet = true; m_csvDelimiter = value; }
/**
* <p> The delimiter used to separate columns in the .csv file for both source and
* target. The default is a comma. </p>
*/
inline void SetCsvDelimiter(Aws::String&& value) { m_csvDelimiterHasBeenSet = true; m_csvDelimiter = std::move(value); }
/**
* <p> The delimiter used to separate columns in the .csv file for both source and
* target. The default is a comma. </p>
*/
inline void SetCsvDelimiter(const char* value) { m_csvDelimiterHasBeenSet = true; m_csvDelimiter.assign(value); }
/**
* <p> The delimiter used to separate columns in the .csv file for both source and
* target. The default is a comma. </p>
*/
inline S3Settings& WithCsvDelimiter(const Aws::String& value) { SetCsvDelimiter(value); return *this;}
/**
* <p> The delimiter used to separate columns in the .csv file for both source and
* target. The default is a comma. </p>
*/
inline S3Settings& WithCsvDelimiter(Aws::String&& value) { SetCsvDelimiter(std::move(value)); return *this;}
/**
* <p> The delimiter used to separate columns in the .csv file for both source and
* target. The default is a comma. </p>
*/
inline S3Settings& WithCsvDelimiter(const char* value) { SetCsvDelimiter(value); return *this;}
/**
* <p> An optional parameter to set a folder name in the S3 bucket. If provided,
* tables are created in the path <code>
* <i>bucketFolder</i>/<i>schema_name</i>/<i>table_name</i>/</code>. If this
* parameter isn't specified, then the path used is <code>
* <i>schema_name</i>/<i>table_name</i>/</code>. </p>
*/
inline const Aws::String& GetBucketFolder() const{ return m_bucketFolder; }
/**
* <p> An optional parameter to set a folder name in the S3 bucket. If provided,
* tables are created in the path <code>
* <i>bucketFolder</i>/<i>schema_name</i>/<i>table_name</i>/</code>. If this
* parameter isn't specified, then the path used is <code>
* <i>schema_name</i>/<i>table_name</i>/</code>. </p>
*/
inline bool BucketFolderHasBeenSet() const { return m_bucketFolderHasBeenSet; }
/**
* <p> An optional parameter to set a folder name in the S3 bucket. If provided,
* tables are created in the path <code>
* <i>bucketFolder</i>/<i>schema_name</i>/<i>table_name</i>/</code>. If this
* parameter isn't specified, then the path used is <code>
* <i>schema_name</i>/<i>table_name</i>/</code>. </p>
*/
inline void SetBucketFolder(const Aws::String& value) { m_bucketFolderHasBeenSet = true; m_bucketFolder = value; }
/**
* <p> An optional parameter to set a folder name in the S3 bucket. If provided,
* tables are created in the path <code>
* <i>bucketFolder</i>/<i>schema_name</i>/<i>table_name</i>/</code>. If this
* parameter isn't specified, then the path used is <code>
* <i>schema_name</i>/<i>table_name</i>/</code>. </p>
*/
inline void SetBucketFolder(Aws::String&& value) { m_bucketFolderHasBeenSet = true; m_bucketFolder = std::move(value); }
/**
* <p> An optional parameter to set a folder name in the S3 bucket. If provided,
* tables are created in the path <code>
* <i>bucketFolder</i>/<i>schema_name</i>/<i>table_name</i>/</code>. If this
* parameter isn't specified, then the path used is <code>
* <i>schema_name</i>/<i>table_name</i>/</code>. </p>
*/
inline void SetBucketFolder(const char* value) { m_bucketFolderHasBeenSet = true; m_bucketFolder.assign(value); }
/**
* <p> An optional parameter to set a folder name in the S3 bucket. If provided,
* tables are created in the path <code>
* <i>bucketFolder</i>/<i>schema_name</i>/<i>table_name</i>/</code>. If this
* parameter isn't specified, then the path used is <code>
* <i>schema_name</i>/<i>table_name</i>/</code>. </p>
*/
inline S3Settings& WithBucketFolder(const Aws::String& value) { SetBucketFolder(value); return *this;}
/**
* <p> An optional parameter to set a folder name in the S3 bucket. If provided,
* tables are created in the path <code>
* <i>bucketFolder</i>/<i>schema_name</i>/<i>table_name</i>/</code>. If this
* parameter isn't specified, then the path used is <code>
* <i>schema_name</i>/<i>table_name</i>/</code>. </p>
*/
inline S3Settings& WithBucketFolder(Aws::String&& value) { SetBucketFolder(std::move(value)); return *this;}
/**
* <p> An optional parameter to set a folder name in the S3 bucket. If provided,
* tables are created in the path <code>
* <i>bucketFolder</i>/<i>schema_name</i>/<i>table_name</i>/</code>. If this
* parameter isn't specified, then the path used is <code>
* <i>schema_name</i>/<i>table_name</i>/</code>. </p>
*/
inline S3Settings& WithBucketFolder(const char* value) { SetBucketFolder(value); return *this;}
/**
* <p> The name of the S3 bucket. </p>
*/
inline const Aws::String& GetBucketName() const{ return m_bucketName; }
/**
* <p> The name of the S3 bucket. </p>
*/
inline bool BucketNameHasBeenSet() const { return m_bucketNameHasBeenSet; }
/**
* <p> The name of the S3 bucket. </p>
*/
inline void SetBucketName(const Aws::String& value) { m_bucketNameHasBeenSet = true; m_bucketName = value; }
/**
* <p> The name of the S3 bucket. </p>
*/
inline void SetBucketName(Aws::String&& value) { m_bucketNameHasBeenSet = true; m_bucketName = std::move(value); }
/**
* <p> The name of the S3 bucket. </p>
*/
inline void SetBucketName(const char* value) { m_bucketNameHasBeenSet = true; m_bucketName.assign(value); }
/**
* <p> The name of the S3 bucket. </p>
*/
inline S3Settings& WithBucketName(const Aws::String& value) { SetBucketName(value); return *this;}
/**
* <p> The name of the S3 bucket. </p>
*/
inline S3Settings& WithBucketName(Aws::String&& value) { SetBucketName(std::move(value)); return *this;}
/**
* <p> The name of the S3 bucket. </p>
*/
inline S3Settings& WithBucketName(const char* value) { SetBucketName(value); return *this;}
/**
* <p>An optional parameter to use GZIP to compress the target files. Set to GZIP
* to compress the target files. Either set this parameter to NONE (the default) or
* don't use it to leave the files uncompressed. This parameter applies to both
* .csv and .parquet file formats. </p>
*/
inline const CompressionTypeValue& GetCompressionType() const{ return m_compressionType; }
/**
* <p>An optional parameter to use GZIP to compress the target files. Set to GZIP
* to compress the target files. Either set this parameter to NONE (the default) or
* don't use it to leave the files uncompressed. This parameter applies to both
* .csv and .parquet file formats. </p>
*/
inline bool CompressionTypeHasBeenSet() const { return m_compressionTypeHasBeenSet; }
/**
* <p>An optional parameter to use GZIP to compress the target files. Set to GZIP
* to compress the target files. Either set this parameter to NONE (the default) or
* don't use it to leave the files uncompressed. This parameter applies to both
* .csv and .parquet file formats. </p>
*/
inline void SetCompressionType(const CompressionTypeValue& value) { m_compressionTypeHasBeenSet = true; m_compressionType = value; }
/**
* <p>An optional parameter to use GZIP to compress the target files. Set to GZIP
* to compress the target files. Either set this parameter to NONE (the default) or
* don't use it to leave the files uncompressed. This parameter applies to both
* .csv and .parquet file formats. </p>
*/
inline void SetCompressionType(CompressionTypeValue&& value) { m_compressionTypeHasBeenSet = true; m_compressionType = std::move(value); }
/**
* <p>An optional parameter to use GZIP to compress the target files. Set to GZIP
* to compress the target files. Either set this parameter to NONE (the default) or
* don't use it to leave the files uncompressed. This parameter applies to both
* .csv and .parquet file formats. </p>
*/
inline S3Settings& WithCompressionType(const CompressionTypeValue& value) { SetCompressionType(value); return *this;}
/**
* <p>An optional parameter to use GZIP to compress the target files. Set to GZIP
* to compress the target files. Either set this parameter to NONE (the default) or
* don't use it to leave the files uncompressed. This parameter applies to both
* .csv and .parquet file formats. </p>
*/
inline S3Settings& WithCompressionType(CompressionTypeValue&& value) { SetCompressionType(std::move(value)); return *this;}
/**
* <p>The type of server-side encryption that you want to use for your data. This
* encryption type is part of the endpoint settings or the extra connections
* attributes for Amazon S3. You can choose either <code>SSE_S3</code> (the
* default) or <code>SSE_KMS</code>. </p> <p>For the
* <code>ModifyEndpoint</code> operation, you can change the existing value of the
* <code>EncryptionMode</code> parameter from <code>SSE_KMS</code> to
* <code>SSE_S3</code>. But you cant change the existing value from
* <code>SSE_S3</code> to <code>SSE_KMS</code>.</p> <p>To use
* <code>SSE_S3</code>, you need an AWS Identity and Access Management (IAM) role
* with permission to allow <code>"arn:aws:s3:::dms-*"</code> to use the following
* actions:</p> <ul> <li> <p> <code>s3:CreateBucket</code> </p> </li> <li> <p>
* <code>s3:ListBucket</code> </p> </li> <li> <p> <code>s3:DeleteBucket</code> </p>
* </li> <li> <p> <code>s3:GetBucketLocation</code> </p> </li> <li> <p>
* <code>s3:GetObject</code> </p> </li> <li> <p> <code>s3:PutObject</code> </p>
* </li> <li> <p> <code>s3:DeleteObject</code> </p> </li> <li> <p>
* <code>s3:GetObjectVersion</code> </p> </li> <li> <p>
* <code>s3:GetBucketPolicy</code> </p> </li> <li> <p>
* <code>s3:PutBucketPolicy</code> </p> </li> <li> <p>
* <code>s3:DeleteBucketPolicy</code> </p> </li> </ul>
*/
inline const EncryptionModeValue& GetEncryptionMode() const{ return m_encryptionMode; }
/**
* <p>The type of server-side encryption that you want to use for your data. This
* encryption type is part of the endpoint settings or the extra connections
* attributes for Amazon S3. You can choose either <code>SSE_S3</code> (the
* default) or <code>SSE_KMS</code>. </p> <p>For the
* <code>ModifyEndpoint</code> operation, you can change the existing value of the
* <code>EncryptionMode</code> parameter from <code>SSE_KMS</code> to
* <code>SSE_S3</code>. But you cant change the existing value from
* <code>SSE_S3</code> to <code>SSE_KMS</code>.</p> <p>To use
* <code>SSE_S3</code>, you need an AWS Identity and Access Management (IAM) role
* with permission to allow <code>"arn:aws:s3:::dms-*"</code> to use the following
* actions:</p> <ul> <li> <p> <code>s3:CreateBucket</code> </p> </li> <li> <p>
* <code>s3:ListBucket</code> </p> </li> <li> <p> <code>s3:DeleteBucket</code> </p>
* </li> <li> <p> <code>s3:GetBucketLocation</code> </p> </li> <li> <p>
* <code>s3:GetObject</code> </p> </li> <li> <p> <code>s3:PutObject</code> </p>
* </li> <li> <p> <code>s3:DeleteObject</code> </p> </li> <li> <p>
* <code>s3:GetObjectVersion</code> </p> </li> <li> <p>
* <code>s3:GetBucketPolicy</code> </p> </li> <li> <p>
* <code>s3:PutBucketPolicy</code> </p> </li> <li> <p>
* <code>s3:DeleteBucketPolicy</code> </p> </li> </ul>
*/
inline bool EncryptionModeHasBeenSet() const { return m_encryptionModeHasBeenSet; }
/**
* <p>The type of server-side encryption that you want to use for your data. This
* encryption type is part of the endpoint settings or the extra connections
* attributes for Amazon S3. You can choose either <code>SSE_S3</code> (the
* default) or <code>SSE_KMS</code>. </p> <p>For the
* <code>ModifyEndpoint</code> operation, you can change the existing value of the
* <code>EncryptionMode</code> parameter from <code>SSE_KMS</code> to
* <code>SSE_S3</code>. But you cant change the existing value from
* <code>SSE_S3</code> to <code>SSE_KMS</code>.</p> <p>To use
* <code>SSE_S3</code>, you need an AWS Identity and Access Management (IAM) role
* with permission to allow <code>"arn:aws:s3:::dms-*"</code> to use the following
* actions:</p> <ul> <li> <p> <code>s3:CreateBucket</code> </p> </li> <li> <p>
* <code>s3:ListBucket</code> </p> </li> <li> <p> <code>s3:DeleteBucket</code> </p>
* </li> <li> <p> <code>s3:GetBucketLocation</code> </p> </li> <li> <p>
* <code>s3:GetObject</code> </p> </li> <li> <p> <code>s3:PutObject</code> </p>
* </li> <li> <p> <code>s3:DeleteObject</code> </p> </li> <li> <p>
* <code>s3:GetObjectVersion</code> </p> </li> <li> <p>
* <code>s3:GetBucketPolicy</code> </p> </li> <li> <p>
* <code>s3:PutBucketPolicy</code> </p> </li> <li> <p>
* <code>s3:DeleteBucketPolicy</code> </p> </li> </ul>
*/
inline void SetEncryptionMode(const EncryptionModeValue& value) { m_encryptionModeHasBeenSet = true; m_encryptionMode = value; }
/**
* <p>The type of server-side encryption that you want to use for your data. This
* encryption type is part of the endpoint settings or the extra connections
* attributes for Amazon S3. You can choose either <code>SSE_S3</code> (the
* default) or <code>SSE_KMS</code>. </p> <p>For the
* <code>ModifyEndpoint</code> operation, you can change the existing value of the
* <code>EncryptionMode</code> parameter from <code>SSE_KMS</code> to
* <code>SSE_S3</code>. But you cant change the existing value from
* <code>SSE_S3</code> to <code>SSE_KMS</code>.</p> <p>To use
* <code>SSE_S3</code>, you need an AWS Identity and Access Management (IAM) role
* with permission to allow <code>"arn:aws:s3:::dms-*"</code> to use the following
* actions:</p> <ul> <li> <p> <code>s3:CreateBucket</code> </p> </li> <li> <p>
* <code>s3:ListBucket</code> </p> </li> <li> <p> <code>s3:DeleteBucket</code> </p>
* </li> <li> <p> <code>s3:GetBucketLocation</code> </p> </li> <li> <p>
* <code>s3:GetObject</code> </p> </li> <li> <p> <code>s3:PutObject</code> </p>
* </li> <li> <p> <code>s3:DeleteObject</code> </p> </li> <li> <p>
* <code>s3:GetObjectVersion</code> </p> </li> <li> <p>
* <code>s3:GetBucketPolicy</code> </p> </li> <li> <p>
* <code>s3:PutBucketPolicy</code> </p> </li> <li> <p>
* <code>s3:DeleteBucketPolicy</code> </p> </li> </ul>
*/
inline void SetEncryptionMode(EncryptionModeValue&& value) { m_encryptionModeHasBeenSet = true; m_encryptionMode = std::move(value); }
/**
* <p>The type of server-side encryption that you want to use for your data. This
* encryption type is part of the endpoint settings or the extra connections
* attributes for Amazon S3. You can choose either <code>SSE_S3</code> (the
* default) or <code>SSE_KMS</code>. </p> <p>For the
* <code>ModifyEndpoint</code> operation, you can change the existing value of the
* <code>EncryptionMode</code> parameter from <code>SSE_KMS</code> to
* <code>SSE_S3</code>. But you cant change the existing value from
* <code>SSE_S3</code> to <code>SSE_KMS</code>.</p> <p>To use
* <code>SSE_S3</code>, you need an AWS Identity and Access Management (IAM) role
* with permission to allow <code>"arn:aws:s3:::dms-*"</code> to use the following
* actions:</p> <ul> <li> <p> <code>s3:CreateBucket</code> </p> </li> <li> <p>
* <code>s3:ListBucket</code> </p> </li> <li> <p> <code>s3:DeleteBucket</code> </p>
* </li> <li> <p> <code>s3:GetBucketLocation</code> </p> </li> <li> <p>
* <code>s3:GetObject</code> </p> </li> <li> <p> <code>s3:PutObject</code> </p>
* </li> <li> <p> <code>s3:DeleteObject</code> </p> </li> <li> <p>
* <code>s3:GetObjectVersion</code> </p> </li> <li> <p>
* <code>s3:GetBucketPolicy</code> </p> </li> <li> <p>
* <code>s3:PutBucketPolicy</code> </p> </li> <li> <p>
* <code>s3:DeleteBucketPolicy</code> </p> </li> </ul>
*/
inline S3Settings& WithEncryptionMode(const EncryptionModeValue& value) { SetEncryptionMode(value); return *this;}
/**
* <p>The type of server-side encryption that you want to use for your data. This
* encryption type is part of the endpoint settings or the extra connections
* attributes for Amazon S3. You can choose either <code>SSE_S3</code> (the
* default) or <code>SSE_KMS</code>. </p> <p>For the
* <code>ModifyEndpoint</code> operation, you can change the existing value of the
* <code>EncryptionMode</code> parameter from <code>SSE_KMS</code> to
* <code>SSE_S3</code>. But you cant change the existing value from
* <code>SSE_S3</code> to <code>SSE_KMS</code>.</p> <p>To use
* <code>SSE_S3</code>, you need an AWS Identity and Access Management (IAM) role
* with permission to allow <code>"arn:aws:s3:::dms-*"</code> to use the following
* actions:</p> <ul> <li> <p> <code>s3:CreateBucket</code> </p> </li> <li> <p>
* <code>s3:ListBucket</code> </p> </li> <li> <p> <code>s3:DeleteBucket</code> </p>
* </li> <li> <p> <code>s3:GetBucketLocation</code> </p> </li> <li> <p>
* <code>s3:GetObject</code> </p> </li> <li> <p> <code>s3:PutObject</code> </p>
* </li> <li> <p> <code>s3:DeleteObject</code> </p> </li> <li> <p>
* <code>s3:GetObjectVersion</code> </p> </li> <li> <p>
* <code>s3:GetBucketPolicy</code> </p> </li> <li> <p>
* <code>s3:PutBucketPolicy</code> </p> </li> <li> <p>
* <code>s3:DeleteBucketPolicy</code> </p> </li> </ul>
*/
inline S3Settings& WithEncryptionMode(EncryptionModeValue&& value) { SetEncryptionMode(std::move(value)); return *this;}
/**
* <p>If you are using <code>SSE_KMS</code> for the <code>EncryptionMode</code>,
* provide the AWS KMS key ID. The key that you use needs an attached policy that
* enables AWS Identity and Access Management (IAM) user permissions and allows use
* of the key.</p> <p>Here is a CLI example: <code>aws dms create-endpoint
* --endpoint-identifier <i>value</i> --endpoint-type target --engine-name s3
* --s3-settings
* ServiceAccessRoleArn=<i>value</i>,BucketFolder=<i>value</i>,BucketName=<i>value</i>,EncryptionMode=SSE_KMS,ServerSideEncryptionKmsKeyId=<i>value</i>
* </code> </p>
*/
inline const Aws::String& GetServerSideEncryptionKmsKeyId() const{ return m_serverSideEncryptionKmsKeyId; }
/**
* <p>If you are using <code>SSE_KMS</code> for the <code>EncryptionMode</code>,
* provide the AWS KMS key ID. The key that you use needs an attached policy that
* enables AWS Identity and Access Management (IAM) user permissions and allows use
* of the key.</p> <p>Here is a CLI example: <code>aws dms create-endpoint
* --endpoint-identifier <i>value</i> --endpoint-type target --engine-name s3
* --s3-settings
* ServiceAccessRoleArn=<i>value</i>,BucketFolder=<i>value</i>,BucketName=<i>value</i>,EncryptionMode=SSE_KMS,ServerSideEncryptionKmsKeyId=<i>value</i>
* </code> </p>
*/
inline bool ServerSideEncryptionKmsKeyIdHasBeenSet() const { return m_serverSideEncryptionKmsKeyIdHasBeenSet; }
/**
* <p>If you are using <code>SSE_KMS</code> for the <code>EncryptionMode</code>,
* provide the AWS KMS key ID. The key that you use needs an attached policy that
* enables AWS Identity and Access Management (IAM) user permissions and allows use
* of the key.</p> <p>Here is a CLI example: <code>aws dms create-endpoint
* --endpoint-identifier <i>value</i> --endpoint-type target --engine-name s3
* --s3-settings
* ServiceAccessRoleArn=<i>value</i>,BucketFolder=<i>value</i>,BucketName=<i>value</i>,EncryptionMode=SSE_KMS,ServerSideEncryptionKmsKeyId=<i>value</i>
* </code> </p>
*/
inline void SetServerSideEncryptionKmsKeyId(const Aws::String& value) { m_serverSideEncryptionKmsKeyIdHasBeenSet = true; m_serverSideEncryptionKmsKeyId = value; }
/**
* <p>If you are using <code>SSE_KMS</code> for the <code>EncryptionMode</code>,
* provide the AWS KMS key ID. The key that you use needs an attached policy that
* enables AWS Identity and Access Management (IAM) user permissions and allows use
* of the key.</p> <p>Here is a CLI example: <code>aws dms create-endpoint
* --endpoint-identifier <i>value</i> --endpoint-type target --engine-name s3
* --s3-settings
* ServiceAccessRoleArn=<i>value</i>,BucketFolder=<i>value</i>,BucketName=<i>value</i>,EncryptionMode=SSE_KMS,ServerSideEncryptionKmsKeyId=<i>value</i>
* </code> </p>
*/
inline void SetServerSideEncryptionKmsKeyId(Aws::String&& value) { m_serverSideEncryptionKmsKeyIdHasBeenSet = true; m_serverSideEncryptionKmsKeyId = std::move(value); }
/**
* <p>If you are using <code>SSE_KMS</code> for the <code>EncryptionMode</code>,
* provide the AWS KMS key ID. The key that you use needs an attached policy that
* enables AWS Identity and Access Management (IAM) user permissions and allows use
* of the key.</p> <p>Here is a CLI example: <code>aws dms create-endpoint
* --endpoint-identifier <i>value</i> --endpoint-type target --engine-name s3
* --s3-settings
* ServiceAccessRoleArn=<i>value</i>,BucketFolder=<i>value</i>,BucketName=<i>value</i>,EncryptionMode=SSE_KMS,ServerSideEncryptionKmsKeyId=<i>value</i>
* </code> </p>
*/
inline void SetServerSideEncryptionKmsKeyId(const char* value) { m_serverSideEncryptionKmsKeyIdHasBeenSet = true; m_serverSideEncryptionKmsKeyId.assign(value); }
/**
* <p>If you are using <code>SSE_KMS</code> for the <code>EncryptionMode</code>,
* provide the AWS KMS key ID. The key that you use needs an attached policy that
* enables AWS Identity and Access Management (IAM) user permissions and allows use
* of the key.</p> <p>Here is a CLI example: <code>aws dms create-endpoint
* --endpoint-identifier <i>value</i> --endpoint-type target --engine-name s3
* --s3-settings
* ServiceAccessRoleArn=<i>value</i>,BucketFolder=<i>value</i>,BucketName=<i>value</i>,EncryptionMode=SSE_KMS,ServerSideEncryptionKmsKeyId=<i>value</i>
* </code> </p>
*/
inline S3Settings& WithServerSideEncryptionKmsKeyId(const Aws::String& value) { SetServerSideEncryptionKmsKeyId(value); return *this;}
/**
* <p>If you are using <code>SSE_KMS</code> for the <code>EncryptionMode</code>,
* provide the AWS KMS key ID. The key that you use needs an attached policy that
* enables AWS Identity and Access Management (IAM) user permissions and allows use
* of the key.</p> <p>Here is a CLI example: <code>aws dms create-endpoint
* --endpoint-identifier <i>value</i> --endpoint-type target --engine-name s3
* --s3-settings
* ServiceAccessRoleArn=<i>value</i>,BucketFolder=<i>value</i>,BucketName=<i>value</i>,EncryptionMode=SSE_KMS,ServerSideEncryptionKmsKeyId=<i>value</i>
* </code> </p>
*/
inline S3Settings& WithServerSideEncryptionKmsKeyId(Aws::String&& value) { SetServerSideEncryptionKmsKeyId(std::move(value)); return *this;}
/**
* <p>If you are using <code>SSE_KMS</code> for the <code>EncryptionMode</code>,
* provide the AWS KMS key ID. The key that you use needs an attached policy that
* enables AWS Identity and Access Management (IAM) user permissions and allows use
* of the key.</p> <p>Here is a CLI example: <code>aws dms create-endpoint
* --endpoint-identifier <i>value</i> --endpoint-type target --engine-name s3
* --s3-settings
* ServiceAccessRoleArn=<i>value</i>,BucketFolder=<i>value</i>,BucketName=<i>value</i>,EncryptionMode=SSE_KMS,ServerSideEncryptionKmsKeyId=<i>value</i>
* </code> </p>
*/
inline S3Settings& WithServerSideEncryptionKmsKeyId(const char* value) { SetServerSideEncryptionKmsKeyId(value); return *this;}
/**
* <p>The format of the data that you want to use for output. You can choose one of
* the following: </p> <ul> <li> <p> <code>csv</code> : This is a row-based file
* format with comma-separated values (.csv). </p> </li> <li> <p>
* <code>parquet</code> : Apache Parquet (.parquet) is a columnar storage file
* format that features efficient compression and provides faster query response.
* </p> </li> </ul>
*/
inline const DataFormatValue& GetDataFormat() const{ return m_dataFormat; }
/**
* <p>The format of the data that you want to use for output. You can choose one of
* the following: </p> <ul> <li> <p> <code>csv</code> : This is a row-based file
* format with comma-separated values (.csv). </p> </li> <li> <p>
* <code>parquet</code> : Apache Parquet (.parquet) is a columnar storage file
* format that features efficient compression and provides faster query response.
* </p> </li> </ul>
*/
inline bool DataFormatHasBeenSet() const { return m_dataFormatHasBeenSet; }
/**
* <p>The format of the data that you want to use for output. You can choose one of
* the following: </p> <ul> <li> <p> <code>csv</code> : This is a row-based file
* format with comma-separated values (.csv). </p> </li> <li> <p>
* <code>parquet</code> : Apache Parquet (.parquet) is a columnar storage file
* format that features efficient compression and provides faster query response.
* </p> </li> </ul>
*/
inline void SetDataFormat(const DataFormatValue& value) { m_dataFormatHasBeenSet = true; m_dataFormat = value; }
/**
* <p>The format of the data that you want to use for output. You can choose one of
* the following: </p> <ul> <li> <p> <code>csv</code> : This is a row-based file
* format with comma-separated values (.csv). </p> </li> <li> <p>
* <code>parquet</code> : Apache Parquet (.parquet) is a columnar storage file
* format that features efficient compression and provides faster query response.
* </p> </li> </ul>
*/
inline void SetDataFormat(DataFormatValue&& value) { m_dataFormatHasBeenSet = true; m_dataFormat = std::move(value); }
/**
* <p>The format of the data that you want to use for output. You can choose one of
* the following: </p> <ul> <li> <p> <code>csv</code> : This is a row-based file
* format with comma-separated values (.csv). </p> </li> <li> <p>
* <code>parquet</code> : Apache Parquet (.parquet) is a columnar storage file
* format that features efficient compression and provides faster query response.
* </p> </li> </ul>
*/
inline S3Settings& WithDataFormat(const DataFormatValue& value) { SetDataFormat(value); return *this;}
/**
* <p>The format of the data that you want to use for output. You can choose one of
* the following: </p> <ul> <li> <p> <code>csv</code> : This is a row-based file
* format with comma-separated values (.csv). </p> </li> <li> <p>
* <code>parquet</code> : Apache Parquet (.parquet) is a columnar storage file
* format that features efficient compression and provides faster query response.
* </p> </li> </ul>
*/
inline S3Settings& WithDataFormat(DataFormatValue&& value) { SetDataFormat(std::move(value)); return *this;}
/**
* <p>The type of encoding you are using: </p> <ul> <li> <p>
* <code>RLE_DICTIONARY</code> uses a combination of bit-packing and run-length
* encoding to store repeated values more efficiently. This is the default.</p>
* </li> <li> <p> <code>PLAIN</code> doesn't use encoding at all. Values are stored
* as they are.</p> </li> <li> <p> <code>PLAIN_DICTIONARY</code> builds a
* dictionary of the values encountered in a given column. The dictionary is stored
* in a dictionary page for each column chunk.</p> </li> </ul>
*/
inline const EncodingTypeValue& GetEncodingType() const{ return m_encodingType; }
/**
* <p>The type of encoding you are using: </p> <ul> <li> <p>
* <code>RLE_DICTIONARY</code> uses a combination of bit-packing and run-length
* encoding to store repeated values more efficiently. This is the default.</p>
* </li> <li> <p> <code>PLAIN</code> doesn't use encoding at all. Values are stored
* as they are.</p> </li> <li> <p> <code>PLAIN_DICTIONARY</code> builds a
* dictionary of the values encountered in a given column. The dictionary is stored
* in a dictionary page for each column chunk.</p> </li> </ul>
*/
inline bool EncodingTypeHasBeenSet() const { return m_encodingTypeHasBeenSet; }
/**
* <p>The type of encoding you are using: </p> <ul> <li> <p>
* <code>RLE_DICTIONARY</code> uses a combination of bit-packing and run-length
* encoding to store repeated values more efficiently. This is the default.</p>
* </li> <li> <p> <code>PLAIN</code> doesn't use encoding at all. Values are stored
* as they are.</p> </li> <li> <p> <code>PLAIN_DICTIONARY</code> builds a
* dictionary of the values encountered in a given column. The dictionary is stored
* in a dictionary page for each column chunk.</p> </li> </ul>
*/
inline void SetEncodingType(const EncodingTypeValue& value) { m_encodingTypeHasBeenSet = true; m_encodingType = value; }
/**
* <p>The type of encoding you are using: </p> <ul> <li> <p>
* <code>RLE_DICTIONARY</code> uses a combination of bit-packing and run-length
* encoding to store repeated values more efficiently. This is the default.</p>
* </li> <li> <p> <code>PLAIN</code> doesn't use encoding at all. Values are stored
* as they are.</p> </li> <li> <p> <code>PLAIN_DICTIONARY</code> builds a
* dictionary of the values encountered in a given column. The dictionary is stored
* in a dictionary page for each column chunk.</p> </li> </ul>
*/
inline void SetEncodingType(EncodingTypeValue&& value) { m_encodingTypeHasBeenSet = true; m_encodingType = std::move(value); }
/**
* <p>The type of encoding you are using: </p> <ul> <li> <p>
* <code>RLE_DICTIONARY</code> uses a combination of bit-packing and run-length
* encoding to store repeated values more efficiently. This is the default.</p>
* </li> <li> <p> <code>PLAIN</code> doesn't use encoding at all. Values are stored
* as they are.</p> </li> <li> <p> <code>PLAIN_DICTIONARY</code> builds a
* dictionary of the values encountered in a given column. The dictionary is stored
* in a dictionary page for each column chunk.</p> </li> </ul>
*/
inline S3Settings& WithEncodingType(const EncodingTypeValue& value) { SetEncodingType(value); return *this;}
/**
* <p>The type of encoding you are using: </p> <ul> <li> <p>
* <code>RLE_DICTIONARY</code> uses a combination of bit-packing and run-length
* encoding to store repeated values more efficiently. This is the default.</p>
* </li> <li> <p> <code>PLAIN</code> doesn't use encoding at all. Values are stored
* as they are.</p> </li> <li> <p> <code>PLAIN_DICTIONARY</code> builds a
* dictionary of the values encountered in a given column. The dictionary is stored
* in a dictionary page for each column chunk.</p> </li> </ul>
*/
inline S3Settings& WithEncodingType(EncodingTypeValue&& value) { SetEncodingType(std::move(value)); return *this;}
/**
* <p>The maximum size of an encoded dictionary page of a column. If the dictionary
* page exceeds this, this column is stored using an encoding type of
* <code>PLAIN</code>. This parameter defaults to 1024 * 1024 bytes (1 MiB), the
* maximum size of a dictionary page before it reverts to <code>PLAIN</code>
* encoding. This size is used for .parquet file format only. </p>
*/
inline int GetDictPageSizeLimit() const{ return m_dictPageSizeLimit; }
/**
* <p>The maximum size of an encoded dictionary page of a column. If the dictionary
* page exceeds this, this column is stored using an encoding type of
* <code>PLAIN</code>. This parameter defaults to 1024 * 1024 bytes (1 MiB), the
* maximum size of a dictionary page before it reverts to <code>PLAIN</code>
* encoding. This size is used for .parquet file format only. </p>
*/
inline bool DictPageSizeLimitHasBeenSet() const { return m_dictPageSizeLimitHasBeenSet; }
/**
* <p>The maximum size of an encoded dictionary page of a column. If the dictionary
* page exceeds this, this column is stored using an encoding type of
* <code>PLAIN</code>. This parameter defaults to 1024 * 1024 bytes (1 MiB), the
* maximum size of a dictionary page before it reverts to <code>PLAIN</code>
* encoding. This size is used for .parquet file format only. </p>
*/
inline void SetDictPageSizeLimit(int value) { m_dictPageSizeLimitHasBeenSet = true; m_dictPageSizeLimit = value; }
/**
* <p>The maximum size of an encoded dictionary page of a column. If the dictionary
* page exceeds this, this column is stored using an encoding type of
* <code>PLAIN</code>. This parameter defaults to 1024 * 1024 bytes (1 MiB), the
* maximum size of a dictionary page before it reverts to <code>PLAIN</code>
* encoding. This size is used for .parquet file format only. </p>
*/
inline S3Settings& WithDictPageSizeLimit(int value) { SetDictPageSizeLimit(value); return *this;}
/**
* <p>The number of rows in a row group. A smaller row group size provides faster
* reads. But as the number of row groups grows, the slower writes become. This
* parameter defaults to 10,000 rows. This number is used for .parquet file format
* only. </p> <p>If you choose a value larger than the maximum,
* <code>RowGroupLength</code> is set to the max row group length in bytes (64 *
* 1024 * 1024). </p>
*/
inline int GetRowGroupLength() const{ return m_rowGroupLength; }
/**
* <p>The number of rows in a row group. A smaller row group size provides faster
* reads. But as the number of row groups grows, the slower writes become. This
* parameter defaults to 10,000 rows. This number is used for .parquet file format
* only. </p> <p>If you choose a value larger than the maximum,
* <code>RowGroupLength</code> is set to the max row group length in bytes (64 *
* 1024 * 1024). </p>
*/
inline bool RowGroupLengthHasBeenSet() const { return m_rowGroupLengthHasBeenSet; }
/**
* <p>The number of rows in a row group. A smaller row group size provides faster
* reads. But as the number of row groups grows, the slower writes become. This
* parameter defaults to 10,000 rows. This number is used for .parquet file format
* only. </p> <p>If you choose a value larger than the maximum,
* <code>RowGroupLength</code> is set to the max row group length in bytes (64 *
* 1024 * 1024). </p>
*/
inline void SetRowGroupLength(int value) { m_rowGroupLengthHasBeenSet = true; m_rowGroupLength = value; }
/**
* <p>The number of rows in a row group. A smaller row group size provides faster
* reads. But as the number of row groups grows, the slower writes become. This
* parameter defaults to 10,000 rows. This number is used for .parquet file format
* only. </p> <p>If you choose a value larger than the maximum,
* <code>RowGroupLength</code> is set to the max row group length in bytes (64 *
* 1024 * 1024). </p>
*/
inline S3Settings& WithRowGroupLength(int value) { SetRowGroupLength(value); return *this;}
/**
* <p>The size of one data page in bytes. This parameter defaults to 1024 * 1024
* bytes (1 MiB). This number is used for .parquet file format only. </p>
*/
inline int GetDataPageSize() const{ return m_dataPageSize; }
/**
* <p>The size of one data page in bytes. This parameter defaults to 1024 * 1024
* bytes (1 MiB). This number is used for .parquet file format only. </p>
*/
inline bool DataPageSizeHasBeenSet() const { return m_dataPageSizeHasBeenSet; }
/**
* <p>The size of one data page in bytes. This parameter defaults to 1024 * 1024
* bytes (1 MiB). This number is used for .parquet file format only. </p>
*/
inline void SetDataPageSize(int value) { m_dataPageSizeHasBeenSet = true; m_dataPageSize = value; }
/**
* <p>The size of one data page in bytes. This parameter defaults to 1024 * 1024
* bytes (1 MiB). This number is used for .parquet file format only. </p>
*/
inline S3Settings& WithDataPageSize(int value) { SetDataPageSize(value); return *this;}
/**
* <p>The version of the Apache Parquet format that you want to use:
* <code>parquet_1_0</code> (the default) or <code>parquet_2_0</code>.</p>
*/
inline const ParquetVersionValue& GetParquetVersion() const{ return m_parquetVersion; }
/**
* <p>The version of the Apache Parquet format that you want to use:
* <code>parquet_1_0</code> (the default) or <code>parquet_2_0</code>.</p>
*/
inline bool ParquetVersionHasBeenSet() const { return m_parquetVersionHasBeenSet; }
/**
* <p>The version of the Apache Parquet format that you want to use:
* <code>parquet_1_0</code> (the default) or <code>parquet_2_0</code>.</p>
*/
inline void SetParquetVersion(const ParquetVersionValue& value) { m_parquetVersionHasBeenSet = true; m_parquetVersion = value; }
/**
* <p>The version of the Apache Parquet format that you want to use:
* <code>parquet_1_0</code> (the default) or <code>parquet_2_0</code>.</p>
*/
inline void SetParquetVersion(ParquetVersionValue&& value) { m_parquetVersionHasBeenSet = true; m_parquetVersion = std::move(value); }
/**
* <p>The version of the Apache Parquet format that you want to use:
* <code>parquet_1_0</code> (the default) or <code>parquet_2_0</code>.</p>
*/
inline S3Settings& WithParquetVersion(const ParquetVersionValue& value) { SetParquetVersion(value); return *this;}
/**
* <p>The version of the Apache Parquet format that you want to use:
* <code>parquet_1_0</code> (the default) or <code>parquet_2_0</code>.</p>
*/
inline S3Settings& WithParquetVersion(ParquetVersionValue&& value) { SetParquetVersion(std::move(value)); return *this;}
/**
* <p>A value that enables statistics for Parquet pages and row groups. Choose
* <code>true</code> to enable statistics, <code>false</code> to disable.
* Statistics include <code>NULL</code>, <code>DISTINCT</code>, <code>MAX</code>,
* and <code>MIN</code> values. This parameter defaults to <code>true</code>. This
* value is used for .parquet file format only.</p>
*/
inline bool GetEnableStatistics() const{ return m_enableStatistics; }
/**
* <p>A value that enables statistics for Parquet pages and row groups. Choose
* <code>true</code> to enable statistics, <code>false</code> to disable.
* Statistics include <code>NULL</code>, <code>DISTINCT</code>, <code>MAX</code>,
* and <code>MIN</code> values. This parameter defaults to <code>true</code>. This
* value is used for .parquet file format only.</p>
*/
inline bool EnableStatisticsHasBeenSet() const { return m_enableStatisticsHasBeenSet; }
/**
* <p>A value that enables statistics for Parquet pages and row groups. Choose
* <code>true</code> to enable statistics, <code>false</code> to disable.
* Statistics include <code>NULL</code>, <code>DISTINCT</code>, <code>MAX</code>,
* and <code>MIN</code> values. This parameter defaults to <code>true</code>. This
* value is used for .parquet file format only.</p>
*/
inline void SetEnableStatistics(bool value) { m_enableStatisticsHasBeenSet = true; m_enableStatistics = value; }
/**
* <p>A value that enables statistics for Parquet pages and row groups. Choose
* <code>true</code> to enable statistics, <code>false</code> to disable.
* Statistics include <code>NULL</code>, <code>DISTINCT</code>, <code>MAX</code>,
* and <code>MIN</code> values. This parameter defaults to <code>true</code>. This
* value is used for .parquet file format only.</p>
*/
inline S3Settings& WithEnableStatistics(bool value) { SetEnableStatistics(value); return *this;}
/**
* <p>A value that enables a full load to write INSERT operations to the
* comma-separated value (.csv) output files only to indicate how the rows were
* added to the source database.</p> <p>AWS DMS supports the
* <code>IncludeOpForFullLoad</code> parameter in versions 3.1.4 and later.</p>
* <p>For full load, records can only be inserted. By default (the
* <code>false</code> setting), no information is recorded in these output files
* for a full load to indicate that the rows were inserted at the source database.
* If <code>IncludeOpForFullLoad</code> is set to <code>true</code> or
* <code>y</code>, the INSERT is recorded as an I annotation in the first field of
* the .csv file. This allows the format of your target records from a full load to
* be consistent with the target records from a CDC load.</p> <p>This
* setting works together with the <code>CdcInsertsOnly</code> and the
* <code>CdcInsertsAndUpdates</code> parameters for output to .csv files only. For
* more information about how these settings work together, see <a
* href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps">Indicating
* Source DB Operations in Migrated S3 Data</a> in the <i>AWS Database Migration
* Service User Guide.</i>.</p>
*/
inline bool GetIncludeOpForFullLoad() const{ return m_includeOpForFullLoad; }
/**
* <p>A value that enables a full load to write INSERT operations to the
* comma-separated value (.csv) output files only to indicate how the rows were
* added to the source database.</p> <p>AWS DMS supports the
* <code>IncludeOpForFullLoad</code> parameter in versions 3.1.4 and later.</p>
* <p>For full load, records can only be inserted. By default (the
* <code>false</code> setting), no information is recorded in these output files
* for a full load to indicate that the rows were inserted at the source database.
* If <code>IncludeOpForFullLoad</code> is set to <code>true</code> or
* <code>y</code>, the INSERT is recorded as an I annotation in the first field of
* the .csv file. This allows the format of your target records from a full load to
* be consistent with the target records from a CDC load.</p> <p>This
* setting works together with the <code>CdcInsertsOnly</code> and the
* <code>CdcInsertsAndUpdates</code> parameters for output to .csv files only. For
* more information about how these settings work together, see <a
* href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps">Indicating
* Source DB Operations in Migrated S3 Data</a> in the <i>AWS Database Migration
* Service User Guide.</i>.</p>
*/
inline bool IncludeOpForFullLoadHasBeenSet() const { return m_includeOpForFullLoadHasBeenSet; }
/**
* <p>A value that enables a full load to write INSERT operations to the
* comma-separated value (.csv) output files only to indicate how the rows were
* added to the source database.</p> <p>AWS DMS supports the
* <code>IncludeOpForFullLoad</code> parameter in versions 3.1.4 and later.</p>
* <p>For full load, records can only be inserted. By default (the
* <code>false</code> setting), no information is recorded in these output files
* for a full load to indicate that the rows were inserted at the source database.
* If <code>IncludeOpForFullLoad</code> is set to <code>true</code> or
* <code>y</code>, the INSERT is recorded as an I annotation in the first field of
* the .csv file. This allows the format of your target records from a full load to
* be consistent with the target records from a CDC load.</p> <p>This
* setting works together with the <code>CdcInsertsOnly</code> and the
* <code>CdcInsertsAndUpdates</code> parameters for output to .csv files only. For
* more information about how these settings work together, see <a
* href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps">Indicating
* Source DB Operations in Migrated S3 Data</a> in the <i>AWS Database Migration
* Service User Guide.</i>.</p>
*/
inline void SetIncludeOpForFullLoad(bool value) { m_includeOpForFullLoadHasBeenSet = true; m_includeOpForFullLoad = value; }
/**
* <p>A value that enables a full load to write INSERT operations to the
* comma-separated value (.csv) output files only to indicate how the rows were
* added to the source database.</p> <p>AWS DMS supports the
* <code>IncludeOpForFullLoad</code> parameter in versions 3.1.4 and later.</p>
* <p>For full load, records can only be inserted. By default (the
* <code>false</code> setting), no information is recorded in these output files
* for a full load to indicate that the rows were inserted at the source database.
* If <code>IncludeOpForFullLoad</code> is set to <code>true</code> or
* <code>y</code>, the INSERT is recorded as an I annotation in the first field of
* the .csv file. This allows the format of your target records from a full load to
* be consistent with the target records from a CDC load.</p> <p>This
* setting works together with the <code>CdcInsertsOnly</code> and the
* <code>CdcInsertsAndUpdates</code> parameters for output to .csv files only. For
* more information about how these settings work together, see <a
* href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps">Indicating
* Source DB Operations in Migrated S3 Data</a> in the <i>AWS Database Migration
* Service User Guide.</i>.</p>
*/
inline S3Settings& WithIncludeOpForFullLoad(bool value) { SetIncludeOpForFullLoad(value); return *this;}
/**
* <p>A value that enables a change data capture (CDC) load to write only INSERT
* operations to .csv or columnar storage (.parquet) output files. By default (the
* <code>false</code> setting), the first field in a .csv or .parquet record
* contains the letter I (INSERT), U (UPDATE), or D (DELETE). These values indicate
* whether the row was inserted, updated, or deleted at the source database for a
* CDC load to the target.</p> <p>If <code>CdcInsertsOnly</code> is set to
* <code>true</code> or <code>y</code>, only INSERTs from the source database are
* migrated to the .csv or .parquet file. For .csv format only, how these INSERTs
* are recorded depends on the value of <code>IncludeOpForFullLoad</code>. If
* <code>IncludeOpForFullLoad</code> is set to <code>true</code>, the first field
* of every CDC record is set to I to indicate the INSERT operation at the source.
* If <code>IncludeOpForFullLoad</code> is set to <code>false</code>, every CDC
* record is written without a first field to indicate the INSERT operation at the
* source. For more information about how these settings work together, see <a
* href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps">Indicating
* Source DB Operations in Migrated S3 Data</a> in the <i>AWS Database Migration
* Service User Guide.</i>.</p> <p>AWS DMS supports the interaction
* described preceding between the <code>CdcInsertsOnly</code> and
* <code>IncludeOpForFullLoad</code> parameters in versions 3.1.4 and later. </p>
* <p> <code>CdcInsertsOnly</code> and <code>CdcInsertsAndUpdates</code> can't both
* be set to <code>true</code> for the same endpoint. Set either
* <code>CdcInsertsOnly</code> or <code>CdcInsertsAndUpdates</code> to
* <code>true</code> for the same endpoint, but not both.</p>
*/
inline bool GetCdcInsertsOnly() const{ return m_cdcInsertsOnly; }
/**
* <p>A value that enables a change data capture (CDC) load to write only INSERT
* operations to .csv or columnar storage (.parquet) output files. By default (the
* <code>false</code> setting), the first field in a .csv or .parquet record
* contains the letter I (INSERT), U (UPDATE), or D (DELETE). These values indicate
* whether the row was inserted, updated, or deleted at the source database for a
* CDC load to the target.</p> <p>If <code>CdcInsertsOnly</code> is set to
* <code>true</code> or <code>y</code>, only INSERTs from the source database are
* migrated to the .csv or .parquet file. For .csv format only, how these INSERTs
* are recorded depends on the value of <code>IncludeOpForFullLoad</code>. If
* <code>IncludeOpForFullLoad</code> is set to <code>true</code>, the first field
* of every CDC record is set to I to indicate the INSERT operation at the source.
* If <code>IncludeOpForFullLoad</code> is set to <code>false</code>, every CDC
* record is written without a first field to indicate the INSERT operation at the
* source. For more information about how these settings work together, see <a
* href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps">Indicating
* Source DB Operations in Migrated S3 Data</a> in the <i>AWS Database Migration
* Service User Guide.</i>.</p> <p>AWS DMS supports the interaction
* described preceding between the <code>CdcInsertsOnly</code> and
* <code>IncludeOpForFullLoad</code> parameters in versions 3.1.4 and later. </p>
* <p> <code>CdcInsertsOnly</code> and <code>CdcInsertsAndUpdates</code> can't both
* be set to <code>true</code> for the same endpoint. Set either
* <code>CdcInsertsOnly</code> or <code>CdcInsertsAndUpdates</code> to
* <code>true</code> for the same endpoint, but not both.</p>
*/
inline bool CdcInsertsOnlyHasBeenSet() const { return m_cdcInsertsOnlyHasBeenSet; }
/**
* <p>A value that enables a change data capture (CDC) load to write only INSERT
* operations to .csv or columnar storage (.parquet) output files. By default (the
* <code>false</code> setting), the first field in a .csv or .parquet record
* contains the letter I (INSERT), U (UPDATE), or D (DELETE). These values indicate
* whether the row was inserted, updated, or deleted at the source database for a
* CDC load to the target.</p> <p>If <code>CdcInsertsOnly</code> is set to
* <code>true</code> or <code>y</code>, only INSERTs from the source database are
* migrated to the .csv or .parquet file. For .csv format only, how these INSERTs
* are recorded depends on the value of <code>IncludeOpForFullLoad</code>. If
* <code>IncludeOpForFullLoad</code> is set to <code>true</code>, the first field
* of every CDC record is set to I to indicate the INSERT operation at the source.
* If <code>IncludeOpForFullLoad</code> is set to <code>false</code>, every CDC
* record is written without a first field to indicate the INSERT operation at the
* source. For more information about how these settings work together, see <a
* href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps">Indicating
* Source DB Operations in Migrated S3 Data</a> in the <i>AWS Database Migration
* Service User Guide.</i>.</p> <p>AWS DMS supports the interaction
* described preceding between the <code>CdcInsertsOnly</code> and
* <code>IncludeOpForFullLoad</code> parameters in versions 3.1.4 and later. </p>
* <p> <code>CdcInsertsOnly</code> and <code>CdcInsertsAndUpdates</code> can't both
* be set to <code>true</code> for the same endpoint. Set either
* <code>CdcInsertsOnly</code> or <code>CdcInsertsAndUpdates</code> to
* <code>true</code> for the same endpoint, but not both.</p>
*/
inline void SetCdcInsertsOnly(bool value) { m_cdcInsertsOnlyHasBeenSet = true; m_cdcInsertsOnly = value; }
/**
* <p>A value that enables a change data capture (CDC) load to write only INSERT
* operations to .csv or columnar storage (.parquet) output files. By default (the
* <code>false</code> setting), the first field in a .csv or .parquet record
* contains the letter I (INSERT), U (UPDATE), or D (DELETE). These values indicate
* whether the row was inserted, updated, or deleted at the source database for a
* CDC load to the target.</p> <p>If <code>CdcInsertsOnly</code> is set to
* <code>true</code> or <code>y</code>, only INSERTs from the source database are
* migrated to the .csv or .parquet file. For .csv format only, how these INSERTs
* are recorded depends on the value of <code>IncludeOpForFullLoad</code>. If
* <code>IncludeOpForFullLoad</code> is set to <code>true</code>, the first field
* of every CDC record is set to I to indicate the INSERT operation at the source.
* If <code>IncludeOpForFullLoad</code> is set to <code>false</code>, every CDC
* record is written without a first field to indicate the INSERT operation at the
* source. For more information about how these settings work together, see <a
* href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps">Indicating
* Source DB Operations in Migrated S3 Data</a> in the <i>AWS Database Migration
* Service User Guide.</i>.</p> <p>AWS DMS supports the interaction
* described preceding between the <code>CdcInsertsOnly</code> and
* <code>IncludeOpForFullLoad</code> parameters in versions 3.1.4 and later. </p>
* <p> <code>CdcInsertsOnly</code> and <code>CdcInsertsAndUpdates</code> can't both
* be set to <code>true</code> for the same endpoint. Set either
* <code>CdcInsertsOnly</code> or <code>CdcInsertsAndUpdates</code> to
* <code>true</code> for the same endpoint, but not both.</p>
*/
inline S3Settings& WithCdcInsertsOnly(bool value) { SetCdcInsertsOnly(value); return *this;}
/**
* <p>A value that when nonblank causes AWS DMS to add a column with timestamp
* information to the endpoint data for an Amazon S3 target.</p> <p>AWS DMS
* supports the <code>TimestampColumnName</code> parameter in versions 3.1.4 and
* later.</p> <p>DMS includes an additional <code>STRING</code> column in
* the .csv or .parquet object files of your migrated data when you set
* <code>TimestampColumnName</code> to a nonblank value.</p> <p>For a full load,
* each row of this timestamp column contains a timestamp for when the data was
* transferred from the source to the target by DMS. </p> <p>For a change data
* capture (CDC) load, each row of the timestamp column contains the timestamp for
* the commit of that row in the source database.</p> <p>The string format for this
* timestamp column value is <code>yyyy-MM-dd HH:mm:ss.SSSSSS</code>. By default,
* the precision of this value is in microseconds. For a CDC load, the rounding of
* the precision depends on the commit timestamp supported by DMS for the source
* database.</p> <p>When the <code>AddColumnName</code> parameter is set to
* <code>true</code>, DMS also includes a name for the timestamp column that you
* set with <code>TimestampColumnName</code>.</p>
*/
inline const Aws::String& GetTimestampColumnName() const{ return m_timestampColumnName; }
/**
* <p>A value that when nonblank causes AWS DMS to add a column with timestamp
* information to the endpoint data for an Amazon S3 target.</p> <p>AWS DMS
* supports the <code>TimestampColumnName</code> parameter in versions 3.1.4 and
* later.</p> <p>DMS includes an additional <code>STRING</code> column in
* the .csv or .parquet object files of your migrated data when you set
* <code>TimestampColumnName</code> to a nonblank value.</p> <p>For a full load,
* each row of this timestamp column contains a timestamp for when the data was
* transferred from the source to the target by DMS. </p> <p>For a change data
* capture (CDC) load, each row of the timestamp column contains the timestamp for
* the commit of that row in the source database.</p> <p>The string format for this
* timestamp column value is <code>yyyy-MM-dd HH:mm:ss.SSSSSS</code>. By default,
* the precision of this value is in microseconds. For a CDC load, the rounding of
* the precision depends on the commit timestamp supported by DMS for the source
* database.</p> <p>When the <code>AddColumnName</code> parameter is set to
* <code>true</code>, DMS also includes a name for the timestamp column that you
* set with <code>TimestampColumnName</code>.</p>
*/
inline bool TimestampColumnNameHasBeenSet() const { return m_timestampColumnNameHasBeenSet; }
/**
* <p>A value that when nonblank causes AWS DMS to add a column with timestamp
* information to the endpoint data for an Amazon S3 target.</p> <p>AWS DMS
* supports the <code>TimestampColumnName</code> parameter in versions 3.1.4 and
* later.</p> <p>DMS includes an additional <code>STRING</code> column in
* the .csv or .parquet object files of your migrated data when you set
* <code>TimestampColumnName</code> to a nonblank value.</p> <p>For a full load,
* each row of this timestamp column contains a timestamp for when the data was
* transferred from the source to the target by DMS. </p> <p>For a change data
* capture (CDC) load, each row of the timestamp column contains the timestamp for
* the commit of that row in the source database.</p> <p>The string format for this
* timestamp column value is <code>yyyy-MM-dd HH:mm:ss.SSSSSS</code>. By default,
* the precision of this value is in microseconds. For a CDC load, the rounding of
* the precision depends on the commit timestamp supported by DMS for the source
* database.</p> <p>When the <code>AddColumnName</code> parameter is set to
* <code>true</code>, DMS also includes a name for the timestamp column that you
* set with <code>TimestampColumnName</code>.</p>
*/
inline void SetTimestampColumnName(const Aws::String& value) { m_timestampColumnNameHasBeenSet = true; m_timestampColumnName = value; }
/**
* <p>A value that when nonblank causes AWS DMS to add a column with timestamp
* information to the endpoint data for an Amazon S3 target.</p> <p>AWS DMS
* supports the <code>TimestampColumnName</code> parameter in versions 3.1.4 and
* later.</p> <p>DMS includes an additional <code>STRING</code> column in
* the .csv or .parquet object files of your migrated data when you set
* <code>TimestampColumnName</code> to a nonblank value.</p> <p>For a full load,
* each row of this timestamp column contains a timestamp for when the data was
* transferred from the source to the target by DMS. </p> <p>For a change data
* capture (CDC) load, each row of the timestamp column contains the timestamp for
* the commit of that row in the source database.</p> <p>The string format for this
* timestamp column value is <code>yyyy-MM-dd HH:mm:ss.SSSSSS</code>. By default,
* the precision of this value is in microseconds. For a CDC load, the rounding of
* the precision depends on the commit timestamp supported by DMS for the source
* database.</p> <p>When the <code>AddColumnName</code> parameter is set to
* <code>true</code>, DMS also includes a name for the timestamp column that you
* set with <code>TimestampColumnName</code>.</p>
*/
inline void SetTimestampColumnName(Aws::String&& value) { m_timestampColumnNameHasBeenSet = true; m_timestampColumnName = std::move(value); }
/**
* <p>A value that when nonblank causes AWS DMS to add a column with timestamp
* information to the endpoint data for an Amazon S3 target.</p> <p>AWS DMS
* supports the <code>TimestampColumnName</code> parameter in versions 3.1.4 and
* later.</p> <p>DMS includes an additional <code>STRING</code> column in
* the .csv or .parquet object files of your migrated data when you set
* <code>TimestampColumnName</code> to a nonblank value.</p> <p>For a full load,
* each row of this timestamp column contains a timestamp for when the data was
* transferred from the source to the target by DMS. </p> <p>For a change data
* capture (CDC) load, each row of the timestamp column contains the timestamp for
* the commit of that row in the source database.</p> <p>The string format for this
* timestamp column value is <code>yyyy-MM-dd HH:mm:ss.SSSSSS</code>. By default,
* the precision of this value is in microseconds. For a CDC load, the rounding of
* the precision depends on the commit timestamp supported by DMS for the source
* database.</p> <p>When the <code>AddColumnName</code> parameter is set to
* <code>true</code>, DMS also includes a name for the timestamp column that you
* set with <code>TimestampColumnName</code>.</p>
*/
inline void SetTimestampColumnName(const char* value) { m_timestampColumnNameHasBeenSet = true; m_timestampColumnName.assign(value); }
/**
* <p>A value that when nonblank causes AWS DMS to add a column with timestamp
* information to the endpoint data for an Amazon S3 target.</p> <p>AWS DMS
* supports the <code>TimestampColumnName</code> parameter in versions 3.1.4 and
* later.</p> <p>DMS includes an additional <code>STRING</code> column in
* the .csv or .parquet object files of your migrated data when you set
* <code>TimestampColumnName</code> to a nonblank value.</p> <p>For a full load,
* each row of this timestamp column contains a timestamp for when the data was
* transferred from the source to the target by DMS. </p> <p>For a change data
* capture (CDC) load, each row of the timestamp column contains the timestamp for
* the commit of that row in the source database.</p> <p>The string format for this
* timestamp column value is <code>yyyy-MM-dd HH:mm:ss.SSSSSS</code>. By default,
* the precision of this value is in microseconds. For a CDC load, the rounding of
* the precision depends on the commit timestamp supported by DMS for the source
* database.</p> <p>When the <code>AddColumnName</code> parameter is set to
* <code>true</code>, DMS also includes a name for the timestamp column that you
* set with <code>TimestampColumnName</code>.</p>
*/
inline S3Settings& WithTimestampColumnName(const Aws::String& value) { SetTimestampColumnName(value); return *this;}
/**
* <p>A value that when nonblank causes AWS DMS to add a column with timestamp
* information to the endpoint data for an Amazon S3 target.</p> <p>AWS DMS
* supports the <code>TimestampColumnName</code> parameter in versions 3.1.4 and
* later.</p> <p>DMS includes an additional <code>STRING</code> column in
* the .csv or .parquet object files of your migrated data when you set
* <code>TimestampColumnName</code> to a nonblank value.</p> <p>For a full load,
* each row of this timestamp column contains a timestamp for when the data was
* transferred from the source to the target by DMS. </p> <p>For a change data
* capture (CDC) load, each row of the timestamp column contains the timestamp for
* the commit of that row in the source database.</p> <p>The string format for this
* timestamp column value is <code>yyyy-MM-dd HH:mm:ss.SSSSSS</code>. By default,
* the precision of this value is in microseconds. For a CDC load, the rounding of
* the precision depends on the commit timestamp supported by DMS for the source
* database.</p> <p>When the <code>AddColumnName</code> parameter is set to
* <code>true</code>, DMS also includes a name for the timestamp column that you
* set with <code>TimestampColumnName</code>.</p>
*/
inline S3Settings& WithTimestampColumnName(Aws::String&& value) { SetTimestampColumnName(std::move(value)); return *this;}
/**
* <p>A value that when nonblank causes AWS DMS to add a column with timestamp
* information to the endpoint data for an Amazon S3 target.</p> <p>AWS DMS
* supports the <code>TimestampColumnName</code> parameter in versions 3.1.4 and
* later.</p> <p>DMS includes an additional <code>STRING</code> column in
* the .csv or .parquet object files of your migrated data when you set
* <code>TimestampColumnName</code> to a nonblank value.</p> <p>For a full load,
* each row of this timestamp column contains a timestamp for when the data was
* transferred from the source to the target by DMS. </p> <p>For a change data
* capture (CDC) load, each row of the timestamp column contains the timestamp for
* the commit of that row in the source database.</p> <p>The string format for this
* timestamp column value is <code>yyyy-MM-dd HH:mm:ss.SSSSSS</code>. By default,
* the precision of this value is in microseconds. For a CDC load, the rounding of
* the precision depends on the commit timestamp supported by DMS for the source
* database.</p> <p>When the <code>AddColumnName</code> parameter is set to
* <code>true</code>, DMS also includes a name for the timestamp column that you
* set with <code>TimestampColumnName</code>.</p>
*/
inline S3Settings& WithTimestampColumnName(const char* value) { SetTimestampColumnName(value); return *this;}
/**
* <p>A value that specifies the precision of any <code>TIMESTAMP</code> column
* values that are written to an Amazon S3 object file in .parquet format.</p>
* <p>AWS DMS supports the <code>ParquetTimestampInMillisecond</code>
* parameter in versions 3.1.4 and later.</p> <p>When
* <code>ParquetTimestampInMillisecond</code> is set to <code>true</code> or
* <code>y</code>, AWS DMS writes all <code>TIMESTAMP</code> columns in a .parquet
* formatted file with millisecond precision. Otherwise, DMS writes them with
* microsecond precision.</p> <p>Currently, Amazon Athena and AWS Glue can handle
* only millisecond precision for <code>TIMESTAMP</code> values. Set this parameter
* to <code>true</code> for S3 endpoint object files that are .parquet formatted
* only if you plan to query or process the data with Athena or AWS Glue.</p>
* <p>AWS DMS writes any <code>TIMESTAMP</code> column values written to an
* S3 file in .csv format with microsecond precision.</p> <p>Setting
* <code>ParquetTimestampInMillisecond</code> has no effect on the string format of
* the timestamp column value that is inserted by setting the
* <code>TimestampColumnName</code> parameter.</p>
*/
inline bool GetParquetTimestampInMillisecond() const{ return m_parquetTimestampInMillisecond; }
/**
* <p>A value that specifies the precision of any <code>TIMESTAMP</code> column
* values that are written to an Amazon S3 object file in .parquet format.</p>
* <p>AWS DMS supports the <code>ParquetTimestampInMillisecond</code>
* parameter in versions 3.1.4 and later.</p> <p>When
* <code>ParquetTimestampInMillisecond</code> is set to <code>true</code> or
* <code>y</code>, AWS DMS writes all <code>TIMESTAMP</code> columns in a .parquet
* formatted file with millisecond precision. Otherwise, DMS writes them with
* microsecond precision.</p> <p>Currently, Amazon Athena and AWS Glue can handle
* only millisecond precision for <code>TIMESTAMP</code> values. Set this parameter
* to <code>true</code> for S3 endpoint object files that are .parquet formatted
* only if you plan to query or process the data with Athena or AWS Glue.</p>
* <p>AWS DMS writes any <code>TIMESTAMP</code> column values written to an
* S3 file in .csv format with microsecond precision.</p> <p>Setting
* <code>ParquetTimestampInMillisecond</code> has no effect on the string format of
* the timestamp column value that is inserted by setting the
* <code>TimestampColumnName</code> parameter.</p>
*/
inline bool ParquetTimestampInMillisecondHasBeenSet() const { return m_parquetTimestampInMillisecondHasBeenSet; }
/**
* <p>A value that specifies the precision of any <code>TIMESTAMP</code> column
* values that are written to an Amazon S3 object file in .parquet format.</p>
* <p>AWS DMS supports the <code>ParquetTimestampInMillisecond</code>
* parameter in versions 3.1.4 and later.</p> <p>When
* <code>ParquetTimestampInMillisecond</code> is set to <code>true</code> or
* <code>y</code>, AWS DMS writes all <code>TIMESTAMP</code> columns in a .parquet
* formatted file with millisecond precision. Otherwise, DMS writes them with
* microsecond precision.</p> <p>Currently, Amazon Athena and AWS Glue can handle
* only millisecond precision for <code>TIMESTAMP</code> values. Set this parameter
* to <code>true</code> for S3 endpoint object files that are .parquet formatted
* only if you plan to query or process the data with Athena or AWS Glue.</p>
* <p>AWS DMS writes any <code>TIMESTAMP</code> column values written to an
* S3 file in .csv format with microsecond precision.</p> <p>Setting
* <code>ParquetTimestampInMillisecond</code> has no effect on the string format of
* the timestamp column value that is inserted by setting the
* <code>TimestampColumnName</code> parameter.</p>
*/
inline void SetParquetTimestampInMillisecond(bool value) { m_parquetTimestampInMillisecondHasBeenSet = true; m_parquetTimestampInMillisecond = value; }
/**
* <p>A value that specifies the precision of any <code>TIMESTAMP</code> column
* values that are written to an Amazon S3 object file in .parquet format.</p>
* <p>AWS DMS supports the <code>ParquetTimestampInMillisecond</code>
* parameter in versions 3.1.4 and later.</p> <p>When
* <code>ParquetTimestampInMillisecond</code> is set to <code>true</code> or
* <code>y</code>, AWS DMS writes all <code>TIMESTAMP</code> columns in a .parquet
* formatted file with millisecond precision. Otherwise, DMS writes them with
* microsecond precision.</p> <p>Currently, Amazon Athena and AWS Glue can handle
* only millisecond precision for <code>TIMESTAMP</code> values. Set this parameter
* to <code>true</code> for S3 endpoint object files that are .parquet formatted
* only if you plan to query or process the data with Athena or AWS Glue.</p>
* <p>AWS DMS writes any <code>TIMESTAMP</code> column values written to an
* S3 file in .csv format with microsecond precision.</p> <p>Setting
* <code>ParquetTimestampInMillisecond</code> has no effect on the string format of
* the timestamp column value that is inserted by setting the
* <code>TimestampColumnName</code> parameter.</p>
*/
inline S3Settings& WithParquetTimestampInMillisecond(bool value) { SetParquetTimestampInMillisecond(value); return *this;}
/**
* <p>A value that enables a change data capture (CDC) load to write INSERT and
* UPDATE operations to .csv or .parquet (columnar storage) output files. The
* default setting is <code>false</code>, but when
* <code>CdcInsertsAndUpdates</code> is set to <code>true</code> or <code>y</code>,
* only INSERTs and UPDATEs from the source database are migrated to the .csv or
* .parquet file. </p> <p>For .csv file format only, how these INSERTs and UPDATEs
* are recorded depends on the value of the <code>IncludeOpForFullLoad</code>
* parameter. If <code>IncludeOpForFullLoad</code> is set to <code>true</code>, the
* first field of every CDC record is set to either <code>I</code> or
* <code>U</code> to indicate INSERT and UPDATE operations at the source. But if
* <code>IncludeOpForFullLoad</code> is set to <code>false</code>, CDC records are
* written without an indication of INSERT or UPDATE operations at the source. For
* more information about how these settings work together, see <a
* href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps">Indicating
* Source DB Operations in Migrated S3 Data</a> in the <i>AWS Database Migration
* Service User Guide.</i>.</p> <p>AWS DMS supports the use of the
* <code>CdcInsertsAndUpdates</code> parameter in versions 3.3.1 and later.</p> <p>
* <code>CdcInsertsOnly</code> and <code>CdcInsertsAndUpdates</code> can't both be
* set to <code>true</code> for the same endpoint. Set either
* <code>CdcInsertsOnly</code> or <code>CdcInsertsAndUpdates</code> to
* <code>true</code> for the same endpoint, but not both.</p>
*/
inline bool GetCdcInsertsAndUpdates() const{ return m_cdcInsertsAndUpdates; }
/**
* <p>A value that enables a change data capture (CDC) load to write INSERT and
* UPDATE operations to .csv or .parquet (columnar storage) output files. The
* default setting is <code>false</code>, but when
* <code>CdcInsertsAndUpdates</code> is set to <code>true</code> or <code>y</code>,
* only INSERTs and UPDATEs from the source database are migrated to the .csv or
* .parquet file. </p> <p>For .csv file format only, how these INSERTs and UPDATEs
* are recorded depends on the value of the <code>IncludeOpForFullLoad</code>
* parameter. If <code>IncludeOpForFullLoad</code> is set to <code>true</code>, the
* first field of every CDC record is set to either <code>I</code> or
* <code>U</code> to indicate INSERT and UPDATE operations at the source. But if
* <code>IncludeOpForFullLoad</code> is set to <code>false</code>, CDC records are
* written without an indication of INSERT or UPDATE operations at the source. For
* more information about how these settings work together, see <a
* href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps">Indicating
* Source DB Operations in Migrated S3 Data</a> in the <i>AWS Database Migration
* Service User Guide.</i>.</p> <p>AWS DMS supports the use of the
* <code>CdcInsertsAndUpdates</code> parameter in versions 3.3.1 and later.</p> <p>
* <code>CdcInsertsOnly</code> and <code>CdcInsertsAndUpdates</code> can't both be
* set to <code>true</code> for the same endpoint. Set either
* <code>CdcInsertsOnly</code> or <code>CdcInsertsAndUpdates</code> to
* <code>true</code> for the same endpoint, but not both.</p>
*/
inline bool CdcInsertsAndUpdatesHasBeenSet() const { return m_cdcInsertsAndUpdatesHasBeenSet; }
/**
* <p>A value that enables a change data capture (CDC) load to write INSERT and
* UPDATE operations to .csv or .parquet (columnar storage) output files. The
* default setting is <code>false</code>, but when
* <code>CdcInsertsAndUpdates</code> is set to <code>true</code> or <code>y</code>,
* only INSERTs and UPDATEs from the source database are migrated to the .csv or
* .parquet file. </p> <p>For .csv file format only, how these INSERTs and UPDATEs
* are recorded depends on the value of the <code>IncludeOpForFullLoad</code>
* parameter. If <code>IncludeOpForFullLoad</code> is set to <code>true</code>, the
* first field of every CDC record is set to either <code>I</code> or
* <code>U</code> to indicate INSERT and UPDATE operations at the source. But if
* <code>IncludeOpForFullLoad</code> is set to <code>false</code>, CDC records are
* written without an indication of INSERT or UPDATE operations at the source. For
* more information about how these settings work together, see <a
* href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps">Indicating
* Source DB Operations in Migrated S3 Data</a> in the <i>AWS Database Migration
* Service User Guide.</i>.</p> <p>AWS DMS supports the use of the
* <code>CdcInsertsAndUpdates</code> parameter in versions 3.3.1 and later.</p> <p>
* <code>CdcInsertsOnly</code> and <code>CdcInsertsAndUpdates</code> can't both be
* set to <code>true</code> for the same endpoint. Set either
* <code>CdcInsertsOnly</code> or <code>CdcInsertsAndUpdates</code> to
* <code>true</code> for the same endpoint, but not both.</p>
*/
inline void SetCdcInsertsAndUpdates(bool value) { m_cdcInsertsAndUpdatesHasBeenSet = true; m_cdcInsertsAndUpdates = value; }
/**
* <p>A value that enables a change data capture (CDC) load to write INSERT and
* UPDATE operations to .csv or .parquet (columnar storage) output files. The
* default setting is <code>false</code>, but when
* <code>CdcInsertsAndUpdates</code> is set to <code>true</code> or <code>y</code>,
* only INSERTs and UPDATEs from the source database are migrated to the .csv or
* .parquet file. </p> <p>For .csv file format only, how these INSERTs and UPDATEs
* are recorded depends on the value of the <code>IncludeOpForFullLoad</code>
* parameter. If <code>IncludeOpForFullLoad</code> is set to <code>true</code>, the
* first field of every CDC record is set to either <code>I</code> or
* <code>U</code> to indicate INSERT and UPDATE operations at the source. But if
* <code>IncludeOpForFullLoad</code> is set to <code>false</code>, CDC records are
* written without an indication of INSERT or UPDATE operations at the source. For
* more information about how these settings work together, see <a
* href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps">Indicating
* Source DB Operations in Migrated S3 Data</a> in the <i>AWS Database Migration
* Service User Guide.</i>.</p> <p>AWS DMS supports the use of the
* <code>CdcInsertsAndUpdates</code> parameter in versions 3.3.1 and later.</p> <p>
* <code>CdcInsertsOnly</code> and <code>CdcInsertsAndUpdates</code> can't both be
* set to <code>true</code> for the same endpoint. Set either
* <code>CdcInsertsOnly</code> or <code>CdcInsertsAndUpdates</code> to
* <code>true</code> for the same endpoint, but not both.</p>
*/
inline S3Settings& WithCdcInsertsAndUpdates(bool value) { SetCdcInsertsAndUpdates(value); return *this;}
private:
Aws::String m_serviceAccessRoleArn;
bool m_serviceAccessRoleArnHasBeenSet;
Aws::String m_externalTableDefinition;
bool m_externalTableDefinitionHasBeenSet;
Aws::String m_csvRowDelimiter;
bool m_csvRowDelimiterHasBeenSet;
Aws::String m_csvDelimiter;
bool m_csvDelimiterHasBeenSet;
Aws::String m_bucketFolder;
bool m_bucketFolderHasBeenSet;
Aws::String m_bucketName;
bool m_bucketNameHasBeenSet;
CompressionTypeValue m_compressionType;
bool m_compressionTypeHasBeenSet;
EncryptionModeValue m_encryptionMode;
bool m_encryptionModeHasBeenSet;
Aws::String m_serverSideEncryptionKmsKeyId;
bool m_serverSideEncryptionKmsKeyIdHasBeenSet;
DataFormatValue m_dataFormat;
bool m_dataFormatHasBeenSet;
EncodingTypeValue m_encodingType;
bool m_encodingTypeHasBeenSet;
int m_dictPageSizeLimit;
bool m_dictPageSizeLimitHasBeenSet;
int m_rowGroupLength;
bool m_rowGroupLengthHasBeenSet;
int m_dataPageSize;
bool m_dataPageSizeHasBeenSet;
ParquetVersionValue m_parquetVersion;
bool m_parquetVersionHasBeenSet;
bool m_enableStatistics;
bool m_enableStatisticsHasBeenSet;
bool m_includeOpForFullLoad;
bool m_includeOpForFullLoadHasBeenSet;
bool m_cdcInsertsOnly;
bool m_cdcInsertsOnlyHasBeenSet;
Aws::String m_timestampColumnName;
bool m_timestampColumnNameHasBeenSet;
bool m_parquetTimestampInMillisecond;
bool m_parquetTimestampInMillisecondHasBeenSet;
bool m_cdcInsertsAndUpdates;
bool m_cdcInsertsAndUpdatesHasBeenSet;
};
} // namespace Model
} // namespace DatabaseMigrationService
} // namespace Aws