/** * 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 DynamoDB { namespace Model { /** *

Represents the DynamoDB Streams configuration for a table in * DynamoDB.

See Also:

AWS * API Reference

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

Indicates whether DynamoDB Streams is enabled (true) or disabled (false) on * the table.

*/ inline bool GetStreamEnabled() const{ return m_streamEnabled; } /** *

Indicates whether DynamoDB Streams is enabled (true) or disabled (false) on * the table.

*/ inline bool StreamEnabledHasBeenSet() const { return m_streamEnabledHasBeenSet; } /** *

Indicates whether DynamoDB Streams is enabled (true) or disabled (false) on * the table.

*/ inline void SetStreamEnabled(bool value) { m_streamEnabledHasBeenSet = true; m_streamEnabled = value; } /** *

Indicates whether DynamoDB Streams is enabled (true) or disabled (false) on * the table.

*/ inline StreamSpecification& WithStreamEnabled(bool value) { SetStreamEnabled(value); return *this;} /** *

When an item in the table is modified, StreamViewType * determines what information is written to the stream for this table. Valid * values for StreamViewType are:

  • * KEYS_ONLY - Only the key attributes of the modified item are * written to the stream.

  • NEW_IMAGE - The entire * item, as it appears after it was modified, is written to the stream.

  • *
  • OLD_IMAGE - The entire item, as it appeared before it was * modified, is written to the stream.

  • * NEW_AND_OLD_IMAGES - Both the new and the old item images of the * item are written to the stream.

*/ inline const StreamViewType& GetStreamViewType() const{ return m_streamViewType; } /** *

When an item in the table is modified, StreamViewType * determines what information is written to the stream for this table. Valid * values for StreamViewType are:

  • * KEYS_ONLY - Only the key attributes of the modified item are * written to the stream.

  • NEW_IMAGE - The entire * item, as it appears after it was modified, is written to the stream.

  • *
  • OLD_IMAGE - The entire item, as it appeared before it was * modified, is written to the stream.

  • * NEW_AND_OLD_IMAGES - Both the new and the old item images of the * item are written to the stream.

*/ inline bool StreamViewTypeHasBeenSet() const { return m_streamViewTypeHasBeenSet; } /** *

When an item in the table is modified, StreamViewType * determines what information is written to the stream for this table. Valid * values for StreamViewType are:

  • * KEYS_ONLY - Only the key attributes of the modified item are * written to the stream.

  • NEW_IMAGE - The entire * item, as it appears after it was modified, is written to the stream.

  • *
  • OLD_IMAGE - The entire item, as it appeared before it was * modified, is written to the stream.

  • * NEW_AND_OLD_IMAGES - Both the new and the old item images of the * item are written to the stream.

*/ inline void SetStreamViewType(const StreamViewType& value) { m_streamViewTypeHasBeenSet = true; m_streamViewType = value; } /** *

When an item in the table is modified, StreamViewType * determines what information is written to the stream for this table. Valid * values for StreamViewType are:

  • * KEYS_ONLY - Only the key attributes of the modified item are * written to the stream.

  • NEW_IMAGE - The entire * item, as it appears after it was modified, is written to the stream.

  • *
  • OLD_IMAGE - The entire item, as it appeared before it was * modified, is written to the stream.

  • * NEW_AND_OLD_IMAGES - Both the new and the old item images of the * item are written to the stream.

*/ inline void SetStreamViewType(StreamViewType&& value) { m_streamViewTypeHasBeenSet = true; m_streamViewType = std::move(value); } /** *

When an item in the table is modified, StreamViewType * determines what information is written to the stream for this table. Valid * values for StreamViewType are:

  • * KEYS_ONLY - Only the key attributes of the modified item are * written to the stream.

  • NEW_IMAGE - The entire * item, as it appears after it was modified, is written to the stream.

  • *
  • OLD_IMAGE - The entire item, as it appeared before it was * modified, is written to the stream.

  • * NEW_AND_OLD_IMAGES - Both the new and the old item images of the * item are written to the stream.

*/ inline StreamSpecification& WithStreamViewType(const StreamViewType& value) { SetStreamViewType(value); return *this;} /** *

When an item in the table is modified, StreamViewType * determines what information is written to the stream for this table. Valid * values for StreamViewType are:

  • * KEYS_ONLY - Only the key attributes of the modified item are * written to the stream.

  • NEW_IMAGE - The entire * item, as it appears after it was modified, is written to the stream.

  • *
  • OLD_IMAGE - The entire item, as it appeared before it was * modified, is written to the stream.

  • * NEW_AND_OLD_IMAGES - Both the new and the old item images of the * item are written to the stream.

*/ inline StreamSpecification& WithStreamViewType(StreamViewType&& value) { SetStreamViewType(std::move(value)); return *this;} private: bool m_streamEnabled; bool m_streamEnabledHasBeenSet = false; StreamViewType m_streamViewType; bool m_streamViewTypeHasBeenSet = false; }; } // namespace Model } // namespace DynamoDB } // namespace Aws