import { ComponentDependencyRequirementProps } from './ComponentDependencyRequirementProps';
import { LambdaExecutionParametersProps } from './LambdaExecutionParametersProps';
import { Value } from '../../../cloudformation/Value';
import { ComponentPlatformProps } from './ComponentPlatformProps';
/**
  Contains information about an AWS Lambda function to import to create a component.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdafunctionrecipesource.html">the AWS Docs</a>
*/
export interface LambdaFunctionRecipeSourceProps {
    /** <code>ComponentDependencies</code>  <a name="cfn-greengrassv2-componentversion-lambdafunctionrecipesource-componentdependencies"></a>
  The component versions on which this Lambda function component depends.<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> */
    componentDependencies?: {
        [key: string]: ComponentDependencyRequirementProps;
    };
    /** <code>ComponentLambdaParameters</code>  <a name="cfn-greengrassv2-componentversion-lambdafunctionrecipesource-componentlambdaparameters"></a>
  The system and runtime parameters for the Lambda function as it runs on the AWS IoT Greengrass core device.<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> */
    componentLambdaParameters?: LambdaExecutionParametersProps;
    /** <code>LambdaArn</code>  <a name="cfn-greengrassv2-componentversion-lambdafunctionrecipesource-lambdaarn"></a>
  The ARN of the Lambda function. The ARN must include the version of the function to import. You can’t use version aliases like <code>$LATEST</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> */
    lambdaArn?: Value<string>;
    /** <code>ComponentPlatforms</code>  <a name="cfn-greengrassv2-componentversion-lambdafunctionrecipesource-componentplatforms"></a>
  The platforms that the component version supports.<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> */
    componentPlatforms?: ComponentPlatformProps[];
    /** <code>ComponentName</code>  <a name="cfn-greengrassv2-componentversion-lambdafunctionrecipesource-componentname"></a>
  The name of the component.<br />
  Defaults to the name of 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> */
    componentName?: Value<string>;
    /** <code>ComponentVersion</code>  <a name="cfn-greengrassv2-componentversion-lambdafunctionrecipesource-componentversion"></a>
  The version of the component.<br />
  Defaults to the version of the Lambda function as a semantic version. For example, if your function version is <code>3</code>, the component version becomes <code>3.0.0</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> */
    componentVersion?: Value<string>;
}
