UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

2 lines (1 loc) 6.59 kB
"use strict";var _a,_b;Object.defineProperty(exports,"__esModule",{value:!0}),exports.StartingPosition=exports.EventSourceMapping=exports.SourceAccessConfigurationType=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),cdk=require("../../core"),lambda_generated_1=require("./lambda.generated");class SourceAccessConfigurationType{constructor(type){this.type=type}static of(name){return new SourceAccessConfigurationType(name)}}exports.SourceAccessConfigurationType=SourceAccessConfigurationType,_a=JSII_RTTI_SYMBOL_1,SourceAccessConfigurationType[_a]={fqn:"aws-cdk-lib.aws_lambda.SourceAccessConfigurationType",version:"2.70.0"},SourceAccessConfigurationType.BASIC_AUTH=new SourceAccessConfigurationType("BASIC_AUTH"),SourceAccessConfigurationType.VPC_SUBNET=new SourceAccessConfigurationType("VPC_SUBNET"),SourceAccessConfigurationType.VPC_SECURITY_GROUP=new SourceAccessConfigurationType("VPC_SECURITY_GROUP"),SourceAccessConfigurationType.SASL_SCRAM_256_AUTH=new SourceAccessConfigurationType("SASL_SCRAM_256_AUTH"),SourceAccessConfigurationType.SASL_SCRAM_512_AUTH=new SourceAccessConfigurationType("SASL_SCRAM_512_AUTH"),SourceAccessConfigurationType.CLIENT_CERTIFICATE_TLS_AUTH=new SourceAccessConfigurationType("CLIENT_CERTIFICATE_TLS_AUTH"),SourceAccessConfigurationType.SERVER_ROOT_CA_CERTIFICATE=new SourceAccessConfigurationType("SERVER_ROOT_CA_CERTIFICATE");class EventSourceMapping extends cdk.Resource{constructor(scope,id,props){super(scope,id);try{jsiiDeprecationWarnings.aws_cdk_lib_aws_lambda_EventSourceMappingProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,EventSourceMapping),error}if(props.eventSourceArn==null&&props.kafkaBootstrapServers==null)throw new Error("Either eventSourceArn or kafkaBootstrapServers must be set");if(props.eventSourceArn!==void 0&&props.kafkaBootstrapServers!==void 0)throw new Error("eventSourceArn and kafkaBootstrapServers are mutually exclusive");if(props.kafkaBootstrapServers&&props.kafkaBootstrapServers?.length<1)throw new Error("kafkaBootStrapServers must not be empty if set");if(props.maxBatchingWindow&&props.maxBatchingWindow.toSeconds()>300)throw new Error(`maxBatchingWindow cannot be over 300 seconds, got ${props.maxBatchingWindow.toSeconds()}`);if(props.maxConcurrency&&(props.maxConcurrency<2||props.maxConcurrency>1e3))throw new Error("maxConcurrency must be between 2 and 1000 concurrent instances");if(props.maxRecordAge&&(props.maxRecordAge.toSeconds()<60||props.maxRecordAge.toDays({integral:!1})>7))throw new Error("maxRecordAge must be between 60 seconds and 7 days inclusive");if(props.retryAttempts!==void 0&&cdk.withResolved(props.retryAttempts,attempts=>{if(attempts<0||attempts>1e4)throw new Error(`retryAttempts must be between 0 and 10000 inclusive, got ${attempts}`)}),props.parallelizationFactor!==void 0&&cdk.withResolved(props.parallelizationFactor,factor=>{if(factor<1||factor>10)throw new Error(`parallelizationFactor must be between 1 and 10 inclusive, got ${factor}`)}),props.tumblingWindow&&!cdk.Token.isUnresolved(props.tumblingWindow)&&props.tumblingWindow.toSeconds()>900)throw new Error(`tumblingWindow cannot be over 900 seconds, got ${props.tumblingWindow.toSeconds()}`);if(props.startingPosition===StartingPosition.AT_TIMESTAMP&&!props.startingPositionTimestamp)throw new Error("startingPositionTimestamp must be provided when startingPosition is AT_TIMESTAMP");if(props.startingPosition!==StartingPosition.AT_TIMESTAMP&&props.startingPositionTimestamp)throw new Error("startingPositionTimestamp can only be used when startingPosition is AT_TIMESTAMP");props.kafkaConsumerGroupId&&this.validateKafkaConsumerGroupIdOrThrow(props.kafkaConsumerGroupId);let destinationConfig;props.onFailure&&(destinationConfig={onFailure:props.onFailure.bind(this,props.target)});let selfManagedEventSource;props.kafkaBootstrapServers&&(selfManagedEventSource={endpoints:{kafkaBootstrapServers:props.kafkaBootstrapServers}});let consumerGroupConfig=props.kafkaConsumerGroupId?{consumerGroupId:props.kafkaConsumerGroupId}:void 0;const cfnEventSourceMapping=new lambda_generated_1.CfnEventSourceMapping(this,"Resource",{batchSize:props.batchSize,bisectBatchOnFunctionError:props.bisectBatchOnError,destinationConfig,enabled:props.enabled,eventSourceArn:props.eventSourceArn,functionName:props.target.functionName,startingPosition:props.startingPosition,startingPositionTimestamp:props.startingPositionTimestamp,functionResponseTypes:props.reportBatchItemFailures?["ReportBatchItemFailures"]:void 0,maximumBatchingWindowInSeconds:props.maxBatchingWindow?.toSeconds(),maximumRecordAgeInSeconds:props.maxRecordAge?.toSeconds(),maximumRetryAttempts:props.retryAttempts,parallelizationFactor:props.parallelizationFactor,topics:props.kafkaTopic!==void 0?[props.kafkaTopic]:void 0,tumblingWindowInSeconds:props.tumblingWindow?.toSeconds(),scalingConfig:props.maxConcurrency?{maximumConcurrency:props.maxConcurrency}:void 0,sourceAccessConfigurations:props.sourceAccessConfigurations?.map(o=>({type:o.type.type,uri:o.uri})),selfManagedEventSource,filterCriteria:props.filters?{filters:props.filters}:void 0,selfManagedKafkaEventSourceConfig:props.kafkaBootstrapServers?consumerGroupConfig:void 0,amazonManagedKafkaEventSourceConfig:props.eventSourceArn?consumerGroupConfig:void 0});this.eventSourceMappingId=cfnEventSourceMapping.ref}static fromEventSourceMappingId(scope,id,eventSourceMappingId){class Import extends cdk.Resource{constructor(){super(...arguments),this.eventSourceMappingId=eventSourceMappingId}}return new Import(scope,id)}validateKafkaConsumerGroupIdOrThrow(kafkaConsumerGroupId){if(cdk.Token.isUnresolved(kafkaConsumerGroupId))return;if(kafkaConsumerGroupId.length>200||kafkaConsumerGroupId.length<1)throw new Error("kafkaConsumerGroupId must be a valid string between 1 and 200 characters");const patternMatch=new RegExp(/[a-zA-Z0-9-\/*:_+=.@-]*/).exec(kafkaConsumerGroupId);if(patternMatch===null||patternMatch[0]!==kafkaConsumerGroupId)throw new Error('kafkaConsumerGroupId contains invalid characters. Allowed values are "[a-zA-Z0-9-/*:_+=.@-]"')}}exports.EventSourceMapping=EventSourceMapping,_b=JSII_RTTI_SYMBOL_1,EventSourceMapping[_b]={fqn:"aws-cdk-lib.aws_lambda.EventSourceMapping",version:"2.70.0"};var StartingPosition;(function(StartingPosition2){StartingPosition2.TRIM_HORIZON="TRIM_HORIZON",StartingPosition2.LATEST="LATEST",StartingPosition2.AT_TIMESTAMP="AT_TIMESTAMP"})(StartingPosition=exports.StartingPosition||(exports.StartingPosition={}));