Skip to content

Commit 543ff57

Browse files
author
awstools
committed
feat(client-kafka): Amazon MSK Replicator now supports data migration from external Apache Kafka clusters to Amazon MSK Express brokers. This release adds SaslScram authentication with TLS encryption, enhanced consumer offset synchronization, and customer log forwarding for troubleshooting.
1 parent 23d06d5 commit 543ff57

10 files changed

Lines changed: 903 additions & 46 deletions

File tree

clients/client-kafka/src/commands/CreateReplicatorCommand.ts

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,10 @@ export interface CreateReplicatorCommandOutput extends CreateReplicatorResponse,
4343
* AmazonMskCluster: { // AmazonMskCluster
4444
* MskClusterArn: "STRING_VALUE", // required
4545
* },
46+
* ApacheKafkaCluster: { // ApacheKafkaCluster
47+
* ApacheKafkaClusterId: "STRING_VALUE", // required
48+
* BootstrapBrokerString: "STRING_VALUE", // required
49+
* },
4650
* VpcConfig: { // KafkaClusterClientVpcConfig
4751
* SecurityGroupIds: [ // __listOf__string
4852
* "STRING_VALUE",
@@ -51,6 +55,16 @@ export interface CreateReplicatorCommandOutput extends CreateReplicatorResponse,
5155
* "STRING_VALUE",
5256
* ],
5357
* },
58+
* ClientAuthentication: { // KafkaClusterClientAuthentication
59+
* SaslScram: { // KafkaClusterSaslScramAuthentication
60+
* Mechanism: "SHA256" || "SHA512", // required
61+
* SecretArn: "STRING_VALUE", // required
62+
* },
63+
* },
64+
* EncryptionInTransit: { // KafkaClusterEncryptionInTransit
65+
* EncryptionType: "TLS", // required
66+
* RootCaCertificate: "STRING_VALUE",
67+
* },
5468
* },
5569
* ],
5670
* ReplicationInfoList: [ // __listOfReplicationInfo // required
@@ -64,10 +78,13 @@ export interface CreateReplicatorCommandOutput extends CreateReplicatorResponse,
6478
* ],
6579
* DetectAndCopyNewConsumerGroups: true || false,
6680
* SynchroniseConsumerGroupOffsets: true || false,
81+
* ConsumerGroupOffsetSyncMode: "LEGACY" || "ENHANCED",
6782
* },
68-
* SourceKafkaClusterArn: "STRING_VALUE", // required
83+
* SourceKafkaClusterArn: "STRING_VALUE",
84+
* SourceKafkaClusterId: "STRING_VALUE",
6985
* TargetCompressionType: "NONE" || "GZIP" || "SNAPPY" || "LZ4" || "ZSTD", // required
70-
* TargetKafkaClusterArn: "STRING_VALUE", // required
86+
* TargetKafkaClusterArn: "STRING_VALUE",
87+
* TargetKafkaClusterId: "STRING_VALUE",
7188
* TopicReplication: { // TopicReplication
7289
* CopyAccessControlListsForTopics: true || false,
7390
* CopyTopicConfigurations: true || false,
@@ -92,6 +109,23 @@ export interface CreateReplicatorCommandOutput extends CreateReplicatorResponse,
92109
* Tags: { // __mapOf__string
93110
* "<keys>": "STRING_VALUE",
94111
* },
112+
* LogDelivery: { // LogDelivery
113+
* ReplicatorLogDelivery: { // ReplicatorLogDelivery
114+
* CloudWatchLogs: { // ReplicatorCloudWatchLogs
115+
* Enabled: true || false, // required
116+
* LogGroup: "STRING_VALUE",
117+
* },
118+
* Firehose: { // ReplicatorFirehose
119+
* Enabled: true || false, // required
120+
* DeliveryStream: "STRING_VALUE",
121+
* },
122+
* S3: { // ReplicatorS3
123+
* Enabled: true || false, // required
124+
* Bucket: "STRING_VALUE",
125+
* Prefix: "STRING_VALUE",
126+
* },
127+
* },
128+
* },
95129
* };
96130
* const command = new CreateReplicatorCommand(input);
97131
* const response = await client.send(command);

clients/client-kafka/src/commands/DescribeReplicatorCommand.ts

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ export interface DescribeReplicatorCommandOutput extends DescribeReplicatorRespo
5050
* // AmazonMskCluster: { // AmazonMskCluster
5151
* // MskClusterArn: "STRING_VALUE", // required
5252
* // },
53+
* // ApacheKafkaCluster: { // ApacheKafkaCluster
54+
* // ApacheKafkaClusterId: "STRING_VALUE", // required
55+
* // BootstrapBrokerString: "STRING_VALUE", // required
56+
* // },
5357
* // KafkaClusterAlias: "STRING_VALUE",
5458
* // VpcConfig: { // KafkaClusterClientVpcConfig
5559
* // SecurityGroupIds: [ // __listOf__string
@@ -59,6 +63,16 @@ export interface DescribeReplicatorCommandOutput extends DescribeReplicatorRespo
5963
* // "STRING_VALUE",
6064
* // ],
6165
* // },
66+
* // ClientAuthentication: { // KafkaClusterClientAuthentication
67+
* // SaslScram: { // KafkaClusterSaslScramAuthentication
68+
* // Mechanism: "SHA256" || "SHA512", // required
69+
* // SecretArn: "STRING_VALUE", // required
70+
* // },
71+
* // },
72+
* // EncryptionInTransit: { // KafkaClusterEncryptionInTransit
73+
* // EncryptionType: "TLS", // required
74+
* // RootCaCertificate: "STRING_VALUE",
75+
* // },
6276
* // },
6377
* // ],
6478
* // ReplicationInfoList: [ // __listOfReplicationInfoDescription
@@ -72,6 +86,7 @@ export interface DescribeReplicatorCommandOutput extends DescribeReplicatorRespo
7286
* // ],
7387
* // DetectAndCopyNewConsumerGroups: true || false,
7488
* // SynchroniseConsumerGroupOffsets: true || false,
89+
* // ConsumerGroupOffsetSyncMode: "LEGACY" || "ENHANCED",
7590
* // },
7691
* // SourceKafkaClusterAlias: "STRING_VALUE",
7792
* // TargetCompressionType: "NONE" || "GZIP" || "SNAPPY" || "LZ4" || "ZSTD",
@@ -108,6 +123,23 @@ export interface DescribeReplicatorCommandOutput extends DescribeReplicatorRespo
108123
* // Tags: { // __mapOf__string
109124
* // "<keys>": "STRING_VALUE",
110125
* // },
126+
* // LogDelivery: { // LogDelivery
127+
* // ReplicatorLogDelivery: { // ReplicatorLogDelivery
128+
* // CloudWatchLogs: { // ReplicatorCloudWatchLogs
129+
* // Enabled: true || false, // required
130+
* // LogGroup: "STRING_VALUE",
131+
* // },
132+
* // Firehose: { // ReplicatorFirehose
133+
* // Enabled: true || false, // required
134+
* // DeliveryStream: "STRING_VALUE",
135+
* // },
136+
* // S3: { // ReplicatorS3
137+
* // Enabled: true || false, // required
138+
* // Bucket: "STRING_VALUE",
139+
* // Prefix: "STRING_VALUE",
140+
* // },
141+
* // },
142+
* // },
111143
* // };
112144
*
113145
* ```

clients/client-kafka/src/commands/ListReplicatorsCommand.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@ export interface ListReplicatorsCommandOutput extends ListReplicatorsResponse, _
5555
* // AmazonMskCluster: { // AmazonMskCluster
5656
* // MskClusterArn: "STRING_VALUE", // required
5757
* // },
58+
* // ApacheKafkaCluster: { // ApacheKafkaCluster
59+
* // ApacheKafkaClusterId: "STRING_VALUE", // required
60+
* // BootstrapBrokerString: "STRING_VALUE", // required
61+
* // },
5862
* // KafkaClusterAlias: "STRING_VALUE",
5963
* // },
6064
* // ],

clients/client-kafka/src/commands/UpdateReplicationInfoCommand.ts

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,10 @@ export interface UpdateReplicationInfoCommandOutput extends UpdateReplicationInf
4949
* },
5050
* CurrentVersion: "STRING_VALUE", // required
5151
* ReplicatorArn: "STRING_VALUE", // required
52-
* SourceKafkaClusterArn: "STRING_VALUE", // required
53-
* TargetKafkaClusterArn: "STRING_VALUE", // required
52+
* SourceKafkaClusterArn: "STRING_VALUE",
53+
* SourceKafkaClusterId: "STRING_VALUE",
54+
* TargetKafkaClusterArn: "STRING_VALUE",
55+
* TargetKafkaClusterId: "STRING_VALUE",
5456
* TopicReplication: { // TopicReplicationUpdate
5557
* CopyAccessControlListsForTopics: true || false, // required
5658
* CopyTopicConfigurations: true || false, // required
@@ -62,6 +64,23 @@ export interface UpdateReplicationInfoCommandOutput extends UpdateReplicationInf
6264
* "STRING_VALUE",
6365
* ],
6466
* },
67+
* LogDelivery: { // LogDelivery
68+
* ReplicatorLogDelivery: { // ReplicatorLogDelivery
69+
* CloudWatchLogs: { // ReplicatorCloudWatchLogs
70+
* Enabled: true || false, // required
71+
* LogGroup: "STRING_VALUE",
72+
* },
73+
* Firehose: { // ReplicatorFirehose
74+
* Enabled: true || false, // required
75+
* DeliveryStream: "STRING_VALUE",
76+
* },
77+
* S3: { // ReplicatorS3
78+
* Enabled: true || false, // required
79+
* Bucket: "STRING_VALUE",
80+
* Prefix: "STRING_VALUE",
81+
* },
82+
* },
83+
* },
6584
* };
6685
* const command = new UpdateReplicationInfoCommand(input);
6786
* const response = await client.send(command);

clients/client-kafka/src/models/enums.ts

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,33 @@ export const ConfigurationState = {
171171
*/
172172
export type ConfigurationState = (typeof ConfigurationState)[keyof typeof ConfigurationState];
173173

174+
/**
175+
* @public
176+
* @enum
177+
*/
178+
export const KafkaClusterSaslScramMechanism = {
179+
SHA256: "SHA256",
180+
SHA512: "SHA512",
181+
} as const;
182+
/**
183+
* @public
184+
*/
185+
export type KafkaClusterSaslScramMechanism =
186+
(typeof KafkaClusterSaslScramMechanism)[keyof typeof KafkaClusterSaslScramMechanism];
187+
188+
/**
189+
* @public
190+
* @enum
191+
*/
192+
export const KafkaClusterEncryptionInTransitType = {
193+
TLS: "TLS",
194+
} as const;
195+
/**
196+
* @public
197+
*/
198+
export type KafkaClusterEncryptionInTransitType =
199+
(typeof KafkaClusterEncryptionInTransitType)[keyof typeof KafkaClusterEncryptionInTransitType];
200+
174201
/**
175202
* @public
176203
* @enum
@@ -196,6 +223,20 @@ export const NodeType = {
196223
*/
197224
export type NodeType = (typeof NodeType)[keyof typeof NodeType];
198225

226+
/**
227+
* @public
228+
* @enum
229+
*/
230+
export const ConsumerGroupOffsetSyncMode = {
231+
ENHANCED: "ENHANCED",
232+
LEGACY: "LEGACY",
233+
} as const;
234+
/**
235+
* @public
236+
*/
237+
export type ConsumerGroupOffsetSyncMode =
238+
(typeof ConsumerGroupOffsetSyncMode)[keyof typeof ConsumerGroupOffsetSyncMode];
239+
199240
/**
200241
* @public
201242
* @enum

0 commit comments

Comments
 (0)