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

Contains information about a delivery stream.

See Also:

AWS * API Reference

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

The name of the delivery stream.

*/ inline const Aws::String& GetDeliveryStreamName() const{ return m_deliveryStreamName; } /** *

The name of the delivery stream.

*/ inline bool DeliveryStreamNameHasBeenSet() const { return m_deliveryStreamNameHasBeenSet; } /** *

The name of the delivery stream.

*/ inline void SetDeliveryStreamName(const Aws::String& value) { m_deliveryStreamNameHasBeenSet = true; m_deliveryStreamName = value; } /** *

The name of the delivery stream.

*/ inline void SetDeliveryStreamName(Aws::String&& value) { m_deliveryStreamNameHasBeenSet = true; m_deliveryStreamName = std::move(value); } /** *

The name of the delivery stream.

*/ inline void SetDeliveryStreamName(const char* value) { m_deliveryStreamNameHasBeenSet = true; m_deliveryStreamName.assign(value); } /** *

The name of the delivery stream.

*/ inline DeliveryStreamDescription& WithDeliveryStreamName(const Aws::String& value) { SetDeliveryStreamName(value); return *this;} /** *

The name of the delivery stream.

*/ inline DeliveryStreamDescription& WithDeliveryStreamName(Aws::String&& value) { SetDeliveryStreamName(std::move(value)); return *this;} /** *

The name of the delivery stream.

*/ inline DeliveryStreamDescription& WithDeliveryStreamName(const char* value) { SetDeliveryStreamName(value); return *this;} /** *

The Amazon Resource Name (ARN) of the delivery stream. For more information, * see Amazon * Resource Names (ARNs) and AWS Service Namespaces.

*/ inline const Aws::String& GetDeliveryStreamARN() const{ return m_deliveryStreamARN; } /** *

The Amazon Resource Name (ARN) of the delivery stream. For more information, * see Amazon * Resource Names (ARNs) and AWS Service Namespaces.

*/ inline bool DeliveryStreamARNHasBeenSet() const { return m_deliveryStreamARNHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the delivery stream. For more information, * see Amazon * Resource Names (ARNs) and AWS Service Namespaces.

*/ inline void SetDeliveryStreamARN(const Aws::String& value) { m_deliveryStreamARNHasBeenSet = true; m_deliveryStreamARN = value; } /** *

The Amazon Resource Name (ARN) of the delivery stream. For more information, * see Amazon * Resource Names (ARNs) and AWS Service Namespaces.

*/ inline void SetDeliveryStreamARN(Aws::String&& value) { m_deliveryStreamARNHasBeenSet = true; m_deliveryStreamARN = std::move(value); } /** *

The Amazon Resource Name (ARN) of the delivery stream. For more information, * see Amazon * Resource Names (ARNs) and AWS Service Namespaces.

*/ inline void SetDeliveryStreamARN(const char* value) { m_deliveryStreamARNHasBeenSet = true; m_deliveryStreamARN.assign(value); } /** *

The Amazon Resource Name (ARN) of the delivery stream. For more information, * see Amazon * Resource Names (ARNs) and AWS Service Namespaces.

*/ inline DeliveryStreamDescription& WithDeliveryStreamARN(const Aws::String& value) { SetDeliveryStreamARN(value); return *this;} /** *

The Amazon Resource Name (ARN) of the delivery stream. For more information, * see Amazon * Resource Names (ARNs) and AWS Service Namespaces.

*/ inline DeliveryStreamDescription& WithDeliveryStreamARN(Aws::String&& value) { SetDeliveryStreamARN(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the delivery stream. For more information, * see Amazon * Resource Names (ARNs) and AWS Service Namespaces.

*/ inline DeliveryStreamDescription& WithDeliveryStreamARN(const char* value) { SetDeliveryStreamARN(value); return *this;} /** *

The status of the delivery stream. If the status of a delivery stream is * CREATING_FAILED, this status doesn't change, and you can't invoke * CreateDeliveryStream again on it. However, you can invoke the * DeleteDeliveryStream operation to delete it.

*/ inline const DeliveryStreamStatus& GetDeliveryStreamStatus() const{ return m_deliveryStreamStatus; } /** *

The status of the delivery stream. If the status of a delivery stream is * CREATING_FAILED, this status doesn't change, and you can't invoke * CreateDeliveryStream again on it. However, you can invoke the * DeleteDeliveryStream operation to delete it.

*/ inline bool DeliveryStreamStatusHasBeenSet() const { return m_deliveryStreamStatusHasBeenSet; } /** *

The status of the delivery stream. If the status of a delivery stream is * CREATING_FAILED, this status doesn't change, and you can't invoke * CreateDeliveryStream again on it. However, you can invoke the * DeleteDeliveryStream operation to delete it.

*/ inline void SetDeliveryStreamStatus(const DeliveryStreamStatus& value) { m_deliveryStreamStatusHasBeenSet = true; m_deliveryStreamStatus = value; } /** *

The status of the delivery stream. If the status of a delivery stream is * CREATING_FAILED, this status doesn't change, and you can't invoke * CreateDeliveryStream again on it. However, you can invoke the * DeleteDeliveryStream operation to delete it.

*/ inline void SetDeliveryStreamStatus(DeliveryStreamStatus&& value) { m_deliveryStreamStatusHasBeenSet = true; m_deliveryStreamStatus = std::move(value); } /** *

The status of the delivery stream. If the status of a delivery stream is * CREATING_FAILED, this status doesn't change, and you can't invoke * CreateDeliveryStream again on it. However, you can invoke the * DeleteDeliveryStream operation to delete it.

*/ inline DeliveryStreamDescription& WithDeliveryStreamStatus(const DeliveryStreamStatus& value) { SetDeliveryStreamStatus(value); return *this;} /** *

The status of the delivery stream. If the status of a delivery stream is * CREATING_FAILED, this status doesn't change, and you can't invoke * CreateDeliveryStream again on it. However, you can invoke the * DeleteDeliveryStream operation to delete it.

*/ inline DeliveryStreamDescription& WithDeliveryStreamStatus(DeliveryStreamStatus&& value) { SetDeliveryStreamStatus(std::move(value)); return *this;} /** *

Provides details in case one of the following operations fails due to an * error related to KMS: CreateDeliveryStream, DeleteDeliveryStream, * StartDeliveryStreamEncryption, StopDeliveryStreamEncryption.

*/ inline const FailureDescription& GetFailureDescription() const{ return m_failureDescription; } /** *

Provides details in case one of the following operations fails due to an * error related to KMS: CreateDeliveryStream, DeleteDeliveryStream, * StartDeliveryStreamEncryption, StopDeliveryStreamEncryption.

*/ inline bool FailureDescriptionHasBeenSet() const { return m_failureDescriptionHasBeenSet; } /** *

Provides details in case one of the following operations fails due to an * error related to KMS: CreateDeliveryStream, DeleteDeliveryStream, * StartDeliveryStreamEncryption, StopDeliveryStreamEncryption.

*/ inline void SetFailureDescription(const FailureDescription& value) { m_failureDescriptionHasBeenSet = true; m_failureDescription = value; } /** *

Provides details in case one of the following operations fails due to an * error related to KMS: CreateDeliveryStream, DeleteDeliveryStream, * StartDeliveryStreamEncryption, StopDeliveryStreamEncryption.

*/ inline void SetFailureDescription(FailureDescription&& value) { m_failureDescriptionHasBeenSet = true; m_failureDescription = std::move(value); } /** *

Provides details in case one of the following operations fails due to an * error related to KMS: CreateDeliveryStream, DeleteDeliveryStream, * StartDeliveryStreamEncryption, StopDeliveryStreamEncryption.

*/ inline DeliveryStreamDescription& WithFailureDescription(const FailureDescription& value) { SetFailureDescription(value); return *this;} /** *

Provides details in case one of the following operations fails due to an * error related to KMS: CreateDeliveryStream, DeleteDeliveryStream, * StartDeliveryStreamEncryption, StopDeliveryStreamEncryption.

*/ inline DeliveryStreamDescription& WithFailureDescription(FailureDescription&& value) { SetFailureDescription(std::move(value)); return *this;} /** *

Indicates the server-side encryption (SSE) status for the delivery * stream.

*/ inline const DeliveryStreamEncryptionConfiguration& GetDeliveryStreamEncryptionConfiguration() const{ return m_deliveryStreamEncryptionConfiguration; } /** *

Indicates the server-side encryption (SSE) status for the delivery * stream.

*/ inline bool DeliveryStreamEncryptionConfigurationHasBeenSet() const { return m_deliveryStreamEncryptionConfigurationHasBeenSet; } /** *

Indicates the server-side encryption (SSE) status for the delivery * stream.

*/ inline void SetDeliveryStreamEncryptionConfiguration(const DeliveryStreamEncryptionConfiguration& value) { m_deliveryStreamEncryptionConfigurationHasBeenSet = true; m_deliveryStreamEncryptionConfiguration = value; } /** *

Indicates the server-side encryption (SSE) status for the delivery * stream.

*/ inline void SetDeliveryStreamEncryptionConfiguration(DeliveryStreamEncryptionConfiguration&& value) { m_deliveryStreamEncryptionConfigurationHasBeenSet = true; m_deliveryStreamEncryptionConfiguration = std::move(value); } /** *

Indicates the server-side encryption (SSE) status for the delivery * stream.

*/ inline DeliveryStreamDescription& WithDeliveryStreamEncryptionConfiguration(const DeliveryStreamEncryptionConfiguration& value) { SetDeliveryStreamEncryptionConfiguration(value); return *this;} /** *

Indicates the server-side encryption (SSE) status for the delivery * stream.

*/ inline DeliveryStreamDescription& WithDeliveryStreamEncryptionConfiguration(DeliveryStreamEncryptionConfiguration&& value) { SetDeliveryStreamEncryptionConfiguration(std::move(value)); return *this;} /** *

The delivery stream type. This can be one of the following values:

    *
  • DirectPut: Provider applications access the delivery * stream directly.

  • KinesisStreamAsSource: The * delivery stream uses a Kinesis data stream as a source.

*/ inline const DeliveryStreamType& GetDeliveryStreamType() const{ return m_deliveryStreamType; } /** *

The delivery stream type. This can be one of the following values:

    *
  • DirectPut: Provider applications access the delivery * stream directly.

  • KinesisStreamAsSource: The * delivery stream uses a Kinesis data stream as a source.

*/ inline bool DeliveryStreamTypeHasBeenSet() const { return m_deliveryStreamTypeHasBeenSet; } /** *

The delivery stream type. This can be one of the following values:

    *
  • DirectPut: Provider applications access the delivery * stream directly.

  • KinesisStreamAsSource: The * delivery stream uses a Kinesis data stream as a source.

*/ inline void SetDeliveryStreamType(const DeliveryStreamType& value) { m_deliveryStreamTypeHasBeenSet = true; m_deliveryStreamType = value; } /** *

The delivery stream type. This can be one of the following values:

    *
  • DirectPut: Provider applications access the delivery * stream directly.

  • KinesisStreamAsSource: The * delivery stream uses a Kinesis data stream as a source.

*/ inline void SetDeliveryStreamType(DeliveryStreamType&& value) { m_deliveryStreamTypeHasBeenSet = true; m_deliveryStreamType = std::move(value); } /** *

The delivery stream type. This can be one of the following values:

    *
  • DirectPut: Provider applications access the delivery * stream directly.

  • KinesisStreamAsSource: The * delivery stream uses a Kinesis data stream as a source.

*/ inline DeliveryStreamDescription& WithDeliveryStreamType(const DeliveryStreamType& value) { SetDeliveryStreamType(value); return *this;} /** *

The delivery stream type. This can be one of the following values:

    *
  • DirectPut: Provider applications access the delivery * stream directly.

  • KinesisStreamAsSource: The * delivery stream uses a Kinesis data stream as a source.

*/ inline DeliveryStreamDescription& WithDeliveryStreamType(DeliveryStreamType&& value) { SetDeliveryStreamType(std::move(value)); return *this;} /** *

Each time the destination is updated for a delivery stream, the version ID is * changed, and the current version ID is required when updating the destination. * This is so that the service knows it is applying the changes to the correct * version of the delivery stream.

*/ inline const Aws::String& GetVersionId() const{ return m_versionId; } /** *

Each time the destination is updated for a delivery stream, the version ID is * changed, and the current version ID is required when updating the destination. * This is so that the service knows it is applying the changes to the correct * version of the delivery stream.

*/ inline bool VersionIdHasBeenSet() const { return m_versionIdHasBeenSet; } /** *

Each time the destination is updated for a delivery stream, the version ID is * changed, and the current version ID is required when updating the destination. * This is so that the service knows it is applying the changes to the correct * version of the delivery stream.

*/ inline void SetVersionId(const Aws::String& value) { m_versionIdHasBeenSet = true; m_versionId = value; } /** *

Each time the destination is updated for a delivery stream, the version ID is * changed, and the current version ID is required when updating the destination. * This is so that the service knows it is applying the changes to the correct * version of the delivery stream.

*/ inline void SetVersionId(Aws::String&& value) { m_versionIdHasBeenSet = true; m_versionId = std::move(value); } /** *

Each time the destination is updated for a delivery stream, the version ID is * changed, and the current version ID is required when updating the destination. * This is so that the service knows it is applying the changes to the correct * version of the delivery stream.

*/ inline void SetVersionId(const char* value) { m_versionIdHasBeenSet = true; m_versionId.assign(value); } /** *

Each time the destination is updated for a delivery stream, the version ID is * changed, and the current version ID is required when updating the destination. * This is so that the service knows it is applying the changes to the correct * version of the delivery stream.

*/ inline DeliveryStreamDescription& WithVersionId(const Aws::String& value) { SetVersionId(value); return *this;} /** *

Each time the destination is updated for a delivery stream, the version ID is * changed, and the current version ID is required when updating the destination. * This is so that the service knows it is applying the changes to the correct * version of the delivery stream.

*/ inline DeliveryStreamDescription& WithVersionId(Aws::String&& value) { SetVersionId(std::move(value)); return *this;} /** *

Each time the destination is updated for a delivery stream, the version ID is * changed, and the current version ID is required when updating the destination. * This is so that the service knows it is applying the changes to the correct * version of the delivery stream.

*/ inline DeliveryStreamDescription& WithVersionId(const char* value) { SetVersionId(value); return *this;} /** *

The date and time that the delivery stream was created.

*/ inline const Aws::Utils::DateTime& GetCreateTimestamp() const{ return m_createTimestamp; } /** *

The date and time that the delivery stream was created.

*/ inline bool CreateTimestampHasBeenSet() const { return m_createTimestampHasBeenSet; } /** *

The date and time that the delivery stream was created.

*/ inline void SetCreateTimestamp(const Aws::Utils::DateTime& value) { m_createTimestampHasBeenSet = true; m_createTimestamp = value; } /** *

The date and time that the delivery stream was created.

*/ inline void SetCreateTimestamp(Aws::Utils::DateTime&& value) { m_createTimestampHasBeenSet = true; m_createTimestamp = std::move(value); } /** *

The date and time that the delivery stream was created.

*/ inline DeliveryStreamDescription& WithCreateTimestamp(const Aws::Utils::DateTime& value) { SetCreateTimestamp(value); return *this;} /** *

The date and time that the delivery stream was created.

*/ inline DeliveryStreamDescription& WithCreateTimestamp(Aws::Utils::DateTime&& value) { SetCreateTimestamp(std::move(value)); return *this;} /** *

The date and time that the delivery stream was last updated.

*/ inline const Aws::Utils::DateTime& GetLastUpdateTimestamp() const{ return m_lastUpdateTimestamp; } /** *

The date and time that the delivery stream was last updated.

*/ inline bool LastUpdateTimestampHasBeenSet() const { return m_lastUpdateTimestampHasBeenSet; } /** *

The date and time that the delivery stream was last updated.

*/ inline void SetLastUpdateTimestamp(const Aws::Utils::DateTime& value) { m_lastUpdateTimestampHasBeenSet = true; m_lastUpdateTimestamp = value; } /** *

The date and time that the delivery stream was last updated.

*/ inline void SetLastUpdateTimestamp(Aws::Utils::DateTime&& value) { m_lastUpdateTimestampHasBeenSet = true; m_lastUpdateTimestamp = std::move(value); } /** *

The date and time that the delivery stream was last updated.

*/ inline DeliveryStreamDescription& WithLastUpdateTimestamp(const Aws::Utils::DateTime& value) { SetLastUpdateTimestamp(value); return *this;} /** *

The date and time that the delivery stream was last updated.

*/ inline DeliveryStreamDescription& WithLastUpdateTimestamp(Aws::Utils::DateTime&& value) { SetLastUpdateTimestamp(std::move(value)); return *this;} /** *

If the DeliveryStreamType parameter is * KinesisStreamAsSource, a SourceDescription object describing * the source Kinesis data stream.

*/ inline const SourceDescription& GetSource() const{ return m_source; } /** *

If the DeliveryStreamType parameter is * KinesisStreamAsSource, a SourceDescription object describing * the source Kinesis data stream.

*/ inline bool SourceHasBeenSet() const { return m_sourceHasBeenSet; } /** *

If the DeliveryStreamType parameter is * KinesisStreamAsSource, a SourceDescription object describing * the source Kinesis data stream.

*/ inline void SetSource(const SourceDescription& value) { m_sourceHasBeenSet = true; m_source = value; } /** *

If the DeliveryStreamType parameter is * KinesisStreamAsSource, a SourceDescription object describing * the source Kinesis data stream.

*/ inline void SetSource(SourceDescription&& value) { m_sourceHasBeenSet = true; m_source = std::move(value); } /** *

If the DeliveryStreamType parameter is * KinesisStreamAsSource, a SourceDescription object describing * the source Kinesis data stream.

*/ inline DeliveryStreamDescription& WithSource(const SourceDescription& value) { SetSource(value); return *this;} /** *

If the DeliveryStreamType parameter is * KinesisStreamAsSource, a SourceDescription object describing * the source Kinesis data stream.

*/ inline DeliveryStreamDescription& WithSource(SourceDescription&& value) { SetSource(std::move(value)); return *this;} /** *

The destinations.

*/ inline const Aws::Vector& GetDestinations() const{ return m_destinations; } /** *

The destinations.

*/ inline bool DestinationsHasBeenSet() const { return m_destinationsHasBeenSet; } /** *

The destinations.

*/ inline void SetDestinations(const Aws::Vector& value) { m_destinationsHasBeenSet = true; m_destinations = value; } /** *

The destinations.

*/ inline void SetDestinations(Aws::Vector&& value) { m_destinationsHasBeenSet = true; m_destinations = std::move(value); } /** *

The destinations.

*/ inline DeliveryStreamDescription& WithDestinations(const Aws::Vector& value) { SetDestinations(value); return *this;} /** *

The destinations.

*/ inline DeliveryStreamDescription& WithDestinations(Aws::Vector&& value) { SetDestinations(std::move(value)); return *this;} /** *

The destinations.

*/ inline DeliveryStreamDescription& AddDestinations(const DestinationDescription& value) { m_destinationsHasBeenSet = true; m_destinations.push_back(value); return *this; } /** *

The destinations.

*/ inline DeliveryStreamDescription& AddDestinations(DestinationDescription&& value) { m_destinationsHasBeenSet = true; m_destinations.push_back(std::move(value)); return *this; } /** *

Indicates whether there are more destinations available to list.

*/ inline bool GetHasMoreDestinations() const{ return m_hasMoreDestinations; } /** *

Indicates whether there are more destinations available to list.

*/ inline bool HasMoreDestinationsHasBeenSet() const { return m_hasMoreDestinationsHasBeenSet; } /** *

Indicates whether there are more destinations available to list.

*/ inline void SetHasMoreDestinations(bool value) { m_hasMoreDestinationsHasBeenSet = true; m_hasMoreDestinations = value; } /** *

Indicates whether there are more destinations available to list.

*/ inline DeliveryStreamDescription& WithHasMoreDestinations(bool value) { SetHasMoreDestinations(value); return *this;} private: Aws::String m_deliveryStreamName; bool m_deliveryStreamNameHasBeenSet; Aws::String m_deliveryStreamARN; bool m_deliveryStreamARNHasBeenSet; DeliveryStreamStatus m_deliveryStreamStatus; bool m_deliveryStreamStatusHasBeenSet; FailureDescription m_failureDescription; bool m_failureDescriptionHasBeenSet; DeliveryStreamEncryptionConfiguration m_deliveryStreamEncryptionConfiguration; bool m_deliveryStreamEncryptionConfigurationHasBeenSet; DeliveryStreamType m_deliveryStreamType; bool m_deliveryStreamTypeHasBeenSet; Aws::String m_versionId; bool m_versionIdHasBeenSet; Aws::Utils::DateTime m_createTimestamp; bool m_createTimestampHasBeenSet; Aws::Utils::DateTime m_lastUpdateTimestamp; bool m_lastUpdateTimestampHasBeenSet; SourceDescription m_source; bool m_sourceHasBeenSet; Aws::Vector m_destinations; bool m_destinationsHasBeenSet; bool m_hasMoreDestinations; bool m_hasMoreDestinationsHasBeenSet; }; } // namespace Model } // namespace Firehose } // namespace Aws