Class: AWSCDK::KinesisFirehose::CfnDeliveryStream::IcebergDestinationConfigurationProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
kinesis_firehose/cfn_delivery_stream.rb

Overview

Specifies the destination configure settings for Apache Iceberg Table.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(catalog_configuration:, role_arn:, s3_configuration:, append_only: nil, buffering_hints: nil, cloud_watch_logging_options: nil, destination_table_configuration_list: nil, processing_configuration: nil, retry_options: nil, s3_backup_mode: nil, schema_evolution_configuration: nil, table_creation_configuration: nil) ⇒ IcebergDestinationConfigurationProperty

Returns a new instance of IcebergDestinationConfigurationProperty.

Parameters:



3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 3052

def initialize(catalog_configuration:, role_arn:, s3_configuration:, append_only: nil, buffering_hints: nil, cloud_watch_logging_options: nil, destination_table_configuration_list: nil, processing_configuration: nil, retry_options: nil, s3_backup_mode: nil, schema_evolution_configuration: nil, table_creation_configuration: nil)
  @catalog_configuration = catalog_configuration.is_a?(Hash) ? ::AWSCDK::KinesisFirehose::CfnDeliveryStream::CatalogConfigurationProperty.new(**catalog_configuration.transform_keys(&:to_sym)) : catalog_configuration
  Jsii::Type.check_type(@catalog_configuration, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19raW5lc2lzZmlyZWhvc2UuQ2ZuRGVsaXZlcnlTdHJlYW0uQ2F0YWxvZ0NvbmZpZ3VyYXRpb25Qcm9wZXJ0eSJ9XX19")), "catalogConfiguration")
  @role_arn = role_arn
  Jsii::Type.check_type(@role_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "roleArn")
  @s3_configuration = s3_configuration.is_a?(Hash) ? ::AWSCDK::KinesisFirehose::CfnDeliveryStream::S3DestinationConfigurationProperty.new(**s3_configuration.transform_keys(&:to_sym)) : s3_configuration
  Jsii::Type.check_type(@s3_configuration, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19raW5lc2lzZmlyZWhvc2UuQ2ZuRGVsaXZlcnlTdHJlYW0uUzNEZXN0aW5hdGlvbkNvbmZpZ3VyYXRpb25Qcm9wZXJ0eSJ9XX19")), "s3Configuration")
  @append_only = append_only
  Jsii::Type.check_type(@append_only, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "appendOnly") unless @append_only.nil?
  @buffering_hints = buffering_hints.is_a?(Hash) ? ::AWSCDK::KinesisFirehose::CfnDeliveryStream::BufferingHintsProperty.new(**buffering_hints.transform_keys(&:to_sym)) : buffering_hints
  Jsii::Type.check_type(@buffering_hints, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19raW5lc2lzZmlyZWhvc2UuQ2ZuRGVsaXZlcnlTdHJlYW0uQnVmZmVyaW5nSGludHNQcm9wZXJ0eSJ9XX19")), "bufferingHints") unless @buffering_hints.nil?
  @cloud_watch_logging_options = cloud_watch_logging_options.is_a?(Hash) ? ::AWSCDK::KinesisFirehose::CfnDeliveryStream::CloudWatchLoggingOptionsProperty.new(**cloud_watch_logging_options.transform_keys(&:to_sym)) : cloud_watch_logging_options
  Jsii::Type.check_type(@cloud_watch_logging_options, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19raW5lc2lzZmlyZWhvc2UuQ2ZuRGVsaXZlcnlTdHJlYW0uQ2xvdWRXYXRjaExvZ2dpbmdPcHRpb25zUHJvcGVydHkifV19fQ==")), "cloudWatchLoggingOptions") unless @cloud_watch_logging_options.nil?
  @destination_table_configuration_list = destination_table_configuration_list
  Jsii::Type.check_type(@destination_table_configuration_list, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfa2luZXNpc2ZpcmVob3NlLkNmbkRlbGl2ZXJ5U3RyZWFtLkRlc3RpbmF0aW9uVGFibGVDb25maWd1cmF0aW9uUHJvcGVydHkifV19fSwia2luZCI6ImFycmF5In19XX19")), "destinationTableConfigurationList") unless @destination_table_configuration_list.nil?
  @processing_configuration = processing_configuration.is_a?(Hash) ? ::AWSCDK::KinesisFirehose::CfnDeliveryStream::ProcessingConfigurationProperty.new(**processing_configuration.transform_keys(&:to_sym)) : processing_configuration
  Jsii::Type.check_type(@processing_configuration, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19raW5lc2lzZmlyZWhvc2UuQ2ZuRGVsaXZlcnlTdHJlYW0uUHJvY2Vzc2luZ0NvbmZpZ3VyYXRpb25Qcm9wZXJ0eSJ9XX19")), "processingConfiguration") unless @processing_configuration.nil?
  @retry_options = retry_options.is_a?(Hash) ? ::AWSCDK::KinesisFirehose::CfnDeliveryStream::RetryOptionsProperty.new(**retry_options.transform_keys(&:to_sym)) : retry_options
  Jsii::Type.check_type(@retry_options, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19raW5lc2lzZmlyZWhvc2UuQ2ZuRGVsaXZlcnlTdHJlYW0uUmV0cnlPcHRpb25zUHJvcGVydHkifV19fQ==")), "retryOptions") unless @retry_options.nil?
  @s3_backup_mode = s3_backup_mode
  Jsii::Type.check_type(@s3_backup_mode, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "s3BackupMode") unless @s3_backup_mode.nil?
  @schema_evolution_configuration = schema_evolution_configuration.is_a?(Hash) ? ::AWSCDK::KinesisFirehose::CfnDeliveryStream::SchemaEvolutionConfigurationProperty.new(**schema_evolution_configuration.transform_keys(&:to_sym)) : schema_evolution_configuration
  Jsii::Type.check_type(@schema_evolution_configuration, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19raW5lc2lzZmlyZWhvc2UuQ2ZuRGVsaXZlcnlTdHJlYW0uU2NoZW1hRXZvbHV0aW9uQ29uZmlndXJhdGlvblByb3BlcnR5In1dfX0=")), "schemaEvolutionConfiguration") unless @schema_evolution_configuration.nil?
  @table_creation_configuration = table_creation_configuration.is_a?(Hash) ? ::AWSCDK::KinesisFirehose::CfnDeliveryStream::TableCreationConfigurationProperty.new(**table_creation_configuration.transform_keys(&:to_sym)) : table_creation_configuration
  Jsii::Type.check_type(@table_creation_configuration, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19raW5lc2lzZmlyZWhvc2UuQ2ZuRGVsaXZlcnlTdHJlYW0uVGFibGVDcmVhdGlvbkNvbmZpZ3VyYXRpb25Qcm9wZXJ0eSJ9XX19")), "tableCreationConfiguration") unless @table_creation_configuration.nil?
end

Instance Attribute Details

#append_onlyBoolean, ... (readonly)

Describes whether all incoming data for this delivery stream will be append only (inserts only and not for updates and deletes) for Iceberg delivery.

This feature is only applicable for Apache Iceberg Tables.

The default value is false. If you set this value to true, Firehose automatically increases the throughput limit of a stream based on the throttling levels of the stream. If you set this parameter to true for a stream with updates and deletes, you will see out of order delivery.



3100
3101
3102
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 3100

def append_only
  @append_only
end

#catalog_configurationAWSCDK::IResolvable, AWSCDK::KinesisFirehose::CfnDeliveryStream::CatalogConfigurationProperty (readonly)

Configuration describing where the destination Apache Iceberg Tables are persisted.



3083
3084
3085
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 3083

def catalog_configuration
  @catalog_configuration
end

#destination_table_configuration_listAWSCDK::IResolvable, ... (readonly)

Provides a list of DestinationTableConfigurations which Firehose uses to deliver data to Apache Iceberg Tables.

Firehose will write data with insert if table specific configuration is not provided here.



3113
3114
3115
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 3113

def destination_table_configuration_list
  @destination_table_configuration_list
end

#role_arnString (readonly)

The Amazon Resource Name (ARN) of the IAM role to be assumed by Firehose for calling Apache Iceberg Tables.



3088
3089
3090
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 3088

def role_arn
  @role_arn
end

#s3_backup_modeString? (readonly)

Describes how Firehose will backup records.

Currently,S3 backup only supports FailedDataOnly .



3126
3127
3128
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 3126

def s3_backup_mode
  @s3_backup_mode
end

#schema_evolution_configurationAWSCDK::IResolvable, ... (readonly)

The configuration to enable automatic schema evolution.

Amazon Data Firehose is in preview release and is subject to change.



3133
3134
3135
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 3133

def schema_evolution_configuration
  @schema_evolution_configuration
end

#table_creation_configurationAWSCDK::IResolvable, ... (readonly)

The configuration to enable automatic table creation.

Amazon Data Firehose is in preview release and is subject to change.



3140
3141
3142
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 3140

def table_creation_configuration
  @table_creation_configuration
end

Class Method Details

.jsii_propertiesObject



3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 3142

def self.jsii_properties
  {
    :catalog_configuration => "catalogConfiguration",
    :role_arn => "roleArn",
    :s3_configuration => "s3Configuration",
    :append_only => "appendOnly",
    :buffering_hints => "bufferingHints",
    :cloud_watch_logging_options => "cloudWatchLoggingOptions",
    :destination_table_configuration_list => "destinationTableConfigurationList",
    :processing_configuration => "processingConfiguration",
    :retry_options => "retryOptions",
    :s3_backup_mode => "s3BackupMode",
    :schema_evolution_configuration => "schemaEvolutionConfiguration",
    :table_creation_configuration => "tableCreationConfiguration",
  }
end

Instance Method Details

#to_jsiiObject



3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 3159

def to_jsii
  result = {}
  result.merge!({
    "catalogConfiguration" => @catalog_configuration,
    "roleArn" => @role_arn,
    "s3Configuration" => @s3_configuration,
    "appendOnly" => @append_only,
    "bufferingHints" => @buffering_hints,
    "cloudWatchLoggingOptions" => @cloud_watch_logging_options,
    "destinationTableConfigurationList" => @destination_table_configuration_list,
    "processingConfiguration" => @processing_configuration,
    "retryOptions" => @retry_options,
    "s3BackupMode" => @s3_backup_mode,
    "schemaEvolutionConfiguration" => @schema_evolution_configuration,
    "tableCreationConfiguration" => @table_creation_configuration,
  })
  result.compact
end