1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 6 #pragma once 7 #include <aws/dms/DatabaseMigrationService_EXPORTS.h> 8 #include <aws/core/utils/memory/stl/AWSString.h> 9 #include <aws/dms/model/MessageFormatValue.h> 10 #include <utility> 11 12 namespace Aws 13 { 14 namespace Utils 15 { 16 namespace Json 17 { 18 class JsonValue; 19 class JsonView; 20 } // namespace Json 21 } // namespace Utils 22 namespace DatabaseMigrationService 23 { 24 namespace Model 25 { 26 27 /** 28 * <p>Provides information that describes an Amazon Kinesis Data Stream endpoint. 29 * This information includes the output format of records applied to the endpoint 30 * and details of transaction and control table data information.</p><p><h3>See 31 * Also:</h3> <a 32 * href="http://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/KinesisSettings">AWS 33 * API Reference</a></p> 34 */ 35 class AWS_DATABASEMIGRATIONSERVICE_API KinesisSettings 36 { 37 public: 38 KinesisSettings(); 39 KinesisSettings(Aws::Utils::Json::JsonView jsonValue); 40 KinesisSettings& operator=(Aws::Utils::Json::JsonView jsonValue); 41 Aws::Utils::Json::JsonValue Jsonize() const; 42 43 44 /** 45 * <p>The Amazon Resource Name (ARN) for the Amazon Kinesis Data Streams 46 * endpoint.</p> 47 */ GetStreamArn()48 inline const Aws::String& GetStreamArn() const{ return m_streamArn; } 49 50 /** 51 * <p>The Amazon Resource Name (ARN) for the Amazon Kinesis Data Streams 52 * endpoint.</p> 53 */ StreamArnHasBeenSet()54 inline bool StreamArnHasBeenSet() const { return m_streamArnHasBeenSet; } 55 56 /** 57 * <p>The Amazon Resource Name (ARN) for the Amazon Kinesis Data Streams 58 * endpoint.</p> 59 */ SetStreamArn(const Aws::String & value)60 inline void SetStreamArn(const Aws::String& value) { m_streamArnHasBeenSet = true; m_streamArn = value; } 61 62 /** 63 * <p>The Amazon Resource Name (ARN) for the Amazon Kinesis Data Streams 64 * endpoint.</p> 65 */ SetStreamArn(Aws::String && value)66 inline void SetStreamArn(Aws::String&& value) { m_streamArnHasBeenSet = true; m_streamArn = std::move(value); } 67 68 /** 69 * <p>The Amazon Resource Name (ARN) for the Amazon Kinesis Data Streams 70 * endpoint.</p> 71 */ SetStreamArn(const char * value)72 inline void SetStreamArn(const char* value) { m_streamArnHasBeenSet = true; m_streamArn.assign(value); } 73 74 /** 75 * <p>The Amazon Resource Name (ARN) for the Amazon Kinesis Data Streams 76 * endpoint.</p> 77 */ WithStreamArn(const Aws::String & value)78 inline KinesisSettings& WithStreamArn(const Aws::String& value) { SetStreamArn(value); return *this;} 79 80 /** 81 * <p>The Amazon Resource Name (ARN) for the Amazon Kinesis Data Streams 82 * endpoint.</p> 83 */ WithStreamArn(Aws::String && value)84 inline KinesisSettings& WithStreamArn(Aws::String&& value) { SetStreamArn(std::move(value)); return *this;} 85 86 /** 87 * <p>The Amazon Resource Name (ARN) for the Amazon Kinesis Data Streams 88 * endpoint.</p> 89 */ WithStreamArn(const char * value)90 inline KinesisSettings& WithStreamArn(const char* value) { SetStreamArn(value); return *this;} 91 92 93 /** 94 * <p>The output format for the records created on the endpoint. The message format 95 * is <code>JSON</code> (default) or <code>JSON_UNFORMATTED</code> (a single line 96 * with no tab).</p> 97 */ GetMessageFormat()98 inline const MessageFormatValue& GetMessageFormat() const{ return m_messageFormat; } 99 100 /** 101 * <p>The output format for the records created on the endpoint. The message format 102 * is <code>JSON</code> (default) or <code>JSON_UNFORMATTED</code> (a single line 103 * with no tab).</p> 104 */ MessageFormatHasBeenSet()105 inline bool MessageFormatHasBeenSet() const { return m_messageFormatHasBeenSet; } 106 107 /** 108 * <p>The output format for the records created on the endpoint. The message format 109 * is <code>JSON</code> (default) or <code>JSON_UNFORMATTED</code> (a single line 110 * with no tab).</p> 111 */ SetMessageFormat(const MessageFormatValue & value)112 inline void SetMessageFormat(const MessageFormatValue& value) { m_messageFormatHasBeenSet = true; m_messageFormat = value; } 113 114 /** 115 * <p>The output format for the records created on the endpoint. The message format 116 * is <code>JSON</code> (default) or <code>JSON_UNFORMATTED</code> (a single line 117 * with no tab).</p> 118 */ SetMessageFormat(MessageFormatValue && value)119 inline void SetMessageFormat(MessageFormatValue&& value) { m_messageFormatHasBeenSet = true; m_messageFormat = std::move(value); } 120 121 /** 122 * <p>The output format for the records created on the endpoint. The message format 123 * is <code>JSON</code> (default) or <code>JSON_UNFORMATTED</code> (a single line 124 * with no tab).</p> 125 */ WithMessageFormat(const MessageFormatValue & value)126 inline KinesisSettings& WithMessageFormat(const MessageFormatValue& value) { SetMessageFormat(value); return *this;} 127 128 /** 129 * <p>The output format for the records created on the endpoint. The message format 130 * is <code>JSON</code> (default) or <code>JSON_UNFORMATTED</code> (a single line 131 * with no tab).</p> 132 */ WithMessageFormat(MessageFormatValue && value)133 inline KinesisSettings& WithMessageFormat(MessageFormatValue&& value) { SetMessageFormat(std::move(value)); return *this;} 134 135 136 /** 137 * <p>The Amazon Resource Name (ARN) for the IAM role that DMS uses to write to the 138 * Kinesis data stream. The role must allow the <code>iam:PassRole</code> 139 * action.</p> 140 */ GetServiceAccessRoleArn()141 inline const Aws::String& GetServiceAccessRoleArn() const{ return m_serviceAccessRoleArn; } 142 143 /** 144 * <p>The Amazon Resource Name (ARN) for the IAM role that DMS uses to write to the 145 * Kinesis data stream. The role must allow the <code>iam:PassRole</code> 146 * action.</p> 147 */ ServiceAccessRoleArnHasBeenSet()148 inline bool ServiceAccessRoleArnHasBeenSet() const { return m_serviceAccessRoleArnHasBeenSet; } 149 150 /** 151 * <p>The Amazon Resource Name (ARN) for the IAM role that DMS uses to write to the 152 * Kinesis data stream. The role must allow the <code>iam:PassRole</code> 153 * action.</p> 154 */ SetServiceAccessRoleArn(const Aws::String & value)155 inline void SetServiceAccessRoleArn(const Aws::String& value) { m_serviceAccessRoleArnHasBeenSet = true; m_serviceAccessRoleArn = value; } 156 157 /** 158 * <p>The Amazon Resource Name (ARN) for the IAM role that DMS uses to write to the 159 * Kinesis data stream. The role must allow the <code>iam:PassRole</code> 160 * action.</p> 161 */ SetServiceAccessRoleArn(Aws::String && value)162 inline void SetServiceAccessRoleArn(Aws::String&& value) { m_serviceAccessRoleArnHasBeenSet = true; m_serviceAccessRoleArn = std::move(value); } 163 164 /** 165 * <p>The Amazon Resource Name (ARN) for the IAM role that DMS uses to write to the 166 * Kinesis data stream. The role must allow the <code>iam:PassRole</code> 167 * action.</p> 168 */ SetServiceAccessRoleArn(const char * value)169 inline void SetServiceAccessRoleArn(const char* value) { m_serviceAccessRoleArnHasBeenSet = true; m_serviceAccessRoleArn.assign(value); } 170 171 /** 172 * <p>The Amazon Resource Name (ARN) for the IAM role that DMS uses to write to the 173 * Kinesis data stream. The role must allow the <code>iam:PassRole</code> 174 * action.</p> 175 */ WithServiceAccessRoleArn(const Aws::String & value)176 inline KinesisSettings& WithServiceAccessRoleArn(const Aws::String& value) { SetServiceAccessRoleArn(value); return *this;} 177 178 /** 179 * <p>The Amazon Resource Name (ARN) for the IAM role that DMS uses to write to the 180 * Kinesis data stream. The role must allow the <code>iam:PassRole</code> 181 * action.</p> 182 */ WithServiceAccessRoleArn(Aws::String && value)183 inline KinesisSettings& WithServiceAccessRoleArn(Aws::String&& value) { SetServiceAccessRoleArn(std::move(value)); return *this;} 184 185 /** 186 * <p>The Amazon Resource Name (ARN) for the IAM role that DMS uses to write to the 187 * Kinesis data stream. The role must allow the <code>iam:PassRole</code> 188 * action.</p> 189 */ WithServiceAccessRoleArn(const char * value)190 inline KinesisSettings& WithServiceAccessRoleArn(const char* value) { SetServiceAccessRoleArn(value); return *this;} 191 192 193 /** 194 * <p>Provides detailed transaction information from the source database. This 195 * information includes a commit timestamp, a log position, and values for 196 * <code>transaction_id</code>, previous <code>transaction_id</code>, and 197 * <code>transaction_record_id</code> (the record offset within a transaction). The 198 * default is <code>false</code>.</p> 199 */ GetIncludeTransactionDetails()200 inline bool GetIncludeTransactionDetails() const{ return m_includeTransactionDetails; } 201 202 /** 203 * <p>Provides detailed transaction information from the source database. This 204 * information includes a commit timestamp, a log position, and values for 205 * <code>transaction_id</code>, previous <code>transaction_id</code>, and 206 * <code>transaction_record_id</code> (the record offset within a transaction). The 207 * default is <code>false</code>.</p> 208 */ IncludeTransactionDetailsHasBeenSet()209 inline bool IncludeTransactionDetailsHasBeenSet() const { return m_includeTransactionDetailsHasBeenSet; } 210 211 /** 212 * <p>Provides detailed transaction information from the source database. This 213 * information includes a commit timestamp, a log position, and values for 214 * <code>transaction_id</code>, previous <code>transaction_id</code>, and 215 * <code>transaction_record_id</code> (the record offset within a transaction). The 216 * default is <code>false</code>.</p> 217 */ SetIncludeTransactionDetails(bool value)218 inline void SetIncludeTransactionDetails(bool value) { m_includeTransactionDetailsHasBeenSet = true; m_includeTransactionDetails = value; } 219 220 /** 221 * <p>Provides detailed transaction information from the source database. This 222 * information includes a commit timestamp, a log position, and values for 223 * <code>transaction_id</code>, previous <code>transaction_id</code>, and 224 * <code>transaction_record_id</code> (the record offset within a transaction). The 225 * default is <code>false</code>.</p> 226 */ WithIncludeTransactionDetails(bool value)227 inline KinesisSettings& WithIncludeTransactionDetails(bool value) { SetIncludeTransactionDetails(value); return *this;} 228 229 230 /** 231 * <p>Shows the partition value within the Kinesis message output, unless the 232 * partition type is <code>schema-table-type</code>. The default is 233 * <code>false</code>.</p> 234 */ GetIncludePartitionValue()235 inline bool GetIncludePartitionValue() const{ return m_includePartitionValue; } 236 237 /** 238 * <p>Shows the partition value within the Kinesis message output, unless the 239 * partition type is <code>schema-table-type</code>. The default is 240 * <code>false</code>.</p> 241 */ IncludePartitionValueHasBeenSet()242 inline bool IncludePartitionValueHasBeenSet() const { return m_includePartitionValueHasBeenSet; } 243 244 /** 245 * <p>Shows the partition value within the Kinesis message output, unless the 246 * partition type is <code>schema-table-type</code>. The default is 247 * <code>false</code>.</p> 248 */ SetIncludePartitionValue(bool value)249 inline void SetIncludePartitionValue(bool value) { m_includePartitionValueHasBeenSet = true; m_includePartitionValue = value; } 250 251 /** 252 * <p>Shows the partition value within the Kinesis message output, unless the 253 * partition type is <code>schema-table-type</code>. The default is 254 * <code>false</code>.</p> 255 */ WithIncludePartitionValue(bool value)256 inline KinesisSettings& WithIncludePartitionValue(bool value) { SetIncludePartitionValue(value); return *this;} 257 258 259 /** 260 * <p>Prefixes schema and table names to partition values, when the partition type 261 * is <code>primary-key-type</code>. Doing this increases data distribution among 262 * Kinesis shards. For example, suppose that a SysBench schema has thousands of 263 * tables and each table has only limited range for a primary key. In this case, 264 * the same primary key is sent from thousands of tables to the same shard, which 265 * causes throttling. The default is <code>false</code>.</p> 266 */ GetPartitionIncludeSchemaTable()267 inline bool GetPartitionIncludeSchemaTable() const{ return m_partitionIncludeSchemaTable; } 268 269 /** 270 * <p>Prefixes schema and table names to partition values, when the partition type 271 * is <code>primary-key-type</code>. Doing this increases data distribution among 272 * Kinesis shards. For example, suppose that a SysBench schema has thousands of 273 * tables and each table has only limited range for a primary key. In this case, 274 * the same primary key is sent from thousands of tables to the same shard, which 275 * causes throttling. The default is <code>false</code>.</p> 276 */ PartitionIncludeSchemaTableHasBeenSet()277 inline bool PartitionIncludeSchemaTableHasBeenSet() const { return m_partitionIncludeSchemaTableHasBeenSet; } 278 279 /** 280 * <p>Prefixes schema and table names to partition values, when the partition type 281 * is <code>primary-key-type</code>. Doing this increases data distribution among 282 * Kinesis shards. For example, suppose that a SysBench schema has thousands of 283 * tables and each table has only limited range for a primary key. In this case, 284 * the same primary key is sent from thousands of tables to the same shard, which 285 * causes throttling. The default is <code>false</code>.</p> 286 */ SetPartitionIncludeSchemaTable(bool value)287 inline void SetPartitionIncludeSchemaTable(bool value) { m_partitionIncludeSchemaTableHasBeenSet = true; m_partitionIncludeSchemaTable = value; } 288 289 /** 290 * <p>Prefixes schema and table names to partition values, when the partition type 291 * is <code>primary-key-type</code>. Doing this increases data distribution among 292 * Kinesis shards. For example, suppose that a SysBench schema has thousands of 293 * tables and each table has only limited range for a primary key. In this case, 294 * the same primary key is sent from thousands of tables to the same shard, which 295 * causes throttling. The default is <code>false</code>.</p> 296 */ WithPartitionIncludeSchemaTable(bool value)297 inline KinesisSettings& WithPartitionIncludeSchemaTable(bool value) { SetPartitionIncludeSchemaTable(value); return *this;} 298 299 300 /** 301 * <p>Includes any data definition language (DDL) operations that change the table 302 * in the control data, such as <code>rename-table</code>, <code>drop-table</code>, 303 * <code>add-column</code>, <code>drop-column</code>, and 304 * <code>rename-column</code>. The default is <code>false</code>.</p> 305 */ GetIncludeTableAlterOperations()306 inline bool GetIncludeTableAlterOperations() const{ return m_includeTableAlterOperations; } 307 308 /** 309 * <p>Includes any data definition language (DDL) operations that change the table 310 * in the control data, such as <code>rename-table</code>, <code>drop-table</code>, 311 * <code>add-column</code>, <code>drop-column</code>, and 312 * <code>rename-column</code>. The default is <code>false</code>.</p> 313 */ IncludeTableAlterOperationsHasBeenSet()314 inline bool IncludeTableAlterOperationsHasBeenSet() const { return m_includeTableAlterOperationsHasBeenSet; } 315 316 /** 317 * <p>Includes any data definition language (DDL) operations that change the table 318 * in the control data, such as <code>rename-table</code>, <code>drop-table</code>, 319 * <code>add-column</code>, <code>drop-column</code>, and 320 * <code>rename-column</code>. The default is <code>false</code>.</p> 321 */ SetIncludeTableAlterOperations(bool value)322 inline void SetIncludeTableAlterOperations(bool value) { m_includeTableAlterOperationsHasBeenSet = true; m_includeTableAlterOperations = value; } 323 324 /** 325 * <p>Includes any data definition language (DDL) operations that change the table 326 * in the control data, such as <code>rename-table</code>, <code>drop-table</code>, 327 * <code>add-column</code>, <code>drop-column</code>, and 328 * <code>rename-column</code>. The default is <code>false</code>.</p> 329 */ WithIncludeTableAlterOperations(bool value)330 inline KinesisSettings& WithIncludeTableAlterOperations(bool value) { SetIncludeTableAlterOperations(value); return *this;} 331 332 333 /** 334 * <p>Shows detailed control information for table definition, column definition, 335 * and table and column changes in the Kinesis message output. The default is 336 * <code>false</code>.</p> 337 */ GetIncludeControlDetails()338 inline bool GetIncludeControlDetails() const{ return m_includeControlDetails; } 339 340 /** 341 * <p>Shows detailed control information for table definition, column definition, 342 * and table and column changes in the Kinesis message output. The default is 343 * <code>false</code>.</p> 344 */ IncludeControlDetailsHasBeenSet()345 inline bool IncludeControlDetailsHasBeenSet() const { return m_includeControlDetailsHasBeenSet; } 346 347 /** 348 * <p>Shows detailed control information for table definition, column definition, 349 * and table and column changes in the Kinesis message output. The default is 350 * <code>false</code>.</p> 351 */ SetIncludeControlDetails(bool value)352 inline void SetIncludeControlDetails(bool value) { m_includeControlDetailsHasBeenSet = true; m_includeControlDetails = value; } 353 354 /** 355 * <p>Shows detailed control information for table definition, column definition, 356 * and table and column changes in the Kinesis message output. The default is 357 * <code>false</code>.</p> 358 */ WithIncludeControlDetails(bool value)359 inline KinesisSettings& WithIncludeControlDetails(bool value) { SetIncludeControlDetails(value); return *this;} 360 361 362 /** 363 * <p>Include NULL and empty columns for records migrated to the endpoint. The 364 * default is <code>false</code>.</p> 365 */ GetIncludeNullAndEmpty()366 inline bool GetIncludeNullAndEmpty() const{ return m_includeNullAndEmpty; } 367 368 /** 369 * <p>Include NULL and empty columns for records migrated to the endpoint. The 370 * default is <code>false</code>.</p> 371 */ IncludeNullAndEmptyHasBeenSet()372 inline bool IncludeNullAndEmptyHasBeenSet() const { return m_includeNullAndEmptyHasBeenSet; } 373 374 /** 375 * <p>Include NULL and empty columns for records migrated to the endpoint. The 376 * default is <code>false</code>.</p> 377 */ SetIncludeNullAndEmpty(bool value)378 inline void SetIncludeNullAndEmpty(bool value) { m_includeNullAndEmptyHasBeenSet = true; m_includeNullAndEmpty = value; } 379 380 /** 381 * <p>Include NULL and empty columns for records migrated to the endpoint. The 382 * default is <code>false</code>.</p> 383 */ WithIncludeNullAndEmpty(bool value)384 inline KinesisSettings& WithIncludeNullAndEmpty(bool value) { SetIncludeNullAndEmpty(value); return *this;} 385 386 387 /** 388 * <p>Set this optional parameter to <code>true</code> to avoid adding a '0x' 389 * prefix to raw data in hexadecimal format. For example, by default, DMS adds a 390 * '0x' prefix to the LOB column type in hexadecimal format moving from an Oracle 391 * source to an Amazon Kinesis target. Use the <code>NoHexPrefix</code> endpoint 392 * setting to enable migration of RAW data type columns without adding the '0x' 393 * prefix.</p> 394 */ GetNoHexPrefix()395 inline bool GetNoHexPrefix() const{ return m_noHexPrefix; } 396 397 /** 398 * <p>Set this optional parameter to <code>true</code> to avoid adding a '0x' 399 * prefix to raw data in hexadecimal format. For example, by default, DMS adds a 400 * '0x' prefix to the LOB column type in hexadecimal format moving from an Oracle 401 * source to an Amazon Kinesis target. Use the <code>NoHexPrefix</code> endpoint 402 * setting to enable migration of RAW data type columns without adding the '0x' 403 * prefix.</p> 404 */ NoHexPrefixHasBeenSet()405 inline bool NoHexPrefixHasBeenSet() const { return m_noHexPrefixHasBeenSet; } 406 407 /** 408 * <p>Set this optional parameter to <code>true</code> to avoid adding a '0x' 409 * prefix to raw data in hexadecimal format. For example, by default, DMS adds a 410 * '0x' prefix to the LOB column type in hexadecimal format moving from an Oracle 411 * source to an Amazon Kinesis target. Use the <code>NoHexPrefix</code> endpoint 412 * setting to enable migration of RAW data type columns without adding the '0x' 413 * prefix.</p> 414 */ SetNoHexPrefix(bool value)415 inline void SetNoHexPrefix(bool value) { m_noHexPrefixHasBeenSet = true; m_noHexPrefix = value; } 416 417 /** 418 * <p>Set this optional parameter to <code>true</code> to avoid adding a '0x' 419 * prefix to raw data in hexadecimal format. For example, by default, DMS adds a 420 * '0x' prefix to the LOB column type in hexadecimal format moving from an Oracle 421 * source to an Amazon Kinesis target. Use the <code>NoHexPrefix</code> endpoint 422 * setting to enable migration of RAW data type columns without adding the '0x' 423 * prefix.</p> 424 */ WithNoHexPrefix(bool value)425 inline KinesisSettings& WithNoHexPrefix(bool value) { SetNoHexPrefix(value); return *this;} 426 427 private: 428 429 Aws::String m_streamArn; 430 bool m_streamArnHasBeenSet; 431 432 MessageFormatValue m_messageFormat; 433 bool m_messageFormatHasBeenSet; 434 435 Aws::String m_serviceAccessRoleArn; 436 bool m_serviceAccessRoleArnHasBeenSet; 437 438 bool m_includeTransactionDetails; 439 bool m_includeTransactionDetailsHasBeenSet; 440 441 bool m_includePartitionValue; 442 bool m_includePartitionValueHasBeenSet; 443 444 bool m_partitionIncludeSchemaTable; 445 bool m_partitionIncludeSchemaTableHasBeenSet; 446 447 bool m_includeTableAlterOperations; 448 bool m_includeTableAlterOperationsHasBeenSet; 449 450 bool m_includeControlDetails; 451 bool m_includeControlDetailsHasBeenSet; 452 453 bool m_includeNullAndEmpty; 454 bool m_includeNullAndEmptyHasBeenSet; 455 456 bool m_noHexPrefix; 457 bool m_noHexPrefixHasBeenSet; 458 }; 459 460 } // namespace Model 461 } // namespace DatabaseMigrationService 462 } // namespace Aws 463