import { Value } from '../../../cloudformation/Value';
import { NotificationFilterProps } from './NotificationFilterProps';
/**
  Describes the AWS Lambda functions to invoke and the events for which to invoke them.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-lambdaconfig.html">the AWS Docs</a>
*/
export interface LambdaConfigurationProps {
    /** <code>Event</code>  <a name="cfn-s3-bucket-notificationconfig-lambdaconfig-event"></a>
  The Amazon S3 bucket event for which to invoke the AWS Lambda function. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Supported Event Types</a> in the
  Amazon S3 User Guide: br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    event: Value<string>;
    /** <code>Filter</code>  <a name="cfn-s3-bucket-notificationconfig-lambdaconfig-filter"></a>
  The filtering rules that determine which objects invoke the AWS Lambda function. For example, you can create a filter so that only image files with a <code>.jpg</code> extension invoke the function when they are added to the Amazon S3 bucket.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    filter?: NotificationFilterProps;
    /** <code>Function</code>  <a name="cfn-s3-bucket-notificationconfig-lambdaconfig-function"></a>
  The Amazon Resource Name (ARN) of the AWS Lambda function that Amazon S3 invokes when the specified event type occurs.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    function: Value<string>;
}
