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

A description of a single data modification that was performed on an item in * a DynamoDB table.

See Also:

AWS * API Reference

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

The approximate date and time when the stream record was created, in UNIX epoch time format and rounded * down to the closest second.

*/ inline const Aws::Utils::DateTime& GetApproximateCreationDateTime() const{ return m_approximateCreationDateTime; } /** *

The approximate date and time when the stream record was created, in UNIX epoch time format and rounded * down to the closest second.

*/ inline bool ApproximateCreationDateTimeHasBeenSet() const { return m_approximateCreationDateTimeHasBeenSet; } /** *

The approximate date and time when the stream record was created, in UNIX epoch time format and rounded * down to the closest second.

*/ inline void SetApproximateCreationDateTime(const Aws::Utils::DateTime& value) { m_approximateCreationDateTimeHasBeenSet = true; m_approximateCreationDateTime = value; } /** *

The approximate date and time when the stream record was created, in UNIX epoch time format and rounded * down to the closest second.

*/ inline void SetApproximateCreationDateTime(Aws::Utils::DateTime&& value) { m_approximateCreationDateTimeHasBeenSet = true; m_approximateCreationDateTime = std::move(value); } /** *

The approximate date and time when the stream record was created, in UNIX epoch time format and rounded * down to the closest second.

*/ inline StreamRecord& WithApproximateCreationDateTime(const Aws::Utils::DateTime& value) { SetApproximateCreationDateTime(value); return *this;} /** *

The approximate date and time when the stream record was created, in UNIX epoch time format and rounded * down to the closest second.

*/ inline StreamRecord& WithApproximateCreationDateTime(Aws::Utils::DateTime&& value) { SetApproximateCreationDateTime(std::move(value)); return *this;} /** *

The primary key attribute(s) for the DynamoDB item that was modified.

*/ inline const Aws::Map& GetKeys() const{ return m_keys; } /** *

The primary key attribute(s) for the DynamoDB item that was modified.

*/ inline bool KeysHasBeenSet() const { return m_keysHasBeenSet; } /** *

The primary key attribute(s) for the DynamoDB item that was modified.

*/ inline void SetKeys(const Aws::Map& value) { m_keysHasBeenSet = true; m_keys = value; } /** *

The primary key attribute(s) for the DynamoDB item that was modified.

*/ inline void SetKeys(Aws::Map&& value) { m_keysHasBeenSet = true; m_keys = std::move(value); } /** *

The primary key attribute(s) for the DynamoDB item that was modified.

*/ inline StreamRecord& WithKeys(const Aws::Map& value) { SetKeys(value); return *this;} /** *

The primary key attribute(s) for the DynamoDB item that was modified.

*/ inline StreamRecord& WithKeys(Aws::Map&& value) { SetKeys(std::move(value)); return *this;} /** *

The primary key attribute(s) for the DynamoDB item that was modified.

*/ inline StreamRecord& AddKeys(const Aws::String& key, const AttributeValue& value) { m_keysHasBeenSet = true; m_keys.emplace(key, value); return *this; } /** *

The primary key attribute(s) for the DynamoDB item that was modified.

*/ inline StreamRecord& AddKeys(Aws::String&& key, const AttributeValue& value) { m_keysHasBeenSet = true; m_keys.emplace(std::move(key), value); return *this; } /** *

The primary key attribute(s) for the DynamoDB item that was modified.

*/ inline StreamRecord& AddKeys(const Aws::String& key, AttributeValue&& value) { m_keysHasBeenSet = true; m_keys.emplace(key, std::move(value)); return *this; } /** *

The primary key attribute(s) for the DynamoDB item that was modified.

*/ inline StreamRecord& AddKeys(Aws::String&& key, AttributeValue&& value) { m_keysHasBeenSet = true; m_keys.emplace(std::move(key), std::move(value)); return *this; } /** *

The primary key attribute(s) for the DynamoDB item that was modified.

*/ inline StreamRecord& AddKeys(const char* key, AttributeValue&& value) { m_keysHasBeenSet = true; m_keys.emplace(key, std::move(value)); return *this; } /** *

The primary key attribute(s) for the DynamoDB item that was modified.

*/ inline StreamRecord& AddKeys(const char* key, const AttributeValue& value) { m_keysHasBeenSet = true; m_keys.emplace(key, value); return *this; } /** *

The item in the DynamoDB table as it appeared after it was modified.

*/ inline const Aws::Map& GetNewImage() const{ return m_newImage; } /** *

The item in the DynamoDB table as it appeared after it was modified.

*/ inline bool NewImageHasBeenSet() const { return m_newImageHasBeenSet; } /** *

The item in the DynamoDB table as it appeared after it was modified.

*/ inline void SetNewImage(const Aws::Map& value) { m_newImageHasBeenSet = true; m_newImage = value; } /** *

The item in the DynamoDB table as it appeared after it was modified.

*/ inline void SetNewImage(Aws::Map&& value) { m_newImageHasBeenSet = true; m_newImage = std::move(value); } /** *

The item in the DynamoDB table as it appeared after it was modified.

*/ inline StreamRecord& WithNewImage(const Aws::Map& value) { SetNewImage(value); return *this;} /** *

The item in the DynamoDB table as it appeared after it was modified.

*/ inline StreamRecord& WithNewImage(Aws::Map&& value) { SetNewImage(std::move(value)); return *this;} /** *

The item in the DynamoDB table as it appeared after it was modified.

*/ inline StreamRecord& AddNewImage(const Aws::String& key, const AttributeValue& value) { m_newImageHasBeenSet = true; m_newImage.emplace(key, value); return *this; } /** *

The item in the DynamoDB table as it appeared after it was modified.

*/ inline StreamRecord& AddNewImage(Aws::String&& key, const AttributeValue& value) { m_newImageHasBeenSet = true; m_newImage.emplace(std::move(key), value); return *this; } /** *

The item in the DynamoDB table as it appeared after it was modified.

*/ inline StreamRecord& AddNewImage(const Aws::String& key, AttributeValue&& value) { m_newImageHasBeenSet = true; m_newImage.emplace(key, std::move(value)); return *this; } /** *

The item in the DynamoDB table as it appeared after it was modified.

*/ inline StreamRecord& AddNewImage(Aws::String&& key, AttributeValue&& value) { m_newImageHasBeenSet = true; m_newImage.emplace(std::move(key), std::move(value)); return *this; } /** *

The item in the DynamoDB table as it appeared after it was modified.

*/ inline StreamRecord& AddNewImage(const char* key, AttributeValue&& value) { m_newImageHasBeenSet = true; m_newImage.emplace(key, std::move(value)); return *this; } /** *

The item in the DynamoDB table as it appeared after it was modified.

*/ inline StreamRecord& AddNewImage(const char* key, const AttributeValue& value) { m_newImageHasBeenSet = true; m_newImage.emplace(key, value); return *this; } /** *

The item in the DynamoDB table as it appeared before it was modified.

*/ inline const Aws::Map& GetOldImage() const{ return m_oldImage; } /** *

The item in the DynamoDB table as it appeared before it was modified.

*/ inline bool OldImageHasBeenSet() const { return m_oldImageHasBeenSet; } /** *

The item in the DynamoDB table as it appeared before it was modified.

*/ inline void SetOldImage(const Aws::Map& value) { m_oldImageHasBeenSet = true; m_oldImage = value; } /** *

The item in the DynamoDB table as it appeared before it was modified.

*/ inline void SetOldImage(Aws::Map&& value) { m_oldImageHasBeenSet = true; m_oldImage = std::move(value); } /** *

The item in the DynamoDB table as it appeared before it was modified.

*/ inline StreamRecord& WithOldImage(const Aws::Map& value) { SetOldImage(value); return *this;} /** *

The item in the DynamoDB table as it appeared before it was modified.

*/ inline StreamRecord& WithOldImage(Aws::Map&& value) { SetOldImage(std::move(value)); return *this;} /** *

The item in the DynamoDB table as it appeared before it was modified.

*/ inline StreamRecord& AddOldImage(const Aws::String& key, const AttributeValue& value) { m_oldImageHasBeenSet = true; m_oldImage.emplace(key, value); return *this; } /** *

The item in the DynamoDB table as it appeared before it was modified.

*/ inline StreamRecord& AddOldImage(Aws::String&& key, const AttributeValue& value) { m_oldImageHasBeenSet = true; m_oldImage.emplace(std::move(key), value); return *this; } /** *

The item in the DynamoDB table as it appeared before it was modified.

*/ inline StreamRecord& AddOldImage(const Aws::String& key, AttributeValue&& value) { m_oldImageHasBeenSet = true; m_oldImage.emplace(key, std::move(value)); return *this; } /** *

The item in the DynamoDB table as it appeared before it was modified.

*/ inline StreamRecord& AddOldImage(Aws::String&& key, AttributeValue&& value) { m_oldImageHasBeenSet = true; m_oldImage.emplace(std::move(key), std::move(value)); return *this; } /** *

The item in the DynamoDB table as it appeared before it was modified.

*/ inline StreamRecord& AddOldImage(const char* key, AttributeValue&& value) { m_oldImageHasBeenSet = true; m_oldImage.emplace(key, std::move(value)); return *this; } /** *

The item in the DynamoDB table as it appeared before it was modified.

*/ inline StreamRecord& AddOldImage(const char* key, const AttributeValue& value) { m_oldImageHasBeenSet = true; m_oldImage.emplace(key, value); return *this; } /** *

The sequence number of the stream record.

*/ inline const Aws::String& GetSequenceNumber() const{ return m_sequenceNumber; } /** *

The sequence number of the stream record.

*/ inline bool SequenceNumberHasBeenSet() const { return m_sequenceNumberHasBeenSet; } /** *

The sequence number of the stream record.

*/ inline void SetSequenceNumber(const Aws::String& value) { m_sequenceNumberHasBeenSet = true; m_sequenceNumber = value; } /** *

The sequence number of the stream record.

*/ inline void SetSequenceNumber(Aws::String&& value) { m_sequenceNumberHasBeenSet = true; m_sequenceNumber = std::move(value); } /** *

The sequence number of the stream record.

*/ inline void SetSequenceNumber(const char* value) { m_sequenceNumberHasBeenSet = true; m_sequenceNumber.assign(value); } /** *

The sequence number of the stream record.

*/ inline StreamRecord& WithSequenceNumber(const Aws::String& value) { SetSequenceNumber(value); return *this;} /** *

The sequence number of the stream record.

*/ inline StreamRecord& WithSequenceNumber(Aws::String&& value) { SetSequenceNumber(std::move(value)); return *this;} /** *

The sequence number of the stream record.

*/ inline StreamRecord& WithSequenceNumber(const char* value) { SetSequenceNumber(value); return *this;} /** *

The size of the stream record, in bytes.

*/ inline long long GetSizeBytes() const{ return m_sizeBytes; } /** *

The size of the stream record, in bytes.

*/ inline bool SizeBytesHasBeenSet() const { return m_sizeBytesHasBeenSet; } /** *

The size of the stream record, in bytes.

*/ inline void SetSizeBytes(long long value) { m_sizeBytesHasBeenSet = true; m_sizeBytes = value; } /** *

The size of the stream record, in bytes.

*/ inline StreamRecord& WithSizeBytes(long long value) { SetSizeBytes(value); return *this;} /** *

The type of data from the modified DynamoDB item that was captured in this * stream record:

  • KEYS_ONLY - only the key * attributes of the modified item.

  • NEW_IMAGE - the * entire item, as it appeared after it was modified.

  • * OLD_IMAGE - the entire item, as it appeared before it was * modified.

  • NEW_AND_OLD_IMAGES - both the new and * the old item images of the item.

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

The type of data from the modified DynamoDB item that was captured in this * stream record:

  • KEYS_ONLY - only the key * attributes of the modified item.

  • NEW_IMAGE - the * entire item, as it appeared after it was modified.

  • * OLD_IMAGE - the entire item, as it appeared before it was * modified.

  • NEW_AND_OLD_IMAGES - both the new and * the old item images of the item.

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

The type of data from the modified DynamoDB item that was captured in this * stream record:

  • KEYS_ONLY - only the key * attributes of the modified item.

  • NEW_IMAGE - the * entire item, as it appeared after it was modified.

  • * OLD_IMAGE - the entire item, as it appeared before it was * modified.

  • NEW_AND_OLD_IMAGES - both the new and * the old item images of the item.

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

The type of data from the modified DynamoDB item that was captured in this * stream record:

  • KEYS_ONLY - only the key * attributes of the modified item.

  • NEW_IMAGE - the * entire item, as it appeared after it was modified.

  • * OLD_IMAGE - the entire item, as it appeared before it was * modified.

  • NEW_AND_OLD_IMAGES - both the new and * the old item images of the item.

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

The type of data from the modified DynamoDB item that was captured in this * stream record:

  • KEYS_ONLY - only the key * attributes of the modified item.

  • NEW_IMAGE - the * entire item, as it appeared after it was modified.

  • * OLD_IMAGE - the entire item, as it appeared before it was * modified.

  • NEW_AND_OLD_IMAGES - both the new and * the old item images of the item.

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

The type of data from the modified DynamoDB item that was captured in this * stream record:

  • KEYS_ONLY - only the key * attributes of the modified item.

  • NEW_IMAGE - the * entire item, as it appeared after it was modified.

  • * OLD_IMAGE - the entire item, as it appeared before it was * modified.

  • NEW_AND_OLD_IMAGES - both the new and * the old item images of the item.

*/ inline StreamRecord& WithStreamViewType(StreamViewType&& value) { SetStreamViewType(std::move(value)); return *this;} private: Aws::Utils::DateTime m_approximateCreationDateTime; bool m_approximateCreationDateTimeHasBeenSet = false; Aws::Map m_keys; bool m_keysHasBeenSet = false; Aws::Map m_newImage; bool m_newImageHasBeenSet = false; Aws::Map m_oldImage; bool m_oldImageHasBeenSet = false; Aws::String m_sequenceNumber; bool m_sequenceNumberHasBeenSet = false; long long m_sizeBytes; bool m_sizeBytesHasBeenSet = false; StreamViewType m_streamViewType; bool m_streamViewTypeHasBeenSet = false; }; } // namespace Model } // namespace DynamoDBStreams } // namespace Aws