com.amazonaws.services.lambda.AWSLambdaAsync Maven / Gradle / Ivy
Show all versions of aws-java-sdk-osgi Show documentation
/*
 * Copyright 2010-2016 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;
import com.amazonaws.services.lambda.model.*;
/**
 * Interface for accessing AWS Lambda asynchronously. Each asynchronous method
 * will return a Java Future object representing the asynchronous operation;
 * overloads which accept an {@code AsyncHandler} can be used to receive
 * notification when an asynchronous operation completes.
 * 
 * AWS Lambda 
 * 
 * Overview
 * 
 * 
 * This is the AWS Lambda API Reference. The AWS Lambda Developer Guide
 * provides additional information. For the service overview, go to What is AWS
 * Lambda, and for information about how the service works, go to AWS Lambda: How it Works in the AWS Lambda Developer Guide.
 * 
 */
public interface AWSLambdaAsync extends AWSLambda {
    /**
     * 
     * Adds a permission to the resource policy associated with the specified
     * AWS Lambda function. You use resource policies to grant permissions to
     * event sources that use push model. In a push model, event
     * sources (such as Amazon S3 and custom applications) invoke your Lambda
     * function. Each permission you add to the resource policy allows an event
     * source, permission to invoke the Lambda function.
     * 
     * 
     * For information about the push model, see AWS Lambda: How it Works.
     * 
     * 
     * If you are using versioning, the permissions you add are specific to the
     * Lambda function version or alias you specify in the
     * AddPermission request via the Qualifier
     * parameter. For more information about versioning, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * This operation requires permission for the
     * lambda:AddPermission action.
     * 
     * 
     * @param addPermissionRequest
     * @return A Java Future containing the result of the AddPermission
     *         operation returned by the service.
     * @sample AWSLambdaAsync.AddPermission
     */
    java.util.concurrent.Future addPermissionAsync(
            AddPermissionRequest addPermissionRequest);
    /**
     * 
     * Adds a permission to the resource policy associated with the specified
     * AWS Lambda function. You use resource policies to grant permissions to
     * event sources that use push model. In a push model, event
     * sources (such as Amazon S3 and custom applications) invoke your Lambda
     * function. Each permission you add to the resource policy allows an event
     * source, permission to invoke the Lambda function.
     * 
     * 
     * For information about the push model, see AWS Lambda: How it Works.
     * 
     * 
     * If you are using versioning, the permissions you add are specific to the
     * Lambda function version or alias you specify in the
     * AddPermission request via the Qualifier
     * parameter. For more information about versioning, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * This operation requires permission for the
     * lambda:AddPermission action.
     * 
     * 
     * @param addPermissionRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the AddPermission
     *         operation returned by the service.
     * @sample AWSLambdaAsyncHandler.AddPermission
     */
    java.util.concurrent.Future addPermissionAsync(
            AddPermissionRequest addPermissionRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Creates an alias that points to the specified Lambda function version.
     * For more information, see Introduction to AWS Lambda Aliases.
     * 
     * Alias names are unique for a given function.
     * 
     * This requires permission for the lambda:CreateAlias action.
     * 
     * 
     * @param createAliasRequest
     * @return A Java Future containing the result of the CreateAlias operation
     *         returned by the service.
     * @sample AWSLambdaAsync.CreateAlias
     */
    java.util.concurrent.Future createAliasAsync(
            CreateAliasRequest createAliasRequest);
    /**
     * 
     * Creates an alias that points to the specified Lambda function version.
     * For more information, see Introduction to AWS Lambda Aliases.
     * 
     * Alias names are unique for a given function.
     * 
     * This requires permission for the lambda:CreateAlias action.
     * 
     * 
     * @param createAliasRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CreateAlias operation
     *         returned by the service.
     * @sample AWSLambdaAsyncHandler.CreateAlias
     */
    java.util.concurrent.Future createAliasAsync(
            CreateAliasRequest createAliasRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Identifies a stream as an event source for a Lambda function. It can be
     * either an Amazon Kinesis stream or an Amazon DynamoDB stream. AWS Lambda
     * invokes the specified function when records are posted to the stream.
     * 
     * 
     * This association between a stream source and a Lambda function is called
     * the event source mapping.
     * 
     * This event source mapping is relevant only in the AWS Lambda
     * pull model, where AWS Lambda invokes the function. For more information,
     * go to AWS Lambda: How it Works in the AWS Lambda Developer
     * Guide. 
     * 
     * You provide mapping information (for example, which stream to read from
     * and which Lambda function to invoke) in the request body.
     * 
     * 
     * Each event source, such as an Amazon Kinesis or a DynamoDB stream, can be
     * associated with multiple AWS Lambda function. A given Lambda function can
     * be associated with multiple AWS event sources.
     * 
     * 
     * 
     * If you are using versioning, you can specify a specific function version
     * or an alias via the function name parameter. For more information about
     * versioning, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * 
     * This operation requires permission for the
     * lambda:CreateEventSourceMapping action.
     * 
     * 
     * @param createEventSourceMappingRequest
     * @return A Java Future containing the result of the
     *         CreateEventSourceMapping operation returned by the service.
     * @sample AWSLambdaAsync.CreateEventSourceMapping
     */
    java.util.concurrent.Future createEventSourceMappingAsync(
            CreateEventSourceMappingRequest createEventSourceMappingRequest);
    /**
     * 
     * Identifies a stream as an event source for a Lambda function. It can be
     * either an Amazon Kinesis stream or an Amazon DynamoDB stream. AWS Lambda
     * invokes the specified function when records are posted to the stream.
     * 
     * 
     * This association between a stream source and a Lambda function is called
     * the event source mapping.
     * 
     * This event source mapping is relevant only in the AWS Lambda
     * pull model, where AWS Lambda invokes the function. For more information,
     * go to AWS Lambda: How it Works in the AWS Lambda Developer
     * Guide. 
     * 
     * You provide mapping information (for example, which stream to read from
     * and which Lambda function to invoke) in the request body.
     * 
     * 
     * Each event source, such as an Amazon Kinesis or a DynamoDB stream, can be
     * associated with multiple AWS Lambda function. A given Lambda function can
     * be associated with multiple AWS event sources.
     * 
     * 
     * 
     * If you are using versioning, you can specify a specific function version
     * or an alias via the function name parameter. For more information about
     * versioning, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * 
     * This operation requires permission for the
     * lambda:CreateEventSourceMapping action.
     * 
     * 
     * @param createEventSourceMappingRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         CreateEventSourceMapping operation returned by the service.
     * @sample AWSLambdaAsyncHandler.CreateEventSourceMapping
     */
    java.util.concurrent.Future createEventSourceMappingAsync(
            CreateEventSourceMappingRequest createEventSourceMappingRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Creates a new Lambda function. The function metadata is created from the
     * request parameters, and the code for the function is provided by a .zip
     * file in the request body. If the function name already exists, the
     * operation will fail. Note that the function name is case-sensitive.
     * 
     * 
     * If you are using versioning, you can also publish a version of the Lambda
     * function you are creating using the Publish parameter. For
     * more information about versioning, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * This operation requires permission for the
     * lambda:CreateFunction action.
     * 
     * 
     * @param createFunctionRequest
     * @return A Java Future containing the result of the CreateFunction
     *         operation returned by the service.
     * @sample AWSLambdaAsync.CreateFunction
     */
    java.util.concurrent.Future createFunctionAsync(
            CreateFunctionRequest createFunctionRequest);
    /**
     * 
     * Creates a new Lambda function. The function metadata is created from the
     * request parameters, and the code for the function is provided by a .zip
     * file in the request body. If the function name already exists, the
     * operation will fail. Note that the function name is case-sensitive.
     * 
     * 
     * If you are using versioning, you can also publish a version of the Lambda
     * function you are creating using the Publish parameter. For
     * more information about versioning, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * This operation requires permission for the
     * lambda:CreateFunction action.
     * 
     * 
     * @param createFunctionRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the CreateFunction
     *         operation returned by the service.
     * @sample AWSLambdaAsyncHandler.CreateFunction
     */
    java.util.concurrent.Future createFunctionAsync(
            CreateFunctionRequest createFunctionRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Deletes the specified Lambda function alias. For more information, see 
     * Introduction to AWS Lambda Aliases.
     * 
     * 
     * This requires permission for the lambda:DeleteAlias action.
     * 
     * 
     * @param deleteAliasRequest
     * @return A Java Future containing the result of the DeleteAlias operation
     *         returned by the service.
     * @sample AWSLambdaAsync.DeleteAlias
     */
    java.util.concurrent.Future deleteAliasAsync(
            DeleteAliasRequest deleteAliasRequest);
    /**
     * 
     * Deletes the specified Lambda function alias. For more information, see 
     * Introduction to AWS Lambda Aliases.
     * 
     * 
     * This requires permission for the lambda:DeleteAlias action.
     * 
     * 
     * @param deleteAliasRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the DeleteAlias operation
     *         returned by the service.
     * @sample AWSLambdaAsyncHandler.DeleteAlias
     */
    java.util.concurrent.Future deleteAliasAsync(
            DeleteAliasRequest deleteAliasRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Removes an event source mapping. This means AWS Lambda will no longer
     * invoke the function for events in the associated source.
     * 
     * 
     * This operation requires permission for the
     * lambda:DeleteEventSourceMapping action.
     * 
     * 
     * @param deleteEventSourceMappingRequest
     * @return A Java Future containing the result of the
     *         DeleteEventSourceMapping operation returned by the service.
     * @sample AWSLambdaAsync.DeleteEventSourceMapping
     */
    java.util.concurrent.Future deleteEventSourceMappingAsync(
            DeleteEventSourceMappingRequest deleteEventSourceMappingRequest);
    /**
     * 
     * Removes an event source mapping. This means AWS Lambda will no longer
     * invoke the function for events in the associated source.
     * 
     * 
     * This operation requires permission for the
     * lambda:DeleteEventSourceMapping action.
     * 
     * 
     * @param deleteEventSourceMappingRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         DeleteEventSourceMapping operation returned by the service.
     * @sample AWSLambdaAsyncHandler.DeleteEventSourceMapping
     */
    java.util.concurrent.Future deleteEventSourceMappingAsync(
            DeleteEventSourceMappingRequest deleteEventSourceMappingRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Deletes the specified Lambda function code and configuration.
     * 
     * 
     * If you are using the versioning feature and you don't specify a function
     * version in your DeleteFunction request, AWS Lambda will
     * delete the function, including all its versions, and any aliases pointing
     * to the function versions. To delete a specific function version, you must
     * provide the function version via the Qualifier parameter.
     * For information about function versioning, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * When you delete a function the associated resource policy is also
     * deleted. You will need to delete the event source mappings explicitly.
     * 
     * 
     * This operation requires permission for the
     * lambda:DeleteFunction action.
     * 
     * 
     * @param deleteFunctionRequest
     * @return A Java Future containing the result of the DeleteFunction
     *         operation returned by the service.
     * @sample AWSLambdaAsync.DeleteFunction
     */
    java.util.concurrent.Future deleteFunctionAsync(
            DeleteFunctionRequest deleteFunctionRequest);
    /**
     * 
     * Deletes the specified Lambda function code and configuration.
     * 
     * 
     * If you are using the versioning feature and you don't specify a function
     * version in your DeleteFunction request, AWS Lambda will
     * delete the function, including all its versions, and any aliases pointing
     * to the function versions. To delete a specific function version, you must
     * provide the function version via the Qualifier parameter.
     * For information about function versioning, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * When you delete a function the associated resource policy is also
     * deleted. You will need to delete the event source mappings explicitly.
     * 
     * 
     * This operation requires permission for the
     * lambda:DeleteFunction action.
     * 
     * 
     * @param deleteFunctionRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the DeleteFunction
     *         operation returned by the service.
     * @sample AWSLambdaAsyncHandler.DeleteFunction
     */
    java.util.concurrent.Future deleteFunctionAsync(
            DeleteFunctionRequest deleteFunctionRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Returns the specified alias information such as the alias ARN,
     * description, and function version it is pointing to. For more
     * information, see Introduction to AWS Lambda Aliases.
     * 
     * 
     * This requires permission for the lambda:GetAlias action.
     * 
     * 
     * @param getAliasRequest
     * @return A Java Future containing the result of the GetAlias operation
     *         returned by the service.
     * @sample AWSLambdaAsync.GetAlias
     */
    java.util.concurrent.Future getAliasAsync(
            GetAliasRequest getAliasRequest);
    /**
     * 
     * Returns the specified alias information such as the alias ARN,
     * description, and function version it is pointing to. For more
     * information, see Introduction to AWS Lambda Aliases.
     * 
     * 
     * This requires permission for the lambda:GetAlias action.
     * 
     * 
     * @param getAliasRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the GetAlias operation
     *         returned by the service.
     * @sample AWSLambdaAsyncHandler.GetAlias
     */
    java.util.concurrent.Future getAliasAsync(
            GetAliasRequest getAliasRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Returns configuration information for the specified event source mapping
     * (see CreateEventSourceMapping).
     * 
     * 
     * This operation requires permission for the
     * lambda:GetEventSourceMapping action.
     * 
     * 
     * @param getEventSourceMappingRequest
     * @return A Java Future containing the result of the GetEventSourceMapping
     *         operation returned by the service.
     * @sample AWSLambdaAsync.GetEventSourceMapping
     */
    java.util.concurrent.Future getEventSourceMappingAsync(
            GetEventSourceMappingRequest getEventSourceMappingRequest);
    /**
     * 
     * Returns configuration information for the specified event source mapping
     * (see CreateEventSourceMapping).
     * 
     * 
     * This operation requires permission for the
     * lambda:GetEventSourceMapping action.
     * 
     * 
     * @param getEventSourceMappingRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the GetEventSourceMapping
     *         operation returned by the service.
     * @sample AWSLambdaAsyncHandler.GetEventSourceMapping
     */
    java.util.concurrent.Future getEventSourceMappingAsync(
            GetEventSourceMappingRequest getEventSourceMappingRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Returns the configuration information of the Lambda function and a
     * presigned URL link to the .zip file you uploaded with
     * CreateFunction so you can download the .zip file. Note that the
     * URL is valid for up to 10 minutes. The configuration information is the
     * same information you provided as parameters when uploading the function.
     * 
     * 
     * Using the optional Qualifier parameter, you can specify a
     * specific function version for which you want this information. If you
     * don't specify this parameter, the API uses unqualified function ARN which
     * return information about the $LATEST version of the Lambda
     * function. For more information, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * This operation requires permission for the
     * lambda:GetFunction action.
     * 
     * 
     * @param getFunctionRequest
     * @return A Java Future containing the result of the GetFunction operation
     *         returned by the service.
     * @sample AWSLambdaAsync.GetFunction
     */
    java.util.concurrent.Future getFunctionAsync(
            GetFunctionRequest getFunctionRequest);
    /**
     * 
     * Returns the configuration information of the Lambda function and a
     * presigned URL link to the .zip file you uploaded with
     * CreateFunction so you can download the .zip file. Note that the
     * URL is valid for up to 10 minutes. The configuration information is the
     * same information you provided as parameters when uploading the function.
     * 
     * 
     * Using the optional Qualifier parameter, you can specify a
     * specific function version for which you want this information. If you
     * don't specify this parameter, the API uses unqualified function ARN which
     * return information about the $LATEST version of the Lambda
     * function. For more information, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * This operation requires permission for the
     * lambda:GetFunction action.
     * 
     * 
     * @param getFunctionRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the GetFunction operation
     *         returned by the service.
     * @sample AWSLambdaAsyncHandler.GetFunction
     */
    java.util.concurrent.Future getFunctionAsync(
            GetFunctionRequest getFunctionRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Returns the configuration information of the Lambda function. This the
     * same information you provided as parameters when uploading the function
     * by using CreateFunction.
     * 
     * 
     * If you are using the versioning feature, you can retrieve this
     * information for a specific function version by using the optional
     * Qualifier parameter and specifying the function version or
     * alias that points to it. If you don't provide it, the API returns
     * information about the $LATEST version of the function. For more
     * information about versioning, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * This operation requires permission for the
     * lambda:GetFunctionConfiguration operation.
     * 
     * 
     * @param getFunctionConfigurationRequest
     * @return A Java Future containing the result of the
     *         GetFunctionConfiguration operation returned by the service.
     * @sample AWSLambdaAsync.GetFunctionConfiguration
     */
    java.util.concurrent.Future getFunctionConfigurationAsync(
            GetFunctionConfigurationRequest getFunctionConfigurationRequest);
    /**
     * 
     * Returns the configuration information of the Lambda function. This the
     * same information you provided as parameters when uploading the function
     * by using CreateFunction.
     * 
     * 
     * If you are using the versioning feature, you can retrieve this
     * information for a specific function version by using the optional
     * Qualifier parameter and specifying the function version or
     * alias that points to it. If you don't provide it, the API returns
     * information about the $LATEST version of the function. For more
     * information about versioning, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * This operation requires permission for the
     * lambda:GetFunctionConfiguration operation.
     * 
     * 
     * @param getFunctionConfigurationRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         GetFunctionConfiguration operation returned by the service.
     * @sample AWSLambdaAsyncHandler.GetFunctionConfiguration
     */
    java.util.concurrent.Future getFunctionConfigurationAsync(
            GetFunctionConfigurationRequest getFunctionConfigurationRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Returns the resource policy associated with the specified Lambda
     * function.
     * 
     * 
     * If you are using the versioning feature, you can get the resource policy
     * associated with the specific Lambda function version or alias by
     * specifying the version or alias name using the Qualifier
     * parameter. For more information about versioning, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * For information about adding permissions, see AddPermission.
     * 
     * 
     * You need permission for the lambda:GetPolicy action.
     * 
     * 
     * @param getPolicyRequest
     * @return A Java Future containing the result of the GetPolicy operation
     *         returned by the service.
     * @sample AWSLambdaAsync.GetPolicy
     */
    java.util.concurrent.Future getPolicyAsync(
            GetPolicyRequest getPolicyRequest);
    /**
     * 
     * Returns the resource policy associated with the specified Lambda
     * function.
     * 
     * 
     * If you are using the versioning feature, you can get the resource policy
     * associated with the specific Lambda function version or alias by
     * specifying the version or alias name using the Qualifier
     * parameter. For more information about versioning, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * For information about adding permissions, see AddPermission.
     * 
     * 
     * You need permission for the lambda:GetPolicy action.
     * 
     * 
     * @param getPolicyRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the GetPolicy operation
     *         returned by the service.
     * @sample AWSLambdaAsyncHandler.GetPolicy
     */
    java.util.concurrent.Future getPolicyAsync(
            GetPolicyRequest getPolicyRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Invokes a specific Lambda function.
     * 
     * 
     * If you are using the versioning feature, you can invoke the specific
     * function version by providing function version or alias name that is
     * pointing to the function version using the Qualifier
     * parameter in the request. If you don't provide the Qualifier
     * parameter, the $LATEST version of the Lambda function is
     * invoked. For information about the versioning feature, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * This operation requires permission for the
     * lambda:InvokeFunction action.
     * 
     * 
     * @param invokeRequest
     * @return A Java Future containing the result of the Invoke operation
     *         returned by the service.
     * @sample AWSLambdaAsync.Invoke
     */
    java.util.concurrent.Future invokeAsync(
            InvokeRequest invokeRequest);
    /**
     * 
     * Invokes a specific Lambda function.
     * 
     * 
     * If you are using the versioning feature, you can invoke the specific
     * function version by providing function version or alias name that is
     * pointing to the function version using the Qualifier
     * parameter in the request. If you don't provide the Qualifier
     * parameter, the $LATEST version of the Lambda function is
     * invoked. For information about the versioning feature, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * This operation requires permission for the
     * lambda:InvokeFunction action.
     * 
     * 
     * @param invokeRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the Invoke operation
     *         returned by the service.
     * @sample AWSLambdaAsyncHandler.Invoke
     */
    java.util.concurrent.Future invokeAsync(
            InvokeRequest invokeRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * This API is deprecated. We recommend you use
     * Invoke API (see Invoke). 
     * 
     * Submits an invocation request to AWS Lambda. Upon receiving the request,
     * Lambda executes the specified function asynchronously. To see the logs
     * generated by the Lambda function execution, see the CloudWatch Logs
     * console.
     * 
     * 
     * This operation requires permission for the
     * lambda:InvokeFunction action.
     * 
     * 
     * @param invokeAsyncRequest
     * @return A Java Future containing the result of the InvokeAsync operation
     *         returned by the service.
     * @sample AWSLambdaAsync.InvokeAsync
     */
    @Deprecated
    java.util.concurrent.Future invokeAsyncAsync(
            InvokeAsyncRequest invokeAsyncRequest);
    /**
     * This API is deprecated. We recommend you use
     * Invoke API (see Invoke). 
     * 
     * Submits an invocation request to AWS Lambda. Upon receiving the request,
     * Lambda executes the specified function asynchronously. To see the logs
     * generated by the Lambda function execution, see the CloudWatch Logs
     * console.
     * 
     * 
     * This operation requires permission for the
     * lambda:InvokeFunction action.
     * 
     * 
     * @param invokeAsyncRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the InvokeAsync operation
     *         returned by the service.
     * @sample AWSLambdaAsyncHandler.InvokeAsync
     */
    @Deprecated
    java.util.concurrent.Future invokeAsyncAsync(
            InvokeAsyncRequest invokeAsyncRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Returns list of aliases created for a Lambda function. For each alias,
     * the response includes information such as the alias ARN, description,
     * alias name, and the function version to which it points. For more
     * information, see Introduction to AWS Lambda Aliases.
     * 
     * 
     * This requires permission for the lambda:ListAliases action.
     * 
     * 
     * @param listAliasesRequest
     * @return A Java Future containing the result of the ListAliases operation
     *         returned by the service.
     * @sample AWSLambdaAsync.ListAliases
     */
    java.util.concurrent.Future listAliasesAsync(
            ListAliasesRequest listAliasesRequest);
    /**
     * 
     * Returns list of aliases created for a Lambda function. For each alias,
     * the response includes information such as the alias ARN, description,
     * alias name, and the function version to which it points. For more
     * information, see Introduction to AWS Lambda Aliases.
     * 
     * 
     * This requires permission for the lambda:ListAliases action.
     * 
     * 
     * @param listAliasesRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the ListAliases operation
     *         returned by the service.
     * @sample AWSLambdaAsyncHandler.ListAliases
     */
    java.util.concurrent.Future listAliasesAsync(
            ListAliasesRequest listAliasesRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Returns a list of event source mappings you created using the
     * CreateEventSourceMapping (see
     * CreateEventSourceMapping).
     * 
     * 
     * For each mapping, the API returns configuration information. You can
     * optionally specify filters to retrieve specific event source mappings.
     * 
     * 
     * If you are using the versioning feature, you can get list of event source
     * mappings for a specific Lambda function version or an alias as described
     * in the FunctionName parameter. For information about the
     * versioning feature, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * This operation requires permission for the
     * lambda:ListEventSourceMappings action.
     * 
     * 
     * @param listEventSourceMappingsRequest
     * @return A Java Future containing the result of the
     *         ListEventSourceMappings operation returned by the service.
     * @sample AWSLambdaAsync.ListEventSourceMappings
     */
    java.util.concurrent.Future listEventSourceMappingsAsync(
            ListEventSourceMappingsRequest listEventSourceMappingsRequest);
    /**
     * 
     * Returns a list of event source mappings you created using the
     * CreateEventSourceMapping (see
     * CreateEventSourceMapping).
     * 
     * 
     * For each mapping, the API returns configuration information. You can
     * optionally specify filters to retrieve specific event source mappings.
     * 
     * 
     * If you are using the versioning feature, you can get list of event source
     * mappings for a specific Lambda function version or an alias as described
     * in the FunctionName parameter. For information about the
     * versioning feature, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * This operation requires permission for the
     * lambda:ListEventSourceMappings action.
     * 
     * 
     * @param listEventSourceMappingsRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         ListEventSourceMappings operation returned by the service.
     * @sample AWSLambdaAsyncHandler.ListEventSourceMappings
     */
    java.util.concurrent.Future listEventSourceMappingsAsync(
            ListEventSourceMappingsRequest listEventSourceMappingsRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * Simplified method form for invoking the ListEventSourceMappings
     * operation.
     *
     * @see #listEventSourceMappingsAsync(ListEventSourceMappingsRequest)
     */
    java.util.concurrent.Future listEventSourceMappingsAsync();
    /**
     * Simplified method form for invoking the ListEventSourceMappings operation
     * with an AsyncHandler.
     *
     * @see #listEventSourceMappingsAsync(ListEventSourceMappingsRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    java.util.concurrent.Future listEventSourceMappingsAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Returns a list of your Lambda functions. For each function, the response
     * includes the function configuration information. You must use
     * GetFunction to retrieve the code for your function.
     * 
     * 
     * This operation requires permission for the
     * lambda:ListFunctions action.
     * 
     * 
     * If you are using versioning feature, the response returns list of $LATEST
     * versions of your functions. For information about the versioning feature,
     * see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * @param listFunctionsRequest
     * @return A Java Future containing the result of the ListFunctions
     *         operation returned by the service.
     * @sample AWSLambdaAsync.ListFunctions
     */
    java.util.concurrent.Future listFunctionsAsync(
            ListFunctionsRequest listFunctionsRequest);
    /**
     * 
     * Returns a list of your Lambda functions. For each function, the response
     * includes the function configuration information. You must use
     * GetFunction to retrieve the code for your function.
     * 
     * 
     * This operation requires permission for the
     * lambda:ListFunctions action.
     * 
     * 
     * If you are using versioning feature, the response returns list of $LATEST
     * versions of your functions. For information about the versioning feature,
     * see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * @param listFunctionsRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the ListFunctions
     *         operation returned by the service.
     * @sample AWSLambdaAsyncHandler.ListFunctions
     */
    java.util.concurrent.Future listFunctionsAsync(
            ListFunctionsRequest listFunctionsRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * Simplified method form for invoking the ListFunctions operation.
     *
     * @see #listFunctionsAsync(ListFunctionsRequest)
     */
    java.util.concurrent.Future listFunctionsAsync();
    /**
     * Simplified method form for invoking the ListFunctions operation with an
     * AsyncHandler.
     *
     * @see #listFunctionsAsync(ListFunctionsRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    java.util.concurrent.Future listFunctionsAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * List all versions of a function. For information about the versioning
     * feature, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * @param listVersionsByFunctionRequest
     * @return A Java Future containing the result of the ListVersionsByFunction
     *         operation returned by the service.
     * @sample AWSLambdaAsync.ListVersionsByFunction
     */
    java.util.concurrent.Future listVersionsByFunctionAsync(
            ListVersionsByFunctionRequest listVersionsByFunctionRequest);
    /**
     * 
     * List all versions of a function. For information about the versioning
     * feature, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * @param listVersionsByFunctionRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the ListVersionsByFunction
     *         operation returned by the service.
     * @sample AWSLambdaAsyncHandler.ListVersionsByFunction
     */
    java.util.concurrent.Future listVersionsByFunctionAsync(
            ListVersionsByFunctionRequest listVersionsByFunctionRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Publishes a version of your function from the current snapshot of
     * $LATEST. That is, AWS Lambda takes a snapshot of the function code and
     * configuration information from $LATEST and publishes a new version. The
     * code and configuration cannot be modified after publication. For
     * information about the versioning feature, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * @param publishVersionRequest
     * @return A Java Future containing the result of the PublishVersion
     *         operation returned by the service.
     * @sample AWSLambdaAsync.PublishVersion
     */
    java.util.concurrent.Future publishVersionAsync(
            PublishVersionRequest publishVersionRequest);
    /**
     * 
     * Publishes a version of your function from the current snapshot of
     * $LATEST. That is, AWS Lambda takes a snapshot of the function code and
     * configuration information from $LATEST and publishes a new version. The
     * code and configuration cannot be modified after publication. For
     * information about the versioning feature, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * @param publishVersionRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the PublishVersion
     *         operation returned by the service.
     * @sample AWSLambdaAsyncHandler.PublishVersion
     */
    java.util.concurrent.Future publishVersionAsync(
            PublishVersionRequest publishVersionRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * You can remove individual permissions from an resource policy associated
     * with a Lambda function by providing a statement ID that you provided when
     * you added the permission.
     * 
     * 
     * If you are using versioning, the permissions you remove are specific to
     * the Lambda function version or alias you specify in the
     * AddPermission request via the Qualifier
     * parameter. For more information about versioning, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * Note that removal of a permission will cause an active event source to
     * lose permission to the function.
     * 
     * 
     * You need permission for the lambda:RemovePermission action.
     * 
     * 
     * @param removePermissionRequest
     * @return A Java Future containing the result of the RemovePermission
     *         operation returned by the service.
     * @sample AWSLambdaAsync.RemovePermission
     */
    java.util.concurrent.Future removePermissionAsync(
            RemovePermissionRequest removePermissionRequest);
    /**
     * 
     * You can remove individual permissions from an resource policy associated
     * with a Lambda function by providing a statement ID that you provided when
     * you added the permission.
     * 
     * 
     * If you are using versioning, the permissions you remove are specific to
     * the Lambda function version or alias you specify in the
     * AddPermission request via the Qualifier
     * parameter. For more information about versioning, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * Note that removal of a permission will cause an active event source to
     * lose permission to the function.
     * 
     * 
     * You need permission for the lambda:RemovePermission action.
     * 
     * 
     * @param removePermissionRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the RemovePermission
     *         operation returned by the service.
     * @sample AWSLambdaAsyncHandler.RemovePermission
     */
    java.util.concurrent.Future removePermissionAsync(
            RemovePermissionRequest removePermissionRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Using this API you can update the function version to which the alias
     * points and the alias description. For more information, see Introduction to AWS Lambda Aliases.
     * 
     * 
     * This requires permission for the lambda:UpdateAlias action.
     * 
     * 
     * @param updateAliasRequest
     * @return A Java Future containing the result of the UpdateAlias operation
     *         returned by the service.
     * @sample AWSLambdaAsync.UpdateAlias
     */
    java.util.concurrent.Future updateAliasAsync(
            UpdateAliasRequest updateAliasRequest);
    /**
     * 
     * Using this API you can update the function version to which the alias
     * points and the alias description. For more information, see Introduction to AWS Lambda Aliases.
     * 
     * 
     * This requires permission for the lambda:UpdateAlias action.
     * 
     * 
     * @param updateAliasRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the UpdateAlias operation
     *         returned by the service.
     * @sample AWSLambdaAsyncHandler.UpdateAlias
     */
    java.util.concurrent.Future updateAliasAsync(
            UpdateAliasRequest updateAliasRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * You can update an event source mapping. This is useful if you want to
     * change the parameters of the existing mapping without losing your
     * position in the stream. You can change which function will receive the
     * stream records, but to change the stream itself, you must create a new
     * mapping.
     * 
     * 
     * If you are using the versioning feature, you can update the event source
     * mapping to map to a specific Lambda function version or alias as
     * described in the FunctionName parameter. For information
     * about the versioning feature, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * If you disable the event source mapping, AWS Lambda stops polling. If you
     * enable again, it will resume polling from the time it had stopped
     * polling, so you don't lose processing of any records. However, if you
     * delete event source mapping and create it again, it will reset.
     * 
     * 
     * This operation requires permission for the
     * lambda:UpdateEventSourceMapping action.
     * 
     * 
     * @param updateEventSourceMappingRequest
     * @return A Java Future containing the result of the
     *         UpdateEventSourceMapping operation returned by the service.
     * @sample AWSLambdaAsync.UpdateEventSourceMapping
     */
    java.util.concurrent.Future updateEventSourceMappingAsync(
            UpdateEventSourceMappingRequest updateEventSourceMappingRequest);
    /**
     * 
     * You can update an event source mapping. This is useful if you want to
     * change the parameters of the existing mapping without losing your
     * position in the stream. You can change which function will receive the
     * stream records, but to change the stream itself, you must create a new
     * mapping.
     * 
     * 
     * If you are using the versioning feature, you can update the event source
     * mapping to map to a specific Lambda function version or alias as
     * described in the FunctionName parameter. For information
     * about the versioning feature, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * If you disable the event source mapping, AWS Lambda stops polling. If you
     * enable again, it will resume polling from the time it had stopped
     * polling, so you don't lose processing of any records. However, if you
     * delete event source mapping and create it again, it will reset.
     * 
     * 
     * This operation requires permission for the
     * lambda:UpdateEventSourceMapping action.
     * 
     * 
     * @param updateEventSourceMappingRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         UpdateEventSourceMapping operation returned by the service.
     * @sample AWSLambdaAsyncHandler.UpdateEventSourceMapping
     */
    java.util.concurrent.Future updateEventSourceMappingAsync(
            UpdateEventSourceMappingRequest updateEventSourceMappingRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Updates the code for the specified Lambda function. This operation must
     * only be used on an existing Lambda function and cannot be used to update
     * the function configuration.
     * 
     * 
     * If you are using the versioning feature, note this API will always update
     * the $LATEST version of your Lambda function. For information about the
     * versioning feature, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * This operation requires permission for the
     * lambda:UpdateFunctionCode action.
     * 
     * 
     * @param updateFunctionCodeRequest
     * @return A Java Future containing the result of the UpdateFunctionCode
     *         operation returned by the service.
     * @sample AWSLambdaAsync.UpdateFunctionCode
     */
    java.util.concurrent.Future updateFunctionCodeAsync(
            UpdateFunctionCodeRequest updateFunctionCodeRequest);
    /**
     * 
     * Updates the code for the specified Lambda function. This operation must
     * only be used on an existing Lambda function and cannot be used to update
     * the function configuration.
     * 
     * 
     * If you are using the versioning feature, note this API will always update
     * the $LATEST version of your Lambda function. For information about the
     * versioning feature, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * This operation requires permission for the
     * lambda:UpdateFunctionCode action.
     * 
     * 
     * @param updateFunctionCodeRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the UpdateFunctionCode
     *         operation returned by the service.
     * @sample AWSLambdaAsyncHandler.UpdateFunctionCode
     */
    java.util.concurrent.Future updateFunctionCodeAsync(
            UpdateFunctionCodeRequest updateFunctionCodeRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Updates the configuration parameters for the specified Lambda function by
     * using the values provided in the request. You provide only the parameters
     * you want to change. This operation must only be used on an existing
     * Lambda function and cannot be used to update the function's code.
     * 
     * 
     * If you are using the versioning feature, note this API will always update
     * the $LATEST version of your Lambda function. For information about the
     * versioning feature, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * This operation requires permission for the
     * lambda:UpdateFunctionConfiguration action.
     * 
     * 
     * @param updateFunctionConfigurationRequest
     * @return A Java Future containing the result of the
     *         UpdateFunctionConfiguration operation returned by the service.
     * @sample AWSLambdaAsync.UpdateFunctionConfiguration
     */
    java.util.concurrent.Future updateFunctionConfigurationAsync(
            UpdateFunctionConfigurationRequest updateFunctionConfigurationRequest);
    /**
     * 
     * Updates the configuration parameters for the specified Lambda function by
     * using the values provided in the request. You provide only the parameters
     * you want to change. This operation must only be used on an existing
     * Lambda function and cannot be used to update the function's code.
     * 
     * 
     * If you are using the versioning feature, note this API will always update
     * the $LATEST version of your Lambda function. For information about the
     * versioning feature, see AWS
     * Lambda Function Versioning and Aliases.
     * 
     * 
     * This operation requires permission for the
     * lambda:UpdateFunctionConfiguration action.
     * 
     * 
     * @param updateFunctionConfigurationRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         UpdateFunctionConfiguration operation returned by the service.
     * @sample AWSLambdaAsyncHandler.UpdateFunctionConfiguration
     */
    java.util.concurrent.Future updateFunctionConfigurationAsync(
            UpdateFunctionConfigurationRequest updateFunctionConfigurationRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
}