Class: AWSCDK::KinesisFirehose::CfnDeliveryStream::SnowflakeDestinationConfigurationProperty

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

Overview

Configure Snowflake destination.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(account_url:, database:, role_arn:, s3_configuration:, schema:, table:, buffering_hints: nil, cloud_watch_logging_options: nil, content_column_name: nil, data_loading_option: nil, key_passphrase: nil, meta_data_column_name: nil, private_key: nil, processing_configuration: nil, retry_options: nil, s3_backup_mode: nil, secrets_manager_configuration: nil, snowflake_role_configuration: nil, snowflake_vpc_configuration: nil, user: nil) ⇒ SnowflakeDestinationConfigurationProperty

Returns a new instance of SnowflakeDestinationConfigurationProperty.

Parameters:



4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 4571

def initialize(account_url:, database:, role_arn:, s3_configuration:, schema:, table:, buffering_hints: nil, cloud_watch_logging_options: nil, content_column_name: nil, data_loading_option: nil, key_passphrase: nil, meta_data_column_name: nil, private_key: nil, processing_configuration: nil, retry_options: nil, s3_backup_mode: nil, secrets_manager_configuration: nil, snowflake_role_configuration: nil, snowflake_vpc_configuration: nil, user: nil)
  @account_url = 
  Jsii::Type.check_type(@account_url, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "accountUrl")
  @database = database
  Jsii::Type.check_type(@database, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "database")
  @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")
  @schema = schema
  Jsii::Type.check_type(@schema, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "schema")
  @table = table
  Jsii::Type.check_type(@table, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "table")
  @buffering_hints = buffering_hints.is_a?(Hash) ? ::AWSCDK::KinesisFirehose::CfnDeliveryStream::SnowflakeBufferingHintsProperty.new(**buffering_hints.transform_keys(&:to_sym)) : buffering_hints
  Jsii::Type.check_type(@buffering_hints, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19raW5lc2lzZmlyZWhvc2UuQ2ZuRGVsaXZlcnlTdHJlYW0uU25vd2ZsYWtlQnVmZmVyaW5nSGludHNQcm9wZXJ0eSJ9XX19")), "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?
  @content_column_name = content_column_name
  Jsii::Type.check_type(@content_column_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "contentColumnName") unless @content_column_name.nil?
  @data_loading_option = data_loading_option
  Jsii::Type.check_type(@data_loading_option, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "dataLoadingOption") unless @data_loading_option.nil?
  @key_passphrase = key_passphrase
  Jsii::Type.check_type(@key_passphrase, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "keyPassphrase") unless @key_passphrase.nil?
  @meta_data_column_name = 
  Jsii::Type.check_type(@meta_data_column_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "metaDataColumnName") unless @meta_data_column_name.nil?
  @private_key = private_key
  Jsii::Type.check_type(@private_key, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "privateKey") unless @private_key.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::SnowflakeRetryOptionsProperty.new(**retry_options.transform_keys(&:to_sym)) : retry_options
  Jsii::Type.check_type(@retry_options, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19raW5lc2lzZmlyZWhvc2UuQ2ZuRGVsaXZlcnlTdHJlYW0uU25vd2ZsYWtlUmV0cnlPcHRpb25zUHJvcGVydHkifV19fQ==")), "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?
  @secrets_manager_configuration = secrets_manager_configuration.is_a?(Hash) ? ::AWSCDK::KinesisFirehose::CfnDeliveryStream::SecretsManagerConfigurationProperty.new(**secrets_manager_configuration.transform_keys(&:to_sym)) : secrets_manager_configuration
  Jsii::Type.check_type(@secrets_manager_configuration, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19raW5lc2lzZmlyZWhvc2UuQ2ZuRGVsaXZlcnlTdHJlYW0uU2VjcmV0c01hbmFnZXJDb25maWd1cmF0aW9uUHJvcGVydHkifV19fQ==")), "secretsManagerConfiguration") unless @secrets_manager_configuration.nil?
  @snowflake_role_configuration = snowflake_role_configuration.is_a?(Hash) ? ::AWSCDK::KinesisFirehose::CfnDeliveryStream::SnowflakeRoleConfigurationProperty.new(**snowflake_role_configuration.transform_keys(&:to_sym)) : snowflake_role_configuration
  Jsii::Type.check_type(@snowflake_role_configuration, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19raW5lc2lzZmlyZWhvc2UuQ2ZuRGVsaXZlcnlTdHJlYW0uU25vd2ZsYWtlUm9sZUNvbmZpZ3VyYXRpb25Qcm9wZXJ0eSJ9XX19")), "snowflakeRoleConfiguration") unless @snowflake_role_configuration.nil?
  @snowflake_vpc_configuration = snowflake_vpc_configuration.is_a?(Hash) ? ::AWSCDK::KinesisFirehose::CfnDeliveryStream::SnowflakeVPCConfigurationProperty.new(**snowflake_vpc_configuration.transform_keys(&:to_sym)) : snowflake_vpc_configuration
  Jsii::Type.check_type(@snowflake_vpc_configuration, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19raW5lc2lzZmlyZWhvc2UuQ2ZuRGVsaXZlcnlTdHJlYW0uU25vd2ZsYWtlVnBjQ29uZmlndXJhdGlvblByb3BlcnR5In1dfX0=")), "snowflakeVpcConfiguration") unless @snowflake_vpc_configuration.nil?
  @user = user
  Jsii::Type.check_type(@user, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "user") unless @user.nil?
end

Instance Attribute Details

#account_urlString (readonly)

URL for accessing your Snowflake account.

This URL must include your account identifier . Note that the protocol (https://) and port number are optional.



4620
4621
4622
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 4620

def 
  @account_url
end

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

Describes the buffering to perform before delivering data to the Snowflake destination.

If you do not specify any value, Firehose uses the default values.



4650
4651
4652
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 4650

def buffering_hints
  @buffering_hints
end

#content_column_nameString? (readonly)

The name of the record content column.



4658
4659
4660
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 4658

def content_column_name
  @content_column_name
end

#data_loading_optionString? (readonly)

Choose to load JSON keys mapped to table column names or choose to split the JSON payload where content is mapped to a record content column and source metadata is mapped to a record metadata column.



4663
4664
4665
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 4663

def data_loading_option
  @data_loading_option
end

#databaseString (readonly)

All data in Snowflake is maintained in databases.



4625
4626
4627
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 4625

def database
  @database
end

#key_passphraseString? (readonly)

Passphrase to decrypt the private key when the key is encrypted.

For information, see Using Key Pair Authentication & Key Rotation .



4670
4671
4672
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 4670

def key_passphrase
  @key_passphrase
end

#meta_data_column_nameString? (readonly)

Specify a column name in the table, where the metadata information has to be loaded.

When you enable this field, you will see the following column in the snowflake table, which differs based on the source type.

For Direct PUT as source

{ "firehoseDeliveryStreamName" : "streamname", "IngestionTime" : "timestamp" }

For Kinesis Data Stream as source

"kinesisStreamName" : "streamname", "kinesisShardId" : "Id", "kinesisPartitionKey" : "key", "kinesisSequenceNumber" : "1234", "subsequenceNumber" : "2334", "IngestionTime" : "timestamp" }



4685
4686
4687
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 4685

def 
  @meta_data_column_name
end

#private_keyString? (readonly)

The private key used to encrypt your Snowflake client.

For information, see Using Key Pair Authentication & Key Rotation .



4692
4693
4694
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 4692

def private_key
  @private_key
end

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

The time period where Firehose will retry sending data to the chosen HTTP endpoint.



4700
4701
4702
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 4700

def retry_options
  @retry_options
end

#role_arnString (readonly)

The Amazon Resource Name (ARN) of the Snowflake role.



4630
4631
4632
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 4630

def role_arn
  @role_arn
end

#s3_backup_modeString? (readonly)

Choose an S3 backup mode.



4705
4706
4707
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 4705

def s3_backup_mode
  @s3_backup_mode
end

#schemaString (readonly)

Each database consists of one or more schemas, which are logical groupings of database objects, such as tables and views.



4638
4639
4640
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 4638

def schema
  @schema
end

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

The configuration that defines how you access secrets for Snowflake.



4710
4711
4712
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 4710

def secrets_manager_configuration
  @secrets_manager_configuration
end

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

Optionally configure a Snowflake role.

Otherwise the default user role will be used.



4717
4718
4719
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 4717

def snowflake_role_configuration
  @snowflake_role_configuration
end

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

The VPCE ID for Firehose to privately connect with Snowflake.

The ID format is com.amazonaws.vpce.[region].vpce-svc-<[id]>. For more information, see Amazon PrivateLink & Snowflake



4724
4725
4726
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 4724

def snowflake_vpc_configuration
  @snowflake_vpc_configuration
end

#tableString (readonly)

All data in Snowflake is stored in database tables, logically structured as collections of columns and rows.



4643
4644
4645
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 4643

def table
  @table
end

#userString? (readonly)

User login name for the Snowflake account.



4729
4730
4731
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 4729

def user
  @user
end

Class Method Details

.jsii_propertiesObject



4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 4731

def self.jsii_properties
  {
    :account_url => "accountUrl",
    :database => "database",
    :role_arn => "roleArn",
    :s3_configuration => "s3Configuration",
    :schema => "schema",
    :table => "table",
    :buffering_hints => "bufferingHints",
    :cloud_watch_logging_options => "cloudWatchLoggingOptions",
    :content_column_name => "contentColumnName",
    :data_loading_option => "dataLoadingOption",
    :key_passphrase => "keyPassphrase",
    :meta_data_column_name => "metaDataColumnName",
    :private_key => "privateKey",
    :processing_configuration => "processingConfiguration",
    :retry_options => "retryOptions",
    :s3_backup_mode => "s3BackupMode",
    :secrets_manager_configuration => "secretsManagerConfiguration",
    :snowflake_role_configuration => "snowflakeRoleConfiguration",
    :snowflake_vpc_configuration => "snowflakeVpcConfiguration",
    :user => "user",
  }
end

Instance Method Details

#to_jsiiObject



4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
# File 'kinesis_firehose/cfn_delivery_stream.rb', line 4756

def to_jsii
  result = {}
  result.merge!({
    "accountUrl" => @account_url,
    "database" => @database,
    "roleArn" => @role_arn,
    "s3Configuration" => @s3_configuration,
    "schema" => @schema,
    "table" => @table,
    "bufferingHints" => @buffering_hints,
    "cloudWatchLoggingOptions" => @cloud_watch_logging_options,
    "contentColumnName" => @content_column_name,
    "dataLoadingOption" => @data_loading_option,
    "keyPassphrase" => @key_passphrase,
    "metaDataColumnName" => @meta_data_column_name,
    "privateKey" => @private_key,
    "processingConfiguration" => @processing_configuration,
    "retryOptions" => @retry_options,
    "s3BackupMode" => @s3_backup_mode,
    "secretsManagerConfiguration" => @secrets_manager_configuration,
    "snowflakeRoleConfiguration" => @snowflake_role_configuration,
    "snowflakeVpcConfiguration" => @snowflake_vpc_configuration,
    "user" => @user,
  })
  result.compact
end