aws_sdk_lambda/operation/create_event_source_mapping/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_event_source_mapping::_create_event_source_mapping_output::CreateEventSourceMappingOutputBuilder;
3
4pub use crate::operation::create_event_source_mapping::_create_event_source_mapping_input::CreateEventSourceMappingInputBuilder;
5
6impl crate::operation::create_event_source_mapping::builders::CreateEventSourceMappingInputBuilder {
7    /// Sends a request with this input using the given client.
8    pub async fn send_with(
9        self,
10        client: &crate::Client,
11    ) -> ::std::result::Result<
12        crate::operation::create_event_source_mapping::CreateEventSourceMappingOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_event_source_mapping::CreateEventSourceMappingError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_event_source_mapping();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateEventSourceMapping`.
24///
25/// <p>Creates a mapping between an event source and an Lambda function. Lambda reads items from the event source and invokes the function.</p>
26/// <p>For details about how to configure different event sources, see the following topics.</p>
27/// <ul>
28/// <li>
29/// <p><a href="https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-dynamodb-eventsourcemapping"> Amazon DynamoDB Streams</a></p></li>
30/// <li>
31/// <p><a href="https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-eventsourcemapping"> Amazon Kinesis</a></p></li>
32/// <li>
33/// <p><a href="https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-eventsource"> Amazon SQS</a></p></li>
34/// <li>
35/// <p><a href="https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#services-mq-eventsourcemapping"> Amazon MQ and RabbitMQ</a></p></li>
36/// <li>
37/// <p><a href="https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html"> Amazon MSK</a></p></li>
38/// <li>
39/// <p><a href="https://docs.aws.amazon.com/lambda/latest/dg/kafka-smaa.html"> Apache Kafka</a></p></li>
40/// <li>
41/// <p><a href="https://docs.aws.amazon.com/lambda/latest/dg/with-documentdb.html"> Amazon DocumentDB</a></p></li>
42/// </ul>
43/// <p>The following error handling options are available only for DynamoDB and Kinesis event sources:</p>
44/// <ul>
45/// <li>
46/// <p><code>BisectBatchOnFunctionError</code> – If the function returns an error, split the batch in two and retry.</p></li>
47/// <li>
48/// <p><code>MaximumRecordAgeInSeconds</code> – Discard records older than the specified age. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires</p></li>
49/// <li>
50/// <p><code>MaximumRetryAttempts</code> – Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires.</p></li>
51/// <li>
52/// <p><code>ParallelizationFactor</code> – Process multiple batches from each shard concurrently.</p></li>
53/// </ul>
54/// <p>For stream sources (DynamoDB, Kinesis, Amazon MSK, and self-managed Apache Kafka), the following option is also available:</p>
55/// <ul>
56/// <li>
57/// <p><code>OnFailure</code> – Send discarded records to an Amazon SQS queue, Amazon SNS topic, or Amazon S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/invocation-async-retain-records.html#invocation-async-destinations">Adding a destination</a>.</p></li>
58/// </ul>
59/// <p>For information about which configuration parameters apply to each event source, see the following topics.</p>
60/// <ul>
61/// <li>
62/// <p><a href="https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-ddb-params"> Amazon DynamoDB Streams</a></p></li>
63/// <li>
64/// <p><a href="https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-params"> Amazon Kinesis</a></p></li>
65/// <li>
66/// <p><a href="https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#services-sqs-params"> Amazon SQS</a></p></li>
67/// <li>
68/// <p><a href="https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#services-mq-params"> Amazon MQ and RabbitMQ</a></p></li>
69/// <li>
70/// <p><a href="https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-parms"> Amazon MSK</a></p></li>
71/// <li>
72/// <p><a href="https://docs.aws.amazon.com/lambda/latest/dg/with-kafka.html#services-kafka-parms"> Apache Kafka</a></p></li>
73/// <li>
74/// <p><a href="https://docs.aws.amazon.com/lambda/latest/dg/with-documentdb.html#docdb-configuration"> Amazon DocumentDB</a></p></li>
75/// </ul>
76#[derive(::std::clone::Clone, ::std::fmt::Debug)]
77pub struct CreateEventSourceMappingFluentBuilder {
78    handle: ::std::sync::Arc<crate::client::Handle>,
79    inner: crate::operation::create_event_source_mapping::builders::CreateEventSourceMappingInputBuilder,
80    config_override: ::std::option::Option<crate::config::Builder>,
81}
82impl
83    crate::client::customize::internal::CustomizableSend<
84        crate::operation::create_event_source_mapping::CreateEventSourceMappingOutput,
85        crate::operation::create_event_source_mapping::CreateEventSourceMappingError,
86    > for CreateEventSourceMappingFluentBuilder
87{
88    fn send(
89        self,
90        config_override: crate::config::Builder,
91    ) -> crate::client::customize::internal::BoxFuture<
92        crate::client::customize::internal::SendResult<
93            crate::operation::create_event_source_mapping::CreateEventSourceMappingOutput,
94            crate::operation::create_event_source_mapping::CreateEventSourceMappingError,
95        >,
96    > {
97        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
98    }
99}
100impl CreateEventSourceMappingFluentBuilder {
101    /// Creates a new `CreateEventSourceMappingFluentBuilder`.
102    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
103        Self {
104            handle,
105            inner: ::std::default::Default::default(),
106            config_override: ::std::option::Option::None,
107        }
108    }
109    /// Access the CreateEventSourceMapping as a reference.
110    pub fn as_input(&self) -> &crate::operation::create_event_source_mapping::builders::CreateEventSourceMappingInputBuilder {
111        &self.inner
112    }
113    /// Sends the request and returns the response.
114    ///
115    /// If an error occurs, an `SdkError` will be returned with additional details that
116    /// can be matched against.
117    ///
118    /// By default, any retryable failures will be retried twice. Retry behavior
119    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
120    /// set when configuring the client.
121    pub async fn send(
122        self,
123    ) -> ::std::result::Result<
124        crate::operation::create_event_source_mapping::CreateEventSourceMappingOutput,
125        ::aws_smithy_runtime_api::client::result::SdkError<
126            crate::operation::create_event_source_mapping::CreateEventSourceMappingError,
127            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
128        >,
129    > {
130        let input = self
131            .inner
132            .build()
133            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
134        let runtime_plugins = crate::operation::create_event_source_mapping::CreateEventSourceMapping::operation_runtime_plugins(
135            self.handle.runtime_plugins.clone(),
136            &self.handle.conf,
137            self.config_override,
138        );
139        crate::operation::create_event_source_mapping::CreateEventSourceMapping::orchestrate(&runtime_plugins, input).await
140    }
141
142    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
143    pub fn customize(
144        self,
145    ) -> crate::client::customize::CustomizableOperation<
146        crate::operation::create_event_source_mapping::CreateEventSourceMappingOutput,
147        crate::operation::create_event_source_mapping::CreateEventSourceMappingError,
148        Self,
149    > {
150        crate::client::customize::CustomizableOperation::new(self)
151    }
152    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
153        self.set_config_override(::std::option::Option::Some(config_override.into()));
154        self
155    }
156
157    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
158        self.config_override = config_override;
159        self
160    }
161    /// <p>The Amazon Resource Name (ARN) of the event source.</p>
162    /// <ul>
163    /// <li>
164    /// <p><b>Amazon Kinesis</b> – The ARN of the data stream or a stream consumer.</p></li>
165    /// <li>
166    /// <p><b>Amazon DynamoDB Streams</b> – The ARN of the stream.</p></li>
167    /// <li>
168    /// <p><b>Amazon Simple Queue Service</b> – The ARN of the queue.</p></li>
169    /// <li>
170    /// <p><b>Amazon Managed Streaming for Apache Kafka</b> – The ARN of the cluster or the ARN of the VPC connection (for <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#msk-multi-vpc">cross-account event source mappings</a>).</p></li>
171    /// <li>
172    /// <p><b>Amazon MQ</b> – The ARN of the broker.</p></li>
173    /// <li>
174    /// <p><b>Amazon DocumentDB</b> – The ARN of the DocumentDB change stream.</p></li>
175    /// </ul>
176    pub fn event_source_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
177        self.inner = self.inner.event_source_arn(input.into());
178        self
179    }
180    /// <p>The Amazon Resource Name (ARN) of the event source.</p>
181    /// <ul>
182    /// <li>
183    /// <p><b>Amazon Kinesis</b> – The ARN of the data stream or a stream consumer.</p></li>
184    /// <li>
185    /// <p><b>Amazon DynamoDB Streams</b> – The ARN of the stream.</p></li>
186    /// <li>
187    /// <p><b>Amazon Simple Queue Service</b> – The ARN of the queue.</p></li>
188    /// <li>
189    /// <p><b>Amazon Managed Streaming for Apache Kafka</b> – The ARN of the cluster or the ARN of the VPC connection (for <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#msk-multi-vpc">cross-account event source mappings</a>).</p></li>
190    /// <li>
191    /// <p><b>Amazon MQ</b> – The ARN of the broker.</p></li>
192    /// <li>
193    /// <p><b>Amazon DocumentDB</b> – The ARN of the DocumentDB change stream.</p></li>
194    /// </ul>
195    pub fn set_event_source_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
196        self.inner = self.inner.set_event_source_arn(input);
197        self
198    }
199    /// <p>The Amazon Resource Name (ARN) of the event source.</p>
200    /// <ul>
201    /// <li>
202    /// <p><b>Amazon Kinesis</b> – The ARN of the data stream or a stream consumer.</p></li>
203    /// <li>
204    /// <p><b>Amazon DynamoDB Streams</b> – The ARN of the stream.</p></li>
205    /// <li>
206    /// <p><b>Amazon Simple Queue Service</b> – The ARN of the queue.</p></li>
207    /// <li>
208    /// <p><b>Amazon Managed Streaming for Apache Kafka</b> – The ARN of the cluster or the ARN of the VPC connection (for <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#msk-multi-vpc">cross-account event source mappings</a>).</p></li>
209    /// <li>
210    /// <p><b>Amazon MQ</b> – The ARN of the broker.</p></li>
211    /// <li>
212    /// <p><b>Amazon DocumentDB</b> – The ARN of the DocumentDB change stream.</p></li>
213    /// </ul>
214    pub fn get_event_source_arn(&self) -> &::std::option::Option<::std::string::String> {
215        self.inner.get_event_source_arn()
216    }
217    /// <p>The name or ARN of the Lambda function.</p>
218    /// <p class="title"><b>Name formats</b></p>
219    /// <ul>
220    /// <li>
221    /// <p><b>Function name</b> – <code>MyFunction</code>.</p></li>
222    /// <li>
223    /// <p><b>Function ARN</b> – <code>arn:aws:lambda:us-west-2:123456789012:function:MyFunction</code>.</p></li>
224    /// <li>
225    /// <p><b>Version or Alias ARN</b> – <code>arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD</code>.</p></li>
226    /// <li>
227    /// <p><b>Partial ARN</b> – <code>123456789012:function:MyFunction</code>.</p></li>
228    /// </ul>
229    /// <p>The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length.</p>
230    pub fn function_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
231        self.inner = self.inner.function_name(input.into());
232        self
233    }
234    /// <p>The name or ARN of the Lambda function.</p>
235    /// <p class="title"><b>Name formats</b></p>
236    /// <ul>
237    /// <li>
238    /// <p><b>Function name</b> – <code>MyFunction</code>.</p></li>
239    /// <li>
240    /// <p><b>Function ARN</b> – <code>arn:aws:lambda:us-west-2:123456789012:function:MyFunction</code>.</p></li>
241    /// <li>
242    /// <p><b>Version or Alias ARN</b> – <code>arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD</code>.</p></li>
243    /// <li>
244    /// <p><b>Partial ARN</b> – <code>123456789012:function:MyFunction</code>.</p></li>
245    /// </ul>
246    /// <p>The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length.</p>
247    pub fn set_function_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
248        self.inner = self.inner.set_function_name(input);
249        self
250    }
251    /// <p>The name or ARN of the Lambda function.</p>
252    /// <p class="title"><b>Name formats</b></p>
253    /// <ul>
254    /// <li>
255    /// <p><b>Function name</b> – <code>MyFunction</code>.</p></li>
256    /// <li>
257    /// <p><b>Function ARN</b> – <code>arn:aws:lambda:us-west-2:123456789012:function:MyFunction</code>.</p></li>
258    /// <li>
259    /// <p><b>Version or Alias ARN</b> – <code>arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD</code>.</p></li>
260    /// <li>
261    /// <p><b>Partial ARN</b> – <code>123456789012:function:MyFunction</code>.</p></li>
262    /// </ul>
263    /// <p>The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length.</p>
264    pub fn get_function_name(&self) -> &::std::option::Option<::std::string::String> {
265        self.inner.get_function_name()
266    }
267    /// <p>When true, the event source mapping is active. When false, Lambda pauses polling and invocation.</p>
268    /// <p>Default: True</p>
269    pub fn enabled(mut self, input: bool) -> Self {
270        self.inner = self.inner.enabled(input);
271        self
272    }
273    /// <p>When true, the event source mapping is active. When false, Lambda pauses polling and invocation.</p>
274    /// <p>Default: True</p>
275    pub fn set_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
276        self.inner = self.inner.set_enabled(input);
277        self
278    }
279    /// <p>When true, the event source mapping is active. When false, Lambda pauses polling and invocation.</p>
280    /// <p>Default: True</p>
281    pub fn get_enabled(&self) -> &::std::option::Option<bool> {
282        self.inner.get_enabled()
283    }
284    /// <p>The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB).</p>
285    /// <ul>
286    /// <li>
287    /// <p><b>Amazon Kinesis</b> – Default 100. Max 10,000.</p></li>
288    /// <li>
289    /// <p><b>Amazon DynamoDB Streams</b> – Default 100. Max 10,000.</p></li>
290    /// <li>
291    /// <p><b>Amazon Simple Queue Service</b> – Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10.</p></li>
292    /// <li>
293    /// <p><b>Amazon Managed Streaming for Apache Kafka</b> – Default 100. Max 10,000.</p></li>
294    /// <li>
295    /// <p><b>Self-managed Apache Kafka</b> – Default 100. Max 10,000.</p></li>
296    /// <li>
297    /// <p><b>Amazon MQ (ActiveMQ and RabbitMQ)</b> – Default 100. Max 10,000.</p></li>
298    /// <li>
299    /// <p><b>DocumentDB</b> – Default 100. Max 10,000.</p></li>
300    /// </ul>
301    pub fn batch_size(mut self, input: i32) -> Self {
302        self.inner = self.inner.batch_size(input);
303        self
304    }
305    /// <p>The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB).</p>
306    /// <ul>
307    /// <li>
308    /// <p><b>Amazon Kinesis</b> – Default 100. Max 10,000.</p></li>
309    /// <li>
310    /// <p><b>Amazon DynamoDB Streams</b> – Default 100. Max 10,000.</p></li>
311    /// <li>
312    /// <p><b>Amazon Simple Queue Service</b> – Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10.</p></li>
313    /// <li>
314    /// <p><b>Amazon Managed Streaming for Apache Kafka</b> – Default 100. Max 10,000.</p></li>
315    /// <li>
316    /// <p><b>Self-managed Apache Kafka</b> – Default 100. Max 10,000.</p></li>
317    /// <li>
318    /// <p><b>Amazon MQ (ActiveMQ and RabbitMQ)</b> – Default 100. Max 10,000.</p></li>
319    /// <li>
320    /// <p><b>DocumentDB</b> – Default 100. Max 10,000.</p></li>
321    /// </ul>
322    pub fn set_batch_size(mut self, input: ::std::option::Option<i32>) -> Self {
323        self.inner = self.inner.set_batch_size(input);
324        self
325    }
326    /// <p>The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB).</p>
327    /// <ul>
328    /// <li>
329    /// <p><b>Amazon Kinesis</b> – Default 100. Max 10,000.</p></li>
330    /// <li>
331    /// <p><b>Amazon DynamoDB Streams</b> – Default 100. Max 10,000.</p></li>
332    /// <li>
333    /// <p><b>Amazon Simple Queue Service</b> – Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10.</p></li>
334    /// <li>
335    /// <p><b>Amazon Managed Streaming for Apache Kafka</b> – Default 100. Max 10,000.</p></li>
336    /// <li>
337    /// <p><b>Self-managed Apache Kafka</b> – Default 100. Max 10,000.</p></li>
338    /// <li>
339    /// <p><b>Amazon MQ (ActiveMQ and RabbitMQ)</b> – Default 100. Max 10,000.</p></li>
340    /// <li>
341    /// <p><b>DocumentDB</b> – Default 100. Max 10,000.</p></li>
342    /// </ul>
343    pub fn get_batch_size(&self) -> &::std::option::Option<i32> {
344        self.inner.get_batch_size()
345    }
346    /// <p>An object that defines the filter criteria that determine whether Lambda should process an event. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html">Lambda event filtering</a>.</p>
347    pub fn filter_criteria(mut self, input: crate::types::FilterCriteria) -> Self {
348        self.inner = self.inner.filter_criteria(input);
349        self
350    }
351    /// <p>An object that defines the filter criteria that determine whether Lambda should process an event. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html">Lambda event filtering</a>.</p>
352    pub fn set_filter_criteria(mut self, input: ::std::option::Option<crate::types::FilterCriteria>) -> Self {
353        self.inner = self.inner.set_filter_criteria(input);
354        self
355    }
356    /// <p>An object that defines the filter criteria that determine whether Lambda should process an event. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html">Lambda event filtering</a>.</p>
357    pub fn get_filter_criteria(&self) -> &::std::option::Option<crate::types::FilterCriteria> {
358        self.inner.get_filter_criteria()
359    }
360    /// <p>The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function. You can configure <code>MaximumBatchingWindowInSeconds</code> to any value from 0 seconds to 300 seconds in increments of seconds.</p>
361    /// <p>For Kinesis, DynamoDB, and Amazon SQS event sources, the default batching window is 0 seconds. For Amazon MSK, Self-managed Apache Kafka, Amazon MQ, and DocumentDB event sources, the default batching window is 500 ms. Note that because you can only change <code>MaximumBatchingWindowInSeconds</code> in increments of seconds, you cannot revert back to the 500 ms default batching window after you have changed it. To restore the default batching window, you must create a new event source mapping.</p>
362    /// <p>Related setting: For Kinesis, DynamoDB, and Amazon SQS event sources, when you set <code>BatchSize</code> to a value greater than 10, you must set <code>MaximumBatchingWindowInSeconds</code> to at least 1.</p>
363    pub fn maximum_batching_window_in_seconds(mut self, input: i32) -> Self {
364        self.inner = self.inner.maximum_batching_window_in_seconds(input);
365        self
366    }
367    /// <p>The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function. You can configure <code>MaximumBatchingWindowInSeconds</code> to any value from 0 seconds to 300 seconds in increments of seconds.</p>
368    /// <p>For Kinesis, DynamoDB, and Amazon SQS event sources, the default batching window is 0 seconds. For Amazon MSK, Self-managed Apache Kafka, Amazon MQ, and DocumentDB event sources, the default batching window is 500 ms. Note that because you can only change <code>MaximumBatchingWindowInSeconds</code> in increments of seconds, you cannot revert back to the 500 ms default batching window after you have changed it. To restore the default batching window, you must create a new event source mapping.</p>
369    /// <p>Related setting: For Kinesis, DynamoDB, and Amazon SQS event sources, when you set <code>BatchSize</code> to a value greater than 10, you must set <code>MaximumBatchingWindowInSeconds</code> to at least 1.</p>
370    pub fn set_maximum_batching_window_in_seconds(mut self, input: ::std::option::Option<i32>) -> Self {
371        self.inner = self.inner.set_maximum_batching_window_in_seconds(input);
372        self
373    }
374    /// <p>The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function. You can configure <code>MaximumBatchingWindowInSeconds</code> to any value from 0 seconds to 300 seconds in increments of seconds.</p>
375    /// <p>For Kinesis, DynamoDB, and Amazon SQS event sources, the default batching window is 0 seconds. For Amazon MSK, Self-managed Apache Kafka, Amazon MQ, and DocumentDB event sources, the default batching window is 500 ms. Note that because you can only change <code>MaximumBatchingWindowInSeconds</code> in increments of seconds, you cannot revert back to the 500 ms default batching window after you have changed it. To restore the default batching window, you must create a new event source mapping.</p>
376    /// <p>Related setting: For Kinesis, DynamoDB, and Amazon SQS event sources, when you set <code>BatchSize</code> to a value greater than 10, you must set <code>MaximumBatchingWindowInSeconds</code> to at least 1.</p>
377    pub fn get_maximum_batching_window_in_seconds(&self) -> &::std::option::Option<i32> {
378        self.inner.get_maximum_batching_window_in_seconds()
379    }
380    /// <p>(Kinesis and DynamoDB Streams only) The number of batches to process from each shard concurrently.</p>
381    pub fn parallelization_factor(mut self, input: i32) -> Self {
382        self.inner = self.inner.parallelization_factor(input);
383        self
384    }
385    /// <p>(Kinesis and DynamoDB Streams only) The number of batches to process from each shard concurrently.</p>
386    pub fn set_parallelization_factor(mut self, input: ::std::option::Option<i32>) -> Self {
387        self.inner = self.inner.set_parallelization_factor(input);
388        self
389    }
390    /// <p>(Kinesis and DynamoDB Streams only) The number of batches to process from each shard concurrently.</p>
391    pub fn get_parallelization_factor(&self) -> &::std::option::Option<i32> {
392        self.inner.get_parallelization_factor()
393    }
394    /// <p>The position in a stream from which to start reading. Required for Amazon Kinesis and Amazon DynamoDB Stream event sources. <code>AT_TIMESTAMP</code> is supported only for Amazon Kinesis streams, Amazon DocumentDB, Amazon MSK, and self-managed Apache Kafka.</p>
395    pub fn starting_position(mut self, input: crate::types::EventSourcePosition) -> Self {
396        self.inner = self.inner.starting_position(input);
397        self
398    }
399    /// <p>The position in a stream from which to start reading. Required for Amazon Kinesis and Amazon DynamoDB Stream event sources. <code>AT_TIMESTAMP</code> is supported only for Amazon Kinesis streams, Amazon DocumentDB, Amazon MSK, and self-managed Apache Kafka.</p>
400    pub fn set_starting_position(mut self, input: ::std::option::Option<crate::types::EventSourcePosition>) -> Self {
401        self.inner = self.inner.set_starting_position(input);
402        self
403    }
404    /// <p>The position in a stream from which to start reading. Required for Amazon Kinesis and Amazon DynamoDB Stream event sources. <code>AT_TIMESTAMP</code> is supported only for Amazon Kinesis streams, Amazon DocumentDB, Amazon MSK, and self-managed Apache Kafka.</p>
405    pub fn get_starting_position(&self) -> &::std::option::Option<crate::types::EventSourcePosition> {
406        self.inner.get_starting_position()
407    }
408    /// <p>With <code>StartingPosition</code> set to <code>AT_TIMESTAMP</code>, the time from which to start reading. <code>StartingPositionTimestamp</code> cannot be in the future.</p>
409    pub fn starting_position_timestamp(mut self, input: ::aws_smithy_types::DateTime) -> Self {
410        self.inner = self.inner.starting_position_timestamp(input);
411        self
412    }
413    /// <p>With <code>StartingPosition</code> set to <code>AT_TIMESTAMP</code>, the time from which to start reading. <code>StartingPositionTimestamp</code> cannot be in the future.</p>
414    pub fn set_starting_position_timestamp(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
415        self.inner = self.inner.set_starting_position_timestamp(input);
416        self
417    }
418    /// <p>With <code>StartingPosition</code> set to <code>AT_TIMESTAMP</code>, the time from which to start reading. <code>StartingPositionTimestamp</code> cannot be in the future.</p>
419    pub fn get_starting_position_timestamp(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
420        self.inner.get_starting_position_timestamp()
421    }
422    /// <p>(Kinesis, DynamoDB Streams, Amazon MSK, and self-managed Kafka only) A configuration object that specifies the destination of an event after Lambda processes it.</p>
423    pub fn destination_config(mut self, input: crate::types::DestinationConfig) -> Self {
424        self.inner = self.inner.destination_config(input);
425        self
426    }
427    /// <p>(Kinesis, DynamoDB Streams, Amazon MSK, and self-managed Kafka only) A configuration object that specifies the destination of an event after Lambda processes it.</p>
428    pub fn set_destination_config(mut self, input: ::std::option::Option<crate::types::DestinationConfig>) -> Self {
429        self.inner = self.inner.set_destination_config(input);
430        self
431    }
432    /// <p>(Kinesis, DynamoDB Streams, Amazon MSK, and self-managed Kafka only) A configuration object that specifies the destination of an event after Lambda processes it.</p>
433    pub fn get_destination_config(&self) -> &::std::option::Option<crate::types::DestinationConfig> {
434        self.inner.get_destination_config()
435    }
436    /// <p>(Kinesis and DynamoDB Streams only) Discard records older than the specified age. The default value is infinite (-1).</p>
437    pub fn maximum_record_age_in_seconds(mut self, input: i32) -> Self {
438        self.inner = self.inner.maximum_record_age_in_seconds(input);
439        self
440    }
441    /// <p>(Kinesis and DynamoDB Streams only) Discard records older than the specified age. The default value is infinite (-1).</p>
442    pub fn set_maximum_record_age_in_seconds(mut self, input: ::std::option::Option<i32>) -> Self {
443        self.inner = self.inner.set_maximum_record_age_in_seconds(input);
444        self
445    }
446    /// <p>(Kinesis and DynamoDB Streams only) Discard records older than the specified age. The default value is infinite (-1).</p>
447    pub fn get_maximum_record_age_in_seconds(&self) -> &::std::option::Option<i32> {
448        self.inner.get_maximum_record_age_in_seconds()
449    }
450    /// <p>(Kinesis and DynamoDB Streams only) If the function returns an error, split the batch in two and retry.</p>
451    pub fn bisect_batch_on_function_error(mut self, input: bool) -> Self {
452        self.inner = self.inner.bisect_batch_on_function_error(input);
453        self
454    }
455    /// <p>(Kinesis and DynamoDB Streams only) If the function returns an error, split the batch in two and retry.</p>
456    pub fn set_bisect_batch_on_function_error(mut self, input: ::std::option::Option<bool>) -> Self {
457        self.inner = self.inner.set_bisect_batch_on_function_error(input);
458        self
459    }
460    /// <p>(Kinesis and DynamoDB Streams only) If the function returns an error, split the batch in two and retry.</p>
461    pub fn get_bisect_batch_on_function_error(&self) -> &::std::option::Option<bool> {
462        self.inner.get_bisect_batch_on_function_error()
463    }
464    /// <p>(Kinesis and DynamoDB Streams only) Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires.</p>
465    pub fn maximum_retry_attempts(mut self, input: i32) -> Self {
466        self.inner = self.inner.maximum_retry_attempts(input);
467        self
468    }
469    /// <p>(Kinesis and DynamoDB Streams only) Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires.</p>
470    pub fn set_maximum_retry_attempts(mut self, input: ::std::option::Option<i32>) -> Self {
471        self.inner = self.inner.set_maximum_retry_attempts(input);
472        self
473    }
474    /// <p>(Kinesis and DynamoDB Streams only) Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires.</p>
475    pub fn get_maximum_retry_attempts(&self) -> &::std::option::Option<i32> {
476        self.inner.get_maximum_retry_attempts()
477    }
478    ///
479    /// Adds a key-value pair to `Tags`.
480    ///
481    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
482    ///
483    /// <p>A list of tags to apply to the event source mapping.</p>
484    pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
485        self.inner = self.inner.tags(k.into(), v.into());
486        self
487    }
488    /// <p>A list of tags to apply to the event source mapping.</p>
489    pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
490        self.inner = self.inner.set_tags(input);
491        self
492    }
493    /// <p>A list of tags to apply to the event source mapping.</p>
494    pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
495        self.inner.get_tags()
496    }
497    /// <p>(Kinesis and DynamoDB Streams only) The duration in seconds of a processing window for DynamoDB and Kinesis Streams event sources. A value of 0 seconds indicates no tumbling window.</p>
498    pub fn tumbling_window_in_seconds(mut self, input: i32) -> Self {
499        self.inner = self.inner.tumbling_window_in_seconds(input);
500        self
501    }
502    /// <p>(Kinesis and DynamoDB Streams only) The duration in seconds of a processing window for DynamoDB and Kinesis Streams event sources. A value of 0 seconds indicates no tumbling window.</p>
503    pub fn set_tumbling_window_in_seconds(mut self, input: ::std::option::Option<i32>) -> Self {
504        self.inner = self.inner.set_tumbling_window_in_seconds(input);
505        self
506    }
507    /// <p>(Kinesis and DynamoDB Streams only) The duration in seconds of a processing window for DynamoDB and Kinesis Streams event sources. A value of 0 seconds indicates no tumbling window.</p>
508    pub fn get_tumbling_window_in_seconds(&self) -> &::std::option::Option<i32> {
509        self.inner.get_tumbling_window_in_seconds()
510    }
511    ///
512    /// Appends an item to `Topics`.
513    ///
514    /// To override the contents of this collection use [`set_topics`](Self::set_topics).
515    ///
516    /// <p>The name of the Kafka topic.</p>
517    pub fn topics(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
518        self.inner = self.inner.topics(input.into());
519        self
520    }
521    /// <p>The name of the Kafka topic.</p>
522    pub fn set_topics(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
523        self.inner = self.inner.set_topics(input);
524        self
525    }
526    /// <p>The name of the Kafka topic.</p>
527    pub fn get_topics(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
528        self.inner.get_topics()
529    }
530    ///
531    /// Appends an item to `Queues`.
532    ///
533    /// To override the contents of this collection use [`set_queues`](Self::set_queues).
534    ///
535    /// <p>(MQ) The name of the Amazon MQ broker destination queue to consume.</p>
536    pub fn queues(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
537        self.inner = self.inner.queues(input.into());
538        self
539    }
540    /// <p>(MQ) The name of the Amazon MQ broker destination queue to consume.</p>
541    pub fn set_queues(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
542        self.inner = self.inner.set_queues(input);
543        self
544    }
545    /// <p>(MQ) The name of the Amazon MQ broker destination queue to consume.</p>
546    pub fn get_queues(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
547        self.inner.get_queues()
548    }
549    ///
550    /// Appends an item to `SourceAccessConfigurations`.
551    ///
552    /// To override the contents of this collection use [`set_source_access_configurations`](Self::set_source_access_configurations).
553    ///
554    /// <p>An array of authentication protocols or VPC components required to secure your event source.</p>
555    pub fn source_access_configurations(mut self, input: crate::types::SourceAccessConfiguration) -> Self {
556        self.inner = self.inner.source_access_configurations(input);
557        self
558    }
559    /// <p>An array of authentication protocols or VPC components required to secure your event source.</p>
560    pub fn set_source_access_configurations(
561        mut self,
562        input: ::std::option::Option<::std::vec::Vec<crate::types::SourceAccessConfiguration>>,
563    ) -> Self {
564        self.inner = self.inner.set_source_access_configurations(input);
565        self
566    }
567    /// <p>An array of authentication protocols or VPC components required to secure your event source.</p>
568    pub fn get_source_access_configurations(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::SourceAccessConfiguration>> {
569        self.inner.get_source_access_configurations()
570    }
571    /// <p>The self-managed Apache Kafka cluster to receive records from.</p>
572    pub fn self_managed_event_source(mut self, input: crate::types::SelfManagedEventSource) -> Self {
573        self.inner = self.inner.self_managed_event_source(input);
574        self
575    }
576    /// <p>The self-managed Apache Kafka cluster to receive records from.</p>
577    pub fn set_self_managed_event_source(mut self, input: ::std::option::Option<crate::types::SelfManagedEventSource>) -> Self {
578        self.inner = self.inner.set_self_managed_event_source(input);
579        self
580    }
581    /// <p>The self-managed Apache Kafka cluster to receive records from.</p>
582    pub fn get_self_managed_event_source(&self) -> &::std::option::Option<crate::types::SelfManagedEventSource> {
583        self.inner.get_self_managed_event_source()
584    }
585    ///
586    /// Appends an item to `FunctionResponseTypes`.
587    ///
588    /// To override the contents of this collection use [`set_function_response_types`](Self::set_function_response_types).
589    ///
590    /// <p>(Kinesis, DynamoDB Streams, and Amazon SQS) A list of current response type enums applied to the event source mapping.</p>
591    pub fn function_response_types(mut self, input: crate::types::FunctionResponseType) -> Self {
592        self.inner = self.inner.function_response_types(input);
593        self
594    }
595    /// <p>(Kinesis, DynamoDB Streams, and Amazon SQS) A list of current response type enums applied to the event source mapping.</p>
596    pub fn set_function_response_types(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::FunctionResponseType>>) -> Self {
597        self.inner = self.inner.set_function_response_types(input);
598        self
599    }
600    /// <p>(Kinesis, DynamoDB Streams, and Amazon SQS) A list of current response type enums applied to the event source mapping.</p>
601    pub fn get_function_response_types(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::FunctionResponseType>> {
602        self.inner.get_function_response_types()
603    }
604    /// <p>Specific configuration settings for an Amazon Managed Streaming for Apache Kafka (Amazon MSK) event source.</p>
605    pub fn amazon_managed_kafka_event_source_config(mut self, input: crate::types::AmazonManagedKafkaEventSourceConfig) -> Self {
606        self.inner = self.inner.amazon_managed_kafka_event_source_config(input);
607        self
608    }
609    /// <p>Specific configuration settings for an Amazon Managed Streaming for Apache Kafka (Amazon MSK) event source.</p>
610    pub fn set_amazon_managed_kafka_event_source_config(
611        mut self,
612        input: ::std::option::Option<crate::types::AmazonManagedKafkaEventSourceConfig>,
613    ) -> Self {
614        self.inner = self.inner.set_amazon_managed_kafka_event_source_config(input);
615        self
616    }
617    /// <p>Specific configuration settings for an Amazon Managed Streaming for Apache Kafka (Amazon MSK) event source.</p>
618    pub fn get_amazon_managed_kafka_event_source_config(&self) -> &::std::option::Option<crate::types::AmazonManagedKafkaEventSourceConfig> {
619        self.inner.get_amazon_managed_kafka_event_source_config()
620    }
621    /// <p>Specific configuration settings for a self-managed Apache Kafka event source.</p>
622    pub fn self_managed_kafka_event_source_config(mut self, input: crate::types::SelfManagedKafkaEventSourceConfig) -> Self {
623        self.inner = self.inner.self_managed_kafka_event_source_config(input);
624        self
625    }
626    /// <p>Specific configuration settings for a self-managed Apache Kafka event source.</p>
627    pub fn set_self_managed_kafka_event_source_config(
628        mut self,
629        input: ::std::option::Option<crate::types::SelfManagedKafkaEventSourceConfig>,
630    ) -> Self {
631        self.inner = self.inner.set_self_managed_kafka_event_source_config(input);
632        self
633    }
634    /// <p>Specific configuration settings for a self-managed Apache Kafka event source.</p>
635    pub fn get_self_managed_kafka_event_source_config(&self) -> &::std::option::Option<crate::types::SelfManagedKafkaEventSourceConfig> {
636        self.inner.get_self_managed_kafka_event_source_config()
637    }
638    /// <p>(Amazon SQS only) The scaling configuration for the event source. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-max-concurrency">Configuring maximum concurrency for Amazon SQS event sources</a>.</p>
639    pub fn scaling_config(mut self, input: crate::types::ScalingConfig) -> Self {
640        self.inner = self.inner.scaling_config(input);
641        self
642    }
643    /// <p>(Amazon SQS only) The scaling configuration for the event source. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-max-concurrency">Configuring maximum concurrency for Amazon SQS event sources</a>.</p>
644    pub fn set_scaling_config(mut self, input: ::std::option::Option<crate::types::ScalingConfig>) -> Self {
645        self.inner = self.inner.set_scaling_config(input);
646        self
647    }
648    /// <p>(Amazon SQS only) The scaling configuration for the event source. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-max-concurrency">Configuring maximum concurrency for Amazon SQS event sources</a>.</p>
649    pub fn get_scaling_config(&self) -> &::std::option::Option<crate::types::ScalingConfig> {
650        self.inner.get_scaling_config()
651    }
652    /// <p>Specific configuration settings for a DocumentDB event source.</p>
653    pub fn document_db_event_source_config(mut self, input: crate::types::DocumentDbEventSourceConfig) -> Self {
654        self.inner = self.inner.document_db_event_source_config(input);
655        self
656    }
657    /// <p>Specific configuration settings for a DocumentDB event source.</p>
658    pub fn set_document_db_event_source_config(mut self, input: ::std::option::Option<crate::types::DocumentDbEventSourceConfig>) -> Self {
659        self.inner = self.inner.set_document_db_event_source_config(input);
660        self
661    }
662    /// <p>Specific configuration settings for a DocumentDB event source.</p>
663    pub fn get_document_db_event_source_config(&self) -> &::std::option::Option<crate::types::DocumentDbEventSourceConfig> {
664        self.inner.get_document_db_event_source_config()
665    }
666    /// <p>The ARN of the Key Management Service (KMS) customer managed key that Lambda uses to encrypt your function's <a href="https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html#filtering-basics">filter criteria</a>. By default, Lambda does not encrypt your filter criteria object. Specify this property to encrypt data using your own customer managed key.</p>
667    pub fn kms_key_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
668        self.inner = self.inner.kms_key_arn(input.into());
669        self
670    }
671    /// <p>The ARN of the Key Management Service (KMS) customer managed key that Lambda uses to encrypt your function's <a href="https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html#filtering-basics">filter criteria</a>. By default, Lambda does not encrypt your filter criteria object. Specify this property to encrypt data using your own customer managed key.</p>
672    pub fn set_kms_key_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
673        self.inner = self.inner.set_kms_key_arn(input);
674        self
675    }
676    /// <p>The ARN of the Key Management Service (KMS) customer managed key that Lambda uses to encrypt your function's <a href="https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html#filtering-basics">filter criteria</a>. By default, Lambda does not encrypt your filter criteria object. Specify this property to encrypt data using your own customer managed key.</p>
677    pub fn get_kms_key_arn(&self) -> &::std::option::Option<::std::string::String> {
678        self.inner.get_kms_key_arn()
679    }
680    /// <p>The metrics configuration for your event source. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics-types.html#event-source-mapping-metrics">Event source mapping metrics</a>.</p>
681    pub fn metrics_config(mut self, input: crate::types::EventSourceMappingMetricsConfig) -> Self {
682        self.inner = self.inner.metrics_config(input);
683        self
684    }
685    /// <p>The metrics configuration for your event source. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics-types.html#event-source-mapping-metrics">Event source mapping metrics</a>.</p>
686    pub fn set_metrics_config(mut self, input: ::std::option::Option<crate::types::EventSourceMappingMetricsConfig>) -> Self {
687        self.inner = self.inner.set_metrics_config(input);
688        self
689    }
690    /// <p>The metrics configuration for your event source. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics-types.html#event-source-mapping-metrics">Event source mapping metrics</a>.</p>
691    pub fn get_metrics_config(&self) -> &::std::option::Option<crate::types::EventSourceMappingMetricsConfig> {
692        self.inner.get_metrics_config()
693    }
694    /// <p>(Amazon MSK and self-managed Apache Kafka only) The provisioned mode configuration for the event source. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html#invocation-eventsourcemapping-provisioned-mode">provisioned mode</a>.</p>
695    pub fn provisioned_poller_config(mut self, input: crate::types::ProvisionedPollerConfig) -> Self {
696        self.inner = self.inner.provisioned_poller_config(input);
697        self
698    }
699    /// <p>(Amazon MSK and self-managed Apache Kafka only) The provisioned mode configuration for the event source. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html#invocation-eventsourcemapping-provisioned-mode">provisioned mode</a>.</p>
700    pub fn set_provisioned_poller_config(mut self, input: ::std::option::Option<crate::types::ProvisionedPollerConfig>) -> Self {
701        self.inner = self.inner.set_provisioned_poller_config(input);
702        self
703    }
704    /// <p>(Amazon MSK and self-managed Apache Kafka only) The provisioned mode configuration for the event source. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html#invocation-eventsourcemapping-provisioned-mode">provisioned mode</a>.</p>
705    pub fn get_provisioned_poller_config(&self) -> &::std::option::Option<crate::types::ProvisionedPollerConfig> {
706        self.inner.get_provisioned_poller_config()
707    }
708}