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

Represents the output for DescribeStream.

See Also:

* AWS * API Reference

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

The name of the stream being described.

*/ inline const Aws::String& GetStreamName() const{ return m_streamName; } /** *

The name of the stream being described.

*/ inline bool StreamNameHasBeenSet() const { return m_streamNameHasBeenSet; } /** *

The name of the stream being described.

*/ inline void SetStreamName(const Aws::String& value) { m_streamNameHasBeenSet = true; m_streamName = value; } /** *

The name of the stream being described.

*/ inline void SetStreamName(Aws::String&& value) { m_streamNameHasBeenSet = true; m_streamName = std::move(value); } /** *

The name of the stream being described.

*/ inline void SetStreamName(const char* value) { m_streamNameHasBeenSet = true; m_streamName.assign(value); } /** *

The name of the stream being described.

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

The name of the stream being described.

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

The name of the stream being described.

*/ inline StreamDescription& WithStreamName(const char* value) { SetStreamName(value); return *this;} /** *

The Amazon Resource Name (ARN) for the stream being described.

*/ inline const Aws::String& GetStreamARN() const{ return m_streamARN; } /** *

The Amazon Resource Name (ARN) for the stream being described.

*/ inline bool StreamARNHasBeenSet() const { return m_streamARNHasBeenSet; } /** *

The Amazon Resource Name (ARN) for the stream being described.

*/ inline void SetStreamARN(const Aws::String& value) { m_streamARNHasBeenSet = true; m_streamARN = value; } /** *

The Amazon Resource Name (ARN) for the stream being described.

*/ inline void SetStreamARN(Aws::String&& value) { m_streamARNHasBeenSet = true; m_streamARN = std::move(value); } /** *

The Amazon Resource Name (ARN) for the stream being described.

*/ inline void SetStreamARN(const char* value) { m_streamARNHasBeenSet = true; m_streamARN.assign(value); } /** *

The Amazon Resource Name (ARN) for the stream being described.

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

The Amazon Resource Name (ARN) for the stream being described.

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

The Amazon Resource Name (ARN) for the stream being described.

*/ inline StreamDescription& WithStreamARN(const char* value) { SetStreamARN(value); return *this;} /** *

The current status of the stream being described. The stream status is one of * the following states:

  • CREATING - The stream is * being created. Kinesis Data Streams immediately returns and sets * StreamStatus to CREATING.

  • * DELETING - The stream is being deleted. The specified stream is in * the DELETING state until Kinesis Data Streams completes the * deletion.

  • ACTIVE - The stream exists and is * ready for read and write operations or deletion. You should perform read and * write operations only on an ACTIVE stream.

  • * UPDATING - Shards in the stream are being merged or split. Read and * write operations continue to work while the stream is in the * UPDATING state.

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

The current status of the stream being described. The stream status is one of * the following states:

  • CREATING - The stream is * being created. Kinesis Data Streams immediately returns and sets * StreamStatus to CREATING.

  • * DELETING - The stream is being deleted. The specified stream is in * the DELETING state until Kinesis Data Streams completes the * deletion.

  • ACTIVE - The stream exists and is * ready for read and write operations or deletion. You should perform read and * write operations only on an ACTIVE stream.

  • * UPDATING - Shards in the stream are being merged or split. Read and * write operations continue to work while the stream is in the * UPDATING state.

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

The current status of the stream being described. The stream status is one of * the following states:

  • CREATING - The stream is * being created. Kinesis Data Streams immediately returns and sets * StreamStatus to CREATING.

  • * DELETING - The stream is being deleted. The specified stream is in * the DELETING state until Kinesis Data Streams completes the * deletion.

  • ACTIVE - The stream exists and is * ready for read and write operations or deletion. You should perform read and * write operations only on an ACTIVE stream.

  • * UPDATING - Shards in the stream are being merged or split. Read and * write operations continue to work while the stream is in the * UPDATING state.

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

The current status of the stream being described. The stream status is one of * the following states:

  • CREATING - The stream is * being created. Kinesis Data Streams immediately returns and sets * StreamStatus to CREATING.

  • * DELETING - The stream is being deleted. The specified stream is in * the DELETING state until Kinesis Data Streams completes the * deletion.

  • ACTIVE - The stream exists and is * ready for read and write operations or deletion. You should perform read and * write operations only on an ACTIVE stream.

  • * UPDATING - Shards in the stream are being merged or split. Read and * write operations continue to work while the stream is in the * UPDATING state.

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

The current status of the stream being described. The stream status is one of * the following states:

  • CREATING - The stream is * being created. Kinesis Data Streams immediately returns and sets * StreamStatus to CREATING.

  • * DELETING - The stream is being deleted. The specified stream is in * the DELETING state until Kinesis Data Streams completes the * deletion.

  • ACTIVE - The stream exists and is * ready for read and write operations or deletion. You should perform read and * write operations only on an ACTIVE stream.

  • * UPDATING - Shards in the stream are being merged or split. Read and * write operations continue to work while the stream is in the * UPDATING state.

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

The current status of the stream being described. The stream status is one of * the following states:

  • CREATING - The stream is * being created. Kinesis Data Streams immediately returns and sets * StreamStatus to CREATING.

  • * DELETING - The stream is being deleted. The specified stream is in * the DELETING state until Kinesis Data Streams completes the * deletion.

  • ACTIVE - The stream exists and is * ready for read and write operations or deletion. You should perform read and * write operations only on an ACTIVE stream.

  • * UPDATING - Shards in the stream are being merged or split. Read and * write operations continue to work while the stream is in the * UPDATING state.

*/ inline StreamDescription& WithStreamStatus(StreamStatus&& value) { SetStreamStatus(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; } /** *

If set to true, more shards in the stream are available to * describe.

*/ inline bool GetHasMoreShards() const{ return m_hasMoreShards; } /** *

If set to true, more shards in the stream are available to * describe.

*/ inline bool HasMoreShardsHasBeenSet() const { return m_hasMoreShardsHasBeenSet; } /** *

If set to true, more shards in the stream are available to * describe.

*/ inline void SetHasMoreShards(bool value) { m_hasMoreShardsHasBeenSet = true; m_hasMoreShards = value; } /** *

If set to true, more shards in the stream are available to * describe.

*/ inline StreamDescription& WithHasMoreShards(bool value) { SetHasMoreShards(value); return *this;} /** *

The current retention period, in hours. Minimum value of 24. Maximum value of * 168.

*/ inline int GetRetentionPeriodHours() const{ return m_retentionPeriodHours; } /** *

The current retention period, in hours. Minimum value of 24. Maximum value of * 168.

*/ inline bool RetentionPeriodHoursHasBeenSet() const { return m_retentionPeriodHoursHasBeenSet; } /** *

The current retention period, in hours. Minimum value of 24. Maximum value of * 168.

*/ inline void SetRetentionPeriodHours(int value) { m_retentionPeriodHoursHasBeenSet = true; m_retentionPeriodHours = value; } /** *

The current retention period, in hours. Minimum value of 24. Maximum value of * 168.

*/ inline StreamDescription& WithRetentionPeriodHours(int value) { SetRetentionPeriodHours(value); return *this;} /** *

The approximate time that the stream was created.

*/ inline const Aws::Utils::DateTime& GetStreamCreationTimestamp() const{ return m_streamCreationTimestamp; } /** *

The approximate time that the stream was created.

*/ inline bool StreamCreationTimestampHasBeenSet() const { return m_streamCreationTimestampHasBeenSet; } /** *

The approximate time that the stream was created.

*/ inline void SetStreamCreationTimestamp(const Aws::Utils::DateTime& value) { m_streamCreationTimestampHasBeenSet = true; m_streamCreationTimestamp = value; } /** *

The approximate time that the stream was created.

*/ inline void SetStreamCreationTimestamp(Aws::Utils::DateTime&& value) { m_streamCreationTimestampHasBeenSet = true; m_streamCreationTimestamp = std::move(value); } /** *

The approximate time that the stream was created.

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

The approximate time that the stream was created.

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

Represents the current enhanced monitoring settings of the stream.

*/ inline const Aws::Vector& GetEnhancedMonitoring() const{ return m_enhancedMonitoring; } /** *

Represents the current enhanced monitoring settings of the stream.

*/ inline bool EnhancedMonitoringHasBeenSet() const { return m_enhancedMonitoringHasBeenSet; } /** *

Represents the current enhanced monitoring settings of the stream.

*/ inline void SetEnhancedMonitoring(const Aws::Vector& value) { m_enhancedMonitoringHasBeenSet = true; m_enhancedMonitoring = value; } /** *

Represents the current enhanced monitoring settings of the stream.

*/ inline void SetEnhancedMonitoring(Aws::Vector&& value) { m_enhancedMonitoringHasBeenSet = true; m_enhancedMonitoring = std::move(value); } /** *

Represents the current enhanced monitoring settings of the stream.

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

Represents the current enhanced monitoring settings of the stream.

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

Represents the current enhanced monitoring settings of the stream.

*/ inline StreamDescription& AddEnhancedMonitoring(const EnhancedMetrics& value) { m_enhancedMonitoringHasBeenSet = true; m_enhancedMonitoring.push_back(value); return *this; } /** *

Represents the current enhanced monitoring settings of the stream.

*/ inline StreamDescription& AddEnhancedMonitoring(EnhancedMetrics&& value) { m_enhancedMonitoringHasBeenSet = true; m_enhancedMonitoring.push_back(std::move(value)); return *this; } /** *

The server-side encryption type used on the stream. This parameter can be one * of the following values:

  • NONE: Do not encrypt the * records in the stream.

  • KMS: Use server-side * encryption on the records in the stream using a customer-managed AWS KMS * key.

*/ inline const EncryptionType& GetEncryptionType() const{ return m_encryptionType; } /** *

The server-side encryption type used on the stream. This parameter can be one * of the following values:

  • NONE: Do not encrypt the * records in the stream.

  • KMS: Use server-side * encryption on the records in the stream using a customer-managed AWS KMS * key.

*/ inline bool EncryptionTypeHasBeenSet() const { return m_encryptionTypeHasBeenSet; } /** *

The server-side encryption type used on the stream. This parameter can be one * of the following values:

  • NONE: Do not encrypt the * records in the stream.

  • KMS: Use server-side * encryption on the records in the stream using a customer-managed AWS KMS * key.

*/ inline void SetEncryptionType(const EncryptionType& value) { m_encryptionTypeHasBeenSet = true; m_encryptionType = value; } /** *

The server-side encryption type used on the stream. This parameter can be one * of the following values:

  • NONE: Do not encrypt the * records in the stream.

  • KMS: Use server-side * encryption on the records in the stream using a customer-managed AWS KMS * key.

*/ inline void SetEncryptionType(EncryptionType&& value) { m_encryptionTypeHasBeenSet = true; m_encryptionType = std::move(value); } /** *

The server-side encryption type used on the stream. This parameter can be one * of the following values:

  • NONE: Do not encrypt the * records in the stream.

  • KMS: Use server-side * encryption on the records in the stream using a customer-managed AWS KMS * key.

*/ inline StreamDescription& WithEncryptionType(const EncryptionType& value) { SetEncryptionType(value); return *this;} /** *

The server-side encryption type used on the stream. This parameter can be one * of the following values:

  • NONE: Do not encrypt the * records in the stream.

  • KMS: Use server-side * encryption on the records in the stream using a customer-managed AWS KMS * key.

*/ inline StreamDescription& WithEncryptionType(EncryptionType&& value) { SetEncryptionType(std::move(value)); return *this;} /** *

The GUID for the customer-managed AWS KMS key to use for encryption. This * value can be a globally unique identifier, a fully specified ARN to either an * alias or a key, or an alias name prefixed by "alias/".You can also use a master * key owned by Kinesis Data Streams by specifying the alias * aws/kinesis.

  • Key ARN example: * arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 *

  • Alias ARN example: * arn:aws:kms:us-east-1:123456789012:alias/MyAliasName

  • *
  • Globally unique key ID example: * 12345678-1234-1234-1234-123456789012

  • Alias name * example: alias/MyAliasName

  • Master key owned by * Kinesis Data Streams: alias/aws/kinesis

*/ inline const Aws::String& GetKeyId() const{ return m_keyId; } /** *

The GUID for the customer-managed AWS KMS key to use for encryption. This * value can be a globally unique identifier, a fully specified ARN to either an * alias or a key, or an alias name prefixed by "alias/".You can also use a master * key owned by Kinesis Data Streams by specifying the alias * aws/kinesis.

  • Key ARN example: * arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 *

  • Alias ARN example: * arn:aws:kms:us-east-1:123456789012:alias/MyAliasName

  • *
  • Globally unique key ID example: * 12345678-1234-1234-1234-123456789012

  • Alias name * example: alias/MyAliasName

  • Master key owned by * Kinesis Data Streams: alias/aws/kinesis

*/ inline bool KeyIdHasBeenSet() const { return m_keyIdHasBeenSet; } /** *

The GUID for the customer-managed AWS KMS key to use for encryption. This * value can be a globally unique identifier, a fully specified ARN to either an * alias or a key, or an alias name prefixed by "alias/".You can also use a master * key owned by Kinesis Data Streams by specifying the alias * aws/kinesis.

  • Key ARN example: * arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 *

  • Alias ARN example: * arn:aws:kms:us-east-1:123456789012:alias/MyAliasName

  • *
  • Globally unique key ID example: * 12345678-1234-1234-1234-123456789012

  • Alias name * example: alias/MyAliasName

  • Master key owned by * Kinesis Data Streams: alias/aws/kinesis

*/ inline void SetKeyId(const Aws::String& value) { m_keyIdHasBeenSet = true; m_keyId = value; } /** *

The GUID for the customer-managed AWS KMS key to use for encryption. This * value can be a globally unique identifier, a fully specified ARN to either an * alias or a key, or an alias name prefixed by "alias/".You can also use a master * key owned by Kinesis Data Streams by specifying the alias * aws/kinesis.

  • Key ARN example: * arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 *

  • Alias ARN example: * arn:aws:kms:us-east-1:123456789012:alias/MyAliasName

  • *
  • Globally unique key ID example: * 12345678-1234-1234-1234-123456789012

  • Alias name * example: alias/MyAliasName

  • Master key owned by * Kinesis Data Streams: alias/aws/kinesis

*/ inline void SetKeyId(Aws::String&& value) { m_keyIdHasBeenSet = true; m_keyId = std::move(value); } /** *

The GUID for the customer-managed AWS KMS key to use for encryption. This * value can be a globally unique identifier, a fully specified ARN to either an * alias or a key, or an alias name prefixed by "alias/".You can also use a master * key owned by Kinesis Data Streams by specifying the alias * aws/kinesis.

  • Key ARN example: * arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 *

  • Alias ARN example: * arn:aws:kms:us-east-1:123456789012:alias/MyAliasName

  • *
  • Globally unique key ID example: * 12345678-1234-1234-1234-123456789012

  • Alias name * example: alias/MyAliasName

  • Master key owned by * Kinesis Data Streams: alias/aws/kinesis

*/ inline void SetKeyId(const char* value) { m_keyIdHasBeenSet = true; m_keyId.assign(value); } /** *

The GUID for the customer-managed AWS KMS key to use for encryption. This * value can be a globally unique identifier, a fully specified ARN to either an * alias or a key, or an alias name prefixed by "alias/".You can also use a master * key owned by Kinesis Data Streams by specifying the alias * aws/kinesis.

  • Key ARN example: * arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 *

  • Alias ARN example: * arn:aws:kms:us-east-1:123456789012:alias/MyAliasName

  • *
  • Globally unique key ID example: * 12345678-1234-1234-1234-123456789012

  • Alias name * example: alias/MyAliasName

  • Master key owned by * Kinesis Data Streams: alias/aws/kinesis

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

The GUID for the customer-managed AWS KMS key to use for encryption. This * value can be a globally unique identifier, a fully specified ARN to either an * alias or a key, or an alias name prefixed by "alias/".You can also use a master * key owned by Kinesis Data Streams by specifying the alias * aws/kinesis.

  • Key ARN example: * arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 *

  • Alias ARN example: * arn:aws:kms:us-east-1:123456789012:alias/MyAliasName

  • *
  • Globally unique key ID example: * 12345678-1234-1234-1234-123456789012

  • Alias name * example: alias/MyAliasName

  • Master key owned by * Kinesis Data Streams: alias/aws/kinesis

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

The GUID for the customer-managed AWS KMS key to use for encryption. This * value can be a globally unique identifier, a fully specified ARN to either an * alias or a key, or an alias name prefixed by "alias/".You can also use a master * key owned by Kinesis Data Streams by specifying the alias * aws/kinesis.

  • Key ARN example: * arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 *

  • Alias ARN example: * arn:aws:kms:us-east-1:123456789012:alias/MyAliasName

  • *
  • Globally unique key ID example: * 12345678-1234-1234-1234-123456789012

  • Alias name * example: alias/MyAliasName

  • Master key owned by * Kinesis Data Streams: alias/aws/kinesis

*/ inline StreamDescription& WithKeyId(const char* value) { SetKeyId(value); return *this;} private: Aws::String m_streamName; bool m_streamNameHasBeenSet; Aws::String m_streamARN; bool m_streamARNHasBeenSet; StreamStatus m_streamStatus; bool m_streamStatusHasBeenSet; Aws::Vector m_shards; bool m_shardsHasBeenSet; bool m_hasMoreShards; bool m_hasMoreShardsHasBeenSet; int m_retentionPeriodHours; bool m_retentionPeriodHoursHasBeenSet; Aws::Utils::DateTime m_streamCreationTimestamp; bool m_streamCreationTimestampHasBeenSet; Aws::Vector m_enhancedMonitoring; bool m_enhancedMonitoringHasBeenSet; EncryptionType m_encryptionType; bool m_encryptionTypeHasBeenSet; Aws::String m_keyId; bool m_keyIdHasBeenSet; }; } // namespace Model } // namespace Kinesis } // namespace Aws