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

Provides information that describes an Amazon Kinesis Data Stream endpoint. * This information includes the output format of records applied to the endpoint * and details of transaction and control table data information.

See * Also:

AWS * API Reference

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

The Amazon Resource Name (ARN) for the Amazon Kinesis Data Streams * endpoint.

*/ inline const Aws::String& GetStreamArn() const{ return m_streamArn; } /** *

The Amazon Resource Name (ARN) for the Amazon Kinesis Data Streams * endpoint.

*/ inline bool StreamArnHasBeenSet() const { return m_streamArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) for the Amazon Kinesis Data Streams * endpoint.

*/ inline void SetStreamArn(const Aws::String& value) { m_streamArnHasBeenSet = true; m_streamArn = value; } /** *

The Amazon Resource Name (ARN) for the Amazon Kinesis Data Streams * endpoint.

*/ inline void SetStreamArn(Aws::String&& value) { m_streamArnHasBeenSet = true; m_streamArn = std::move(value); } /** *

The Amazon Resource Name (ARN) for the Amazon Kinesis Data Streams * endpoint.

*/ inline void SetStreamArn(const char* value) { m_streamArnHasBeenSet = true; m_streamArn.assign(value); } /** *

The Amazon Resource Name (ARN) for the Amazon Kinesis Data Streams * endpoint.

*/ inline KinesisSettings& WithStreamArn(const Aws::String& value) { SetStreamArn(value); return *this;} /** *

The Amazon Resource Name (ARN) for the Amazon Kinesis Data Streams * endpoint.

*/ inline KinesisSettings& WithStreamArn(Aws::String&& value) { SetStreamArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) for the Amazon Kinesis Data Streams * endpoint.

*/ inline KinesisSettings& WithStreamArn(const char* value) { SetStreamArn(value); return *this;} /** *

The output format for the records created on the endpoint. The message format * is JSON (default) or JSON_UNFORMATTED (a single line * with no tab).

*/ inline const MessageFormatValue& GetMessageFormat() const{ return m_messageFormat; } /** *

The output format for the records created on the endpoint. The message format * is JSON (default) or JSON_UNFORMATTED (a single line * with no tab).

*/ inline bool MessageFormatHasBeenSet() const { return m_messageFormatHasBeenSet; } /** *

The output format for the records created on the endpoint. The message format * is JSON (default) or JSON_UNFORMATTED (a single line * with no tab).

*/ inline void SetMessageFormat(const MessageFormatValue& value) { m_messageFormatHasBeenSet = true; m_messageFormat = value; } /** *

The output format for the records created on the endpoint. The message format * is JSON (default) or JSON_UNFORMATTED (a single line * with no tab).

*/ inline void SetMessageFormat(MessageFormatValue&& value) { m_messageFormatHasBeenSet = true; m_messageFormat = std::move(value); } /** *

The output format for the records created on the endpoint. The message format * is JSON (default) or JSON_UNFORMATTED (a single line * with no tab).

*/ inline KinesisSettings& WithMessageFormat(const MessageFormatValue& value) { SetMessageFormat(value); return *this;} /** *

The output format for the records created on the endpoint. The message format * is JSON (default) or JSON_UNFORMATTED (a single line * with no tab).

*/ inline KinesisSettings& WithMessageFormat(MessageFormatValue&& value) { SetMessageFormat(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) for the IAM role that DMS uses to write to the * Kinesis data stream. The role must allow the iam:PassRole * action.

*/ inline const Aws::String& GetServiceAccessRoleArn() const{ return m_serviceAccessRoleArn; } /** *

The Amazon Resource Name (ARN) for the IAM role that DMS uses to write to the * Kinesis data stream. The role must allow the iam:PassRole * action.

*/ inline bool ServiceAccessRoleArnHasBeenSet() const { return m_serviceAccessRoleArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) for the IAM role that DMS uses to write to the * Kinesis data stream. The role must allow the iam:PassRole * action.

*/ inline void SetServiceAccessRoleArn(const Aws::String& value) { m_serviceAccessRoleArnHasBeenSet = true; m_serviceAccessRoleArn = value; } /** *

The Amazon Resource Name (ARN) for the IAM role that DMS uses to write to the * Kinesis data stream. The role must allow the iam:PassRole * action.

*/ inline void SetServiceAccessRoleArn(Aws::String&& value) { m_serviceAccessRoleArnHasBeenSet = true; m_serviceAccessRoleArn = std::move(value); } /** *

The Amazon Resource Name (ARN) for the IAM role that DMS uses to write to the * Kinesis data stream. The role must allow the iam:PassRole * action.

*/ inline void SetServiceAccessRoleArn(const char* value) { m_serviceAccessRoleArnHasBeenSet = true; m_serviceAccessRoleArn.assign(value); } /** *

The Amazon Resource Name (ARN) for the IAM role that DMS uses to write to the * Kinesis data stream. The role must allow the iam:PassRole * action.

*/ inline KinesisSettings& WithServiceAccessRoleArn(const Aws::String& value) { SetServiceAccessRoleArn(value); return *this;} /** *

The Amazon Resource Name (ARN) for the IAM role that DMS uses to write to the * Kinesis data stream. The role must allow the iam:PassRole * action.

*/ inline KinesisSettings& WithServiceAccessRoleArn(Aws::String&& value) { SetServiceAccessRoleArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) for the IAM role that DMS uses to write to the * Kinesis data stream. The role must allow the iam:PassRole * action.

*/ inline KinesisSettings& WithServiceAccessRoleArn(const char* value) { SetServiceAccessRoleArn(value); return *this;} /** *

Provides detailed transaction information from the source database. This * information includes a commit timestamp, a log position, and values for * transaction_id, previous transaction_id, and * transaction_record_id (the record offset within a transaction). The * default is false.

*/ inline bool GetIncludeTransactionDetails() const{ return m_includeTransactionDetails; } /** *

Provides detailed transaction information from the source database. This * information includes a commit timestamp, a log position, and values for * transaction_id, previous transaction_id, and * transaction_record_id (the record offset within a transaction). The * default is false.

*/ inline bool IncludeTransactionDetailsHasBeenSet() const { return m_includeTransactionDetailsHasBeenSet; } /** *

Provides detailed transaction information from the source database. This * information includes a commit timestamp, a log position, and values for * transaction_id, previous transaction_id, and * transaction_record_id (the record offset within a transaction). The * default is false.

*/ inline void SetIncludeTransactionDetails(bool value) { m_includeTransactionDetailsHasBeenSet = true; m_includeTransactionDetails = value; } /** *

Provides detailed transaction information from the source database. This * information includes a commit timestamp, a log position, and values for * transaction_id, previous transaction_id, and * transaction_record_id (the record offset within a transaction). The * default is false.

*/ inline KinesisSettings& WithIncludeTransactionDetails(bool value) { SetIncludeTransactionDetails(value); return *this;} /** *

Shows the partition value within the Kinesis message output, unless the * partition type is schema-table-type. The default is * false.

*/ inline bool GetIncludePartitionValue() const{ return m_includePartitionValue; } /** *

Shows the partition value within the Kinesis message output, unless the * partition type is schema-table-type. The default is * false.

*/ inline bool IncludePartitionValueHasBeenSet() const { return m_includePartitionValueHasBeenSet; } /** *

Shows the partition value within the Kinesis message output, unless the * partition type is schema-table-type. The default is * false.

*/ inline void SetIncludePartitionValue(bool value) { m_includePartitionValueHasBeenSet = true; m_includePartitionValue = value; } /** *

Shows the partition value within the Kinesis message output, unless the * partition type is schema-table-type. The default is * false.

*/ inline KinesisSettings& WithIncludePartitionValue(bool value) { SetIncludePartitionValue(value); return *this;} /** *

Prefixes schema and table names to partition values, when the partition type * is primary-key-type. Doing this increases data distribution among * Kinesis shards. For example, suppose that a SysBench schema has thousands of * tables and each table has only limited range for a primary key. In this case, * the same primary key is sent from thousands of tables to the same shard, which * causes throttling. The default is false.

*/ inline bool GetPartitionIncludeSchemaTable() const{ return m_partitionIncludeSchemaTable; } /** *

Prefixes schema and table names to partition values, when the partition type * is primary-key-type. Doing this increases data distribution among * Kinesis shards. For example, suppose that a SysBench schema has thousands of * tables and each table has only limited range for a primary key. In this case, * the same primary key is sent from thousands of tables to the same shard, which * causes throttling. The default is false.

*/ inline bool PartitionIncludeSchemaTableHasBeenSet() const { return m_partitionIncludeSchemaTableHasBeenSet; } /** *

Prefixes schema and table names to partition values, when the partition type * is primary-key-type. Doing this increases data distribution among * Kinesis shards. For example, suppose that a SysBench schema has thousands of * tables and each table has only limited range for a primary key. In this case, * the same primary key is sent from thousands of tables to the same shard, which * causes throttling. The default is false.

*/ inline void SetPartitionIncludeSchemaTable(bool value) { m_partitionIncludeSchemaTableHasBeenSet = true; m_partitionIncludeSchemaTable = value; } /** *

Prefixes schema and table names to partition values, when the partition type * is primary-key-type. Doing this increases data distribution among * Kinesis shards. For example, suppose that a SysBench schema has thousands of * tables and each table has only limited range for a primary key. In this case, * the same primary key is sent from thousands of tables to the same shard, which * causes throttling. The default is false.

*/ inline KinesisSettings& WithPartitionIncludeSchemaTable(bool value) { SetPartitionIncludeSchemaTable(value); return *this;} /** *

Includes any data definition language (DDL) operations that change the table * in the control data, such as rename-table, drop-table, * add-column, drop-column, and * rename-column. The default is false.

*/ inline bool GetIncludeTableAlterOperations() const{ return m_includeTableAlterOperations; } /** *

Includes any data definition language (DDL) operations that change the table * in the control data, such as rename-table, drop-table, * add-column, drop-column, and * rename-column. The default is false.

*/ inline bool IncludeTableAlterOperationsHasBeenSet() const { return m_includeTableAlterOperationsHasBeenSet; } /** *

Includes any data definition language (DDL) operations that change the table * in the control data, such as rename-table, drop-table, * add-column, drop-column, and * rename-column. The default is false.

*/ inline void SetIncludeTableAlterOperations(bool value) { m_includeTableAlterOperationsHasBeenSet = true; m_includeTableAlterOperations = value; } /** *

Includes any data definition language (DDL) operations that change the table * in the control data, such as rename-table, drop-table, * add-column, drop-column, and * rename-column. The default is false.

*/ inline KinesisSettings& WithIncludeTableAlterOperations(bool value) { SetIncludeTableAlterOperations(value); return *this;} /** *

Shows detailed control information for table definition, column definition, * and table and column changes in the Kinesis message output. The default is * false.

*/ inline bool GetIncludeControlDetails() const{ return m_includeControlDetails; } /** *

Shows detailed control information for table definition, column definition, * and table and column changes in the Kinesis message output. The default is * false.

*/ inline bool IncludeControlDetailsHasBeenSet() const { return m_includeControlDetailsHasBeenSet; } /** *

Shows detailed control information for table definition, column definition, * and table and column changes in the Kinesis message output. The default is * false.

*/ inline void SetIncludeControlDetails(bool value) { m_includeControlDetailsHasBeenSet = true; m_includeControlDetails = value; } /** *

Shows detailed control information for table definition, column definition, * and table and column changes in the Kinesis message output. The default is * false.

*/ inline KinesisSettings& WithIncludeControlDetails(bool value) { SetIncludeControlDetails(value); return *this;} /** *

Include NULL and empty columns for records migrated to the endpoint. The * default is false.

*/ inline bool GetIncludeNullAndEmpty() const{ return m_includeNullAndEmpty; } /** *

Include NULL and empty columns for records migrated to the endpoint. The * default is false.

*/ inline bool IncludeNullAndEmptyHasBeenSet() const { return m_includeNullAndEmptyHasBeenSet; } /** *

Include NULL and empty columns for records migrated to the endpoint. The * default is false.

*/ inline void SetIncludeNullAndEmpty(bool value) { m_includeNullAndEmptyHasBeenSet = true; m_includeNullAndEmpty = value; } /** *

Include NULL and empty columns for records migrated to the endpoint. The * default is false.

*/ inline KinesisSettings& WithIncludeNullAndEmpty(bool value) { SetIncludeNullAndEmpty(value); return *this;} /** *

Set this optional parameter to true to avoid adding a '0x' * prefix to raw data in hexadecimal format. For example, by default, DMS adds a * '0x' prefix to the LOB column type in hexadecimal format moving from an Oracle * source to an Amazon Kinesis target. Use the NoHexPrefix endpoint * setting to enable migration of RAW data type columns without adding the '0x' * prefix.

*/ inline bool GetNoHexPrefix() const{ return m_noHexPrefix; } /** *

Set this optional parameter to true to avoid adding a '0x' * prefix to raw data in hexadecimal format. For example, by default, DMS adds a * '0x' prefix to the LOB column type in hexadecimal format moving from an Oracle * source to an Amazon Kinesis target. Use the NoHexPrefix endpoint * setting to enable migration of RAW data type columns without adding the '0x' * prefix.

*/ inline bool NoHexPrefixHasBeenSet() const { return m_noHexPrefixHasBeenSet; } /** *

Set this optional parameter to true to avoid adding a '0x' * prefix to raw data in hexadecimal format. For example, by default, DMS adds a * '0x' prefix to the LOB column type in hexadecimal format moving from an Oracle * source to an Amazon Kinesis target. Use the NoHexPrefix endpoint * setting to enable migration of RAW data type columns without adding the '0x' * prefix.

*/ inline void SetNoHexPrefix(bool value) { m_noHexPrefixHasBeenSet = true; m_noHexPrefix = value; } /** *

Set this optional parameter to true to avoid adding a '0x' * prefix to raw data in hexadecimal format. For example, by default, DMS adds a * '0x' prefix to the LOB column type in hexadecimal format moving from an Oracle * source to an Amazon Kinesis target. Use the NoHexPrefix endpoint * setting to enable migration of RAW data type columns without adding the '0x' * prefix.

*/ inline KinesisSettings& WithNoHexPrefix(bool value) { SetNoHexPrefix(value); return *this;} private: Aws::String m_streamArn; bool m_streamArnHasBeenSet = false; MessageFormatValue m_messageFormat; bool m_messageFormatHasBeenSet = false; Aws::String m_serviceAccessRoleArn; bool m_serviceAccessRoleArnHasBeenSet = false; bool m_includeTransactionDetails; bool m_includeTransactionDetailsHasBeenSet = false; bool m_includePartitionValue; bool m_includePartitionValueHasBeenSet = false; bool m_partitionIncludeSchemaTable; bool m_partitionIncludeSchemaTableHasBeenSet = false; bool m_includeTableAlterOperations; bool m_includeTableAlterOperationsHasBeenSet = false; bool m_includeControlDetails; bool m_includeControlDetailsHasBeenSet = false; bool m_includeNullAndEmpty; bool m_includeNullAndEmptyHasBeenSet = false; bool m_noHexPrefix; bool m_noHexPrefixHasBeenSet = false; }; } // namespace Model } // namespace DatabaseMigrationService } // namespace Aws