com.amazonaws.services.lambda.model.AddEventSourceRequest Maven / Gradle / Ivy
Show all versions of aws-java-sdk-lambda Show documentation
/*
* Copyright 2010-2015 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.
*/
package com.amazonaws.services.lambda.model;
import java.io.Serializable;
import com.amazonaws.AmazonWebServiceRequest;
/**
* Container for the parameters to the {@link com.amazonaws.services.lambda.AWSLambda#addEventSource(AddEventSourceRequest) AddEventSource operation}.
*
* Identifies a stream as an event source for an AWS Lambda function. It
* can be either an Amazon Kinesis stream or a Amazon DynamoDB stream.
* AWS Lambda invokes the specified function when records are posted to
* the stream.
*
*
* This is the pull model, where AWS Lambda invokes the function. For
* more information, go to
* AWS Lambda: How it Works
* in the AWS Lambda Developer Guide.
*
*
* This association between an Amazon Kinesis stream and an AWS Lambda
* function is called the event source mapping. You provide the
* configuration information (for example, which stream to read from and
* which AWS Lambda function to invoke) for the event source mapping in
* the request body.
*
*
* Each event source, such as a Kinesis stream, can only be associated
* with one AWS Lambda function. If you call AddEventSource for an event
* source that is already mapped to another AWS Lambda function, the
* existing mapping is updated to call the new function instead of the
* old one.
*
*
* This operation requires permission for the iam:PassRole
* action for the IAM role. It also requires permission for the
* lambda:AddEventSource
action.
*
*
* @see com.amazonaws.services.lambda.AWSLambda#addEventSource(AddEventSourceRequest)
*/
public class AddEventSourceRequest extends AmazonWebServiceRequest implements Serializable {
/**
* The Amazon Resource Name (ARN) of the Amazon Kinesis stream that is
* the event source. Any record added to this stream causes AWS Lambda to
* invoke your Lambda function. AWS Lambda POSTs the Amazon Kinesis
* event, containing records, to your Lambda function as JSON.
*/
private String eventSource;
/**
* The Lambda function to invoke when AWS Lambda detects an event on the
* stream.
*
* Constraints:
* Length: 1 - 64
* Pattern: [a-zA-Z0-9-_]+
*/
private String functionName;
/**
* The ARN of the IAM role (invocation role) that AWS Lambda can assume
* to read from the stream and invoke the function.
*
* Constraints:
* Pattern: arn:aws:iam::\d{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+
*/
private String role;
/**
* The largest number of records that AWS Lambda will give to your
* function in a single event. The default is 100 records.
*/
private Integer batchSize;
/**
* A map (key-value pairs) defining the configuration for AWS Lambda to
* use when reading the event source. Currently, AWS Lambda supports only
* the InitialPositionInStream
key. The valid values are:
* "TRIM_HORIZON" and "LATEST". The default value is "TRIM_HORIZON". For
* more information, go to ShardIteratorType
* in the Amazon Kinesis Service API Reference.
*/
private java.util.Map parameters;
/**
* The Amazon Resource Name (ARN) of the Amazon Kinesis stream that is
* the event source. Any record added to this stream causes AWS Lambda to
* invoke your Lambda function. AWS Lambda POSTs the Amazon Kinesis
* event, containing records, to your Lambda function as JSON.
*
* @return The Amazon Resource Name (ARN) of the Amazon Kinesis stream that is
* the event source. Any record added to this stream causes AWS Lambda to
* invoke your Lambda function. AWS Lambda POSTs the Amazon Kinesis
* event, containing records, to your Lambda function as JSON.
*/
public String getEventSource() {
return eventSource;
}
/**
* The Amazon Resource Name (ARN) of the Amazon Kinesis stream that is
* the event source. Any record added to this stream causes AWS Lambda to
* invoke your Lambda function. AWS Lambda POSTs the Amazon Kinesis
* event, containing records, to your Lambda function as JSON.
*
* @param eventSource The Amazon Resource Name (ARN) of the Amazon Kinesis stream that is
* the event source. Any record added to this stream causes AWS Lambda to
* invoke your Lambda function. AWS Lambda POSTs the Amazon Kinesis
* event, containing records, to your Lambda function as JSON.
*/
public void setEventSource(String eventSource) {
this.eventSource = eventSource;
}
/**
* The Amazon Resource Name (ARN) of the Amazon Kinesis stream that is
* the event source. Any record added to this stream causes AWS Lambda to
* invoke your Lambda function. AWS Lambda POSTs the Amazon Kinesis
* event, containing records, to your Lambda function as JSON.
*
* Returns a reference to this object so that method calls can be chained together.
*
* @param eventSource The Amazon Resource Name (ARN) of the Amazon Kinesis stream that is
* the event source. Any record added to this stream causes AWS Lambda to
* invoke your Lambda function. AWS Lambda POSTs the Amazon Kinesis
* event, containing records, to your Lambda function as JSON.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public AddEventSourceRequest withEventSource(String eventSource) {
this.eventSource = eventSource;
return this;
}
/**
* The Lambda function to invoke when AWS Lambda detects an event on the
* stream.
*
* Constraints:
* Length: 1 - 64
* Pattern: [a-zA-Z0-9-_]+
*
* @return The Lambda function to invoke when AWS Lambda detects an event on the
* stream.
*/
public String getFunctionName() {
return functionName;
}
/**
* The Lambda function to invoke when AWS Lambda detects an event on the
* stream.
*
* Constraints:
* Length: 1 - 64
* Pattern: [a-zA-Z0-9-_]+
*
* @param functionName The Lambda function to invoke when AWS Lambda detects an event on the
* stream.
*/
public void setFunctionName(String functionName) {
this.functionName = functionName;
}
/**
* The Lambda function to invoke when AWS Lambda detects an event on the
* stream.
*
* Returns a reference to this object so that method calls can be chained together.
*
* Constraints:
* Length: 1 - 64
* Pattern: [a-zA-Z0-9-_]+
*
* @param functionName The Lambda function to invoke when AWS Lambda detects an event on the
* stream.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public AddEventSourceRequest withFunctionName(String functionName) {
this.functionName = functionName;
return this;
}
/**
* The ARN of the IAM role (invocation role) that AWS Lambda can assume
* to read from the stream and invoke the function.
*
* Constraints:
* Pattern: arn:aws:iam::\d{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+
*
* @return The ARN of the IAM role (invocation role) that AWS Lambda can assume
* to read from the stream and invoke the function.
*/
public String getRole() {
return role;
}
/**
* The ARN of the IAM role (invocation role) that AWS Lambda can assume
* to read from the stream and invoke the function.
*
* Constraints:
* Pattern: arn:aws:iam::\d{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+
*
* @param role The ARN of the IAM role (invocation role) that AWS Lambda can assume
* to read from the stream and invoke the function.
*/
public void setRole(String role) {
this.role = role;
}
/**
* The ARN of the IAM role (invocation role) that AWS Lambda can assume
* to read from the stream and invoke the function.
*
* Returns a reference to this object so that method calls can be chained together.
*
* Constraints:
* Pattern: arn:aws:iam::\d{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+
*
* @param role The ARN of the IAM role (invocation role) that AWS Lambda can assume
* to read from the stream and invoke the function.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public AddEventSourceRequest withRole(String role) {
this.role = role;
return this;
}
/**
* The largest number of records that AWS Lambda will give to your
* function in a single event. The default is 100 records.
*
* @return The largest number of records that AWS Lambda will give to your
* function in a single event. The default is 100 records.
*/
public Integer getBatchSize() {
return batchSize;
}
/**
* The largest number of records that AWS Lambda will give to your
* function in a single event. The default is 100 records.
*
* @param batchSize The largest number of records that AWS Lambda will give to your
* function in a single event. The default is 100 records.
*/
public void setBatchSize(Integer batchSize) {
this.batchSize = batchSize;
}
/**
* The largest number of records that AWS Lambda will give to your
* function in a single event. The default is 100 records.
*
* Returns a reference to this object so that method calls can be chained together.
*
* @param batchSize The largest number of records that AWS Lambda will give to your
* function in a single event. The default is 100 records.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public AddEventSourceRequest withBatchSize(Integer batchSize) {
this.batchSize = batchSize;
return this;
}
/**
* A map (key-value pairs) defining the configuration for AWS Lambda to
* use when reading the event source. Currently, AWS Lambda supports only
* the InitialPositionInStream
key. The valid values are:
* "TRIM_HORIZON" and "LATEST". The default value is "TRIM_HORIZON". For
* more information, go to ShardIteratorType
* in the Amazon Kinesis Service API Reference.
*
* @return A map (key-value pairs) defining the configuration for AWS Lambda to
* use when reading the event source. Currently, AWS Lambda supports only
* the InitialPositionInStream
key. The valid values are:
* "TRIM_HORIZON" and "LATEST". The default value is "TRIM_HORIZON". For
* more information, go to ShardIteratorType
* in the Amazon Kinesis Service API Reference.
*/
public java.util.Map getParameters() {
if (parameters == null) {
parameters = new java.util.HashMap();
}
return parameters;
}
/**
* A map (key-value pairs) defining the configuration for AWS Lambda to
* use when reading the event source. Currently, AWS Lambda supports only
* the InitialPositionInStream
key. The valid values are:
* "TRIM_HORIZON" and "LATEST". The default value is "TRIM_HORIZON". For
* more information, go to ShardIteratorType
* in the Amazon Kinesis Service API Reference.
*
* @param parameters A map (key-value pairs) defining the configuration for AWS Lambda to
* use when reading the event source. Currently, AWS Lambda supports only
* the InitialPositionInStream
key. The valid values are:
* "TRIM_HORIZON" and "LATEST". The default value is "TRIM_HORIZON". For
* more information, go to ShardIteratorType
* in the Amazon Kinesis Service API Reference.
*/
public void setParameters(java.util.Map parameters) {
this.parameters = parameters;
}
/**
* A map (key-value pairs) defining the configuration for AWS Lambda to
* use when reading the event source. Currently, AWS Lambda supports only
* the InitialPositionInStream
key. The valid values are:
* "TRIM_HORIZON" and "LATEST". The default value is "TRIM_HORIZON". For
* more information, go to ShardIteratorType
* in the Amazon Kinesis Service API Reference.
*
* Returns a reference to this object so that method calls can be chained together.
*
* @param parameters A map (key-value pairs) defining the configuration for AWS Lambda to
* use when reading the event source. Currently, AWS Lambda supports only
* the InitialPositionInStream
key. The valid values are:
* "TRIM_HORIZON" and "LATEST". The default value is "TRIM_HORIZON". For
* more information, go to ShardIteratorType
* in the Amazon Kinesis Service API Reference.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public AddEventSourceRequest withParameters(java.util.Map parameters) {
setParameters(parameters);
return this;
}
/**
* A map (key-value pairs) defining the configuration for AWS Lambda to
* use when reading the event source. Currently, AWS Lambda supports only
* the InitialPositionInStream
key. The valid values are:
* "TRIM_HORIZON" and "LATEST". The default value is "TRIM_HORIZON". For
* more information, go to ShardIteratorType
* in the Amazon Kinesis Service API Reference.
*
* The method adds a new key-value pair into Parameters parameter, and
* returns a reference to this object so that method calls can be chained
* together.
*
* @param key The key of the entry to be added into Parameters.
* @param value The corresponding value of the entry to be added into Parameters.
*/
public AddEventSourceRequest addParametersEntry(String key, String value) {
if (null == this.parameters) {
this.parameters = new java.util.HashMap();
}
if (this.parameters.containsKey(key))
throw new IllegalArgumentException("Duplicated keys (" + key.toString() + ") are provided.");
this.parameters.put(key, value);
return this;
}
/**
* Removes all the entries added into Parameters.
*
* Returns a reference to this object so that method calls can be chained together.
*/
public AddEventSourceRequest clearParametersEntries() {
this.parameters = null;
return this;
}
/**
* Returns a string representation of this object; useful for testing and
* debugging.
*
* @return A string representation of this object.
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{");
if (getEventSource() != null) sb.append("EventSource: " + getEventSource() + ",");
if (getFunctionName() != null) sb.append("FunctionName: " + getFunctionName() + ",");
if (getRole() != null) sb.append("Role: " + getRole() + ",");
if (getBatchSize() != null) sb.append("BatchSize: " + getBatchSize() + ",");
if (getParameters() != null) sb.append("Parameters: " + getParameters() );
sb.append("}");
return sb.toString();
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getEventSource() == null) ? 0 : getEventSource().hashCode());
hashCode = prime * hashCode + ((getFunctionName() == null) ? 0 : getFunctionName().hashCode());
hashCode = prime * hashCode + ((getRole() == null) ? 0 : getRole().hashCode());
hashCode = prime * hashCode + ((getBatchSize() == null) ? 0 : getBatchSize().hashCode());
hashCode = prime * hashCode + ((getParameters() == null) ? 0 : getParameters().hashCode());
return hashCode;
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null) return false;
if (obj instanceof AddEventSourceRequest == false) return false;
AddEventSourceRequest other = (AddEventSourceRequest)obj;
if (other.getEventSource() == null ^ this.getEventSource() == null) return false;
if (other.getEventSource() != null && other.getEventSource().equals(this.getEventSource()) == false) return false;
if (other.getFunctionName() == null ^ this.getFunctionName() == null) return false;
if (other.getFunctionName() != null && other.getFunctionName().equals(this.getFunctionName()) == false) return false;
if (other.getRole() == null ^ this.getRole() == null) return false;
if (other.getRole() != null && other.getRole().equals(this.getRole()) == false) return false;
if (other.getBatchSize() == null ^ this.getBatchSize() == null) return false;
if (other.getBatchSize() != null && other.getBatchSize().equals(this.getBatchSize()) == false) return false;
if (other.getParameters() == null ^ this.getParameters() == null) return false;
if (other.getParameters() != null && other.getParameters().equals(this.getParameters()) == false) return false;
return true;
}
}