UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

2 lines (1 loc) 2.65 kB
"use strict";var _a;Object.defineProperty(exports,"__esModule",{value:!0}),exports.S3Bucket=void 0;var jsiiDeprecationWarnings=()=>{var tmp=require("../../.warnings.jsii.js");return jsiiDeprecationWarnings=()=>tmp,tmp};const JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti");var common_1=()=>{var tmp=require("./common");return common_1=()=>tmp,tmp},iam=()=>{var tmp=require("../../aws-iam");return iam=()=>tmp,tmp},helpers_1=()=>{var tmp=require("./private/helpers");return helpers_1=()=>tmp,tmp};class S3Bucket{constructor(bucket,props={}){this.bucket=bucket,this.props=props;try{jsiiDeprecationWarnings().aws_cdk_lib_aws_s3_IBucket(bucket),jsiiDeprecationWarnings().aws_cdk_lib_aws_kinesisfirehose_S3BucketProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,S3Bucket),error}if(this.props.s3Backup?.mode===common_1().BackupMode.FAILED)throw new Error("S3 destinations do not support BackupMode.FAILED")}bind(scope,_options){try{jsiiDeprecationWarnings().aws_cdk_lib_aws_kinesisfirehose_DestinationBindOptions(_options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.bind),error}const role=this.props.role??new(iam()).Role(scope,"S3 Destination Role",{assumedBy:new(iam()).ServicePrincipal("firehose.amazonaws.com")}),bucketGrant=this.bucket.grantReadWrite(role),{loggingOptions,dependables:loggingDependables}=(0,helpers_1().createLoggingOptions)(scope,{loggingConfig:this.props.loggingConfig,role,streamId:"S3Destination"})??{},{backupConfig,dependables:backupDependables}=(0,helpers_1().createBackupConfig)(scope,role,this.props.s3Backup)??{};return{extendedS3DestinationConfiguration:{cloudWatchLoggingOptions:loggingOptions,processingConfiguration:(0,helpers_1().createProcessingConfig)(scope,role,this.props.processor),roleArn:role.roleArn,s3BackupConfiguration:backupConfig,s3BackupMode:this.getS3BackupMode(),bufferingHints:(0,helpers_1().createBufferingHints)(this.props.bufferingInterval,this.props.bufferingSize),bucketArn:this.bucket.bucketArn,compressionFormat:this.props.compression?.value,encryptionConfiguration:(0,helpers_1().createEncryptionConfig)(role,this.props.encryptionKey),errorOutputPrefix:this.props.errorOutputPrefix,prefix:this.props.dataOutputPrefix},dependables:[bucketGrant,...loggingDependables??[],...backupDependables??[]]}}getS3BackupMode(){return this.props.s3Backup?.bucket||this.props.s3Backup?.mode===common_1().BackupMode.ALL?"Enabled":void 0}}exports.S3Bucket=S3Bucket,_a=JSII_RTTI_SYMBOL_1,S3Bucket[_a]={fqn:"aws-cdk-lib.aws_kinesisfirehose.S3Bucket",version:"2.185.0"};