import { Value } from '../../../cloudformation/Value';
/**
  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 <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Kafka.html#CHAP_Target.Kafka.ObjectMapping"> Using object mapping to migrate data to a Kafka topic</a> in the <em>AWS Database Migration Service User Guide</em>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html">the AWS Docs</a>
*/
export interface KafkaSettingsProps {
    /** <code>Broker</code>  <a name="cfn-dms-endpoint-kafkasettings-broker"></a>
  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 <code>broker-hostname-or-ip:port</code>. For example, <code>&quot;ec2-12-345-678-901.compute-1.amazonaws.com:2345&quot;</code>. For more information and examples of specifying a list of broker locations, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Kafka.html"> Using Apache Kafka as a target for AWS Database Migration Service</a> in the
  AWS Database Migration Service User Guide: br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    broker?: Value<string>;
    /** <code>SaslPassword</code>  <a name="cfn-dms-endpoint-kafkasettings-saslpassword"></a>
  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.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    saslPassword?: Value<string>;
    /** <code>MessageFormat</code>  <a name="cfn-dms-endpoint-kafkasettings-messageformat"></a>
  The output format for the records created on the endpoint. The message format is <code>JSON</code> (default) or <code>JSON_UNFORMATTED</code> (a single line with no tab).<br />
  
  Required: No<br />
  
  Allowed values: <code>json | json-unformatted</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    messageFormat?: Value<'json' | 'json-unformatted'>;
    /** <code>SslClientCertificateArn</code>  <a name="cfn-dms-endpoint-kafkasettings-sslclientcertificatearn"></a>
  The Amazon Resource Name (ARN) of the client certificate used to securely connect to a Kafka target endpoint.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    sslClientCertificateArn?: Value<string>;
    /** <code>IncludeTransactionDetails</code>  <a name="cfn-dms-endpoint-kafkasettings-includetransactiondetails"></a>
  Provides detailed transaction information from the source database. This information includes a commit timestamp, a log position, and values for <code>transaction_id</code>, previous <code>transaction_id</code>, and <code>transaction_record_id</code> (the record offset within a transaction). The default is <code>false</code>.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    includeTransactionDetails?: Value<boolean>;
    /** <code>SecurityProtocol</code>  <a name="cfn-dms-endpoint-kafkasettings-securityprotocol"></a>
  Set secure connection to a Kafka target endpoint using Transport Layer Security (TLS). Options include <code>ssl-encryption</code>, <code>ssl-authentication</code>, and <code>sasl-ssl</code>. <code>sasl-ssl</code> requires <code>SaslUsername</code> and <code>SaslPassword</code>.<br />
  
  Required: No<br />
  
  Allowed values: <code>plaintext | sasl-ssl | ssl-authentication | ssl-encryption</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    securityProtocol?: Value<'plaintext' | 'sasl-ssl' | 'ssl-authentication' | 'ssl-encryption'>;
    /** <code>IncludeTableAlterOperations</code>  <a name="cfn-dms-endpoint-kafkasettings-includetablealteroperations"></a>
  Includes any data definition language (DDL) operations that change the table in the control data, such as <code>rename-table</code>, <code>drop-table</code>, <code>add-column</code>, <code>drop-column</code>, and <code>rename-column</code>. The default is <code>false</code>.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    includeTableAlterOperations?: Value<boolean>;
    /** <code>SslCaCertificateArn</code>  <a name="cfn-dms-endpoint-kafkasettings-sslcacertificatearn"></a>
  The Amazon Resource Name (ARN) for the private certificate authority (CA) cert that AWS DMS uses to securely connect to your Kafka target endpoint.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    sslCaCertificateArn?: Value<string>;
    /** <code>IncludeControlDetails</code>  <a name="cfn-dms-endpoint-kafkasettings-includecontroldetails"></a>
  Shows detailed control information for table definition, column definition, and table and column changes in the Kafka message output. The default is <code>false</code>.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    includeControlDetails?: Value<boolean>;
    /** <code>IncludePartitionValue</code>  <a name="cfn-dms-endpoint-kafkasettings-includepartitionvalue"></a>
  Shows the partition value within the Kafka message output unless the partition type is <code>schema-table-type</code>. The default is <code>false</code>.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    includePartitionValue?: Value<boolean>;
    /** <code>NoHexPrefix</code>  <a name="cfn-dms-endpoint-kafkasettings-nohexprefix"></a>
  Set this optional parameter to <code>true</code> 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 <code>NoHexPrefix</code> endpoint setting to enable migration of RAW data type columns without adding the ‘0x’ prefix.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    noHexPrefix?: Value<boolean>;
    /** <code>SslClientKeyArn</code>  <a name="cfn-dms-endpoint-kafkasettings-sslclientkeyarn"></a>
  The Amazon Resource Name (ARN) for the client private key used to securely connect to a Kafka target endpoint.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    sslClientKeyArn?: Value<string>;
    /** <code>SslClientKeyPassword</code>  <a name="cfn-dms-endpoint-kafkasettings-sslclientkeypassword"></a>
  The password for the client private key used to securely connect to a Kafka target endpoint.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    sslClientKeyPassword?: Value<string>;
    /** <code>SaslUserName</code>  <a name="cfn-dms-endpoint-kafkasettings-saslusername"></a>
  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.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    saslUserName?: Value<string>;
    /** <code>MessageMaxBytes</code>  <a name="cfn-dms-endpoint-kafkasettings-messagemaxbytes"></a>
  The maximum size in bytes for records created on the endpoint The default is 1,000,000.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    messageMaxBytes?: Value<number>;
    /** <code>Topic</code>  <a name="cfn-dms-endpoint-kafkasettings-topic"></a>
  The topic to which you migrate the data. If you don’t specify a topic, AWS DMS specifies <code>&quot;kafka-default-topic&quot;</code> as the migration topic.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    topic?: Value<string>;
    /** <code>PartitionIncludeSchemaTable</code>  <a name="cfn-dms-endpoint-kafkasettings-partitionincludeschematable"></a>
  Prefixes schema and table names to partition values, when the partition type is <code>primary-key-type</code>. 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 <code>false</code>.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    partitionIncludeSchemaTable?: Value<boolean>;
    /** <code>IncludeNullAndEmpty</code>  <a name="cfn-dms-endpoint-kafkasettings-includenullandempty"></a>
  Include NULL and empty columns for records migrated to the endpoint. The default is <code>false</code>.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    includeNullAndEmpty?: Value<boolean>;
}
