Skip to content

Commit f8773ce

Browse files
author
awstools
committed
feat(client-kafka): Amazon MSK Replicator can now replicate data to identically named topics between MSK clusters within the same AWS Region or across different AWS Regions.
1 parent 5f38d6b commit f8773ce

File tree

6 files changed

+111
-2
lines changed

6 files changed

+111
-2
lines changed

Diff for: clients/client-kafka/src/commands/CreateReplicatorCommand.ts

+3
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,9 @@ export interface CreateReplicatorCommandOutput extends CreateReplicatorResponse,
7474
* StartingPosition: { // ReplicationStartingPosition
7575
* Type: "LATEST" || "EARLIEST",
7676
* },
77+
* TopicNameConfiguration: { // ReplicationTopicNameConfiguration
78+
* Type: "PREFIXED_WITH_SOURCE_CLUSTER_ALIAS" || "IDENTICAL",
79+
* },
7780
* TopicsToExclude: [ // __listOf__stringMax249
7881
* "STRING_VALUE",
7982
* ],

Diff for: clients/client-kafka/src/commands/DescribeReplicatorCommand.ts

+3
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,9 @@ export interface DescribeReplicatorCommandOutput extends DescribeReplicatorRespo
8282
* // StartingPosition: { // ReplicationStartingPosition
8383
* // Type: "LATEST" || "EARLIEST",
8484
* // },
85+
* // TopicNameConfiguration: { // ReplicationTopicNameConfiguration
86+
* // Type: "PREFIXED_WITH_SOURCE_CLUSTER_ALIAS" || "IDENTICAL",
87+
* // },
8588
* // TopicsToExclude: [ // __listOf__stringMax249
8689
* // "STRING_VALUE",
8790
* // ],

Diff for: clients/client-kafka/src/commands/GetBootstrapBrokersCommand.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export interface GetBootstrapBrokersCommandInput extends GetBootstrapBrokersRequ
2828
export interface GetBootstrapBrokersCommandOutput extends GetBootstrapBrokersResponse, __MetadataBearer {}
2929

3030
/**
31-
* <p>A list of brokers that a client application can use to bootstrap.</p>
31+
* <p>A list of brokers that a client application can use to bootstrap. This list doesn't necessarily include all of the brokers in the cluster. The following Python 3.6 example shows how you can use the Amazon Resource Name (ARN) of a cluster to get its bootstrap brokers. If you don't know the ARN of your cluster, you can use the <code>ListClusters</code> operation to get the ARNs of all the clusters in this account and Region.</p>
3232
* @example
3333
* Use a bare-bones client and the command you need to make an API call.
3434
* ```javascript

Diff for: clients/client-kafka/src/models/models_0.ts

+33
Original file line numberDiff line numberDiff line change
@@ -1858,6 +1858,33 @@ export interface ReplicationStartingPosition {
18581858
Type?: ReplicationStartingPositionType;
18591859
}
18601860

1861+
/**
1862+
* @public
1863+
* @enum
1864+
*/
1865+
export const ReplicationTopicNameConfigurationType = {
1866+
IDENTICAL: "IDENTICAL",
1867+
PREFIXED_WITH_SOURCE_CLUSTER_ALIAS: "PREFIXED_WITH_SOURCE_CLUSTER_ALIAS",
1868+
} as const;
1869+
1870+
/**
1871+
* @public
1872+
*/
1873+
export type ReplicationTopicNameConfigurationType =
1874+
(typeof ReplicationTopicNameConfigurationType)[keyof typeof ReplicationTopicNameConfigurationType];
1875+
1876+
/**
1877+
* <p>Configuration for specifying replicated topic names should be the same as their corresponding upstream topics or prefixed with source cluster alias.</p>
1878+
* @public
1879+
*/
1880+
export interface ReplicationTopicNameConfiguration {
1881+
/**
1882+
* <p>The type of replicated topic name.</p>
1883+
* @public
1884+
*/
1885+
Type?: ReplicationTopicNameConfigurationType;
1886+
}
1887+
18611888
/**
18621889
* <p>Details about topic replication.</p>
18631890
* @public
@@ -1887,6 +1914,12 @@ export interface TopicReplication {
18871914
*/
18881915
StartingPosition?: ReplicationStartingPosition;
18891916

1917+
/**
1918+
* <p>Configuration for specifying replicated topic names should be the same as their corresponding upstream topics or prefixed with source cluster alias.</p>
1919+
* @public
1920+
*/
1921+
TopicNameConfiguration?: ReplicationTopicNameConfiguration;
1922+
18901923
/**
18911924
* <p>List of regular expression patterns indicating the topics that should not be replicated.</p>
18921925
* @public

Diff for: clients/client-kafka/src/protocols/Aws_restJson1.ts

+27
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,7 @@ import {
219219
ReplicationInfoSummary,
220220
ReplicationStartingPosition,
221221
ReplicationStateInfo,
222+
ReplicationTopicNameConfiguration,
222223
ReplicatorSummary,
223224
S3,
224225
Sasl,
@@ -3052,6 +3053,18 @@ const se_ReplicationStartingPosition = (input: ReplicationStartingPosition, cont
30523053
});
30533054
};
30543055

3056+
/**
3057+
* serializeAws_restJson1ReplicationTopicNameConfiguration
3058+
*/
3059+
const se_ReplicationTopicNameConfiguration = (
3060+
input: ReplicationTopicNameConfiguration,
3061+
context: __SerdeContext
3062+
): any => {
3063+
return take(input, {
3064+
type: [, , `Type`],
3065+
});
3066+
};
3067+
30553068
/**
30563069
* serializeAws_restJson1S3
30573070
*/
@@ -3138,6 +3151,7 @@ const se_TopicReplication = (input: TopicReplication, context: __SerdeContext):
31383151
copyTopicConfigurations: [, , `CopyTopicConfigurations`],
31393152
detectAndCopyNewTopics: [, , `DetectAndCopyNewTopics`],
31403153
startingPosition: [, (_) => se_ReplicationStartingPosition(_, context), `StartingPosition`],
3154+
topicNameConfiguration: [, (_) => se_ReplicationTopicNameConfiguration(_, context), `TopicNameConfiguration`],
31413155
topicsToExclude: [, _json, `TopicsToExclude`],
31423156
topicsToReplicate: [, _json, `TopicsToReplicate`],
31433157
});
@@ -4135,6 +4149,18 @@ const de_ReplicationStateInfo = (output: any, context: __SerdeContext): Replicat
41354149
}) as any;
41364150
};
41374151

4152+
/**
4153+
* deserializeAws_restJson1ReplicationTopicNameConfiguration
4154+
*/
4155+
const de_ReplicationTopicNameConfiguration = (
4156+
output: any,
4157+
context: __SerdeContext
4158+
): ReplicationTopicNameConfiguration => {
4159+
return take(output, {
4160+
Type: [, __expectString, `type`],
4161+
}) as any;
4162+
};
4163+
41384164
/**
41394165
* deserializeAws_restJson1ReplicatorSummary
41404166
*/
@@ -4252,6 +4278,7 @@ const de_TopicReplication = (output: any, context: __SerdeContext): TopicReplica
42524278
CopyTopicConfigurations: [, __expectBoolean, `copyTopicConfigurations`],
42534279
DetectAndCopyNewTopics: [, __expectBoolean, `detectAndCopyNewTopics`],
42544280
StartingPosition: [, (_: any) => de_ReplicationStartingPosition(_, context), `startingPosition`],
4281+
TopicNameConfiguration: [, (_: any) => de_ReplicationTopicNameConfiguration(_, context), `topicNameConfiguration`],
42554282
TopicsToExclude: [, _json, `topicsToExclude`],
42564283
TopicsToReplicate: [, _json, `topicsToReplicate`],
42574284
}) as any;

Diff for: codegen/sdk-codegen/aws-models/kafka.json

+44-1
Original file line numberDiff line numberDiff line change
@@ -3579,7 +3579,7 @@
35793579
}
35803580
],
35813581
"traits": {
3582-
"smithy.api#documentation": "<p>A list of brokers that a client application can use to bootstrap.</p>",
3582+
"smithy.api#documentation": "<p>A list of brokers that a client application can use to bootstrap. This list doesn't necessarily include all of the brokers in the cluster. The following Python 3.6 example shows how you can use the Amazon Resource Name (ARN) of a cluster to get its bootstrap brokers. If you don't know the ARN of your cluster, you can use the <code>ListClusters</code> operation to get the ARNs of all the clusters in this account and Region.</p>",
35833583
"smithy.api#http": {
35843584
"method": "GET",
35853585
"uri": "/v1/clusters/{ClusterArn}/bootstrap-brokers",
@@ -4066,6 +4066,7 @@
40664066
"name": "kafka"
40674067
},
40684068
"aws.protocols#restJson1": {},
4069+
"smithy.api#auth": ["aws.auth#sigv4"],
40694070
"smithy.api#documentation": "<p>The operations for managing an Amazon MSK cluster.</p>",
40704071
"smithy.api#title": "Managed Streaming for Kafka",
40714072
"smithy.rules#endpointRuleSet": {
@@ -7253,6 +7254,41 @@
72537254
"smithy.api#documentation": "Details about the state of a replicator"
72547255
}
72557256
},
7257+
"com.amazonaws.kafka#ReplicationTopicNameConfiguration": {
7258+
"type": "structure",
7259+
"members": {
7260+
"Type": {
7261+
"target": "com.amazonaws.kafka#ReplicationTopicNameConfigurationType",
7262+
"traits": {
7263+
"smithy.api#documentation": "<p>The type of replicated topic name.</p>",
7264+
"smithy.api#jsonName": "type"
7265+
}
7266+
}
7267+
},
7268+
"traits": {
7269+
"smithy.api#documentation": "<p>Configuration for specifying replicated topic names should be the same as their corresponding upstream topics or prefixed with source cluster alias.</p>"
7270+
}
7271+
},
7272+
"com.amazonaws.kafka#ReplicationTopicNameConfigurationType": {
7273+
"type": "enum",
7274+
"members": {
7275+
"PREFIXED_WITH_SOURCE_CLUSTER_ALIAS": {
7276+
"target": "smithy.api#Unit",
7277+
"traits": {
7278+
"smithy.api#enumValue": "PREFIXED_WITH_SOURCE_CLUSTER_ALIAS"
7279+
}
7280+
},
7281+
"IDENTICAL": {
7282+
"target": "smithy.api#Unit",
7283+
"traits": {
7284+
"smithy.api#enumValue": "IDENTICAL"
7285+
}
7286+
}
7287+
},
7288+
"traits": {
7289+
"smithy.api#documentation": "<p>The type of replicated topic name.</p>"
7290+
}
7291+
},
72567292
"com.amazonaws.kafka#ReplicatorState": {
72577293
"type": "enum",
72587294
"members": {
@@ -7746,6 +7782,13 @@
77467782
"smithy.api#jsonName": "startingPosition"
77477783
}
77487784
},
7785+
"TopicNameConfiguration": {
7786+
"target": "com.amazonaws.kafka#ReplicationTopicNameConfiguration",
7787+
"traits": {
7788+
"smithy.api#documentation": "<p>Configuration for specifying replicated topic names should be the same as their corresponding upstream topics or prefixed with source cluster alias.</p>",
7789+
"smithy.api#jsonName": "topicNameConfiguration"
7790+
}
7791+
},
77497792
"TopicsToExclude": {
77507793
"target": "com.amazonaws.kafka#__listOf__stringMax249",
77517794
"traits": {

0 commit comments

Comments
 (0)