1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
    /// Constructs a fluent builder for the [`CreateDeliveryStream`](crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`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 delivery stream. This name must be unique per Amazon Web Services account in the same Amazon Web Services Region. If the delivery streams are in different accounts or different Regions, you can have multiple delivery streams with the same name.</p><br>
    ///   - [`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 delivery stream type. This parameter can be one of the following values:</p> <ul>  <li>   <p><code>DirectPut</code>: Provider applications access the delivery stream directly.</p></li>  <li>   <p><code>KinesisStreamAsSource</code>: The delivery stream uses a Kinesis data stream as a source.</p></li> </ul><br>
    ///   - [`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 delivery stream, a <code>KinesisStreamSourceConfiguration</code> containing the Kinesis data stream Amazon Resource Name (ARN) and the role ARN for the source stream.</p><br>
    ///   - [`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>
    ///   - [`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>
    ///   - [`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>
    ///   - [`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>
    ///   - [`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 ES. You can specify only one destination.</p><br>
    ///   - [`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>
    ///   - [`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>
    ///   - [`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>
    ///   - [`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 delivery 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 delivery 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 delivery 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 delivery 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>
    ///   - [`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>
    ///   - [`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>
    ///   - [`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>
    /// - On success, responds with [`CreateDeliveryStreamOutput`](crate::operation::create_delivery_stream::CreateDeliveryStreamOutput) with field(s):
    ///   - [`delivery_stream_arn(Option<String>)`](crate::operation::create_delivery_stream::CreateDeliveryStreamOutput::delivery_stream_arn): <p>The ARN of the delivery stream.</p>
    /// - On failure, responds with [`SdkError<CreateDeliveryStreamError>`](crate::operation::create_delivery_stream::CreateDeliveryStreamError)
    pub fn create_delivery_stream(&self) -> crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder {
        crate::operation::create_delivery_stream::builders::CreateDeliveryStreamFluentBuilder::new(self.handle.clone())
    }
}