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

Represents the output for DescribeStreamSummary

See * Also:

AWS * API Reference

*/ class AWS_KINESIS_API StreamDescriptionSummary { public: StreamDescriptionSummary(); StreamDescriptionSummary(Aws::Utils::Json::JsonView jsonValue); StreamDescriptionSummary& 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 StreamDescriptionSummary& WithStreamName(const Aws::String& value) { SetStreamName(value); return *this;} /** *

The name of the stream being described.

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

The name of the stream being described.

*/ inline StreamDescriptionSummary& 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 StreamDescriptionSummary& WithStreamARN(const Aws::String& value) { SetStreamARN(value); return *this;} /** *

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

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

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

*/ inline StreamDescriptionSummary& 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 StreamDescriptionSummary& 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 StreamDescriptionSummary& WithStreamStatus(StreamStatus&& value) { SetStreamStatus(std::move(value)); return *this;} /** *

The current retention period, in hours.

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

The current retention period, in hours.

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

The current retention period, in hours.

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

The current retention period, in hours.

*/ inline StreamDescriptionSummary& 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 StreamDescriptionSummary& WithStreamCreationTimestamp(const Aws::Utils::DateTime& value) { SetStreamCreationTimestamp(value); return *this;} /** *

The approximate time that the stream was created.

*/ inline StreamDescriptionSummary& 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 StreamDescriptionSummary& WithEnhancedMonitoring(const Aws::Vector& value) { SetEnhancedMonitoring(value); return *this;} /** *

Represents the current enhanced monitoring settings of the stream.

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

Represents the current enhanced monitoring settings of the stream.

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

Represents the current enhanced monitoring settings of the stream.

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

The encryption type used. This value is one of the following:

  • *

    KMS

  • NONE

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

The encryption type used. This value is one of the following:

  • *

    KMS

  • NONE

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

The encryption type used. This value is one of the following:

  • *

    KMS

  • NONE

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

The encryption type used. This value is one of the following:

  • *

    KMS

  • NONE

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

The encryption type used. This value is one of the following:

  • *

    KMS

  • NONE

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

The encryption type used. This value is one of the following:

  • *

    KMS

  • NONE

*/ inline StreamDescriptionSummary& 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 StreamDescriptionSummary& 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 StreamDescriptionSummary& 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 StreamDescriptionSummary& WithKeyId(const char* value) { SetKeyId(value); return *this;} /** *

The number of open shards in the stream.

*/ inline int GetOpenShardCount() const{ return m_openShardCount; } /** *

The number of open shards in the stream.

*/ inline bool OpenShardCountHasBeenSet() const { return m_openShardCountHasBeenSet; } /** *

The number of open shards in the stream.

*/ inline void SetOpenShardCount(int value) { m_openShardCountHasBeenSet = true; m_openShardCount = value; } /** *

The number of open shards in the stream.

*/ inline StreamDescriptionSummary& WithOpenShardCount(int value) { SetOpenShardCount(value); return *this;} /** *

The number of enhanced fan-out consumers registered with the stream.

*/ inline int GetConsumerCount() const{ return m_consumerCount; } /** *

The number of enhanced fan-out consumers registered with the stream.

*/ inline bool ConsumerCountHasBeenSet() const { return m_consumerCountHasBeenSet; } /** *

The number of enhanced fan-out consumers registered with the stream.

*/ inline void SetConsumerCount(int value) { m_consumerCountHasBeenSet = true; m_consumerCount = value; } /** *

The number of enhanced fan-out consumers registered with the stream.

*/ inline StreamDescriptionSummary& WithConsumerCount(int value) { SetConsumerCount(value); return *this;} private: Aws::String m_streamName; bool m_streamNameHasBeenSet; Aws::String m_streamARN; bool m_streamARNHasBeenSet; StreamStatus m_streamStatus; bool m_streamStatusHasBeenSet; 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; int m_openShardCount; bool m_openShardCountHasBeenSet; int m_consumerCount; bool m_consumerCountHasBeenSet; }; } // namespace Model } // namespace Kinesis } // namespace Aws