aws_sdk_firehose/client/
create_delivery_stream.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2impl super::Client {
3    /// Constructs a fluent builder for the [`CreateDeliveryStream`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder) operation.
4    ///
5    /// - The fluent builder is configurable:
6    ///   - [`delivery_stream_name(impl Into<String>)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::delivery_stream_name) / [`set_delivery_stream_name(Option<String>)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::set_delivery_stream_name):<br>required: **true**<br><p>The name of the Firehose stream. This name must be unique per Amazon Web Services account in the same Amazon Web Services Region. If the Firehose streams are in different accounts or different Regions, you can have multiple Firehose streams with the same name.</p><br>
7    ///   - [`delivery_stream_type(DeliveryStreamType)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::delivery_stream_type) / [`set_delivery_stream_type(Option<DeliveryStreamType>)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::set_delivery_stream_type):<br>required: **false**<br><p>The Firehose stream type. This parameter can be one of the following values:</p> <ul>  <li>   <p><code>DirectPut</code>: Provider applications access the Firehose stream directly.</p></li>  <li>   <p><code>KinesisStreamAsSource</code>: The Firehose stream uses a Kinesis data stream as a source.</p></li> </ul><br>
8    ///   - [`direct_put_source_configuration(DirectPutSourceConfiguration)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::direct_put_source_configuration) / [`set_direct_put_source_configuration(Option<DirectPutSourceConfiguration>)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::set_direct_put_source_configuration):<br>required: **false**<br><p>The structure that configures parameters such as <code>ThroughputHintInMBs</code> for a stream configured with Direct PUT as a source.</p><br>
9    ///   - [`kinesis_stream_source_configuration(KinesisStreamSourceConfiguration)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::kinesis_stream_source_configuration) / [`set_kinesis_stream_source_configuration(Option<KinesisStreamSourceConfiguration>)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::set_kinesis_stream_source_configuration):<br>required: **false**<br><p>When a Kinesis data stream is used as the source for the Firehose stream, a <code>KinesisStreamSourceConfiguration</code> containing the Kinesis data stream Amazon Resource Name (ARN) and the role ARN for the source stream.</p><br>
10    ///   - [`delivery_stream_encryption_configuration_input(DeliveryStreamEncryptionConfigurationInput)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::delivery_stream_encryption_configuration_input) / [`set_delivery_stream_encryption_configuration_input(Option<DeliveryStreamEncryptionConfigurationInput>)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::set_delivery_stream_encryption_configuration_input):<br>required: **false**<br><p>Used to specify the type and Amazon Resource Name (ARN) of the KMS key needed for Server-Side Encryption (SSE).</p><br>
11    ///   - [`s3_destination_configuration(S3DestinationConfiguration)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::s3_destination_configuration) / [`set_s3_destination_configuration(Option<S3DestinationConfiguration>)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::set_s3_destination_configuration):<br>required: **false**<br><p>\[Deprecated\] The destination in Amazon S3. You can specify only one destination.</p><br>
12    ///   - [`extended_s3_destination_configuration(ExtendedS3DestinationConfiguration)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::extended_s3_destination_configuration) / [`set_extended_s3_destination_configuration(Option<ExtendedS3DestinationConfiguration>)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::set_extended_s3_destination_configuration):<br>required: **false**<br><p>The destination in Amazon S3. You can specify only one destination.</p><br>
13    ///   - [`redshift_destination_configuration(RedshiftDestinationConfiguration)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::redshift_destination_configuration) / [`set_redshift_destination_configuration(Option<RedshiftDestinationConfiguration>)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::set_redshift_destination_configuration):<br>required: **false**<br><p>The destination in Amazon Redshift. You can specify only one destination.</p><br>
14    ///   - [`elasticsearch_destination_configuration(ElasticsearchDestinationConfiguration)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::elasticsearch_destination_configuration) / [`set_elasticsearch_destination_configuration(Option<ElasticsearchDestinationConfiguration>)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::set_elasticsearch_destination_configuration):<br>required: **false**<br><p>The destination in Amazon OpenSearch Service. You can specify only one destination.</p><br>
15    ///   - [`amazonopensearchservice_destination_configuration(AmazonopensearchserviceDestinationConfiguration)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::amazonopensearchservice_destination_configuration) / [`set_amazonopensearchservice_destination_configuration(Option<AmazonopensearchserviceDestinationConfiguration>)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::set_amazonopensearchservice_destination_configuration):<br>required: **false**<br><p>The destination in Amazon OpenSearch Service. You can specify only one destination.</p><br>
16    ///   - [`splunk_destination_configuration(SplunkDestinationConfiguration)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::splunk_destination_configuration) / [`set_splunk_destination_configuration(Option<SplunkDestinationConfiguration>)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::set_splunk_destination_configuration):<br>required: **false**<br><p>The destination in Splunk. You can specify only one destination.</p><br>
17    ///   - [`http_endpoint_destination_configuration(HttpEndpointDestinationConfiguration)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::http_endpoint_destination_configuration) / [`set_http_endpoint_destination_configuration(Option<HttpEndpointDestinationConfiguration>)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::set_http_endpoint_destination_configuration):<br>required: **false**<br><p>Enables configuring Kinesis Firehose to deliver data to any HTTP endpoint destination. You can specify only one destination.</p><br>
18    ///   - [`tags(Tag)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::tags) / [`set_tags(Option<Vec::<Tag>>)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::set_tags):<br>required: **false**<br><p>A set of tags to assign to the Firehose stream. A tag is a key-value pair that you can define and assign to Amazon Web Services resources. Tags are metadata. For example, you can add friendly names and descriptions or other types of information that can help you distinguish the Firehose stream. For more information about tags, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Using Cost Allocation Tags</a> in the Amazon Web Services Billing and Cost Management User Guide.</p> <p>You can specify up to 50 tags when creating a Firehose stream.</p> <p>If you specify tags in the <code>CreateDeliveryStream</code> action, Amazon Data Firehose performs an additional authorization on the <code>firehose:TagDeliveryStream</code> action to verify if users have permissions to create tags. If you do not provide this permission, requests to create new Firehose streams with IAM resource tags will fail with an <code>AccessDeniedException</code> such as following.</p> <p><b>AccessDeniedException</b></p> <p>User: arn:aws:sts::x:assumed-role/x/x is not authorized to perform: firehose:TagDeliveryStream on resource: arn:aws:firehose:us-east-1:x:deliverystream/x with an explicit deny in an identity-based policy.</p> <p>For an example IAM policy, see <a href="https://docs.aws.amazon.com/firehose/latest/APIReference/API_CreateDeliveryStream.html#API_CreateDeliveryStream_Examples">Tag example.</a></p><br>
19    ///   - [`amazon_open_search_serverless_destination_configuration(AmazonOpenSearchServerlessDestinationConfiguration)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::amazon_open_search_serverless_destination_configuration) / [`set_amazon_open_search_serverless_destination_configuration(Option<AmazonOpenSearchServerlessDestinationConfiguration>)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::set_amazon_open_search_serverless_destination_configuration):<br>required: **false**<br><p>The destination in the Serverless offering for Amazon OpenSearch Service. You can specify only one destination.</p><br>
20    ///   - [`msk_source_configuration(MskSourceConfiguration)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::msk_source_configuration) / [`set_msk_source_configuration(Option<MskSourceConfiguration>)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::set_msk_source_configuration):<br>required: **false**<br><p>The configuration for the Amazon MSK cluster to be used as the source for a delivery stream.</p><br>
21    ///   - [`snowflake_destination_configuration(SnowflakeDestinationConfiguration)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::snowflake_destination_configuration) / [`set_snowflake_destination_configuration(Option<SnowflakeDestinationConfiguration>)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::set_snowflake_destination_configuration):<br>required: **false**<br><p>Configure Snowflake destination</p><br>
22    ///   - [`iceberg_destination_configuration(IcebergDestinationConfiguration)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::iceberg_destination_configuration) / [`set_iceberg_destination_configuration(Option<IcebergDestinationConfiguration>)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::set_iceberg_destination_configuration):<br>required: **false**<br><p>Configure Apache Iceberg Tables destination.</p><br>
23    ///   - [`database_source_configuration(DatabaseSourceConfiguration)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::database_source_configuration) / [`set_database_source_configuration(Option<DatabaseSourceConfiguration>)`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::set_database_source_configuration):<br>required: **false**<br><p>The top level object for configuring streams with database as a source.</p> <p>Amazon Data Firehose is in preview release and is subject to change.</p><br>
24    /// - On success, responds with [`CreateDeliveryStreamOutput`](crate::operation::create_delivery_stream::CreateDeliveryStreamOutput) with field(s):
25    ///   - [`delivery_stream_arn(Option<String>)`](crate::operation::create_delivery_stream::CreateDeliveryStreamOutput::delivery_stream_arn): <p>The ARN of the Firehose stream.</p>
26    /// - On failure, responds with [`SdkError<CreateDeliveryStreamError>`](crate::operation::create_delivery_stream::CreateDeliveryStreamError)
27    pub fn create_delivery_stream(&self) -> crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder {
28        crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::new(self.handle.clone())
29    }
30}