/** * 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 #include #include namespace Aws { namespace Lambda { namespace Model { /** */ class CreateEventSourceMappingRequest : public LambdaRequest { public: AWS_LAMBDA_API CreateEventSourceMappingRequest(); // 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 "CreateEventSourceMapping"; } AWS_LAMBDA_API Aws::String SerializePayload() const override; /** *

The Amazon Resource Name (ARN) of the event source.

  • * Amazon Kinesis – The ARN of the data stream or a stream consumer.

    *
  • Amazon DynamoDB Streams – The ARN of the stream.

  • *
  • Amazon Simple Queue Service – The ARN of the queue.

  • *
  • Amazon Managed Streaming for Apache Kafka – The ARN of the * cluster.

  • Amazon MQ – The ARN of the broker.

  • *
  • Amazon DocumentDB – The ARN of the DocumentDB change stream.

    *
*/ inline const Aws::String& GetEventSourceArn() const{ return m_eventSourceArn; } /** *

The Amazon Resource Name (ARN) of the event source.

  • * Amazon Kinesis – The ARN of the data stream or a stream consumer.

    *
  • Amazon DynamoDB Streams – The ARN of the stream.

  • *
  • Amazon Simple Queue Service – The ARN of the queue.

  • *
  • Amazon Managed Streaming for Apache Kafka – The ARN of the * cluster.

  • Amazon MQ – The ARN of the broker.

  • *
  • Amazon DocumentDB – The ARN of the DocumentDB change stream.

    *
*/ inline bool EventSourceArnHasBeenSet() const { return m_eventSourceArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the event source.

  • * Amazon Kinesis – The ARN of the data stream or a stream consumer.

    *
  • Amazon DynamoDB Streams – The ARN of the stream.

  • *
  • Amazon Simple Queue Service – The ARN of the queue.

  • *
  • Amazon Managed Streaming for Apache Kafka – The ARN of the * cluster.

  • Amazon MQ – The ARN of the broker.

  • *
  • Amazon DocumentDB – The ARN of the DocumentDB change stream.

    *
*/ inline void SetEventSourceArn(const Aws::String& value) { m_eventSourceArnHasBeenSet = true; m_eventSourceArn = value; } /** *

The Amazon Resource Name (ARN) of the event source.

  • * Amazon Kinesis – The ARN of the data stream or a stream consumer.

    *
  • Amazon DynamoDB Streams – The ARN of the stream.

  • *
  • Amazon Simple Queue Service – The ARN of the queue.

  • *
  • Amazon Managed Streaming for Apache Kafka – The ARN of the * cluster.

  • Amazon MQ – The ARN of the broker.

  • *
  • Amazon DocumentDB – The ARN of the DocumentDB change stream.

    *
*/ inline void SetEventSourceArn(Aws::String&& value) { m_eventSourceArnHasBeenSet = true; m_eventSourceArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the event source.

  • * Amazon Kinesis – The ARN of the data stream or a stream consumer.

    *
  • Amazon DynamoDB Streams – The ARN of the stream.

  • *
  • Amazon Simple Queue Service – The ARN of the queue.

  • *
  • Amazon Managed Streaming for Apache Kafka – The ARN of the * cluster.

  • Amazon MQ – The ARN of the broker.

  • *
  • Amazon DocumentDB – The ARN of the DocumentDB change stream.

    *
*/ inline void SetEventSourceArn(const char* value) { m_eventSourceArnHasBeenSet = true; m_eventSourceArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the event source.

  • * Amazon Kinesis – The ARN of the data stream or a stream consumer.

    *
  • Amazon DynamoDB Streams – The ARN of the stream.

  • *
  • Amazon Simple Queue Service – The ARN of the queue.

  • *
  • Amazon Managed Streaming for Apache Kafka – The ARN of the * cluster.

  • Amazon MQ – The ARN of the broker.

  • *
  • Amazon DocumentDB – The ARN of the DocumentDB change stream.

    *
*/ inline CreateEventSourceMappingRequest& WithEventSourceArn(const Aws::String& value) { SetEventSourceArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the event source.

  • * Amazon Kinesis – The ARN of the data stream or a stream consumer.

    *
  • Amazon DynamoDB Streams – The ARN of the stream.

  • *
  • Amazon Simple Queue Service – The ARN of the queue.

  • *
  • Amazon Managed Streaming for Apache Kafka – The ARN of the * cluster.

  • Amazon MQ – The ARN of the broker.

  • *
  • Amazon DocumentDB – The ARN of the DocumentDB change stream.

    *
*/ inline CreateEventSourceMappingRequest& WithEventSourceArn(Aws::String&& value) { SetEventSourceArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the event source.

  • * Amazon Kinesis – The ARN of the data stream or a stream consumer.

    *
  • Amazon DynamoDB Streams – The ARN of the stream.

  • *
  • Amazon Simple Queue Service – The ARN of the queue.

  • *
  • Amazon Managed Streaming for Apache Kafka – The ARN of the * cluster.

  • Amazon MQ – The ARN of the broker.

  • *
  • Amazon DocumentDB – The ARN of the DocumentDB change stream.

    *
*/ inline CreateEventSourceMappingRequest& WithEventSourceArn(const char* value) { SetEventSourceArn(value); return *this;} /** *

The name of the Lambda function.

Name formats *

  • Function nameMyFunction.

  • *
  • Function ARN – * arn:aws:lambda:us-west-2:123456789012:function:MyFunction.

    *
  • Version or Alias ARN – * arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD.

    *
  • Partial ARN – * 123456789012:function:MyFunction.

The length * constraint applies only to the full ARN. If you specify only the function name, * it's limited to 64 characters in length.

*/ inline const Aws::String& GetFunctionName() const{ return m_functionName; } /** *

The name of the Lambda function.

Name formats *

  • Function nameMyFunction.

  • *
  • Function ARN – * arn:aws:lambda:us-west-2:123456789012:function:MyFunction.

    *
  • Version or Alias ARN – * arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD.

    *
  • Partial ARN – * 123456789012:function:MyFunction.

The length * constraint applies only to the full ARN. If you specify only the function name, * it's limited to 64 characters in length.

*/ inline bool FunctionNameHasBeenSet() const { return m_functionNameHasBeenSet; } /** *

The name of the Lambda function.

Name formats *

  • Function nameMyFunction.

  • *
  • Function ARN – * arn:aws:lambda:us-west-2:123456789012:function:MyFunction.

    *
  • Version or Alias ARN – * arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD.

    *
  • Partial ARN – * 123456789012:function:MyFunction.

The length * constraint applies only to the full ARN. If you specify only the function name, * it's limited to 64 characters in length.

*/ inline void SetFunctionName(const Aws::String& value) { m_functionNameHasBeenSet = true; m_functionName = value; } /** *

The name of the Lambda function.

Name formats *

  • Function nameMyFunction.

  • *
  • Function ARN – * arn:aws:lambda:us-west-2:123456789012:function:MyFunction.

    *
  • Version or Alias ARN – * arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD.

    *
  • Partial ARN – * 123456789012:function:MyFunction.

The length * constraint applies only to the full ARN. If you specify only the function name, * it's limited to 64 characters in length.

*/ inline void SetFunctionName(Aws::String&& value) { m_functionNameHasBeenSet = true; m_functionName = std::move(value); } /** *

The name of the Lambda function.

Name formats *

  • Function nameMyFunction.

  • *
  • Function ARN – * arn:aws:lambda:us-west-2:123456789012:function:MyFunction.

    *
  • Version or Alias ARN – * arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD.

    *
  • Partial ARN – * 123456789012:function:MyFunction.

The length * constraint applies only to the full ARN. If you specify only the function name, * it's limited to 64 characters in length.

*/ inline void SetFunctionName(const char* value) { m_functionNameHasBeenSet = true; m_functionName.assign(value); } /** *

The name of the Lambda function.

Name formats *

  • Function nameMyFunction.

  • *
  • Function ARN – * arn:aws:lambda:us-west-2:123456789012:function:MyFunction.

    *
  • Version or Alias ARN – * arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD.

    *
  • Partial ARN – * 123456789012:function:MyFunction.

The length * constraint applies only to the full ARN. If you specify only the function name, * it's limited to 64 characters in length.

*/ inline CreateEventSourceMappingRequest& WithFunctionName(const Aws::String& value) { SetFunctionName(value); return *this;} /** *

The name of the Lambda function.

Name formats *

  • Function nameMyFunction.

  • *
  • Function ARN – * arn:aws:lambda:us-west-2:123456789012:function:MyFunction.

    *
  • Version or Alias ARN – * arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD.

    *
  • Partial ARN – * 123456789012:function:MyFunction.

The length * constraint applies only to the full ARN. If you specify only the function name, * it's limited to 64 characters in length.

*/ inline CreateEventSourceMappingRequest& WithFunctionName(Aws::String&& value) { SetFunctionName(std::move(value)); return *this;} /** *

The name of the Lambda function.

Name formats *

  • Function nameMyFunction.

  • *
  • Function ARN – * arn:aws:lambda:us-west-2:123456789012:function:MyFunction.

    *
  • Version or Alias ARN – * arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD.

    *
  • Partial ARN – * 123456789012:function:MyFunction.

The length * constraint applies only to the full ARN. If you specify only the function name, * it's limited to 64 characters in length.

*/ inline CreateEventSourceMappingRequest& WithFunctionName(const char* value) { SetFunctionName(value); return *this;} /** *

When true, the event source mapping is active. When false, Lambda pauses * polling and invocation.

Default: True

*/ inline bool GetEnabled() const{ return m_enabled; } /** *

When true, the event source mapping is active. When false, Lambda pauses * polling and invocation.

Default: True

*/ inline bool EnabledHasBeenSet() const { return m_enabledHasBeenSet; } /** *

When true, the event source mapping is active. When false, Lambda pauses * polling and invocation.

Default: True

*/ inline void SetEnabled(bool value) { m_enabledHasBeenSet = true; m_enabled = value; } /** *

When true, the event source mapping is active. When false, Lambda pauses * polling and invocation.

Default: True

*/ inline CreateEventSourceMappingRequest& WithEnabled(bool value) { SetEnabled(value); return *this;} /** *

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).

  • Amazon Kinesis – Default * 100. Max 10,000.

  • Amazon DynamoDB Streams – Default * 100. Max 10,000.

  • Amazon Simple Queue Service – Default * 10. For standard queues the max is 10,000. For FIFO queues the max is 10.

    *
  • Amazon Managed Streaming for Apache Kafka – Default 100. * Max 10,000.

  • Self-managed Apache Kafka – Default 100. * Max 10,000.

  • Amazon MQ (ActiveMQ and RabbitMQ) – * Default 100. Max 10,000.

  • DocumentDB – Default 100. Max * 10,000.

*/ inline int GetBatchSize() const{ return m_batchSize; } /** *

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).

  • Amazon Kinesis – Default * 100. Max 10,000.

  • Amazon DynamoDB Streams – Default * 100. Max 10,000.

  • Amazon Simple Queue Service – Default * 10. For standard queues the max is 10,000. For FIFO queues the max is 10.

    *
  • Amazon Managed Streaming for Apache Kafka – Default 100. * Max 10,000.

  • Self-managed Apache Kafka – Default 100. * Max 10,000.

  • Amazon MQ (ActiveMQ and RabbitMQ) – * Default 100. Max 10,000.

  • DocumentDB – Default 100. Max * 10,000.

*/ inline bool BatchSizeHasBeenSet() const { return m_batchSizeHasBeenSet; } /** *

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).

  • Amazon Kinesis – Default * 100. Max 10,000.

  • Amazon DynamoDB Streams – Default * 100. Max 10,000.

  • Amazon Simple Queue Service – Default * 10. For standard queues the max is 10,000. For FIFO queues the max is 10.

    *
  • Amazon Managed Streaming for Apache Kafka – Default 100. * Max 10,000.

  • Self-managed Apache Kafka – Default 100. * Max 10,000.

  • Amazon MQ (ActiveMQ and RabbitMQ) – * Default 100. Max 10,000.

  • DocumentDB – Default 100. Max * 10,000.

*/ inline void SetBatchSize(int value) { m_batchSizeHasBeenSet = true; m_batchSize = value; } /** *

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).

  • Amazon Kinesis – Default * 100. Max 10,000.

  • Amazon DynamoDB Streams – Default * 100. Max 10,000.

  • Amazon Simple Queue Service – Default * 10. For standard queues the max is 10,000. For FIFO queues the max is 10.

    *
  • Amazon Managed Streaming for Apache Kafka – Default 100. * Max 10,000.

  • Self-managed Apache Kafka – Default 100. * Max 10,000.

  • Amazon MQ (ActiveMQ and RabbitMQ) – * Default 100. Max 10,000.

  • DocumentDB – Default 100. Max * 10,000.

*/ inline CreateEventSourceMappingRequest& WithBatchSize(int value) { SetBatchSize(value); return *this;} /** *

An object that defines the filter criteria that determine whether Lambda * should process an event. For more information, see Lambda * event filtering.

*/ inline const FilterCriteria& GetFilterCriteria() const{ return m_filterCriteria; } /** *

An object that defines the filter criteria that determine whether Lambda * should process an event. For more information, see Lambda * event filtering.

*/ inline bool FilterCriteriaHasBeenSet() const { return m_filterCriteriaHasBeenSet; } /** *

An object that defines the filter criteria that determine whether Lambda * should process an event. For more information, see Lambda * event filtering.

*/ inline void SetFilterCriteria(const FilterCriteria& value) { m_filterCriteriaHasBeenSet = true; m_filterCriteria = value; } /** *

An object that defines the filter criteria that determine whether Lambda * should process an event. For more information, see Lambda * event filtering.

*/ inline void SetFilterCriteria(FilterCriteria&& value) { m_filterCriteriaHasBeenSet = true; m_filterCriteria = std::move(value); } /** *

An object that defines the filter criteria that determine whether Lambda * should process an event. For more information, see Lambda * event filtering.

*/ inline CreateEventSourceMappingRequest& WithFilterCriteria(const FilterCriteria& value) { SetFilterCriteria(value); return *this;} /** *

An object that defines the filter criteria that determine whether Lambda * should process an event. For more information, see Lambda * event filtering.

*/ inline CreateEventSourceMappingRequest& WithFilterCriteria(FilterCriteria&& value) { SetFilterCriteria(std::move(value)); return *this;} /** *

The maximum amount of time, in seconds, that Lambda spends gathering records * before invoking the function. You can configure * MaximumBatchingWindowInSeconds to any value from 0 seconds to 300 * seconds in increments of seconds.

For streams 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 * MaximumBatchingWindowInSeconds 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.

Related setting: For streams and Amazon SQS event sources, when * you set BatchSize to a value greater than 10, you must set * MaximumBatchingWindowInSeconds to at least 1.

*/ inline int GetMaximumBatchingWindowInSeconds() const{ return m_maximumBatchingWindowInSeconds; } /** *

The maximum amount of time, in seconds, that Lambda spends gathering records * before invoking the function. You can configure * MaximumBatchingWindowInSeconds to any value from 0 seconds to 300 * seconds in increments of seconds.

For streams 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 * MaximumBatchingWindowInSeconds 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.

Related setting: For streams and Amazon SQS event sources, when * you set BatchSize to a value greater than 10, you must set * MaximumBatchingWindowInSeconds to at least 1.

*/ inline bool MaximumBatchingWindowInSecondsHasBeenSet() const { return m_maximumBatchingWindowInSecondsHasBeenSet; } /** *

The maximum amount of time, in seconds, that Lambda spends gathering records * before invoking the function. You can configure * MaximumBatchingWindowInSeconds to any value from 0 seconds to 300 * seconds in increments of seconds.

For streams 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 * MaximumBatchingWindowInSeconds 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.

Related setting: For streams and Amazon SQS event sources, when * you set BatchSize to a value greater than 10, you must set * MaximumBatchingWindowInSeconds to at least 1.

*/ inline void SetMaximumBatchingWindowInSeconds(int value) { m_maximumBatchingWindowInSecondsHasBeenSet = true; m_maximumBatchingWindowInSeconds = value; } /** *

The maximum amount of time, in seconds, that Lambda spends gathering records * before invoking the function. You can configure * MaximumBatchingWindowInSeconds to any value from 0 seconds to 300 * seconds in increments of seconds.

For streams 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 * MaximumBatchingWindowInSeconds 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.

Related setting: For streams and Amazon SQS event sources, when * you set BatchSize to a value greater than 10, you must set * MaximumBatchingWindowInSeconds to at least 1.

*/ inline CreateEventSourceMappingRequest& WithMaximumBatchingWindowInSeconds(int value) { SetMaximumBatchingWindowInSeconds(value); return *this;} /** *

(Kinesis and DynamoDB Streams only) The number of batches to process from * each shard concurrently.

*/ inline int GetParallelizationFactor() const{ return m_parallelizationFactor; } /** *

(Kinesis and DynamoDB Streams only) The number of batches to process from * each shard concurrently.

*/ inline bool ParallelizationFactorHasBeenSet() const { return m_parallelizationFactorHasBeenSet; } /** *

(Kinesis and DynamoDB Streams only) The number of batches to process from * each shard concurrently.

*/ inline void SetParallelizationFactor(int value) { m_parallelizationFactorHasBeenSet = true; m_parallelizationFactor = value; } /** *

(Kinesis and DynamoDB Streams only) The number of batches to process from * each shard concurrently.

*/ inline CreateEventSourceMappingRequest& WithParallelizationFactor(int value) { SetParallelizationFactor(value); return *this;} /** *

The position in a stream from which to start reading. Required for Amazon * Kinesis and Amazon DynamoDB Stream event sources. AT_TIMESTAMP is * supported only for Amazon Kinesis streams, Amazon DocumentDB, Amazon MSK, and * self-managed Apache Kafka.

*/ inline const EventSourcePosition& GetStartingPosition() const{ return m_startingPosition; } /** *

The position in a stream from which to start reading. Required for Amazon * Kinesis and Amazon DynamoDB Stream event sources. AT_TIMESTAMP is * supported only for Amazon Kinesis streams, Amazon DocumentDB, Amazon MSK, and * self-managed Apache Kafka.

*/ inline bool StartingPositionHasBeenSet() const { return m_startingPositionHasBeenSet; } /** *

The position in a stream from which to start reading. Required for Amazon * Kinesis and Amazon DynamoDB Stream event sources. AT_TIMESTAMP is * supported only for Amazon Kinesis streams, Amazon DocumentDB, Amazon MSK, and * self-managed Apache Kafka.

*/ inline void SetStartingPosition(const EventSourcePosition& value) { m_startingPositionHasBeenSet = true; m_startingPosition = value; } /** *

The position in a stream from which to start reading. Required for Amazon * Kinesis and Amazon DynamoDB Stream event sources. AT_TIMESTAMP is * supported only for Amazon Kinesis streams, Amazon DocumentDB, Amazon MSK, and * self-managed Apache Kafka.

*/ inline void SetStartingPosition(EventSourcePosition&& value) { m_startingPositionHasBeenSet = true; m_startingPosition = std::move(value); } /** *

The position in a stream from which to start reading. Required for Amazon * Kinesis and Amazon DynamoDB Stream event sources. AT_TIMESTAMP is * supported only for Amazon Kinesis streams, Amazon DocumentDB, Amazon MSK, and * self-managed Apache Kafka.

*/ inline CreateEventSourceMappingRequest& WithStartingPosition(const EventSourcePosition& value) { SetStartingPosition(value); return *this;} /** *

The position in a stream from which to start reading. Required for Amazon * Kinesis and Amazon DynamoDB Stream event sources. AT_TIMESTAMP is * supported only for Amazon Kinesis streams, Amazon DocumentDB, Amazon MSK, and * self-managed Apache Kafka.

*/ inline CreateEventSourceMappingRequest& WithStartingPosition(EventSourcePosition&& value) { SetStartingPosition(std::move(value)); return *this;} /** *

With StartingPosition set to AT_TIMESTAMP, the time * from which to start reading. StartingPositionTimestamp cannot be in * the future.

*/ inline const Aws::Utils::DateTime& GetStartingPositionTimestamp() const{ return m_startingPositionTimestamp; } /** *

With StartingPosition set to AT_TIMESTAMP, the time * from which to start reading. StartingPositionTimestamp cannot be in * the future.

*/ inline bool StartingPositionTimestampHasBeenSet() const { return m_startingPositionTimestampHasBeenSet; } /** *

With StartingPosition set to AT_TIMESTAMP, the time * from which to start reading. StartingPositionTimestamp cannot be in * the future.

*/ inline void SetStartingPositionTimestamp(const Aws::Utils::DateTime& value) { m_startingPositionTimestampHasBeenSet = true; m_startingPositionTimestamp = value; } /** *

With StartingPosition set to AT_TIMESTAMP, the time * from which to start reading. StartingPositionTimestamp cannot be in * the future.

*/ inline void SetStartingPositionTimestamp(Aws::Utils::DateTime&& value) { m_startingPositionTimestampHasBeenSet = true; m_startingPositionTimestamp = std::move(value); } /** *

With StartingPosition set to AT_TIMESTAMP, the time * from which to start reading. StartingPositionTimestamp cannot be in * the future.

*/ inline CreateEventSourceMappingRequest& WithStartingPositionTimestamp(const Aws::Utils::DateTime& value) { SetStartingPositionTimestamp(value); return *this;} /** *

With StartingPosition set to AT_TIMESTAMP, the time * from which to start reading. StartingPositionTimestamp cannot be in * the future.

*/ inline CreateEventSourceMappingRequest& WithStartingPositionTimestamp(Aws::Utils::DateTime&& value) { SetStartingPositionTimestamp(std::move(value)); return *this;} /** *

(Kinesis and DynamoDB Streams only) A standard Amazon SQS queue or standard * Amazon SNS topic destination for discarded records.

*/ inline const DestinationConfig& GetDestinationConfig() const{ return m_destinationConfig; } /** *

(Kinesis and DynamoDB Streams only) A standard Amazon SQS queue or standard * Amazon SNS topic destination for discarded records.

*/ inline bool DestinationConfigHasBeenSet() const { return m_destinationConfigHasBeenSet; } /** *

(Kinesis and DynamoDB Streams only) A standard Amazon SQS queue or standard * Amazon SNS topic destination for discarded records.

*/ inline void SetDestinationConfig(const DestinationConfig& value) { m_destinationConfigHasBeenSet = true; m_destinationConfig = value; } /** *

(Kinesis and DynamoDB Streams only) A standard Amazon SQS queue or standard * Amazon SNS topic destination for discarded records.

*/ inline void SetDestinationConfig(DestinationConfig&& value) { m_destinationConfigHasBeenSet = true; m_destinationConfig = std::move(value); } /** *

(Kinesis and DynamoDB Streams only) A standard Amazon SQS queue or standard * Amazon SNS topic destination for discarded records.

*/ inline CreateEventSourceMappingRequest& WithDestinationConfig(const DestinationConfig& value) { SetDestinationConfig(value); return *this;} /** *

(Kinesis and DynamoDB Streams only) A standard Amazon SQS queue or standard * Amazon SNS topic destination for discarded records.

*/ inline CreateEventSourceMappingRequest& WithDestinationConfig(DestinationConfig&& value) { SetDestinationConfig(std::move(value)); return *this;} /** *

(Kinesis and DynamoDB Streams only) Discard records older than the specified * age. The default value is infinite (-1).

*/ inline int GetMaximumRecordAgeInSeconds() const{ return m_maximumRecordAgeInSeconds; } /** *

(Kinesis and DynamoDB Streams only) Discard records older than the specified * age. The default value is infinite (-1).

*/ inline bool MaximumRecordAgeInSecondsHasBeenSet() const { return m_maximumRecordAgeInSecondsHasBeenSet; } /** *

(Kinesis and DynamoDB Streams only) Discard records older than the specified * age. The default value is infinite (-1).

*/ inline void SetMaximumRecordAgeInSeconds(int value) { m_maximumRecordAgeInSecondsHasBeenSet = true; m_maximumRecordAgeInSeconds = value; } /** *

(Kinesis and DynamoDB Streams only) Discard records older than the specified * age. The default value is infinite (-1).

*/ inline CreateEventSourceMappingRequest& WithMaximumRecordAgeInSeconds(int value) { SetMaximumRecordAgeInSeconds(value); return *this;} /** *

(Kinesis and DynamoDB Streams only) If the function returns an error, split * the batch in two and retry.

*/ inline bool GetBisectBatchOnFunctionError() const{ return m_bisectBatchOnFunctionError; } /** *

(Kinesis and DynamoDB Streams only) If the function returns an error, split * the batch in two and retry.

*/ inline bool BisectBatchOnFunctionErrorHasBeenSet() const { return m_bisectBatchOnFunctionErrorHasBeenSet; } /** *

(Kinesis and DynamoDB Streams only) If the function returns an error, split * the batch in two and retry.

*/ inline void SetBisectBatchOnFunctionError(bool value) { m_bisectBatchOnFunctionErrorHasBeenSet = true; m_bisectBatchOnFunctionError = value; } /** *

(Kinesis and DynamoDB Streams only) If the function returns an error, split * the batch in two and retry.

*/ inline CreateEventSourceMappingRequest& WithBisectBatchOnFunctionError(bool value) { SetBisectBatchOnFunctionError(value); return *this;} /** *

(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.

*/ inline int GetMaximumRetryAttempts() const{ return m_maximumRetryAttempts; } /** *

(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.

*/ inline bool MaximumRetryAttemptsHasBeenSet() const { return m_maximumRetryAttemptsHasBeenSet; } /** *

(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.

*/ inline void SetMaximumRetryAttempts(int value) { m_maximumRetryAttemptsHasBeenSet = true; m_maximumRetryAttempts = value; } /** *

(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.

*/ inline CreateEventSourceMappingRequest& WithMaximumRetryAttempts(int value) { SetMaximumRetryAttempts(value); return *this;} /** *

(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.

*/ inline int GetTumblingWindowInSeconds() const{ return m_tumblingWindowInSeconds; } /** *

(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.

*/ inline bool TumblingWindowInSecondsHasBeenSet() const { return m_tumblingWindowInSecondsHasBeenSet; } /** *

(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.

*/ inline void SetTumblingWindowInSeconds(int value) { m_tumblingWindowInSecondsHasBeenSet = true; m_tumblingWindowInSeconds = value; } /** *

(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.

*/ inline CreateEventSourceMappingRequest& WithTumblingWindowInSeconds(int value) { SetTumblingWindowInSeconds(value); return *this;} /** *

The name of the Kafka topic.

*/ inline const Aws::Vector& GetTopics() const{ return m_topics; } /** *

The name of the Kafka topic.

*/ inline bool TopicsHasBeenSet() const { return m_topicsHasBeenSet; } /** *

The name of the Kafka topic.

*/ inline void SetTopics(const Aws::Vector& value) { m_topicsHasBeenSet = true; m_topics = value; } /** *

The name of the Kafka topic.

*/ inline void SetTopics(Aws::Vector&& value) { m_topicsHasBeenSet = true; m_topics = std::move(value); } /** *

The name of the Kafka topic.

*/ inline CreateEventSourceMappingRequest& WithTopics(const Aws::Vector& value) { SetTopics(value); return *this;} /** *

The name of the Kafka topic.

*/ inline CreateEventSourceMappingRequest& WithTopics(Aws::Vector&& value) { SetTopics(std::move(value)); return *this;} /** *

The name of the Kafka topic.

*/ inline CreateEventSourceMappingRequest& AddTopics(const Aws::String& value) { m_topicsHasBeenSet = true; m_topics.push_back(value); return *this; } /** *

The name of the Kafka topic.

*/ inline CreateEventSourceMappingRequest& AddTopics(Aws::String&& value) { m_topicsHasBeenSet = true; m_topics.push_back(std::move(value)); return *this; } /** *

The name of the Kafka topic.

*/ inline CreateEventSourceMappingRequest& AddTopics(const char* value) { m_topicsHasBeenSet = true; m_topics.push_back(value); return *this; } /** *

(MQ) The name of the Amazon MQ broker destination queue to consume.

*/ inline const Aws::Vector& GetQueues() const{ return m_queues; } /** *

(MQ) The name of the Amazon MQ broker destination queue to consume.

*/ inline bool QueuesHasBeenSet() const { return m_queuesHasBeenSet; } /** *

(MQ) The name of the Amazon MQ broker destination queue to consume.

*/ inline void SetQueues(const Aws::Vector& value) { m_queuesHasBeenSet = true; m_queues = value; } /** *

(MQ) The name of the Amazon MQ broker destination queue to consume.

*/ inline void SetQueues(Aws::Vector&& value) { m_queuesHasBeenSet = true; m_queues = std::move(value); } /** *

(MQ) The name of the Amazon MQ broker destination queue to consume.

*/ inline CreateEventSourceMappingRequest& WithQueues(const Aws::Vector& value) { SetQueues(value); return *this;} /** *

(MQ) The name of the Amazon MQ broker destination queue to consume.

*/ inline CreateEventSourceMappingRequest& WithQueues(Aws::Vector&& value) { SetQueues(std::move(value)); return *this;} /** *

(MQ) The name of the Amazon MQ broker destination queue to consume.

*/ inline CreateEventSourceMappingRequest& AddQueues(const Aws::String& value) { m_queuesHasBeenSet = true; m_queues.push_back(value); return *this; } /** *

(MQ) The name of the Amazon MQ broker destination queue to consume.

*/ inline CreateEventSourceMappingRequest& AddQueues(Aws::String&& value) { m_queuesHasBeenSet = true; m_queues.push_back(std::move(value)); return *this; } /** *

(MQ) The name of the Amazon MQ broker destination queue to consume.

*/ inline CreateEventSourceMappingRequest& AddQueues(const char* value) { m_queuesHasBeenSet = true; m_queues.push_back(value); return *this; } /** *

An array of authentication protocols or VPC components required to secure * your event source.

*/ inline const Aws::Vector& GetSourceAccessConfigurations() const{ return m_sourceAccessConfigurations; } /** *

An array of authentication protocols or VPC components required to secure * your event source.

*/ inline bool SourceAccessConfigurationsHasBeenSet() const { return m_sourceAccessConfigurationsHasBeenSet; } /** *

An array of authentication protocols or VPC components required to secure * your event source.

*/ inline void SetSourceAccessConfigurations(const Aws::Vector& value) { m_sourceAccessConfigurationsHasBeenSet = true; m_sourceAccessConfigurations = value; } /** *

An array of authentication protocols or VPC components required to secure * your event source.

*/ inline void SetSourceAccessConfigurations(Aws::Vector&& value) { m_sourceAccessConfigurationsHasBeenSet = true; m_sourceAccessConfigurations = std::move(value); } /** *

An array of authentication protocols or VPC components required to secure * your event source.

*/ inline CreateEventSourceMappingRequest& WithSourceAccessConfigurations(const Aws::Vector& value) { SetSourceAccessConfigurations(value); return *this;} /** *

An array of authentication protocols or VPC components required to secure * your event source.

*/ inline CreateEventSourceMappingRequest& WithSourceAccessConfigurations(Aws::Vector&& value) { SetSourceAccessConfigurations(std::move(value)); return *this;} /** *

An array of authentication protocols or VPC components required to secure * your event source.

*/ inline CreateEventSourceMappingRequest& AddSourceAccessConfigurations(const SourceAccessConfiguration& value) { m_sourceAccessConfigurationsHasBeenSet = true; m_sourceAccessConfigurations.push_back(value); return *this; } /** *

An array of authentication protocols or VPC components required to secure * your event source.

*/ inline CreateEventSourceMappingRequest& AddSourceAccessConfigurations(SourceAccessConfiguration&& value) { m_sourceAccessConfigurationsHasBeenSet = true; m_sourceAccessConfigurations.push_back(std::move(value)); return *this; } /** *

The self-managed Apache Kafka cluster to receive records from.

*/ inline const SelfManagedEventSource& GetSelfManagedEventSource() const{ return m_selfManagedEventSource; } /** *

The self-managed Apache Kafka cluster to receive records from.

*/ inline bool SelfManagedEventSourceHasBeenSet() const { return m_selfManagedEventSourceHasBeenSet; } /** *

The self-managed Apache Kafka cluster to receive records from.

*/ inline void SetSelfManagedEventSource(const SelfManagedEventSource& value) { m_selfManagedEventSourceHasBeenSet = true; m_selfManagedEventSource = value; } /** *

The self-managed Apache Kafka cluster to receive records from.

*/ inline void SetSelfManagedEventSource(SelfManagedEventSource&& value) { m_selfManagedEventSourceHasBeenSet = true; m_selfManagedEventSource = std::move(value); } /** *

The self-managed Apache Kafka cluster to receive records from.

*/ inline CreateEventSourceMappingRequest& WithSelfManagedEventSource(const SelfManagedEventSource& value) { SetSelfManagedEventSource(value); return *this;} /** *

The self-managed Apache Kafka cluster to receive records from.

*/ inline CreateEventSourceMappingRequest& WithSelfManagedEventSource(SelfManagedEventSource&& value) { SetSelfManagedEventSource(std::move(value)); return *this;} /** *

(Kinesis, DynamoDB Streams, and Amazon SQS) A list of current response type * enums applied to the event source mapping.

*/ inline const Aws::Vector& GetFunctionResponseTypes() const{ return m_functionResponseTypes; } /** *

(Kinesis, DynamoDB Streams, and Amazon SQS) A list of current response type * enums applied to the event source mapping.

*/ inline bool FunctionResponseTypesHasBeenSet() const { return m_functionResponseTypesHasBeenSet; } /** *

(Kinesis, DynamoDB Streams, and Amazon SQS) A list of current response type * enums applied to the event source mapping.

*/ inline void SetFunctionResponseTypes(const Aws::Vector& value) { m_functionResponseTypesHasBeenSet = true; m_functionResponseTypes = value; } /** *

(Kinesis, DynamoDB Streams, and Amazon SQS) A list of current response type * enums applied to the event source mapping.

*/ inline void SetFunctionResponseTypes(Aws::Vector&& value) { m_functionResponseTypesHasBeenSet = true; m_functionResponseTypes = std::move(value); } /** *

(Kinesis, DynamoDB Streams, and Amazon SQS) A list of current response type * enums applied to the event source mapping.

*/ inline CreateEventSourceMappingRequest& WithFunctionResponseTypes(const Aws::Vector& value) { SetFunctionResponseTypes(value); return *this;} /** *

(Kinesis, DynamoDB Streams, and Amazon SQS) A list of current response type * enums applied to the event source mapping.

*/ inline CreateEventSourceMappingRequest& WithFunctionResponseTypes(Aws::Vector&& value) { SetFunctionResponseTypes(std::move(value)); return *this;} /** *

(Kinesis, DynamoDB Streams, and Amazon SQS) A list of current response type * enums applied to the event source mapping.

*/ inline CreateEventSourceMappingRequest& AddFunctionResponseTypes(const FunctionResponseType& value) { m_functionResponseTypesHasBeenSet = true; m_functionResponseTypes.push_back(value); return *this; } /** *

(Kinesis, DynamoDB Streams, and Amazon SQS) A list of current response type * enums applied to the event source mapping.

*/ inline CreateEventSourceMappingRequest& AddFunctionResponseTypes(FunctionResponseType&& value) { m_functionResponseTypesHasBeenSet = true; m_functionResponseTypes.push_back(std::move(value)); return *this; } /** *

Specific configuration settings for an Amazon Managed Streaming for Apache * Kafka (Amazon MSK) event source.

*/ inline const AmazonManagedKafkaEventSourceConfig& GetAmazonManagedKafkaEventSourceConfig() const{ return m_amazonManagedKafkaEventSourceConfig; } /** *

Specific configuration settings for an Amazon Managed Streaming for Apache * Kafka (Amazon MSK) event source.

*/ inline bool AmazonManagedKafkaEventSourceConfigHasBeenSet() const { return m_amazonManagedKafkaEventSourceConfigHasBeenSet; } /** *

Specific configuration settings for an Amazon Managed Streaming for Apache * Kafka (Amazon MSK) event source.

*/ inline void SetAmazonManagedKafkaEventSourceConfig(const AmazonManagedKafkaEventSourceConfig& value) { m_amazonManagedKafkaEventSourceConfigHasBeenSet = true; m_amazonManagedKafkaEventSourceConfig = value; } /** *

Specific configuration settings for an Amazon Managed Streaming for Apache * Kafka (Amazon MSK) event source.

*/ inline void SetAmazonManagedKafkaEventSourceConfig(AmazonManagedKafkaEventSourceConfig&& value) { m_amazonManagedKafkaEventSourceConfigHasBeenSet = true; m_amazonManagedKafkaEventSourceConfig = std::move(value); } /** *

Specific configuration settings for an Amazon Managed Streaming for Apache * Kafka (Amazon MSK) event source.

*/ inline CreateEventSourceMappingRequest& WithAmazonManagedKafkaEventSourceConfig(const AmazonManagedKafkaEventSourceConfig& value) { SetAmazonManagedKafkaEventSourceConfig(value); return *this;} /** *

Specific configuration settings for an Amazon Managed Streaming for Apache * Kafka (Amazon MSK) event source.

*/ inline CreateEventSourceMappingRequest& WithAmazonManagedKafkaEventSourceConfig(AmazonManagedKafkaEventSourceConfig&& value) { SetAmazonManagedKafkaEventSourceConfig(std::move(value)); return *this;} /** *

Specific configuration settings for a self-managed Apache Kafka event * source.

*/ inline const SelfManagedKafkaEventSourceConfig& GetSelfManagedKafkaEventSourceConfig() const{ return m_selfManagedKafkaEventSourceConfig; } /** *

Specific configuration settings for a self-managed Apache Kafka event * source.

*/ inline bool SelfManagedKafkaEventSourceConfigHasBeenSet() const { return m_selfManagedKafkaEventSourceConfigHasBeenSet; } /** *

Specific configuration settings for a self-managed Apache Kafka event * source.

*/ inline void SetSelfManagedKafkaEventSourceConfig(const SelfManagedKafkaEventSourceConfig& value) { m_selfManagedKafkaEventSourceConfigHasBeenSet = true; m_selfManagedKafkaEventSourceConfig = value; } /** *

Specific configuration settings for a self-managed Apache Kafka event * source.

*/ inline void SetSelfManagedKafkaEventSourceConfig(SelfManagedKafkaEventSourceConfig&& value) { m_selfManagedKafkaEventSourceConfigHasBeenSet = true; m_selfManagedKafkaEventSourceConfig = std::move(value); } /** *

Specific configuration settings for a self-managed Apache Kafka event * source.

*/ inline CreateEventSourceMappingRequest& WithSelfManagedKafkaEventSourceConfig(const SelfManagedKafkaEventSourceConfig& value) { SetSelfManagedKafkaEventSourceConfig(value); return *this;} /** *

Specific configuration settings for a self-managed Apache Kafka event * source.

*/ inline CreateEventSourceMappingRequest& WithSelfManagedKafkaEventSourceConfig(SelfManagedKafkaEventSourceConfig&& value) { SetSelfManagedKafkaEventSourceConfig(std::move(value)); return *this;} /** *

(Amazon SQS only) The scaling configuration for the event source. For more * information, see Configuring * maximum concurrency for Amazon SQS event sources.

*/ inline const ScalingConfig& GetScalingConfig() const{ return m_scalingConfig; } /** *

(Amazon SQS only) The scaling configuration for the event source. For more * information, see Configuring * maximum concurrency for Amazon SQS event sources.

*/ inline bool ScalingConfigHasBeenSet() const { return m_scalingConfigHasBeenSet; } /** *

(Amazon SQS only) The scaling configuration for the event source. For more * information, see Configuring * maximum concurrency for Amazon SQS event sources.

*/ inline void SetScalingConfig(const ScalingConfig& value) { m_scalingConfigHasBeenSet = true; m_scalingConfig = value; } /** *

(Amazon SQS only) The scaling configuration for the event source. For more * information, see Configuring * maximum concurrency for Amazon SQS event sources.

*/ inline void SetScalingConfig(ScalingConfig&& value) { m_scalingConfigHasBeenSet = true; m_scalingConfig = std::move(value); } /** *

(Amazon SQS only) The scaling configuration for the event source. For more * information, see Configuring * maximum concurrency for Amazon SQS event sources.

*/ inline CreateEventSourceMappingRequest& WithScalingConfig(const ScalingConfig& value) { SetScalingConfig(value); return *this;} /** *

(Amazon SQS only) The scaling configuration for the event source. For more * information, see Configuring * maximum concurrency for Amazon SQS event sources.

*/ inline CreateEventSourceMappingRequest& WithScalingConfig(ScalingConfig&& value) { SetScalingConfig(std::move(value)); return *this;} /** *

Specific configuration settings for a DocumentDB event source.

*/ inline const DocumentDBEventSourceConfig& GetDocumentDBEventSourceConfig() const{ return m_documentDBEventSourceConfig; } /** *

Specific configuration settings for a DocumentDB event source.

*/ inline bool DocumentDBEventSourceConfigHasBeenSet() const { return m_documentDBEventSourceConfigHasBeenSet; } /** *

Specific configuration settings for a DocumentDB event source.

*/ inline void SetDocumentDBEventSourceConfig(const DocumentDBEventSourceConfig& value) { m_documentDBEventSourceConfigHasBeenSet = true; m_documentDBEventSourceConfig = value; } /** *

Specific configuration settings for a DocumentDB event source.

*/ inline void SetDocumentDBEventSourceConfig(DocumentDBEventSourceConfig&& value) { m_documentDBEventSourceConfigHasBeenSet = true; m_documentDBEventSourceConfig = std::move(value); } /** *

Specific configuration settings for a DocumentDB event source.

*/ inline CreateEventSourceMappingRequest& WithDocumentDBEventSourceConfig(const DocumentDBEventSourceConfig& value) { SetDocumentDBEventSourceConfig(value); return *this;} /** *

Specific configuration settings for a DocumentDB event source.

*/ inline CreateEventSourceMappingRequest& WithDocumentDBEventSourceConfig(DocumentDBEventSourceConfig&& value) { SetDocumentDBEventSourceConfig(std::move(value)); return *this;} private: Aws::String m_eventSourceArn; bool m_eventSourceArnHasBeenSet = false; Aws::String m_functionName; bool m_functionNameHasBeenSet = false; bool m_enabled; bool m_enabledHasBeenSet = false; int m_batchSize; bool m_batchSizeHasBeenSet = false; FilterCriteria m_filterCriteria; bool m_filterCriteriaHasBeenSet = false; int m_maximumBatchingWindowInSeconds; bool m_maximumBatchingWindowInSecondsHasBeenSet = false; int m_parallelizationFactor; bool m_parallelizationFactorHasBeenSet = false; EventSourcePosition m_startingPosition; bool m_startingPositionHasBeenSet = false; Aws::Utils::DateTime m_startingPositionTimestamp; bool m_startingPositionTimestampHasBeenSet = false; DestinationConfig m_destinationConfig; bool m_destinationConfigHasBeenSet = false; int m_maximumRecordAgeInSeconds; bool m_maximumRecordAgeInSecondsHasBeenSet = false; bool m_bisectBatchOnFunctionError; bool m_bisectBatchOnFunctionErrorHasBeenSet = false; int m_maximumRetryAttempts; bool m_maximumRetryAttemptsHasBeenSet = false; int m_tumblingWindowInSeconds; bool m_tumblingWindowInSecondsHasBeenSet = false; Aws::Vector m_topics; bool m_topicsHasBeenSet = false; Aws::Vector m_queues; bool m_queuesHasBeenSet = false; Aws::Vector m_sourceAccessConfigurations; bool m_sourceAccessConfigurationsHasBeenSet = false; SelfManagedEventSource m_selfManagedEventSource; bool m_selfManagedEventSourceHasBeenSet = false; Aws::Vector m_functionResponseTypes; bool m_functionResponseTypesHasBeenSet = false; AmazonManagedKafkaEventSourceConfig m_amazonManagedKafkaEventSourceConfig; bool m_amazonManagedKafkaEventSourceConfigHasBeenSet = false; SelfManagedKafkaEventSourceConfig m_selfManagedKafkaEventSourceConfig; bool m_selfManagedKafkaEventSourceConfigHasBeenSet = false; ScalingConfig m_scalingConfig; bool m_scalingConfigHasBeenSet = false; DocumentDBEventSourceConfig m_documentDBEventSourceConfig; bool m_documentDBEventSourceConfigHasBeenSet = false; }; } // namespace Model } // namespace Lambda } // namespace Aws