UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

57 lines (56 loc) 2.2 kB
import { AwsIntegration } from './aws'; import * as lambda from '../../../aws-lambda'; import { IntegrationConfig, IntegrationOptions } from '../integration'; import { Method } from '../method'; export interface LambdaIntegrationOptions extends IntegrationOptions { /** * Use proxy integration or normal (request/response mapping) integration. * @see https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html#api-gateway-simple-proxy-for-lambda-output-format * * @default true */ readonly proxy?: boolean; /** * Allow invoking method from AWS Console UI (for testing purposes). * * This will add another permission to the AWS Lambda resource policy which * will allow the `test-invoke-stage` stage to invoke this handler. If this * is set to `false`, the function will only be usable from the deployment * endpoint. * * Note that this property is ignored when `scopePermissionToMethod` is `false`. * * @default true */ readonly allowTestInvoke?: boolean; /** * Scope the permission for invoking the AWS Lambda down to the specific method * associated with this integration. * * If this is set to `false`, the permission will allow invoking the AWS Lambda * from any method. This is useful for reducing the AWS Lambda policy size * for cases where the same AWS Lambda function is reused for many integrations. * * Note that this will always allow test invocations. * * @default true */ readonly scopePermissionToMethod?: boolean; } /** * Integrates an AWS Lambda function to an API Gateway method. * * @example * * declare const resource: apigateway.Resource; * declare const handler: lambda.Function; * resource.addMethod('GET', new apigateway.LambdaIntegration(handler)); * */ export declare class LambdaIntegration extends AwsIntegration { private readonly handler; private readonly enableTest; private readonly scopePermissionToMethod; constructor(handler: lambda.IFunction, options?: LambdaIntegrationOptions); bind(method: Method): IntegrationConfig; }