Class: AWSCDK::KinesisFirehose::S3BucketProps

Inherits:
CommonDestinationS3Props
  • Object
show all
Defined in:
kinesis_firehose/s3_bucket_props.rb

Overview

Props for defining an S3 destination of an Amazon Data Firehose delivery stream.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(buffering_interval: nil, buffering_size: nil, compression: nil, data_output_prefix: nil, encryption_key: nil, error_output_prefix: nil, logging_config: nil, processor: nil, processors: nil, role: nil, s3_backup: nil, data_format_conversion: nil, dynamic_partitioning: nil, file_extension: nil, time_zone: nil) ⇒ S3BucketProps

Returns a new instance of S3BucketProps.

Parameters:

  • buffering_interval (AWSCDK::Duration, nil) (defaults to: nil)

    The length of time that Firehose buffers incoming data before delivering it to the S3 bucket.

  • buffering_size (AWSCDK::Size, nil) (defaults to: nil)

    The size of the buffer that Amazon Data Firehose uses for incoming data before delivering it to the S3 bucket.

  • compression (AWSCDK::KinesisFirehose::Compression, nil) (defaults to: nil)

    The type of compression that Amazon Data Firehose uses to compress the data that it delivers to the Amazon S3 bucket.

  • data_output_prefix (String, nil) (defaults to: nil)

    A prefix that Amazon Data Firehose evaluates and adds to records before writing them to S3.

  • encryption_key (AWSCDK::KMS::IKey, nil) (defaults to: nil)

    The AWS KMS key used to encrypt the data that it delivers to your Amazon S3 bucket.

  • error_output_prefix (String, nil) (defaults to: nil)

    A prefix that Amazon Data Firehose evaluates and adds to failed records before writing them to S3.

  • logging_config (AWSCDK::KinesisFirehose::ILoggingConfig, nil) (defaults to: nil)

    Configuration that determines whether to log errors during data transformation or delivery failures, and specifies the CloudWatch log group for storing error logs.

  • processor (AWSCDK::KinesisFirehose::IDataProcessor, nil) (defaults to: nil)

    The data transformation that should be performed on the data before writing to the destination.

  • processors (Array<AWSCDK::KinesisFirehose::IDataProcessor>, nil) (defaults to: nil)

    The data transformation that should be performed on the data before writing to the destination.

  • role (AWSCDK::IAM::IRole, nil) (defaults to: nil)

    The IAM role associated with this destination.

  • s3_backup (AWSCDK::KinesisFirehose::DestinationS3BackupProps, nil) (defaults to: nil)

    The configuration for backing up source records to S3.

  • data_format_conversion (AWSCDK::KinesisFirehose::DataFormatConversionProps, nil) (defaults to: nil)

    The input format, output format, and schema config for converting data from the JSON format to the Parquet or ORC format before writing to Amazon S3.

  • dynamic_partitioning (AWSCDK::KinesisFirehose::DynamicPartitioningProps, nil) (defaults to: nil)

    Specify dynamic partitioning.

  • file_extension (String, nil) (defaults to: nil)

    Specify a file extension.

  • time_zone (AWSCDK::TimeZone, nil) (defaults to: nil)

    The time zone you prefer.



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'kinesis_firehose/s3_bucket_props.rb', line 23

def initialize(buffering_interval: nil, buffering_size: nil, compression: nil, data_output_prefix: nil, encryption_key: nil, error_output_prefix: nil, logging_config: nil, processor: nil, processors: nil, role: nil, s3_backup: nil, data_format_conversion: nil, dynamic_partitioning: nil, file_extension: nil, time_zone: nil)
  @buffering_interval = buffering_interval
  Jsii::Type.check_type(@buffering_interval, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5EdXJhdGlvbiJ9")), "bufferingInterval") unless @buffering_interval.nil?
  @buffering_size = buffering_size
  Jsii::Type.check_type(@buffering_size, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5TaXplIn0=")), "bufferingSize") unless @buffering_size.nil?
  @compression = compression
  Jsii::Type.check_type(@compression, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfa2luZXNpc2ZpcmVob3NlLkNvbXByZXNzaW9uIn0=")), "compression") unless @compression.nil?
  @data_output_prefix = data_output_prefix
  Jsii::Type.check_type(@data_output_prefix, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "dataOutputPrefix") unless @data_output_prefix.nil?
  @encryption_key = encryption_key
  Jsii::Type.check_type(@encryption_key, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfa21zLklLZXkifQ==")), "encryptionKey") unless @encryption_key.nil?
  @error_output_prefix = error_output_prefix
  Jsii::Type.check_type(@error_output_prefix, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "errorOutputPrefix") unless @error_output_prefix.nil?
  @logging_config = logging_config
  Jsii::Type.check_type(@logging_config, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfa2luZXNpc2ZpcmVob3NlLklMb2dnaW5nQ29uZmlnIn0=")), "loggingConfig") unless @logging_config.nil?
  @processor = processor
  Jsii::Type.check_type(@processor, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfa2luZXNpc2ZpcmVob3NlLklEYXRhUHJvY2Vzc29yIn0=")), "processor") unless @processor.nil?
  @processors = processors
  Jsii::Type.check_type(@processors, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLmF3c19raW5lc2lzZmlyZWhvc2UuSURhdGFQcm9jZXNzb3IifSwia2luZCI6ImFycmF5In19")), "processors") unless @processors.nil?
  @role = role
  Jsii::Type.check_type(@role, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfaWFtLklSb2xlIn0=")), "role") unless @role.nil?
  @s3_backup = s3_backup.is_a?(Hash) ? ::AWSCDK::KinesisFirehose::DestinationS3BackupProps.new(**s3_backup.transform_keys(&:to_sym)) : s3_backup
  Jsii::Type.check_type(@s3_backup, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfa2luZXNpc2ZpcmVob3NlLkRlc3RpbmF0aW9uUzNCYWNrdXBQcm9wcyJ9")), "s3Backup") unless @s3_backup.nil?
  @data_format_conversion = data_format_conversion.is_a?(Hash) ? ::AWSCDK::KinesisFirehose::DataFormatConversionProps.new(**data_format_conversion.transform_keys(&:to_sym)) : data_format_conversion
  Jsii::Type.check_type(@data_format_conversion, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfa2luZXNpc2ZpcmVob3NlLkRhdGFGb3JtYXRDb252ZXJzaW9uUHJvcHMifQ==")), "dataFormatConversion") unless @data_format_conversion.nil?
  @dynamic_partitioning = dynamic_partitioning.is_a?(Hash) ? ::AWSCDK::KinesisFirehose::DynamicPartitioningProps.new(**dynamic_partitioning.transform_keys(&:to_sym)) : dynamic_partitioning
  Jsii::Type.check_type(@dynamic_partitioning, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfa2luZXNpc2ZpcmVob3NlLkR5bmFtaWNQYXJ0aXRpb25pbmdQcm9wcyJ9")), "dynamicPartitioning") unless @dynamic_partitioning.nil?
  @file_extension = file_extension
  Jsii::Type.check_type(@file_extension, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "fileExtension") unless @file_extension.nil?
  @time_zone = time_zone
  Jsii::Type.check_type(@time_zone, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5UaW1lWm9uZSJ9")), "timeZone") unless @time_zone.nil?
end

Instance Attribute Details

#buffering_intervalAWSCDK::Duration? (readonly)

Note:

Default: Duration.seconds(300)

The length of time that Firehose buffers incoming data before delivering it to the S3 bucket.

Minimum: Duration.seconds(0) when dynamic partitioning is disabled, Duration.seconds(60) when it is enabled Maximum: Duration.seconds(900)

Returns:



63
64
65
# File 'kinesis_firehose/s3_bucket_props.rb', line 63

def buffering_interval
  @buffering_interval
end

#buffering_sizeAWSCDK::Size? (readonly)

Note:

Default: Size.mebibytes(5) when record data format conversion or dynamic partitioning is disabled, Size.mebibytes(128) when it is enabled

The size of the buffer that Amazon Data Firehose uses for incoming data before delivering it to the S3 bucket.

Minimum: Size.mebibytes(1) when record data format conversion or dynamic partitioning is disabled, Size.mebibytes(64) when it is enabled Maximum: Size.mebibytes(128)

Returns:



71
72
73
# File 'kinesis_firehose/s3_bucket_props.rb', line 71

def buffering_size
  @buffering_size
end

#compressionAWSCDK::KinesisFirehose::Compression? (readonly)

Note:

Default: - UNCOMPRESSED

The type of compression that Amazon Data Firehose uses to compress the data that it delivers to the Amazon S3 bucket.

The compression formats SNAPPY or ZIP cannot be specified for Amazon Redshift destinations because they are not supported by the Amazon Redshift COPY operation that reads from the S3 bucket.



80
81
82
# File 'kinesis_firehose/s3_bucket_props.rb', line 80

def compression
  @compression
end

#data_format_conversionAWSCDK::KinesisFirehose::DataFormatConversionProps? (readonly)

Note:

Default: - no data format conversion is done

The input format, output format, and schema config for converting data from the JSON format to the Parquet or ORC format before writing to Amazon S3.



135
136
137
# File 'kinesis_firehose/s3_bucket_props.rb', line 135

def data_format_conversion
  @data_format_conversion
end

#data_output_prefixString? (readonly)

Note:

Default: - "YYYY/MM/DD/HH/"

A prefix that Amazon Data Firehose evaluates and adds to records before writing them to S3.

This prefix appears immediately following the bucket name.



88
89
90
# File 'kinesis_firehose/s3_bucket_props.rb', line 88

def data_output_prefix
  @data_output_prefix
end

#dynamic_partitioningAWSCDK::KinesisFirehose::DynamicPartitioningProps? (readonly)

Note:

Default: - Dynamic partitioning is disabled.

Specify dynamic partitioning.



141
142
143
# File 'kinesis_firehose/s3_bucket_props.rb', line 141

def dynamic_partitioning
  @dynamic_partitioning
end

#encryption_keyAWSCDK::KMS::IKey? (readonly)

Note:

Default: - Data is not encrypted.

The AWS KMS key used to encrypt the data that it delivers to your Amazon S3 bucket.

Returns:



93
94
95
# File 'kinesis_firehose/s3_bucket_props.rb', line 93

def encryption_key
  @encryption_key
end

#error_output_prefixString? (readonly)

Note:

Default: - See the documentation above

A prefix that Amazon Data Firehose evaluates and adds to failed records before writing them to S3.

This prefix appears immediately following the bucket name.



101
102
103
# File 'kinesis_firehose/s3_bucket_props.rb', line 101

def error_output_prefix
  @error_output_prefix
end

#file_extensionString? (readonly)

Note:

Default: - The default file extension appended by Data Format Conversion or S3 compression features

Specify a file extension.

It will override the default file extension appended by Data Format Conversion or S3 compression features such as .parquet or .gz.

File extension must start with a period (.) and can contain allowed characters: 0-9a-z!-_.*'().



151
152
153
# File 'kinesis_firehose/s3_bucket_props.rb', line 151

def file_extension
  @file_extension
end

#logging_configAWSCDK::KinesisFirehose::ILoggingConfig? (readonly)

Note:

Default: - errors will be logged and a log group will be created for you.

Configuration that determines whether to log errors during data transformation or delivery failures, and specifies the CloudWatch log group for storing error logs.



106
107
108
# File 'kinesis_firehose/s3_bucket_props.rb', line 106

def logging_config
  @logging_config
end

#processorAWSCDK::KinesisFirehose::IDataProcessor? (readonly)

Deprecated.

Use processors instead.

Note:

Default: - no data transformation will occur.

The data transformation that should be performed on the data before writing to the destination.



112
113
114
# File 'kinesis_firehose/s3_bucket_props.rb', line 112

def processor
  @processor
end

#processorsArray<AWSCDK::KinesisFirehose::IDataProcessor>? (readonly)

Note:

Default: - no data transformation will occur.

The data transformation that should be performed on the data before writing to the destination.



117
118
119
# File 'kinesis_firehose/s3_bucket_props.rb', line 117

def processors
  @processors
end

#roleAWSCDK::IAM::IRole? (readonly)

Note:

Default: - a role will be created with default permissions.

The IAM role associated with this destination.

Assumed by Amazon Data Firehose to invoke processors and write to destinations

Returns:



124
125
126
# File 'kinesis_firehose/s3_bucket_props.rb', line 124

def role
  @role
end

#s3_backupAWSCDK::KinesisFirehose::DestinationS3BackupProps? (readonly)

Note:

Default: - source records will not be backed up to S3.

The configuration for backing up source records to S3.



129
130
131
# File 'kinesis_firehose/s3_bucket_props.rb', line 129

def s3_backup
  @s3_backup
end

#time_zoneAWSCDK::TimeZone? (readonly)

Note:

Default: - UTC

The time zone you prefer.



157
158
159
# File 'kinesis_firehose/s3_bucket_props.rb', line 157

def time_zone
  @time_zone
end

Class Method Details

.jsii_propertiesObject



159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
# File 'kinesis_firehose/s3_bucket_props.rb', line 159

def self.jsii_properties
  {
    :buffering_interval => "bufferingInterval",
    :buffering_size => "bufferingSize",
    :compression => "compression",
    :data_output_prefix => "dataOutputPrefix",
    :encryption_key => "encryptionKey",
    :error_output_prefix => "errorOutputPrefix",
    :logging_config => "loggingConfig",
    :processor => "processor",
    :processors => "processors",
    :role => "role",
    :s3_backup => "s3Backup",
    :data_format_conversion => "dataFormatConversion",
    :dynamic_partitioning => "dynamicPartitioning",
    :file_extension => "fileExtension",
    :time_zone => "timeZone",
  }
end

Instance Method Details

#to_jsiiObject



179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
# File 'kinesis_firehose/s3_bucket_props.rb', line 179

def to_jsii
  result = {}
  result.merge!(super)
  result.merge!({
    "bufferingInterval" => @buffering_interval,
    "bufferingSize" => @buffering_size,
    "compression" => @compression,
    "dataOutputPrefix" => @data_output_prefix,
    "encryptionKey" => @encryption_key,
    "errorOutputPrefix" => @error_output_prefix,
    "loggingConfig" => @logging_config,
    "processor" => @processor,
    "processors" => @processors,
    "role" => @role,
    "s3Backup" => @s3_backup,
    "dataFormatConversion" => @data_format_conversion,
    "dynamicPartitioning" => @dynamic_partitioning,
    "fileExtension" => @file_extension,
    "timeZone" => @time_zone,
  })
  result.compact
end