aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
2 lines (1 loc) • 12.4 kB
JavaScript
;var __esDecorate=exports&&exports.__esDecorate||function(ctor,descriptorIn,decorators,contextIn,initializers,extraInitializers){function accept(f){if(f!==void 0&&typeof f!="function")throw new TypeError("Function expected");return f}for(var kind=contextIn.kind,key=kind==="getter"?"get":kind==="setter"?"set":"value",target=!descriptorIn&&ctor?contextIn.static?ctor:ctor.prototype:null,descriptor=descriptorIn||(target?Object.getOwnPropertyDescriptor(target,contextIn.name):{}),_,done=!1,i=decorators.length-1;i>=0;i--){var context={};for(var p in contextIn)context[p]=p==="access"?{}:contextIn[p];for(var p in contextIn.access)context.access[p]=contextIn.access[p];context.addInitializer=function(f){if(done)throw new TypeError("Cannot add initializers after decoration has completed");extraInitializers.push(accept(f||null))};var result=(0,decorators[i])(kind==="accessor"?{get:descriptor.get,set:descriptor.set}:descriptor[key],context);if(kind==="accessor"){if(result===void 0)continue;if(result===null||typeof result!="object")throw new TypeError("Object expected");(_=accept(result.get))&&(descriptor.get=_),(_=accept(result.set))&&(descriptor.set=_),(_=accept(result.init))&&initializers.unshift(_)}else(_=accept(result))&&(kind==="field"?initializers.unshift(_):descriptor[key]=_)}target&&Object.defineProperty(target,contextIn.name,descriptor),done=!0},__runInitializers=exports&&exports.__runInitializers||function(thisArg,initializers,value){for(var useValue=arguments.length>2,i=0;i<initializers.length;i++)value=useValue?initializers[i].call(thisArg,value):initializers[i].call(thisArg);return useValue?value:void 0};Object.defineProperty(exports,"__esModule",{value:!0}),exports.StartingPosition=exports.EventSourceMapping=exports.MetricType=exports.SourceAccessConfigurationType=void 0;var jsiiDeprecationWarnings=()=>{var tmp=require("../../.warnings.jsii.js");return jsiiDeprecationWarnings=()=>tmp,tmp};const JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti");var lambda_generated_1=()=>{var tmp=require("./lambda.generated");return lambda_generated_1=()=>tmp,tmp},iam=()=>{var tmp=require("../../aws-iam");return iam=()=>tmp,tmp},cdk=()=>{var tmp=require("../../core");return cdk=()=>tmp,tmp},errors_1=()=>{var tmp=require("../../core/lib/errors");return errors_1=()=>tmp,tmp},metadata_resource_1=()=>{var tmp=require("../../core/lib/metadata-resource");return metadata_resource_1=()=>tmp,tmp},prop_injectable_1=()=>{var tmp=require("../../core/lib/prop-injectable");return prop_injectable_1=()=>tmp,tmp};class SourceAccessConfigurationType{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_lambda.SourceAccessConfigurationType",version:"2.233.0"};static BASIC_AUTH=new SourceAccessConfigurationType("BASIC_AUTH");static VPC_SUBNET=new SourceAccessConfigurationType("VPC_SUBNET");static VPC_SECURITY_GROUP=new SourceAccessConfigurationType("VPC_SECURITY_GROUP");static SASL_SCRAM_256_AUTH=new SourceAccessConfigurationType("SASL_SCRAM_256_AUTH");static SASL_SCRAM_512_AUTH=new SourceAccessConfigurationType("SASL_SCRAM_512_AUTH");static CLIENT_CERTIFICATE_TLS_AUTH=new SourceAccessConfigurationType("CLIENT_CERTIFICATE_TLS_AUTH");static SERVER_ROOT_CA_CERTIFICATE=new SourceAccessConfigurationType("SERVER_ROOT_CA_CERTIFICATE");static VIRTUAL_HOST=new SourceAccessConfigurationType("VIRTUAL_HOST");static of(name){return new SourceAccessConfigurationType(name)}type;constructor(type){this.type=type}}exports.SourceAccessConfigurationType=SourceAccessConfigurationType;var MetricType;(function(MetricType2){MetricType2.EVENT_COUNT="EventCount"})(MetricType||(exports.MetricType=MetricType={}));let EventSourceMapping=(()=>{let _classDecorators=[prop_injectable_1().propertyInjectable],_classDescriptor,_classExtraInitializers=[],_classThis,_classSuper=cdk().Resource;var EventSourceMapping2=class extends _classSuper{static{_classThis=this}static{const _metadata=typeof Symbol=="function"&&Symbol.metadata?Object.create(_classSuper[Symbol.metadata]??null):void 0;__esDecorate(null,_classDescriptor={value:_classThis},_classDecorators,{kind:"class",name:_classThis.name,metadata:_metadata},null,_classExtraInitializers),EventSourceMapping2=_classThis=_classDescriptor.value,_metadata&&Object.defineProperty(_classThis,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:_metadata})}static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_lambda.EventSourceMapping",version:"2.233.0"};static PROPERTY_INJECTION_ID="aws-cdk-lib.aws-lambda.EventSourceMapping";static fromEventSourceMappingId(scope,id,eventSourceMappingId){const eventSourceMappingArn=EventSourceMapping2.formatArn(scope,eventSourceMappingId);class Import extends cdk().Resource{eventSourceMappingId=eventSourceMappingId;eventSourceMappingArn=eventSourceMappingArn;get eventSourceMappingRef(){return{eventSourceMappingId,eventSourceMappingArn}}}return new Import(scope,id)}static formatArn(scope,eventSourceMappingId){return cdk().Stack.of(scope).formatArn({service:"lambda",resource:"event-source-mapping",resourceName:eventSourceMappingId,arnFormat:cdk().ArnFormat.COLON_RESOURCE_NAME})}eventSourceMappingId;eventSourceMappingArn;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,EventSourceMapping2),error}if((0,metadata_resource_1().addConstructMetadata)(this,props),props.eventSourceArn==null&&props.kafkaBootstrapServers==null)throw new(errors_1()).ValidationError("Either eventSourceArn or kafkaBootstrapServers must be set",this);if(props.eventSourceArn!==void 0&&props.kafkaBootstrapServers!==void 0)throw new(errors_1()).ValidationError("eventSourceArn and kafkaBootstrapServers are mutually exclusive",this);if(props.provisionedPollerConfig){const{minimumPollers,maximumPollers}=props.provisionedPollerConfig;if(minimumPollers!=null&&(minimumPollers<1||minimumPollers>200))throw new(errors_1()).ValidationError("Minimum provisioned pollers must be between 1 and 200 inclusive",this);if(maximumPollers!=null&&(maximumPollers<1||maximumPollers>2e3))throw new(errors_1()).ValidationError("Maximum provisioned pollers must be between 1 and 2000 inclusive",this);if(minimumPollers!=null&&maximumPollers!=null&&minimumPollers>maximumPollers)throw new(errors_1()).ValidationError("Minimum provisioned pollers must be less than or equal to maximum provisioned pollers",this)}if(props.kafkaBootstrapServers&&props.kafkaBootstrapServers?.length<1)throw new(errors_1()).ValidationError("kafkaBootStrapServers must not be empty if set",this);if(props.maxBatchingWindow&&props.maxBatchingWindow.toSeconds()>300)throw new(errors_1()).ValidationError(`maxBatchingWindow cannot be over 300 seconds, got ${props.maxBatchingWindow.toSeconds()}`,this);if(props.maxConcurrency&&!cdk().Token.isUnresolved(props.maxConcurrency)&&(props.maxConcurrency<2||props.maxConcurrency>1e3))throw new(errors_1()).ValidationError("maxConcurrency must be between 2 and 1000 concurrent instances",this);if(props.maxRecordAge&&(props.maxRecordAge.toSeconds()<60||props.maxRecordAge.toDays({integral:!1})>7))throw new(errors_1()).ValidationError("maxRecordAge must be between 60 seconds and 7 days inclusive",this);if(props.retryAttempts!==void 0&&cdk().withResolved(props.retryAttempts,attempts=>{if(!(attempts===-1||attempts>=0&&attempts<=1e4))throw new(errors_1()).ValidationError(`retryAttempts must be -1 (for infinite) or between 0 and 10000 inclusive, got ${attempts}`,this)}),props.parallelizationFactor!==void 0&&cdk().withResolved(props.parallelizationFactor,factor=>{if(factor<1||factor>10)throw new(errors_1()).ValidationError(`parallelizationFactor must be between 1 and 10 inclusive, got ${factor}`,this)}),props.tumblingWindow&&!cdk().Token.isUnresolved(props.tumblingWindow)&&props.tumblingWindow.toSeconds()>900)throw new(errors_1()).ValidationError(`tumblingWindow cannot be over 900 seconds, got ${props.tumblingWindow.toSeconds()}`,this);if(props.startingPosition===StartingPosition.AT_TIMESTAMP&&!props.startingPositionTimestamp)throw new(errors_1()).ValidationError("startingPositionTimestamp must be provided when startingPosition is AT_TIMESTAMP",this);if(props.startingPosition!==StartingPosition.AT_TIMESTAMP&&props.startingPositionTimestamp)throw new(errors_1()).ValidationError("startingPositionTimestamp can only be used when startingPosition is AT_TIMESTAMP",this);if(props.kafkaConsumerGroupId&&this.validateKafkaConsumerGroupIdOrThrow(props.kafkaConsumerGroupId),props.filterEncryption!==void 0&&props.filters==null)throw new(errors_1()).ValidationError("filter criteria must be provided to enable setting filter criteria encryption",this);if(props.filterEncryption!==void 0){const lambdaPrincipal=new(iam()).ServicePrincipal("lambda.amazonaws.com");props.filterEncryption.grantDecrypt(lambdaPrincipal)}let destinationConfig;props.onFailure&&(destinationConfig={onFailure:props.onFailure.bind(this,props.target)});let selfManagedEventSource;props.kafkaBootstrapServers&&(selfManagedEventSource={endpoints:{kafkaBootstrapServers:props.kafkaBootstrapServers}});let kafkaConfig;if((props.kafkaConsumerGroupId||props.schemaRegistryConfig)&&(kafkaConfig={},props.kafkaConsumerGroupId&&(kafkaConfig.consumerGroupId=props.kafkaConsumerGroupId),props.schemaRegistryConfig)){const schemaRegistry=props.schemaRegistryConfig.bind(this,props.target);kafkaConfig.schemaRegistryConfig={schemaRegistryUri:schemaRegistry.schemaRegistryUri,eventRecordFormat:schemaRegistry.eventRecordFormat.value,accessConfigs:schemaRegistry?.accessConfigs?.map(o=>({type:o.type.type,uri:o.uri})),schemaValidationConfigs:schemaRegistry.schemaValidationConfigs?.map(o=>({attribute:o.attribute.value}))}}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,kmsKeyArn:props.filterEncryption?.keyArn,selfManagedKafkaEventSourceConfig:props.kafkaBootstrapServers?kafkaConfig:void 0,amazonManagedKafkaEventSourceConfig:props.eventSourceArn?kafkaConfig:void 0,provisionedPollerConfig:props.provisionedPollerConfig,metricsConfig:props.metricsConfig});this.eventSourceMappingId=cfnEventSourceMapping.ref,this.eventSourceMappingArn=EventSourceMapping2.formatArn(this,this.eventSourceMappingId)}get eventSourceMappingRef(){return{eventSourceMappingId:this.eventSourceMappingId,eventSourceMappingArn:this.eventSourceMappingArn}}validateKafkaConsumerGroupIdOrThrow(kafkaConsumerGroupId){if(cdk().Token.isUnresolved(kafkaConsumerGroupId))return;if(kafkaConsumerGroupId.length>200||kafkaConsumerGroupId.length<1)throw new(errors_1()).ValidationError("kafkaConsumerGroupId must be a valid string between 1 and 200 characters",this);const patternMatch=new RegExp(/[a-zA-Z0-9-\/*:_+=.@-]*/).exec(kafkaConsumerGroupId);if(patternMatch===null||patternMatch[0]!==kafkaConsumerGroupId)throw new(errors_1()).ValidationError('kafkaConsumerGroupId contains invalid characters. Allowed values are "[a-zA-Z0-9-/*:_+=.@-]"',this)}static{__runInitializers(_classThis,_classExtraInitializers)}};return EventSourceMapping2=_classThis})();exports.EventSourceMapping=EventSourceMapping;var StartingPosition;(function(StartingPosition2){StartingPosition2.TRIM_HORIZON="TRIM_HORIZON",StartingPosition2.LATEST="LATEST",StartingPosition2.AT_TIMESTAMP="AT_TIMESTAMP"})(StartingPosition||(exports.StartingPosition=StartingPosition={}));