/** * 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 #include #include #include namespace Aws { namespace Firehose { namespace Model { /** */ class AWS_FIREHOSE_API CreateDeliveryStreamRequest : public FirehoseRequest { public: CreateDeliveryStreamRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateDeliveryStream"; } Aws::String SerializePayload() const override; Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The name of the delivery stream. This name must be unique per AWS account in * the same AWS Region. If the delivery streams are in different accounts or * different Regions, you can have multiple delivery streams with the same * name.

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

The name of the delivery stream. This name must be unique per AWS account in * the same AWS Region. If the delivery streams are in different accounts or * different Regions, you can have multiple delivery streams with the same * name.

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

The name of the delivery stream. This name must be unique per AWS account in * the same AWS Region. If the delivery streams are in different accounts or * different Regions, you can have multiple delivery streams with the same * name.

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

The name of the delivery stream. This name must be unique per AWS account in * the same AWS Region. If the delivery streams are in different accounts or * different Regions, you can have multiple delivery streams with the same * name.

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

The name of the delivery stream. This name must be unique per AWS account in * the same AWS Region. If the delivery streams are in different accounts or * different Regions, you can have multiple delivery streams with the same * name.

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

The name of the delivery stream. This name must be unique per AWS account in * the same AWS Region. If the delivery streams are in different accounts or * different Regions, you can have multiple delivery streams with the same * name.

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

The name of the delivery stream. This name must be unique per AWS account in * the same AWS Region. If the delivery streams are in different accounts or * different Regions, you can have multiple delivery streams with the same * name.

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

The name of the delivery stream. This name must be unique per AWS account in * the same AWS Region. If the delivery streams are in different accounts or * different Regions, you can have multiple delivery streams with the same * name.

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

The delivery stream type. This parameter 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 parameter 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 parameter 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 parameter 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 parameter 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 CreateDeliveryStreamRequest& WithDeliveryStreamType(const DeliveryStreamType& value) { SetDeliveryStreamType(value); return *this;} /** *

The delivery stream type. This parameter 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 CreateDeliveryStreamRequest& WithDeliveryStreamType(DeliveryStreamType&& value) { SetDeliveryStreamType(std::move(value)); return *this;} /** *

When a Kinesis data stream is used as the source for the delivery stream, a * KinesisStreamSourceConfiguration containing the Kinesis data stream * Amazon Resource Name (ARN) and the role ARN for the source stream.

*/ inline const KinesisStreamSourceConfiguration& GetKinesisStreamSourceConfiguration() const{ return m_kinesisStreamSourceConfiguration; } /** *

When a Kinesis data stream is used as the source for the delivery stream, a * KinesisStreamSourceConfiguration containing the Kinesis data stream * Amazon Resource Name (ARN) and the role ARN for the source stream.

*/ inline bool KinesisStreamSourceConfigurationHasBeenSet() const { return m_kinesisStreamSourceConfigurationHasBeenSet; } /** *

When a Kinesis data stream is used as the source for the delivery stream, a * KinesisStreamSourceConfiguration containing the Kinesis data stream * Amazon Resource Name (ARN) and the role ARN for the source stream.

*/ inline void SetKinesisStreamSourceConfiguration(const KinesisStreamSourceConfiguration& value) { m_kinesisStreamSourceConfigurationHasBeenSet = true; m_kinesisStreamSourceConfiguration = value; } /** *

When a Kinesis data stream is used as the source for the delivery stream, a * KinesisStreamSourceConfiguration containing the Kinesis data stream * Amazon Resource Name (ARN) and the role ARN for the source stream.

*/ inline void SetKinesisStreamSourceConfiguration(KinesisStreamSourceConfiguration&& value) { m_kinesisStreamSourceConfigurationHasBeenSet = true; m_kinesisStreamSourceConfiguration = std::move(value); } /** *

When a Kinesis data stream is used as the source for the delivery stream, a * KinesisStreamSourceConfiguration containing the Kinesis data stream * Amazon Resource Name (ARN) and the role ARN for the source stream.

*/ inline CreateDeliveryStreamRequest& WithKinesisStreamSourceConfiguration(const KinesisStreamSourceConfiguration& value) { SetKinesisStreamSourceConfiguration(value); return *this;} /** *

When a Kinesis data stream is used as the source for the delivery stream, a * KinesisStreamSourceConfiguration containing the Kinesis data stream * Amazon Resource Name (ARN) and the role ARN for the source stream.

*/ inline CreateDeliveryStreamRequest& WithKinesisStreamSourceConfiguration(KinesisStreamSourceConfiguration&& value) { SetKinesisStreamSourceConfiguration(std::move(value)); return *this;} /** *

Used to specify the type and Amazon Resource Name (ARN) of the KMS key needed * for Server-Side Encryption (SSE).

*/ inline const DeliveryStreamEncryptionConfigurationInput& GetDeliveryStreamEncryptionConfigurationInput() const{ return m_deliveryStreamEncryptionConfigurationInput; } /** *

Used to specify the type and Amazon Resource Name (ARN) of the KMS key needed * for Server-Side Encryption (SSE).

*/ inline bool DeliveryStreamEncryptionConfigurationInputHasBeenSet() const { return m_deliveryStreamEncryptionConfigurationInputHasBeenSet; } /** *

Used to specify the type and Amazon Resource Name (ARN) of the KMS key needed * for Server-Side Encryption (SSE).

*/ inline void SetDeliveryStreamEncryptionConfigurationInput(const DeliveryStreamEncryptionConfigurationInput& value) { m_deliveryStreamEncryptionConfigurationInputHasBeenSet = true; m_deliveryStreamEncryptionConfigurationInput = value; } /** *

Used to specify the type and Amazon Resource Name (ARN) of the KMS key needed * for Server-Side Encryption (SSE).

*/ inline void SetDeliveryStreamEncryptionConfigurationInput(DeliveryStreamEncryptionConfigurationInput&& value) { m_deliveryStreamEncryptionConfigurationInputHasBeenSet = true; m_deliveryStreamEncryptionConfigurationInput = std::move(value); } /** *

Used to specify the type and Amazon Resource Name (ARN) of the KMS key needed * for Server-Side Encryption (SSE).

*/ inline CreateDeliveryStreamRequest& WithDeliveryStreamEncryptionConfigurationInput(const DeliveryStreamEncryptionConfigurationInput& value) { SetDeliveryStreamEncryptionConfigurationInput(value); return *this;} /** *

Used to specify the type and Amazon Resource Name (ARN) of the KMS key needed * for Server-Side Encryption (SSE).

*/ inline CreateDeliveryStreamRequest& WithDeliveryStreamEncryptionConfigurationInput(DeliveryStreamEncryptionConfigurationInput&& value) { SetDeliveryStreamEncryptionConfigurationInput(std::move(value)); return *this;} /** *

The destination in Amazon S3. You can specify only one destination.

*/ inline const ExtendedS3DestinationConfiguration& GetExtendedS3DestinationConfiguration() const{ return m_extendedS3DestinationConfiguration; } /** *

The destination in Amazon S3. You can specify only one destination.

*/ inline bool ExtendedS3DestinationConfigurationHasBeenSet() const { return m_extendedS3DestinationConfigurationHasBeenSet; } /** *

The destination in Amazon S3. You can specify only one destination.

*/ inline void SetExtendedS3DestinationConfiguration(const ExtendedS3DestinationConfiguration& value) { m_extendedS3DestinationConfigurationHasBeenSet = true; m_extendedS3DestinationConfiguration = value; } /** *

The destination in Amazon S3. You can specify only one destination.

*/ inline void SetExtendedS3DestinationConfiguration(ExtendedS3DestinationConfiguration&& value) { m_extendedS3DestinationConfigurationHasBeenSet = true; m_extendedS3DestinationConfiguration = std::move(value); } /** *

The destination in Amazon S3. You can specify only one destination.

*/ inline CreateDeliveryStreamRequest& WithExtendedS3DestinationConfiguration(const ExtendedS3DestinationConfiguration& value) { SetExtendedS3DestinationConfiguration(value); return *this;} /** *

The destination in Amazon S3. You can specify only one destination.

*/ inline CreateDeliveryStreamRequest& WithExtendedS3DestinationConfiguration(ExtendedS3DestinationConfiguration&& value) { SetExtendedS3DestinationConfiguration(std::move(value)); return *this;} /** *

The destination in Amazon Redshift. You can specify only one destination.

*/ inline const RedshiftDestinationConfiguration& GetRedshiftDestinationConfiguration() const{ return m_redshiftDestinationConfiguration; } /** *

The destination in Amazon Redshift. You can specify only one destination.

*/ inline bool RedshiftDestinationConfigurationHasBeenSet() const { return m_redshiftDestinationConfigurationHasBeenSet; } /** *

The destination in Amazon Redshift. You can specify only one destination.

*/ inline void SetRedshiftDestinationConfiguration(const RedshiftDestinationConfiguration& value) { m_redshiftDestinationConfigurationHasBeenSet = true; m_redshiftDestinationConfiguration = value; } /** *

The destination in Amazon Redshift. You can specify only one destination.

*/ inline void SetRedshiftDestinationConfiguration(RedshiftDestinationConfiguration&& value) { m_redshiftDestinationConfigurationHasBeenSet = true; m_redshiftDestinationConfiguration = std::move(value); } /** *

The destination in Amazon Redshift. You can specify only one destination.

*/ inline CreateDeliveryStreamRequest& WithRedshiftDestinationConfiguration(const RedshiftDestinationConfiguration& value) { SetRedshiftDestinationConfiguration(value); return *this;} /** *

The destination in Amazon Redshift. You can specify only one destination.

*/ inline CreateDeliveryStreamRequest& WithRedshiftDestinationConfiguration(RedshiftDestinationConfiguration&& value) { SetRedshiftDestinationConfiguration(std::move(value)); return *this;} /** *

The destination in Amazon ES. You can specify only one destination.

*/ inline const ElasticsearchDestinationConfiguration& GetElasticsearchDestinationConfiguration() const{ return m_elasticsearchDestinationConfiguration; } /** *

The destination in Amazon ES. You can specify only one destination.

*/ inline bool ElasticsearchDestinationConfigurationHasBeenSet() const { return m_elasticsearchDestinationConfigurationHasBeenSet; } /** *

The destination in Amazon ES. You can specify only one destination.

*/ inline void SetElasticsearchDestinationConfiguration(const ElasticsearchDestinationConfiguration& value) { m_elasticsearchDestinationConfigurationHasBeenSet = true; m_elasticsearchDestinationConfiguration = value; } /** *

The destination in Amazon ES. You can specify only one destination.

*/ inline void SetElasticsearchDestinationConfiguration(ElasticsearchDestinationConfiguration&& value) { m_elasticsearchDestinationConfigurationHasBeenSet = true; m_elasticsearchDestinationConfiguration = std::move(value); } /** *

The destination in Amazon ES. You can specify only one destination.

*/ inline CreateDeliveryStreamRequest& WithElasticsearchDestinationConfiguration(const ElasticsearchDestinationConfiguration& value) { SetElasticsearchDestinationConfiguration(value); return *this;} /** *

The destination in Amazon ES. You can specify only one destination.

*/ inline CreateDeliveryStreamRequest& WithElasticsearchDestinationConfiguration(ElasticsearchDestinationConfiguration&& value) { SetElasticsearchDestinationConfiguration(std::move(value)); return *this;} /** *

The destination in Splunk. You can specify only one destination.

*/ inline const SplunkDestinationConfiguration& GetSplunkDestinationConfiguration() const{ return m_splunkDestinationConfiguration; } /** *

The destination in Splunk. You can specify only one destination.

*/ inline bool SplunkDestinationConfigurationHasBeenSet() const { return m_splunkDestinationConfigurationHasBeenSet; } /** *

The destination in Splunk. You can specify only one destination.

*/ inline void SetSplunkDestinationConfiguration(const SplunkDestinationConfiguration& value) { m_splunkDestinationConfigurationHasBeenSet = true; m_splunkDestinationConfiguration = value; } /** *

The destination in Splunk. You can specify only one destination.

*/ inline void SetSplunkDestinationConfiguration(SplunkDestinationConfiguration&& value) { m_splunkDestinationConfigurationHasBeenSet = true; m_splunkDestinationConfiguration = std::move(value); } /** *

The destination in Splunk. You can specify only one destination.

*/ inline CreateDeliveryStreamRequest& WithSplunkDestinationConfiguration(const SplunkDestinationConfiguration& value) { SetSplunkDestinationConfiguration(value); return *this;} /** *

The destination in Splunk. You can specify only one destination.

*/ inline CreateDeliveryStreamRequest& WithSplunkDestinationConfiguration(SplunkDestinationConfiguration&& value) { SetSplunkDestinationConfiguration(std::move(value)); return *this;} /** *

Enables configuring Kinesis Firehose to deliver data to any HTTP endpoint * destination. You can specify only one destination.

*/ inline const HttpEndpointDestinationConfiguration& GetHttpEndpointDestinationConfiguration() const{ return m_httpEndpointDestinationConfiguration; } /** *

Enables configuring Kinesis Firehose to deliver data to any HTTP endpoint * destination. You can specify only one destination.

*/ inline bool HttpEndpointDestinationConfigurationHasBeenSet() const { return m_httpEndpointDestinationConfigurationHasBeenSet; } /** *

Enables configuring Kinesis Firehose to deliver data to any HTTP endpoint * destination. You can specify only one destination.

*/ inline void SetHttpEndpointDestinationConfiguration(const HttpEndpointDestinationConfiguration& value) { m_httpEndpointDestinationConfigurationHasBeenSet = true; m_httpEndpointDestinationConfiguration = value; } /** *

Enables configuring Kinesis Firehose to deliver data to any HTTP endpoint * destination. You can specify only one destination.

*/ inline void SetHttpEndpointDestinationConfiguration(HttpEndpointDestinationConfiguration&& value) { m_httpEndpointDestinationConfigurationHasBeenSet = true; m_httpEndpointDestinationConfiguration = std::move(value); } /** *

Enables configuring Kinesis Firehose to deliver data to any HTTP endpoint * destination. You can specify only one destination.

*/ inline CreateDeliveryStreamRequest& WithHttpEndpointDestinationConfiguration(const HttpEndpointDestinationConfiguration& value) { SetHttpEndpointDestinationConfiguration(value); return *this;} /** *

Enables configuring Kinesis Firehose to deliver data to any HTTP endpoint * destination. You can specify only one destination.

*/ inline CreateDeliveryStreamRequest& WithHttpEndpointDestinationConfiguration(HttpEndpointDestinationConfiguration&& value) { SetHttpEndpointDestinationConfiguration(std::move(value)); return *this;} /** *

A set of tags to assign to the delivery stream. A tag is a key-value pair * that you can define and assign to AWS resources. Tags are metadata. For example, * you can add friendly names and descriptions or other types of information that * can help you distinguish the delivery stream. For more information about tags, * see Using * Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

*

You can specify up to 50 tags when creating a delivery stream.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

A set of tags to assign to the delivery stream. A tag is a key-value pair * that you can define and assign to AWS resources. Tags are metadata. For example, * you can add friendly names and descriptions or other types of information that * can help you distinguish the delivery stream. For more information about tags, * see Using * Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

*

You can specify up to 50 tags when creating a delivery stream.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

A set of tags to assign to the delivery stream. A tag is a key-value pair * that you can define and assign to AWS resources. Tags are metadata. For example, * you can add friendly names and descriptions or other types of information that * can help you distinguish the delivery stream. For more information about tags, * see Using * Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

*

You can specify up to 50 tags when creating a delivery stream.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

A set of tags to assign to the delivery stream. A tag is a key-value pair * that you can define and assign to AWS resources. Tags are metadata. For example, * you can add friendly names and descriptions or other types of information that * can help you distinguish the delivery stream. For more information about tags, * see Using * Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

*

You can specify up to 50 tags when creating a delivery stream.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

A set of tags to assign to the delivery stream. A tag is a key-value pair * that you can define and assign to AWS resources. Tags are metadata. For example, * you can add friendly names and descriptions or other types of information that * can help you distinguish the delivery stream. For more information about tags, * see Using * Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

*

You can specify up to 50 tags when creating a delivery stream.

*/ inline CreateDeliveryStreamRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

A set of tags to assign to the delivery stream. A tag is a key-value pair * that you can define and assign to AWS resources. Tags are metadata. For example, * you can add friendly names and descriptions or other types of information that * can help you distinguish the delivery stream. For more information about tags, * see Using * Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

*

You can specify up to 50 tags when creating a delivery stream.

*/ inline CreateDeliveryStreamRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

A set of tags to assign to the delivery stream. A tag is a key-value pair * that you can define and assign to AWS resources. Tags are metadata. For example, * you can add friendly names and descriptions or other types of information that * can help you distinguish the delivery stream. For more information about tags, * see Using * Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

*

You can specify up to 50 tags when creating a delivery stream.

*/ inline CreateDeliveryStreamRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

A set of tags to assign to the delivery stream. A tag is a key-value pair * that you can define and assign to AWS resources. Tags are metadata. For example, * you can add friendly names and descriptions or other types of information that * can help you distinguish the delivery stream. For more information about tags, * see Using * Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

*

You can specify up to 50 tags when creating a delivery stream.

*/ inline CreateDeliveryStreamRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } private: Aws::String m_deliveryStreamName; bool m_deliveryStreamNameHasBeenSet; DeliveryStreamType m_deliveryStreamType; bool m_deliveryStreamTypeHasBeenSet; KinesisStreamSourceConfiguration m_kinesisStreamSourceConfiguration; bool m_kinesisStreamSourceConfigurationHasBeenSet; DeliveryStreamEncryptionConfigurationInput m_deliveryStreamEncryptionConfigurationInput; bool m_deliveryStreamEncryptionConfigurationInputHasBeenSet; ExtendedS3DestinationConfiguration m_extendedS3DestinationConfiguration; bool m_extendedS3DestinationConfigurationHasBeenSet; RedshiftDestinationConfiguration m_redshiftDestinationConfiguration; bool m_redshiftDestinationConfigurationHasBeenSet; ElasticsearchDestinationConfiguration m_elasticsearchDestinationConfiguration; bool m_elasticsearchDestinationConfigurationHasBeenSet; SplunkDestinationConfiguration m_splunkDestinationConfiguration; bool m_splunkDestinationConfigurationHasBeenSet; HttpEndpointDestinationConfiguration m_httpEndpointDestinationConfiguration; bool m_httpEndpointDestinationConfigurationHasBeenSet; Aws::Vector m_tags; bool m_tagsHasBeenSet; }; } // namespace Model } // namespace Firehose } // namespace Aws