Class: AWSCDK::DMS::CfnEndpoint::KafkaSettingsProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
dms/cfn_endpoint.rb

Overview

Provides information that describes an Apache Kafka endpoint.

This information includes the output format of records applied to the endpoint and details of transaction and control table data information. For more information about other available settings, see Using object mapping to migrate data to a Kafka topic in the AWS Database Migration Service User Guide .

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(broker: nil, include_control_details: nil, include_null_and_empty: nil, include_partition_value: nil, include_table_alter_operations: nil, include_transaction_details: nil, message_format: nil, message_max_bytes: nil, no_hex_prefix: nil, partition_include_schema_table: nil, sasl_password: nil, sasl_user_name: nil, security_protocol: nil, ssl_ca_certificate_arn: nil, ssl_client_certificate_arn: nil, ssl_client_key_arn: nil, ssl_client_key_password: nil, topic: nil) ⇒ KafkaSettingsProperty

Returns a new instance of KafkaSettingsProperty.

Parameters:

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

    A comma-separated list of one or more broker locations in your Kafka cluster that host your Kafka instance.

  • include_control_details (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    Shows detailed control information for table definition, column definition, and table and column changes in the Kafka message output.

  • include_null_and_empty (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    Include NULL and empty columns for records migrated to the endpoint.

  • include_partition_value (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    Shows the partition value within the Kafka message output unless the partition type is schema-table-type .

  • include_table_alter_operations (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    Includes any data definition language (DDL) operations that change the table in the control data, such as rename-table , drop-table , add-column , drop-column , and rename-column .

  • include_transaction_details (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    Provides detailed transaction information from the source database.

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

    The output format for the records created on the endpoint.

  • message_max_bytes (Numeric, nil) (defaults to: nil)

    The maximum size in bytes for records created on the endpoint The default is 1,000,000.

  • no_hex_prefix (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    Set this optional parameter to true to avoid adding a '0x' prefix to raw data in hexadecimal format.

  • partition_include_schema_table (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    Prefixes schema and table names to partition values, when the partition type is primary-key-type .

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

    The secure password that you created when you first set up your Amazon MSK cluster to validate a client identity and make an encrypted connection between server and client using SASL-SSL authentication.

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

    The secure user name you created when you first set up your Amazon MSK cluster to validate a client identity and make an encrypted connection between server and client using SASL-SSL authentication.

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

    Set secure connection to a Kafka target endpoint using Transport Layer Security (TLS).

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

    The Amazon Resource Name (ARN) for the private certificate authority (CA) cert that AWS DMS uses to securely connect to your Kafka target endpoint.

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

    The Amazon Resource Name (ARN) of the client certificate used to securely connect to a Kafka target endpoint.

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

    The Amazon Resource Name (ARN) for the client private key used to securely connect to a Kafka target endpoint.

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

    The password for the client private key used to securely connect to a Kafka target endpoint.

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

    The topic to which you migrate the data.



1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
# File 'dms/cfn_endpoint.rb', line 1473

def initialize(broker: nil, include_control_details: nil, include_null_and_empty: nil, include_partition_value: nil, include_table_alter_operations: nil, include_transaction_details: nil, message_format: nil, message_max_bytes: nil, no_hex_prefix: nil, partition_include_schema_table: nil, sasl_password: nil, sasl_user_name: nil, security_protocol: nil, ssl_ca_certificate_arn: nil, ssl_client_certificate_arn: nil, ssl_client_key_arn: nil, ssl_client_key_password: nil, topic: nil)
  @broker = broker
  Jsii::Type.check_type(@broker, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "broker") unless @broker.nil?
  @include_control_details = include_control_details
  Jsii::Type.check_type(@include_control_details, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "includeControlDetails") unless @include_control_details.nil?
  @include_null_and_empty = include_null_and_empty
  Jsii::Type.check_type(@include_null_and_empty, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "includeNullAndEmpty") unless @include_null_and_empty.nil?
  @include_partition_value = include_partition_value
  Jsii::Type.check_type(@include_partition_value, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "includePartitionValue") unless @include_partition_value.nil?
  @include_table_alter_operations = include_table_alter_operations
  Jsii::Type.check_type(@include_table_alter_operations, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "includeTableAlterOperations") unless @include_table_alter_operations.nil?
  @include_transaction_details = include_transaction_details
  Jsii::Type.check_type(@include_transaction_details, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "includeTransactionDetails") unless @include_transaction_details.nil?
  @message_format = message_format
  Jsii::Type.check_type(@message_format, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "messageFormat") unless @message_format.nil?
  @message_max_bytes = message_max_bytes
  Jsii::Type.check_type(@message_max_bytes, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "messageMaxBytes") unless @message_max_bytes.nil?
  @no_hex_prefix = no_hex_prefix
  Jsii::Type.check_type(@no_hex_prefix, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "noHexPrefix") unless @no_hex_prefix.nil?
  @partition_include_schema_table = partition_include_schema_table
  Jsii::Type.check_type(@partition_include_schema_table, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "partitionIncludeSchemaTable") unless @partition_include_schema_table.nil?
  @sasl_password = sasl_password
  Jsii::Type.check_type(@sasl_password, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "saslPassword") unless @sasl_password.nil?
  @sasl_user_name = sasl_user_name
  Jsii::Type.check_type(@sasl_user_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "saslUserName") unless @sasl_user_name.nil?
  @security_protocol = security_protocol
  Jsii::Type.check_type(@security_protocol, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "securityProtocol") unless @security_protocol.nil?
  @ssl_ca_certificate_arn = ssl_ca_certificate_arn
  Jsii::Type.check_type(@ssl_ca_certificate_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "sslCaCertificateArn") unless @ssl_ca_certificate_arn.nil?
  @ssl_client_certificate_arn = ssl_client_certificate_arn
  Jsii::Type.check_type(@ssl_client_certificate_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "sslClientCertificateArn") unless @ssl_client_certificate_arn.nil?
  @ssl_client_key_arn = ssl_client_key_arn
  Jsii::Type.check_type(@ssl_client_key_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "sslClientKeyArn") unless @ssl_client_key_arn.nil?
  @ssl_client_key_password = ssl_client_key_password
  Jsii::Type.check_type(@ssl_client_key_password, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "sslClientKeyPassword") unless @ssl_client_key_password.nil?
  @topic = topic
  Jsii::Type.check_type(@topic, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "topic") unless @topic.nil?
end

Instance Attribute Details

#brokerString? (readonly)

A comma-separated list of one or more broker locations in your Kafka cluster that host your Kafka instance.

Specify each broker location in the form *broker-hostname-or-ip* : *port* . For example, "ec2-12-345-678-901.compute-1.amazonaws.com:2345" . For more information and examples of specifying a list of broker locations, see Using Apache Kafka as a target for AWS Database Migration Service in the AWS Database Migration Service User Guide .



1518
1519
1520
# File 'dms/cfn_endpoint.rb', line 1518

def broker
  @broker
end

#include_control_detailsBoolean, ... (readonly)

Shows detailed control information for table definition, column definition, and table and column changes in the Kafka message output.

The default is false .



1525
1526
1527
# File 'dms/cfn_endpoint.rb', line 1525

def include_control_details
  @include_control_details
end

#include_null_and_emptyBoolean, ... (readonly)

Include NULL and empty columns for records migrated to the endpoint.

The default is false .



1532
1533
1534
# File 'dms/cfn_endpoint.rb', line 1532

def include_null_and_empty
  @include_null_and_empty
end

#include_partition_valueBoolean, ... (readonly)

Shows the partition value within the Kafka message output unless the partition type is schema-table-type .

The default is false .



1539
1540
1541
# File 'dms/cfn_endpoint.rb', line 1539

def include_partition_value
  @include_partition_value
end

#include_table_alter_operationsBoolean, ... (readonly)

Includes any data definition language (DDL) operations that change the table in the control data, such as rename-table , drop-table , add-column , drop-column , and rename-column .

The default is false .



1546
1547
1548
# File 'dms/cfn_endpoint.rb', line 1546

def include_table_alter_operations
  @include_table_alter_operations
end

#include_transaction_detailsBoolean, ... (readonly)

Provides detailed transaction information from the source database.

This information includes a commit timestamp, a log position, and values for transaction_id , previous transaction_id , and transaction_record_id (the record offset within a transaction). The default is false .



1553
1554
1555
# File 'dms/cfn_endpoint.rb', line 1553

def include_transaction_details
  @include_transaction_details
end

#message_formatString? (readonly)

The output format for the records created on the endpoint.

The message format is JSON (default) or JSON_UNFORMATTED (a single line with no tab).



1560
1561
1562
# File 'dms/cfn_endpoint.rb', line 1560

def message_format
  @message_format
end

#message_max_bytesNumeric? (readonly)

The maximum size in bytes for records created on the endpoint The default is 1,000,000.



1565
1566
1567
# File 'dms/cfn_endpoint.rb', line 1565

def message_max_bytes
  @message_max_bytes
end

#no_hex_prefixBoolean, ... (readonly)

Set this optional parameter to true to avoid adding a '0x' prefix to raw data in hexadecimal format.

For example, by default, AWS DMS adds a '0x' prefix to the LOB column type in hexadecimal format moving from an Oracle source to a Kafka target. Use the NoHexPrefix endpoint setting to enable migration of RAW data type columns without adding the '0x' prefix.



1572
1573
1574
# File 'dms/cfn_endpoint.rb', line 1572

def no_hex_prefix
  @no_hex_prefix
end

#partition_include_schema_tableBoolean, ... (readonly)

Prefixes schema and table names to partition values, when the partition type is primary-key-type .

Doing this increases data distribution among Kafka partitions. For example, suppose that a SysBench schema has thousands of tables and each table has only limited range for a primary key. In this case, the same primary key is sent from thousands of tables to the same partition, which causes throttling. The default is false .



1579
1580
1581
# File 'dms/cfn_endpoint.rb', line 1579

def partition_include_schema_table
  @partition_include_schema_table
end

#sasl_passwordString? (readonly)

The secure password that you created when you first set up your Amazon MSK cluster to validate a client identity and make an encrypted connection between server and client using SASL-SSL authentication.



1584
1585
1586
# File 'dms/cfn_endpoint.rb', line 1584

def sasl_password
  @sasl_password
end

#sasl_user_nameString? (readonly)

The secure user name you created when you first set up your Amazon MSK cluster to validate a client identity and make an encrypted connection between server and client using SASL-SSL authentication.



1589
1590
1591
# File 'dms/cfn_endpoint.rb', line 1589

def sasl_user_name
  @sasl_user_name
end

#security_protocolString? (readonly)

Set secure connection to a Kafka target endpoint using Transport Layer Security (TLS).

Options include ssl-encryption , ssl-authentication , and sasl-ssl . sasl-ssl requires SaslUsername and SaslPassword .



1596
1597
1598
# File 'dms/cfn_endpoint.rb', line 1596

def security_protocol
  @security_protocol
end

#ssl_ca_certificate_arnString? (readonly)

The Amazon Resource Name (ARN) for the private certificate authority (CA) cert that AWS DMS uses to securely connect to your Kafka target endpoint.



1601
1602
1603
# File 'dms/cfn_endpoint.rb', line 1601

def ssl_ca_certificate_arn
  @ssl_ca_certificate_arn
end

#ssl_client_certificate_arnString? (readonly)

The Amazon Resource Name (ARN) of the client certificate used to securely connect to a Kafka target endpoint.



1606
1607
1608
# File 'dms/cfn_endpoint.rb', line 1606

def ssl_client_certificate_arn
  @ssl_client_certificate_arn
end

#ssl_client_key_arnString? (readonly)

The Amazon Resource Name (ARN) for the client private key used to securely connect to a Kafka target endpoint.



1611
1612
1613
# File 'dms/cfn_endpoint.rb', line 1611

def ssl_client_key_arn
  @ssl_client_key_arn
end

#ssl_client_key_passwordString? (readonly)

The password for the client private key used to securely connect to a Kafka target endpoint.



1616
1617
1618
# File 'dms/cfn_endpoint.rb', line 1616

def ssl_client_key_password
  @ssl_client_key_password
end

#topicString? (readonly)

The topic to which you migrate the data.

If you don't specify a topic, AWS DMS specifies "kafka-default-topic" as the migration topic.



1623
1624
1625
# File 'dms/cfn_endpoint.rb', line 1623

def topic
  @topic
end

Class Method Details

.jsii_propertiesObject



1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
# File 'dms/cfn_endpoint.rb', line 1625

def self.jsii_properties
  {
    :broker => "broker",
    :include_control_details => "includeControlDetails",
    :include_null_and_empty => "includeNullAndEmpty",
    :include_partition_value => "includePartitionValue",
    :include_table_alter_operations => "includeTableAlterOperations",
    :include_transaction_details => "includeTransactionDetails",
    :message_format => "messageFormat",
    :message_max_bytes => "messageMaxBytes",
    :no_hex_prefix => "noHexPrefix",
    :partition_include_schema_table => "partitionIncludeSchemaTable",
    :sasl_password => "saslPassword",
    :sasl_user_name => "saslUserName",
    :security_protocol => "securityProtocol",
    :ssl_ca_certificate_arn => "sslCaCertificateArn",
    :ssl_client_certificate_arn => "sslClientCertificateArn",
    :ssl_client_key_arn => "sslClientKeyArn",
    :ssl_client_key_password => "sslClientKeyPassword",
    :topic => "topic",
  }
end

Instance Method Details

#to_jsiiObject



1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
# File 'dms/cfn_endpoint.rb', line 1648

def to_jsii
  result = {}
  result.merge!({
    "broker" => @broker,
    "includeControlDetails" => @include_control_details,
    "includeNullAndEmpty" => @include_null_and_empty,
    "includePartitionValue" => @include_partition_value,
    "includeTableAlterOperations" => @include_table_alter_operations,
    "includeTransactionDetails" => @include_transaction_details,
    "messageFormat" => @message_format,
    "messageMaxBytes" => @message_max_bytes,
    "noHexPrefix" => @no_hex_prefix,
    "partitionIncludeSchemaTable" => @partition_include_schema_table,
    "saslPassword" => @sasl_password,
    "saslUserName" => @sasl_user_name,
    "securityProtocol" => @security_protocol,
    "sslCaCertificateArn" => @ssl_ca_certificate_arn,
    "sslClientCertificateArn" => @ssl_client_certificate_arn,
    "sslClientKeyArn" => @ssl_client_key_arn,
    "sslClientKeyPassword" => @ssl_client_key_password,
    "topic" => @topic,
  })
  result.compact
end