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

Provides information that defines an Amazon Timestream * endpoint.

See Also:

AWS * API Reference

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

Database name for the endpoint.

*/ inline const Aws::String& GetDatabaseName() const{ return m_databaseName; } /** *

Database name for the endpoint.

*/ inline bool DatabaseNameHasBeenSet() const { return m_databaseNameHasBeenSet; } /** *

Database name for the endpoint.

*/ inline void SetDatabaseName(const Aws::String& value) { m_databaseNameHasBeenSet = true; m_databaseName = value; } /** *

Database name for the endpoint.

*/ inline void SetDatabaseName(Aws::String&& value) { m_databaseNameHasBeenSet = true; m_databaseName = std::move(value); } /** *

Database name for the endpoint.

*/ inline void SetDatabaseName(const char* value) { m_databaseNameHasBeenSet = true; m_databaseName.assign(value); } /** *

Database name for the endpoint.

*/ inline TimestreamSettings& WithDatabaseName(const Aws::String& value) { SetDatabaseName(value); return *this;} /** *

Database name for the endpoint.

*/ inline TimestreamSettings& WithDatabaseName(Aws::String&& value) { SetDatabaseName(std::move(value)); return *this;} /** *

Database name for the endpoint.

*/ inline TimestreamSettings& WithDatabaseName(const char* value) { SetDatabaseName(value); return *this;} /** *

Set this attribute to specify the length of time to store all of the tables * in memory that are migrated into Amazon Timestream from the source database. * Time is measured in units of hours. When Timestream data comes in, it first * resides in memory for the specified duration, which allows quick access to * it.

*/ inline int GetMemoryDuration() const{ return m_memoryDuration; } /** *

Set this attribute to specify the length of time to store all of the tables * in memory that are migrated into Amazon Timestream from the source database. * Time is measured in units of hours. When Timestream data comes in, it first * resides in memory for the specified duration, which allows quick access to * it.

*/ inline bool MemoryDurationHasBeenSet() const { return m_memoryDurationHasBeenSet; } /** *

Set this attribute to specify the length of time to store all of the tables * in memory that are migrated into Amazon Timestream from the source database. * Time is measured in units of hours. When Timestream data comes in, it first * resides in memory for the specified duration, which allows quick access to * it.

*/ inline void SetMemoryDuration(int value) { m_memoryDurationHasBeenSet = true; m_memoryDuration = value; } /** *

Set this attribute to specify the length of time to store all of the tables * in memory that are migrated into Amazon Timestream from the source database. * Time is measured in units of hours. When Timestream data comes in, it first * resides in memory for the specified duration, which allows quick access to * it.

*/ inline TimestreamSettings& WithMemoryDuration(int value) { SetMemoryDuration(value); return *this;} /** *

Set this attribute to specify the default magnetic duration applied to the * Amazon Timestream tables in days. This is the number of days that records remain * in magnetic store before being discarded. For more information, see Storage * in the Amazon * Timestream Developer Guide.

*/ inline int GetMagneticDuration() const{ return m_magneticDuration; } /** *

Set this attribute to specify the default magnetic duration applied to the * Amazon Timestream tables in days. This is the number of days that records remain * in magnetic store before being discarded. For more information, see Storage * in the Amazon * Timestream Developer Guide.

*/ inline bool MagneticDurationHasBeenSet() const { return m_magneticDurationHasBeenSet; } /** *

Set this attribute to specify the default magnetic duration applied to the * Amazon Timestream tables in days. This is the number of days that records remain * in magnetic store before being discarded. For more information, see Storage * in the Amazon * Timestream Developer Guide.

*/ inline void SetMagneticDuration(int value) { m_magneticDurationHasBeenSet = true; m_magneticDuration = value; } /** *

Set this attribute to specify the default magnetic duration applied to the * Amazon Timestream tables in days. This is the number of days that records remain * in magnetic store before being discarded. For more information, see Storage * in the Amazon * Timestream Developer Guide.

*/ inline TimestreamSettings& WithMagneticDuration(int value) { SetMagneticDuration(value); return *this;} /** *

Set this attribute to true to specify that DMS only applies * inserts and updates, and not deletes. Amazon Timestream does not allow deleting * records, so if this value is false, DMS nulls out the corresponding * record in the Timestream database rather than deleting it.

*/ inline bool GetCdcInsertsAndUpdates() const{ return m_cdcInsertsAndUpdates; } /** *

Set this attribute to true to specify that DMS only applies * inserts and updates, and not deletes. Amazon Timestream does not allow deleting * records, so if this value is false, DMS nulls out the corresponding * record in the Timestream database rather than deleting it.

*/ inline bool CdcInsertsAndUpdatesHasBeenSet() const { return m_cdcInsertsAndUpdatesHasBeenSet; } /** *

Set this attribute to true to specify that DMS only applies * inserts and updates, and not deletes. Amazon Timestream does not allow deleting * records, so if this value is false, DMS nulls out the corresponding * record in the Timestream database rather than deleting it.

*/ inline void SetCdcInsertsAndUpdates(bool value) { m_cdcInsertsAndUpdatesHasBeenSet = true; m_cdcInsertsAndUpdates = value; } /** *

Set this attribute to true to specify that DMS only applies * inserts and updates, and not deletes. Amazon Timestream does not allow deleting * records, so if this value is false, DMS nulls out the corresponding * record in the Timestream database rather than deleting it.

*/ inline TimestreamSettings& WithCdcInsertsAndUpdates(bool value) { SetCdcInsertsAndUpdates(value); return *this;} /** *

Set this attribute to true to enable memory store writes. When * this value is false, DMS does not write records that are older in * days than the value specified in MagneticDuration, because Amazon * Timestream does not allow memory writes by default. For more information, see Storage * in the Amazon * Timestream Developer Guide.

*/ inline bool GetEnableMagneticStoreWrites() const{ return m_enableMagneticStoreWrites; } /** *

Set this attribute to true to enable memory store writes. When * this value is false, DMS does not write records that are older in * days than the value specified in MagneticDuration, because Amazon * Timestream does not allow memory writes by default. For more information, see Storage * in the Amazon * Timestream Developer Guide.

*/ inline bool EnableMagneticStoreWritesHasBeenSet() const { return m_enableMagneticStoreWritesHasBeenSet; } /** *

Set this attribute to true to enable memory store writes. When * this value is false, DMS does not write records that are older in * days than the value specified in MagneticDuration, because Amazon * Timestream does not allow memory writes by default. For more information, see Storage * in the Amazon * Timestream Developer Guide.

*/ inline void SetEnableMagneticStoreWrites(bool value) { m_enableMagneticStoreWritesHasBeenSet = true; m_enableMagneticStoreWrites = value; } /** *

Set this attribute to true to enable memory store writes. When * this value is false, DMS does not write records that are older in * days than the value specified in MagneticDuration, because Amazon * Timestream does not allow memory writes by default. For more information, see Storage * in the Amazon * Timestream Developer Guide.

*/ inline TimestreamSettings& WithEnableMagneticStoreWrites(bool value) { SetEnableMagneticStoreWrites(value); return *this;} private: Aws::String m_databaseName; bool m_databaseNameHasBeenSet = false; int m_memoryDuration; bool m_memoryDurationHasBeenSet = false; int m_magneticDuration; bool m_magneticDurationHasBeenSet = false; bool m_cdcInsertsAndUpdates; bool m_cdcInsertsAndUpdatesHasBeenSet = false; bool m_enableMagneticStoreWrites; bool m_enableMagneticStoreWritesHasBeenSet = false; }; } // namespace Model } // namespace DatabaseMigrationService } // namespace Aws