import { Value } from '../../../cloudformation/Value';
import { LambdaEventSourceProps } from './LambdaEventSourceProps';
import { LambdaLinuxProcessParamsProps } from './LambdaLinuxProcessParamsProps';
/**
  Contains parameters for a Lambda function that runs on AWS IoT Greengrass.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdaexecutionparameters.html">the AWS Docs</a>
*/
export interface LambdaExecutionParametersProps {
    /** <code>MaxInstancesCount</code>  <a name="cfn-greengrassv2-componentversion-lambdaexecutionparameters-maxinstancescount"></a>
  The maximum number of instances that a non-pinned Lambda function can run at the same time.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    maxInstancesCount?: Value<number>;
    /** <code>TimeoutInSeconds</code>  <a name="cfn-greengrassv2-componentversion-lambdaexecutionparameters-timeoutinseconds"></a>
  The maximum amount of time in seconds that the Lambda function can process a work item.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    timeoutInSeconds?: Value<number>;
    /** <code>EnvironmentVariables</code>  <a name="cfn-greengrassv2-componentversion-lambdaexecutionparameters-environmentvariables"></a>
  The map of environment variables that are available to the Lambda function when it runs.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    environmentVariables?: Value<{
        [key: string]: Value<string>;
    }>;
    /** <code>EventSources</code>  <a name="cfn-greengrassv2-componentversion-lambdaexecutionparameters-eventsources"></a>
  The list of event sources to which to subscribe to receive work messages. The Lambda function runs when it receives a message from an event source. You can subscribe this function to local publish/subscribe messages and AWS IoT Core MQTT messages.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    eventSources?: LambdaEventSourceProps[];
    /** <p> */
    pinned?: Value<boolean>;
    /** <code>ExecArgs</code>  <a name="cfn-greengrassv2-componentversion-lambdaexecutionparameters-execargs"></a>
  The list of arguments to pass to the Lambda function when it runs.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    execArgs?: Value<Value<string>[]>;
    /** <code>LinuxProcessParams</code>  <a name="cfn-greengrassv2-componentversion-lambdaexecutionparameters-linuxprocessparams"></a>
  The parameters for the Linux process that contains the Lambda function.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    linuxProcessParams?: LambdaLinuxProcessParamsProps;
    /** <code>InputPayloadEncodingType</code>  <a name="cfn-greengrassv2-componentversion-lambdaexecutionparameters-inputpayloadencodingtype"></a>
  The encoding type that the Lambda function supports.<br />
  Default: <code>json</code><br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    inputPayloadEncodingType?: Value<string>;
    /** <code>MaxQueueSize</code>  <a name="cfn-greengrassv2-componentversion-lambdaexecutionparameters-maxqueuesize"></a>
  The maximum size of the message queue for the Lambda function component. The AWS IoT Greengrass core device stores messages in a FIFO (first-in-first-out) queue until it can run the Lambda function to consume each message.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    maxQueueSize?: Value<number>;
    /** <code>StatusTimeoutInSeconds</code>  <a name="cfn-greengrassv2-componentversion-lambdaexecutionparameters-statustimeoutinseconds"></a>
  The interval in seconds at which a pinned (also known as long-lived) Lambda function component sends status updates to the Lambda manager component.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    statusTimeoutInSeconds?: Value<number>;
    /** <code>MaxIdleTimeInSeconds</code>  <a name="cfn-greengrassv2-componentversion-lambdaexecutionparameters-maxidletimeinseconds"></a>
  The maximum amount of time in seconds that a non-pinned Lambda function can idle before the AWS IoT Greengrass Core software stops its process.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    maxIdleTimeInSeconds?: Value<number>;
}
