/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the lambda-2015-03-31.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.Lambda.Model
{
///
/// A mapping between an Amazon Web Services resource and a Lambda function. For details,
/// see CreateEventSourceMapping.
///
public partial class EventSourceMappingConfiguration
{
private AmazonManagedKafkaEventSourceConfig _amazonManagedKafkaEventSourceConfig;
private int? _batchSize;
private bool? _bisectBatchOnFunctionError;
private DestinationConfig _destinationConfig;
private DocumentDBEventSourceConfig _documentDBEventSourceConfig;
private string _eventSourceArn;
private FilterCriteria _filterCriteria;
private string _functionArn;
private List _functionResponseTypes = new List();
private DateTime? _lastModified;
private string _lastProcessingResult;
private int? _maximumBatchingWindowInSeconds;
private int? _maximumRecordAgeInSeconds;
private int? _maximumRetryAttempts;
private int? _parallelizationFactor;
private List _queues = new List();
private ScalingConfig _scalingConfig;
private SelfManagedEventSource _selfManagedEventSource;
private SelfManagedKafkaEventSourceConfig _selfManagedKafkaEventSourceConfig;
private List _sourceAccessConfigurations = new List();
private EventSourcePosition _startingPosition;
private DateTime? _startingPositionTimestamp;
private string _state;
private string _stateTransitionReason;
private List _topics = new List();
private int? _tumblingWindowInSeconds;
private string _uuid;
///
/// Gets and sets the property AmazonManagedKafkaEventSourceConfig.
///
/// Specific configuration settings for an Amazon Managed Streaming for Apache Kafka (Amazon
/// MSK) event source.
///
///
public AmazonManagedKafkaEventSourceConfig AmazonManagedKafkaEventSourceConfig
{
get { return this._amazonManagedKafkaEventSourceConfig; }
set { this._amazonManagedKafkaEventSourceConfig = value; }
}
// Check to see if AmazonManagedKafkaEventSourceConfig property is set
internal bool IsSetAmazonManagedKafkaEventSourceConfig()
{
return this._amazonManagedKafkaEventSourceConfig != null;
}
///
/// Gets and sets the property 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).
///
///
///
/// Default value: Varies by service. For Amazon SQS, the default is 10. For all other
/// services, the default is 100.
///
///
///
/// Related setting: When you set BatchSize
to a value greater than 10, you
/// must set MaximumBatchingWindowInSeconds
to at least 1.
///
///
[AWSProperty(Min=1, Max=10000)]
public int BatchSize
{
get { return this._batchSize.GetValueOrDefault(); }
set { this._batchSize = value; }
}
// Check to see if BatchSize property is set
internal bool IsSetBatchSize()
{
return this._batchSize.HasValue;
}
///
/// Gets and sets the property BisectBatchOnFunctionError.
///
/// (Kinesis and DynamoDB Streams only) If the function returns an error, split the batch
/// in two and retry. The default value is false.
///
///
public bool BisectBatchOnFunctionError
{
get { return this._bisectBatchOnFunctionError.GetValueOrDefault(); }
set { this._bisectBatchOnFunctionError = value; }
}
// Check to see if BisectBatchOnFunctionError property is set
internal bool IsSetBisectBatchOnFunctionError()
{
return this._bisectBatchOnFunctionError.HasValue;
}
///
/// Gets and sets the property DestinationConfig.
///
/// (Kinesis and DynamoDB Streams only) An Amazon SQS queue or Amazon SNS topic destination
/// for discarded records.
///
///
public DestinationConfig DestinationConfig
{
get { return this._destinationConfig; }
set { this._destinationConfig = value; }
}
// Check to see if DestinationConfig property is set
internal bool IsSetDestinationConfig()
{
return this._destinationConfig != null;
}
///
/// Gets and sets the property DocumentDBEventSourceConfig.
///
/// Specific configuration settings for a DocumentDB event source.
///
///
public DocumentDBEventSourceConfig DocumentDBEventSourceConfig
{
get { return this._documentDBEventSourceConfig; }
set { this._documentDBEventSourceConfig = value; }
}
// Check to see if DocumentDBEventSourceConfig property is set
internal bool IsSetDocumentDBEventSourceConfig()
{
return this._documentDBEventSourceConfig != null;
}
///
/// Gets and sets the property EventSourceArn.
///
/// The Amazon Resource Name (ARN) of the event source.
///
///
public string EventSourceArn
{
get { return this._eventSourceArn; }
set { this._eventSourceArn = value; }
}
// Check to see if EventSourceArn property is set
internal bool IsSetEventSourceArn()
{
return this._eventSourceArn != null;
}
///
/// Gets and sets the property FilterCriteria.
///
/// An object that defines the filter criteria that determine whether Lambda should process
/// an event. For more information, see Lambda
/// event filtering.
///
///
public FilterCriteria FilterCriteria
{
get { return this._filterCriteria; }
set { this._filterCriteria = value; }
}
// Check to see if FilterCriteria property is set
internal bool IsSetFilterCriteria()
{
return this._filterCriteria != null;
}
///
/// Gets and sets the property FunctionArn.
///
/// The ARN of the Lambda function.
///
///
public string FunctionArn
{
get { return this._functionArn; }
set { this._functionArn = value; }
}
// Check to see if FunctionArn property is set
internal bool IsSetFunctionArn()
{
return this._functionArn != null;
}
///
/// Gets and sets the property FunctionResponseTypes.
///
/// (Kinesis, DynamoDB Streams, and Amazon SQS) A list of current response type enums
/// applied to the event source mapping.
///
///
[AWSProperty(Min=0, Max=1)]
public List FunctionResponseTypes
{
get { return this._functionResponseTypes; }
set { this._functionResponseTypes = value; }
}
// Check to see if FunctionResponseTypes property is set
internal bool IsSetFunctionResponseTypes()
{
return this._functionResponseTypes != null && this._functionResponseTypes.Count > 0;
}
///
/// Gets and sets the property LastModified.
///
/// The date that the event source mapping was last updated or that its state changed.
///
///
public DateTime LastModified
{
get { return this._lastModified.GetValueOrDefault(); }
set { this._lastModified = value; }
}
// Check to see if LastModified property is set
internal bool IsSetLastModified()
{
return this._lastModified.HasValue;
}
///
/// Gets and sets the property LastProcessingResult.
///
/// The result of the last Lambda invocation of your function.
///
///
public string LastProcessingResult
{
get { return this._lastProcessingResult; }
set { this._lastProcessingResult = value; }
}
// Check to see if LastProcessingResult property is set
internal bool IsSetLastProcessingResult()
{
return this._lastProcessingResult != null;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Min=0, Max=300)]
public int MaximumBatchingWindowInSeconds
{
get { return this._maximumBatchingWindowInSeconds.GetValueOrDefault(); }
set { this._maximumBatchingWindowInSeconds = value; }
}
// Check to see if MaximumBatchingWindowInSeconds property is set
internal bool IsSetMaximumBatchingWindowInSeconds()
{
return this._maximumBatchingWindowInSeconds.HasValue;
}
///
/// Gets and sets the property MaximumRecordAgeInSeconds.
///
/// (Kinesis and DynamoDB Streams only) Discard records older than the specified age.
/// The default value is -1, which sets the maximum age to infinite. When the value is
/// set to infinite, Lambda never discards old records.
///
///
///
/// The minimum valid value for maximum record age is 60s. Although values less than 60
/// and greater than -1 fall within the parameter's absolute range, they are not allowed
///
///
///
[AWSProperty(Min=-1, Max=604800)]
public int MaximumRecordAgeInSeconds
{
get { return this._maximumRecordAgeInSeconds.GetValueOrDefault(); }
set { this._maximumRecordAgeInSeconds = value; }
}
// Check to see if MaximumRecordAgeInSeconds property is set
internal bool IsSetMaximumRecordAgeInSeconds()
{
return this._maximumRecordAgeInSeconds.HasValue;
}
///
/// Gets and sets the property MaximumRetryAttempts.
///
/// (Kinesis and DynamoDB Streams only) Discard records after the specified number of
/// retries. The default value is -1, which sets the maximum number of retries to infinite.
/// When MaximumRetryAttempts is infinite, Lambda retries failed records until the record
/// expires in the event source.
///
///
[AWSProperty(Min=-1, Max=10000)]
public int MaximumRetryAttempts
{
get { return this._maximumRetryAttempts.GetValueOrDefault(); }
set { this._maximumRetryAttempts = value; }
}
// Check to see if MaximumRetryAttempts property is set
internal bool IsSetMaximumRetryAttempts()
{
return this._maximumRetryAttempts.HasValue;
}
///
/// Gets and sets the property ParallelizationFactor.
///
/// (Kinesis and DynamoDB Streams only) The number of batches to process concurrently
/// from each shard. The default value is 1.
///
///
[AWSProperty(Min=1, Max=10)]
public int ParallelizationFactor
{
get { return this._parallelizationFactor.GetValueOrDefault(); }
set { this._parallelizationFactor = value; }
}
// Check to see if ParallelizationFactor property is set
internal bool IsSetParallelizationFactor()
{
return this._parallelizationFactor.HasValue;
}
///
/// Gets and sets the property Queues.
///
/// (Amazon MQ) The name of the Amazon MQ broker destination queue to consume.
///
///
[AWSProperty(Min=1, Max=1)]
public List Queues
{
get { return this._queues; }
set { this._queues = value; }
}
// Check to see if Queues property is set
internal bool IsSetQueues()
{
return this._queues != null && this._queues.Count > 0;
}
///
/// Gets and sets the property ScalingConfig.
///
/// (Amazon SQS only) The scaling configuration for the event source. For more information,
/// see Configuring
/// maximum concurrency for Amazon SQS event sources.
///
///
public ScalingConfig ScalingConfig
{
get { return this._scalingConfig; }
set { this._scalingConfig = value; }
}
// Check to see if ScalingConfig property is set
internal bool IsSetScalingConfig()
{
return this._scalingConfig != null;
}
///
/// Gets and sets the property SelfManagedEventSource.
///
/// The self-managed Apache Kafka cluster for your event source.
///
///
public SelfManagedEventSource SelfManagedEventSource
{
get { return this._selfManagedEventSource; }
set { this._selfManagedEventSource = value; }
}
// Check to see if SelfManagedEventSource property is set
internal bool IsSetSelfManagedEventSource()
{
return this._selfManagedEventSource != null;
}
///
/// Gets and sets the property SelfManagedKafkaEventSourceConfig.
///
/// Specific configuration settings for a self-managed Apache Kafka event source.
///
///
public SelfManagedKafkaEventSourceConfig SelfManagedKafkaEventSourceConfig
{
get { return this._selfManagedKafkaEventSourceConfig; }
set { this._selfManagedKafkaEventSourceConfig = value; }
}
// Check to see if SelfManagedKafkaEventSourceConfig property is set
internal bool IsSetSelfManagedKafkaEventSourceConfig()
{
return this._selfManagedKafkaEventSourceConfig != null;
}
///
/// Gets and sets the property SourceAccessConfigurations.
///
/// An array of the authentication protocol, VPC components, or virtual host to secure
/// and define your event source.
///
///
[AWSProperty(Min=0, Max=22)]
public List SourceAccessConfigurations
{
get { return this._sourceAccessConfigurations; }
set { this._sourceAccessConfigurations = value; }
}
// Check to see if SourceAccessConfigurations property is set
internal bool IsSetSourceAccessConfigurations()
{
return this._sourceAccessConfigurations != null && this._sourceAccessConfigurations.Count > 0;
}
///
/// Gets and sets the property 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.
///
///
public EventSourcePosition StartingPosition
{
get { return this._startingPosition; }
set { this._startingPosition = value; }
}
// Check to see if StartingPosition property is set
internal bool IsSetStartingPosition()
{
return this._startingPosition != null;
}
///
/// Gets and sets the property StartingPositionTimestamp.
///
/// With StartingPosition
set to AT_TIMESTAMP
, the time from
/// which to start reading. StartingPositionTimestamp
cannot be in the future.
///
///
public DateTime StartingPositionTimestamp
{
get { return this._startingPositionTimestamp.GetValueOrDefault(); }
set { this._startingPositionTimestamp = value; }
}
// Check to see if StartingPositionTimestamp property is set
internal bool IsSetStartingPositionTimestamp()
{
return this._startingPositionTimestamp.HasValue;
}
///
/// Gets and sets the property State.
///
/// The state of the event source mapping. It can be one of the following: Creating
,
/// Enabling
, Enabled
, Disabling
, Disabled
,
/// Updating
, or Deleting
.
///
///
public string State
{
get { return this._state; }
set { this._state = value; }
}
// Check to see if State property is set
internal bool IsSetState()
{
return this._state != null;
}
///
/// Gets and sets the property StateTransitionReason.
///
/// Indicates whether a user or Lambda made the last change to the event source mapping.
///
///
public string StateTransitionReason
{
get { return this._stateTransitionReason; }
set { this._stateTransitionReason = value; }
}
// Check to see if StateTransitionReason property is set
internal bool IsSetStateTransitionReason()
{
return this._stateTransitionReason != null;
}
///
/// Gets and sets the property Topics.
///
/// The name of the Kafka topic.
///
///
[AWSProperty(Min=1, Max=1)]
public List Topics
{
get { return this._topics; }
set { this._topics = value; }
}
// Check to see if Topics property is set
internal bool IsSetTopics()
{
return this._topics != null && this._topics.Count > 0;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Min=0, Max=900)]
public int TumblingWindowInSeconds
{
get { return this._tumblingWindowInSeconds.GetValueOrDefault(); }
set { this._tumblingWindowInSeconds = value; }
}
// Check to see if TumblingWindowInSeconds property is set
internal bool IsSetTumblingWindowInSeconds()
{
return this._tumblingWindowInSeconds.HasValue;
}
///
/// Gets and sets the property UUID.
///
/// The identifier of the event source mapping.
///
///
public string UUID
{
get { return this._uuid; }
set { this._uuid = value; }
}
// Check to see if UUID property is set
internal bool IsSetUUID()
{
return this._uuid != null;
}
}
}