/** * 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 #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace DynamoDBStreams { namespace Model { /** *

Represents all of the data describing a particular stream.

See * Also:

AWS * API Reference

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

The Amazon Resource Name (ARN) for the stream.

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

The Amazon Resource Name (ARN) for the stream.

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

The Amazon Resource Name (ARN) for the stream.

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

The Amazon Resource Name (ARN) for the stream.

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

The Amazon Resource Name (ARN) for the stream.

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

The Amazon Resource Name (ARN) for the stream.

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

The Amazon Resource Name (ARN) for the stream.

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

The Amazon Resource Name (ARN) for the stream.

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

A timestamp, in ISO 8601 format, for this stream.

Note that * LatestStreamLabel is not a unique identifier for the stream, * because it is possible that a stream from another table might have the same * timestamp. However, the combination of the following three elements is * guaranteed to be unique:

  • the Amazon Web Services customer * ID.

  • the table name

  • the * StreamLabel

*/ inline const Aws::String& GetStreamLabel() const{ return m_streamLabel; } /** *

A timestamp, in ISO 8601 format, for this stream.

Note that * LatestStreamLabel is not a unique identifier for the stream, * because it is possible that a stream from another table might have the same * timestamp. However, the combination of the following three elements is * guaranteed to be unique:

  • the Amazon Web Services customer * ID.

  • the table name

  • the * StreamLabel

*/ inline bool StreamLabelHasBeenSet() const { return m_streamLabelHasBeenSet; } /** *

A timestamp, in ISO 8601 format, for this stream.

Note that * LatestStreamLabel is not a unique identifier for the stream, * because it is possible that a stream from another table might have the same * timestamp. However, the combination of the following three elements is * guaranteed to be unique:

  • the Amazon Web Services customer * ID.

  • the table name

  • the * StreamLabel

*/ inline void SetStreamLabel(const Aws::String& value) { m_streamLabelHasBeenSet = true; m_streamLabel = value; } /** *

A timestamp, in ISO 8601 format, for this stream.

Note that * LatestStreamLabel is not a unique identifier for the stream, * because it is possible that a stream from another table might have the same * timestamp. However, the combination of the following three elements is * guaranteed to be unique:

  • the Amazon Web Services customer * ID.

  • the table name

  • the * StreamLabel

*/ inline void SetStreamLabel(Aws::String&& value) { m_streamLabelHasBeenSet = true; m_streamLabel = std::move(value); } /** *

A timestamp, in ISO 8601 format, for this stream.

Note that * LatestStreamLabel is not a unique identifier for the stream, * because it is possible that a stream from another table might have the same * timestamp. However, the combination of the following three elements is * guaranteed to be unique:

  • the Amazon Web Services customer * ID.

  • the table name

  • the * StreamLabel

*/ inline void SetStreamLabel(const char* value) { m_streamLabelHasBeenSet = true; m_streamLabel.assign(value); } /** *

A timestamp, in ISO 8601 format, for this stream.

Note that * LatestStreamLabel is not a unique identifier for the stream, * because it is possible that a stream from another table might have the same * timestamp. However, the combination of the following three elements is * guaranteed to be unique:

  • the Amazon Web Services customer * ID.

  • the table name

  • the * StreamLabel

*/ inline StreamDescription& WithStreamLabel(const Aws::String& value) { SetStreamLabel(value); return *this;} /** *

A timestamp, in ISO 8601 format, for this stream.

Note that * LatestStreamLabel is not a unique identifier for the stream, * because it is possible that a stream from another table might have the same * timestamp. However, the combination of the following three elements is * guaranteed to be unique:

  • the Amazon Web Services customer * ID.

  • the table name

  • the * StreamLabel

*/ inline StreamDescription& WithStreamLabel(Aws::String&& value) { SetStreamLabel(std::move(value)); return *this;} /** *

A timestamp, in ISO 8601 format, for this stream.

Note that * LatestStreamLabel is not a unique identifier for the stream, * because it is possible that a stream from another table might have the same * timestamp. However, the combination of the following three elements is * guaranteed to be unique:

  • the Amazon Web Services customer * ID.

  • the table name

  • the * StreamLabel

*/ inline StreamDescription& WithStreamLabel(const char* value) { SetStreamLabel(value); return *this;} /** *

Indicates the current status of the stream:

  • * ENABLING - Streams is currently being enabled on the DynamoDB * table.

  • ENABLED - the stream is enabled.

    *
  • DISABLING - Streams is currently being disabled on * the DynamoDB table.

  • DISABLED - the stream is * disabled.

*/ inline const StreamStatus& GetStreamStatus() const{ return m_streamStatus; } /** *

Indicates the current status of the stream:

  • * ENABLING - Streams is currently being enabled on the DynamoDB * table.

  • ENABLED - the stream is enabled.

    *
  • DISABLING - Streams is currently being disabled on * the DynamoDB table.

  • DISABLED - the stream is * disabled.

*/ inline bool StreamStatusHasBeenSet() const { return m_streamStatusHasBeenSet; } /** *

Indicates the current status of the stream:

  • * ENABLING - Streams is currently being enabled on the DynamoDB * table.

  • ENABLED - the stream is enabled.

    *
  • DISABLING - Streams is currently being disabled on * the DynamoDB table.

  • DISABLED - the stream is * disabled.

*/ inline void SetStreamStatus(const StreamStatus& value) { m_streamStatusHasBeenSet = true; m_streamStatus = value; } /** *

Indicates the current status of the stream:

  • * ENABLING - Streams is currently being enabled on the DynamoDB * table.

  • ENABLED - the stream is enabled.

    *
  • DISABLING - Streams is currently being disabled on * the DynamoDB table.

  • DISABLED - the stream is * disabled.

*/ inline void SetStreamStatus(StreamStatus&& value) { m_streamStatusHasBeenSet = true; m_streamStatus = std::move(value); } /** *

Indicates the current status of the stream:

  • * ENABLING - Streams is currently being enabled on the DynamoDB * table.

  • ENABLED - the stream is enabled.

    *
  • DISABLING - Streams is currently being disabled on * the DynamoDB table.

  • DISABLED - the stream is * disabled.

*/ inline StreamDescription& WithStreamStatus(const StreamStatus& value) { SetStreamStatus(value); return *this;} /** *

Indicates the current status of the stream:

  • * ENABLING - Streams is currently being enabled on the DynamoDB * table.

  • ENABLED - the stream is enabled.

    *
  • DISABLING - Streams is currently being disabled on * the DynamoDB table.

  • DISABLED - the stream is * disabled.

*/ inline StreamDescription& WithStreamStatus(StreamStatus&& value) { SetStreamStatus(std::move(value)); return *this;} /** *

Indicates the format of the records within this stream:

  • * KEYS_ONLY - only the key attributes of items that were modified in * the DynamoDB table.

  • NEW_IMAGE - entire items * from the table, as they appeared after they were modified.

  • * OLD_IMAGE - entire items from the table, as they appeared before * they were modified.

  • NEW_AND_OLD_IMAGES - both * the new and the old images of the items from the table.

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

Indicates the format of the records within this stream:

  • * KEYS_ONLY - only the key attributes of items that were modified in * the DynamoDB table.

  • NEW_IMAGE - entire items * from the table, as they appeared after they were modified.

  • * OLD_IMAGE - entire items from the table, as they appeared before * they were modified.

  • NEW_AND_OLD_IMAGES - both * the new and the old images of the items from the table.

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

Indicates the format of the records within this stream:

  • * KEYS_ONLY - only the key attributes of items that were modified in * the DynamoDB table.

  • NEW_IMAGE - entire items * from the table, as they appeared after they were modified.

  • * OLD_IMAGE - entire items from the table, as they appeared before * they were modified.

  • NEW_AND_OLD_IMAGES - both * the new and the old images of the items from the table.

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

Indicates the format of the records within this stream:

  • * KEYS_ONLY - only the key attributes of items that were modified in * the DynamoDB table.

  • NEW_IMAGE - entire items * from the table, as they appeared after they were modified.

  • * OLD_IMAGE - entire items from the table, as they appeared before * they were modified.

  • NEW_AND_OLD_IMAGES - both * the new and the old images of the items from the table.

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

Indicates the format of the records within this stream:

  • * KEYS_ONLY - only the key attributes of items that were modified in * the DynamoDB table.

  • NEW_IMAGE - entire items * from the table, as they appeared after they were modified.

  • * OLD_IMAGE - entire items from the table, as they appeared before * they were modified.

  • NEW_AND_OLD_IMAGES - both * the new and the old images of the items from the table.

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

Indicates the format of the records within this stream:

  • * KEYS_ONLY - only the key attributes of items that were modified in * the DynamoDB table.

  • NEW_IMAGE - entire items * from the table, as they appeared after they were modified.

  • * OLD_IMAGE - entire items from the table, as they appeared before * they were modified.

  • NEW_AND_OLD_IMAGES - both * the new and the old images of the items from the table.

*/ inline StreamDescription& WithStreamViewType(StreamViewType&& value) { SetStreamViewType(std::move(value)); return *this;} /** *

The date and time when the request to create this stream was issued.

*/ inline const Aws::Utils::DateTime& GetCreationRequestDateTime() const{ return m_creationRequestDateTime; } /** *

The date and time when the request to create this stream was issued.

*/ inline bool CreationRequestDateTimeHasBeenSet() const { return m_creationRequestDateTimeHasBeenSet; } /** *

The date and time when the request to create this stream was issued.

*/ inline void SetCreationRequestDateTime(const Aws::Utils::DateTime& value) { m_creationRequestDateTimeHasBeenSet = true; m_creationRequestDateTime = value; } /** *

The date and time when the request to create this stream was issued.

*/ inline void SetCreationRequestDateTime(Aws::Utils::DateTime&& value) { m_creationRequestDateTimeHasBeenSet = true; m_creationRequestDateTime = std::move(value); } /** *

The date and time when the request to create this stream was issued.

*/ inline StreamDescription& WithCreationRequestDateTime(const Aws::Utils::DateTime& value) { SetCreationRequestDateTime(value); return *this;} /** *

The date and time when the request to create this stream was issued.

*/ inline StreamDescription& WithCreationRequestDateTime(Aws::Utils::DateTime&& value) { SetCreationRequestDateTime(std::move(value)); return *this;} /** *

The DynamoDB table with which the stream is associated.

*/ inline const Aws::String& GetTableName() const{ return m_tableName; } /** *

The DynamoDB table with which the stream is associated.

*/ inline bool TableNameHasBeenSet() const { return m_tableNameHasBeenSet; } /** *

The DynamoDB table with which the stream is associated.

*/ inline void SetTableName(const Aws::String& value) { m_tableNameHasBeenSet = true; m_tableName = value; } /** *

The DynamoDB table with which the stream is associated.

*/ inline void SetTableName(Aws::String&& value) { m_tableNameHasBeenSet = true; m_tableName = std::move(value); } /** *

The DynamoDB table with which the stream is associated.

*/ inline void SetTableName(const char* value) { m_tableNameHasBeenSet = true; m_tableName.assign(value); } /** *

The DynamoDB table with which the stream is associated.

*/ inline StreamDescription& WithTableName(const Aws::String& value) { SetTableName(value); return *this;} /** *

The DynamoDB table with which the stream is associated.

*/ inline StreamDescription& WithTableName(Aws::String&& value) { SetTableName(std::move(value)); return *this;} /** *

The DynamoDB table with which the stream is associated.

*/ inline StreamDescription& WithTableName(const char* value) { SetTableName(value); return *this;} /** *

The key attribute(s) of the stream's DynamoDB table.

*/ inline const Aws::Vector& GetKeySchema() const{ return m_keySchema; } /** *

The key attribute(s) of the stream's DynamoDB table.

*/ inline bool KeySchemaHasBeenSet() const { return m_keySchemaHasBeenSet; } /** *

The key attribute(s) of the stream's DynamoDB table.

*/ inline void SetKeySchema(const Aws::Vector& value) { m_keySchemaHasBeenSet = true; m_keySchema = value; } /** *

The key attribute(s) of the stream's DynamoDB table.

*/ inline void SetKeySchema(Aws::Vector&& value) { m_keySchemaHasBeenSet = true; m_keySchema = std::move(value); } /** *

The key attribute(s) of the stream's DynamoDB table.

*/ inline StreamDescription& WithKeySchema(const Aws::Vector& value) { SetKeySchema(value); return *this;} /** *

The key attribute(s) of the stream's DynamoDB table.

*/ inline StreamDescription& WithKeySchema(Aws::Vector&& value) { SetKeySchema(std::move(value)); return *this;} /** *

The key attribute(s) of the stream's DynamoDB table.

*/ inline StreamDescription& AddKeySchema(const KeySchemaElement& value) { m_keySchemaHasBeenSet = true; m_keySchema.push_back(value); return *this; } /** *

The key attribute(s) of the stream's DynamoDB table.

*/ inline StreamDescription& AddKeySchema(KeySchemaElement&& value) { m_keySchemaHasBeenSet = true; m_keySchema.push_back(std::move(value)); return *this; } /** *

The shards that comprise the stream.

*/ inline const Aws::Vector& GetShards() const{ return m_shards; } /** *

The shards that comprise the stream.

*/ inline bool ShardsHasBeenSet() const { return m_shardsHasBeenSet; } /** *

The shards that comprise the stream.

*/ inline void SetShards(const Aws::Vector& value) { m_shardsHasBeenSet = true; m_shards = value; } /** *

The shards that comprise the stream.

*/ inline void SetShards(Aws::Vector&& value) { m_shardsHasBeenSet = true; m_shards = std::move(value); } /** *

The shards that comprise the stream.

*/ inline StreamDescription& WithShards(const Aws::Vector& value) { SetShards(value); return *this;} /** *

The shards that comprise the stream.

*/ inline StreamDescription& WithShards(Aws::Vector&& value) { SetShards(std::move(value)); return *this;} /** *

The shards that comprise the stream.

*/ inline StreamDescription& AddShards(const Shard& value) { m_shardsHasBeenSet = true; m_shards.push_back(value); return *this; } /** *

The shards that comprise the stream.

*/ inline StreamDescription& AddShards(Shard&& value) { m_shardsHasBeenSet = true; m_shards.push_back(std::move(value)); return *this; } /** *

The shard ID of the item where the operation stopped, inclusive of the * previous result set. Use this value to start a new operation, excluding this * value in the new request.

If LastEvaluatedShardId is empty, * then the "last page" of results has been processed and there is currently no * more data to be retrieved.

If LastEvaluatedShardId is not * empty, it does not necessarily mean that there is more data in the result set. * The only way to know when you have reached the end of the result set is when * LastEvaluatedShardId is empty.

*/ inline const Aws::String& GetLastEvaluatedShardId() const{ return m_lastEvaluatedShardId; } /** *

The shard ID of the item where the operation stopped, inclusive of the * previous result set. Use this value to start a new operation, excluding this * value in the new request.

If LastEvaluatedShardId is empty, * then the "last page" of results has been processed and there is currently no * more data to be retrieved.

If LastEvaluatedShardId is not * empty, it does not necessarily mean that there is more data in the result set. * The only way to know when you have reached the end of the result set is when * LastEvaluatedShardId is empty.

*/ inline bool LastEvaluatedShardIdHasBeenSet() const { return m_lastEvaluatedShardIdHasBeenSet; } /** *

The shard ID of the item where the operation stopped, inclusive of the * previous result set. Use this value to start a new operation, excluding this * value in the new request.

If LastEvaluatedShardId is empty, * then the "last page" of results has been processed and there is currently no * more data to be retrieved.

If LastEvaluatedShardId is not * empty, it does not necessarily mean that there is more data in the result set. * The only way to know when you have reached the end of the result set is when * LastEvaluatedShardId is empty.

*/ inline void SetLastEvaluatedShardId(const Aws::String& value) { m_lastEvaluatedShardIdHasBeenSet = true; m_lastEvaluatedShardId = value; } /** *

The shard ID of the item where the operation stopped, inclusive of the * previous result set. Use this value to start a new operation, excluding this * value in the new request.

If LastEvaluatedShardId is empty, * then the "last page" of results has been processed and there is currently no * more data to be retrieved.

If LastEvaluatedShardId is not * empty, it does not necessarily mean that there is more data in the result set. * The only way to know when you have reached the end of the result set is when * LastEvaluatedShardId is empty.

*/ inline void SetLastEvaluatedShardId(Aws::String&& value) { m_lastEvaluatedShardIdHasBeenSet = true; m_lastEvaluatedShardId = std::move(value); } /** *

The shard ID of the item where the operation stopped, inclusive of the * previous result set. Use this value to start a new operation, excluding this * value in the new request.

If LastEvaluatedShardId is empty, * then the "last page" of results has been processed and there is currently no * more data to be retrieved.

If LastEvaluatedShardId is not * empty, it does not necessarily mean that there is more data in the result set. * The only way to know when you have reached the end of the result set is when * LastEvaluatedShardId is empty.

*/ inline void SetLastEvaluatedShardId(const char* value) { m_lastEvaluatedShardIdHasBeenSet = true; m_lastEvaluatedShardId.assign(value); } /** *

The shard ID of the item where the operation stopped, inclusive of the * previous result set. Use this value to start a new operation, excluding this * value in the new request.

If LastEvaluatedShardId is empty, * then the "last page" of results has been processed and there is currently no * more data to be retrieved.

If LastEvaluatedShardId is not * empty, it does not necessarily mean that there is more data in the result set. * The only way to know when you have reached the end of the result set is when * LastEvaluatedShardId is empty.

*/ inline StreamDescription& WithLastEvaluatedShardId(const Aws::String& value) { SetLastEvaluatedShardId(value); return *this;} /** *

The shard ID of the item where the operation stopped, inclusive of the * previous result set. Use this value to start a new operation, excluding this * value in the new request.

If LastEvaluatedShardId is empty, * then the "last page" of results has been processed and there is currently no * more data to be retrieved.

If LastEvaluatedShardId is not * empty, it does not necessarily mean that there is more data in the result set. * The only way to know when you have reached the end of the result set is when * LastEvaluatedShardId is empty.

*/ inline StreamDescription& WithLastEvaluatedShardId(Aws::String&& value) { SetLastEvaluatedShardId(std::move(value)); return *this;} /** *

The shard ID of the item where the operation stopped, inclusive of the * previous result set. Use this value to start a new operation, excluding this * value in the new request.

If LastEvaluatedShardId is empty, * then the "last page" of results has been processed and there is currently no * more data to be retrieved.

If LastEvaluatedShardId is not * empty, it does not necessarily mean that there is more data in the result set. * The only way to know when you have reached the end of the result set is when * LastEvaluatedShardId is empty.

*/ inline StreamDescription& WithLastEvaluatedShardId(const char* value) { SetLastEvaluatedShardId(value); return *this;} private: Aws::String m_streamArn; bool m_streamArnHasBeenSet = false; Aws::String m_streamLabel; bool m_streamLabelHasBeenSet = false; StreamStatus m_streamStatus; bool m_streamStatusHasBeenSet = false; StreamViewType m_streamViewType; bool m_streamViewTypeHasBeenSet = false; Aws::Utils::DateTime m_creationRequestDateTime; bool m_creationRequestDateTimeHasBeenSet = false; Aws::String m_tableName; bool m_tableNameHasBeenSet = false; Aws::Vector m_keySchema; bool m_keySchemaHasBeenSet = false; Aws::Vector m_shards; bool m_shardsHasBeenSet = false; Aws::String m_lastEvaluatedShardId; bool m_lastEvaluatedShardIdHasBeenSet = false; }; } // namespace Model } // namespace DynamoDBStreams } // namespace Aws