Package com.pulumi.aws.msk
Class Replicator
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.msk.Replicator
-
public class Replicator extends com.pulumi.resources.CustomResourceResource for managing an AWS Managed Streaming for Kafka Replicator. ## Example Usage ### Basic Usage
### Self-Managed Apache Kafka Cluster Target Replicate from an Amazon MSK cluster to a self-managed or on-premises Apache Kafka cluster, authenticating to the Apache Kafka cluster with SASL/SCRAM and trusting a custom root CA chain.package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.msk.Replicator; import com.pulumi.aws.msk.ReplicatorArgs; import com.pulumi.aws.msk.inputs.ReplicatorReplicationInfoListArgs; import com.pulumi.aws.msk.inputs.ReplicatorReplicationInfoListConsumerGroupReplicationArgs; import com.pulumi.aws.msk.inputs.ReplicatorReplicationInfoListTopicReplicationArgs; import com.pulumi.aws.msk.inputs.ReplicatorReplicationInfoListTopicReplicationTopicNameConfigurationArgs; import com.pulumi.aws.msk.inputs.ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs; import com.pulumi.aws.msk.inputs.ReplicatorKafkaClusterArgs; import com.pulumi.aws.msk.inputs.ReplicatorKafkaClusterAmazonMskClusterArgs; import com.pulumi.aws.msk.inputs.ReplicatorKafkaClusterVpcConfigArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var test = new Replicator("test", ReplicatorArgs.builder() .replicationInfoList(ReplicatorReplicationInfoListArgs.builder() .consumerGroupReplications(ReplicatorReplicationInfoListConsumerGroupReplicationArgs.builder() .consumerGroupsToReplicates(".*") .build()) .topicReplications(ReplicatorReplicationInfoListTopicReplicationArgs.builder() .topicNameConfiguration(ReplicatorReplicationInfoListTopicReplicationTopicNameConfigurationArgs.builder() .type("PREFIXED_WITH_SOURCE_CLUSTER_ALIAS") .build()) .startingPosition(ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs.builder() .type("LATEST") .build()) .topicsToReplicates(".*") .build()) .sourceKafkaClusterArn(source.arn()) .targetKafkaClusterArn(target.arn()) .targetCompressionType("NONE") .build()) .kafkaClusters( ReplicatorKafkaClusterArgs.builder() .amazonMskCluster(ReplicatorKafkaClusterAmazonMskClusterArgs.builder() .mskClusterArn(source.arn()) .build()) .vpcConfig(ReplicatorKafkaClusterVpcConfigArgs.builder() .subnetIds(sourceAwsSubnet.stream().map(element -> element.id()).collect(toList())) .securityGroupsIds(sourceAwsSecurityGroup.id()) .build()) .build(), ReplicatorKafkaClusterArgs.builder() .amazonMskCluster(ReplicatorKafkaClusterAmazonMskClusterArgs.builder() .mskClusterArn(target.arn()) .build()) .vpcConfig(ReplicatorKafkaClusterVpcConfigArgs.builder() .subnetIds(targetAwsSubnet.stream().map(element -> element.id()).collect(toList())) .securityGroupsIds(targetAwsSecurityGroup.id()) .build()) .build()) .replicatorName("test-name") .description("test-description") .serviceExecutionRoleArn(sourceAwsIamRole.arn()) .build()); } }
### With Log Delivery Deliver replicator logs to CloudWatch Logs, Amazon Data Firehose, and Amazon S3.package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.msk.Replicator; import com.pulumi.aws.msk.ReplicatorArgs; import com.pulumi.aws.msk.inputs.ReplicatorReplicationInfoListArgs; import com.pulumi.aws.msk.inputs.ReplicatorReplicationInfoListConsumerGroupReplicationArgs; import com.pulumi.aws.msk.inputs.ReplicatorReplicationInfoListTopicReplicationArgs; import com.pulumi.aws.msk.inputs.ReplicatorReplicationInfoListTopicReplicationTopicNameConfigurationArgs; import com.pulumi.aws.msk.inputs.ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs; import com.pulumi.aws.msk.inputs.ReplicatorKafkaClusterArgs; import com.pulumi.aws.msk.inputs.ReplicatorKafkaClusterAmazonMskClusterArgs; import com.pulumi.aws.msk.inputs.ReplicatorKafkaClusterVpcConfigArgs; import com.pulumi.aws.msk.inputs.ReplicatorKafkaClusterApacheKafkaClusterArgs; import com.pulumi.aws.msk.inputs.ReplicatorKafkaClusterClientAuthenticationArgs; import com.pulumi.aws.msk.inputs.ReplicatorKafkaClusterClientAuthenticationSaslScramArgs; import com.pulumi.aws.msk.inputs.ReplicatorKafkaClusterEncryptionInTransitArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var test = new Replicator("test", ReplicatorArgs.builder() .replicationInfoList(ReplicatorReplicationInfoListArgs.builder() .consumerGroupReplications(ReplicatorReplicationInfoListConsumerGroupReplicationArgs.builder() .consumerGroupsToReplicates(".*") .build()) .topicReplications(ReplicatorReplicationInfoListTopicReplicationArgs.builder() .topicNameConfiguration(ReplicatorReplicationInfoListTopicReplicationTopicNameConfigurationArgs.builder() .type("PREFIXED_WITH_SOURCE_CLUSTER_ALIAS") .build()) .startingPosition(ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs.builder() .type("LATEST") .build()) .topicsToReplicates(".*") .build()) .sourceKafkaClusterArn(source.arn()) .targetKafkaClusterId("target-apache-kafka-cluster") .targetCompressionType("NONE") .build()) .kafkaClusters( ReplicatorKafkaClusterArgs.builder() .amazonMskCluster(ReplicatorKafkaClusterAmazonMskClusterArgs.builder() .mskClusterArn(source.arn()) .build()) .vpcConfig(ReplicatorKafkaClusterVpcConfigArgs.builder() .subnetIds(sourceAwsSubnet.stream().map(element -> element.id()).collect(toList())) .securityGroupsIds(sourceAwsSecurityGroup.id()) .build()) .build(), ReplicatorKafkaClusterArgs.builder() .apacheKafkaCluster(ReplicatorKafkaClusterApacheKafkaClusterArgs.builder() .apacheKafkaClusterId("target-apache-kafka-cluster") .bootstrapBrokerString("b-1.example.com:9096,b-2.example.com:9096") .build()) .clientAuthentication(ReplicatorKafkaClusterClientAuthenticationArgs.builder() .saslScram(ReplicatorKafkaClusterClientAuthenticationSaslScramArgs.builder() .mechanism("SHA512") .secretArn(target.arn()) .build()) .build()) .encryptionInTransit(ReplicatorKafkaClusterEncryptionInTransitArgs.builder() .rootCaCertificate(rootCa.arn()) .build()) .build()) .replicatorName("test-name") .description("test-description") .serviceExecutionRoleArn(sourceAwsIamRole.arn()) .build()); } }
## Import ### Identity Schema #### Required - `arn` (String) ARN of the MSK replicator. Using `pulumi import`, import MSK replicators using `arn`. For example: ```sh $ pulumi import aws:msk/replicator:Replicator example arn:aws:kafka:us-west-2:123456789012:replicator/example-replicator/b3a16098-f408-4995-8e36-482db4f1b46b ```package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.msk.Replicator; import com.pulumi.aws.msk.ReplicatorArgs; import com.pulumi.aws.msk.inputs.ReplicatorReplicationInfoListArgs; import com.pulumi.aws.msk.inputs.ReplicatorReplicationInfoListConsumerGroupReplicationArgs; import com.pulumi.aws.msk.inputs.ReplicatorReplicationInfoListTopicReplicationArgs; import com.pulumi.aws.msk.inputs.ReplicatorLogDeliveryArgs; import com.pulumi.aws.msk.inputs.ReplicatorLogDeliveryReplicatorLogDeliveryArgs; import com.pulumi.aws.msk.inputs.ReplicatorLogDeliveryReplicatorLogDeliveryCloudwatchLogsArgs; import com.pulumi.aws.msk.inputs.ReplicatorLogDeliveryReplicatorLogDeliveryFirehoseArgs; import com.pulumi.aws.msk.inputs.ReplicatorLogDeliveryReplicatorLogDeliveryS3Args; import com.pulumi.aws.msk.inputs.ReplicatorKafkaClusterArgs; import com.pulumi.aws.msk.inputs.ReplicatorKafkaClusterAmazonMskClusterArgs; import com.pulumi.aws.msk.inputs.ReplicatorKafkaClusterVpcConfigArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var test = new Replicator("test", ReplicatorArgs.builder() .replicationInfoList(ReplicatorReplicationInfoListArgs.builder() .consumerGroupReplications(ReplicatorReplicationInfoListConsumerGroupReplicationArgs.builder() .consumerGroupsToReplicates(".*") .build()) .topicReplications(ReplicatorReplicationInfoListTopicReplicationArgs.builder() .topicsToReplicates(".*") .build()) .sourceKafkaClusterArn(source.arn()) .targetKafkaClusterArn(target.arn()) .targetCompressionType("NONE") .build()) .logDelivery(ReplicatorLogDeliveryArgs.builder() .replicatorLogDelivery(ReplicatorLogDeliveryReplicatorLogDeliveryArgs.builder() .cloudwatchLogs(ReplicatorLogDeliveryReplicatorLogDeliveryCloudwatchLogsArgs.builder() .enabled(true) .logGroup(testAwsCloudwatchLogGroup.name()) .build()) .firehose(ReplicatorLogDeliveryReplicatorLogDeliveryFirehoseArgs.builder() .enabled(true) .deliveryStream(testAwsKinesisFirehoseDeliveryStream.name()) .build()) .s3(ReplicatorLogDeliveryReplicatorLogDeliveryS3Args.builder() .enabled(true) .bucket(testAwsS3Bucket.bucket()) .prefix("replicator-logs") .build()) .build()) .build()) .kafkaClusters( ReplicatorKafkaClusterArgs.builder() .amazonMskCluster(ReplicatorKafkaClusterAmazonMskClusterArgs.builder() .mskClusterArn(source.arn()) .build()) .vpcConfig(ReplicatorKafkaClusterVpcConfigArgs.builder() .subnetIds(sourceAwsSubnet.stream().map(element -> element.id()).collect(toList())) .securityGroupsIds(sourceAwsSecurityGroup.id()) .build()) .build(), ReplicatorKafkaClusterArgs.builder() .amazonMskCluster(ReplicatorKafkaClusterAmazonMskClusterArgs.builder() .mskClusterArn(target.arn()) .build()) .vpcConfig(ReplicatorKafkaClusterVpcConfigArgs.builder() .subnetIds(targetAwsSubnet.stream().map(element -> element.id()).collect(toList())) .securityGroupsIds(targetAwsSecurityGroup.id()) .build()) .build()) .replicatorName("test-name") .serviceExecutionRoleArn(sourceAwsIamRole.arn()) .build()); } }
-
-
Constructor Summary
Constructors Constructor Description Replicator(java.lang.String name)Replicator(java.lang.String name, ReplicatorArgs args)Replicator(java.lang.String name, ReplicatorArgs args, com.pulumi.resources.CustomResourceOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.pulumi.core.Output<java.lang.String>arn()com.pulumi.core.Output<java.lang.String>currentVersion()com.pulumi.core.Output<java.util.Optional<java.lang.String>>description()static Replicatorget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, ReplicatorState state, com.pulumi.resources.CustomResourceOptions options)Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.com.pulumi.core.Output<java.util.List<ReplicatorKafkaCluster>>kafkaClusters()com.pulumi.core.Output<java.util.Optional<ReplicatorLogDelivery>>logDelivery()com.pulumi.core.Output<java.lang.String>region()com.pulumi.core.Output<ReplicatorReplicationInfoList>replicationInfoList()com.pulumi.core.Output<java.lang.String>replicatorName()com.pulumi.core.Output<java.lang.String>serviceExecutionRoleArn()com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>>tags()com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>>tagsAll()
-
-
-
Constructor Detail
-
Replicator
public Replicator(java.lang.String name)
- Parameters:
name- The _unique_ name of the resulting resource.
-
Replicator
public Replicator(java.lang.String name, ReplicatorArgs args)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
Replicator
public Replicator(java.lang.String name, ReplicatorArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.options- A bag of options that control this resource's behavior.
-
-
Method Detail
-
arn
public com.pulumi.core.Output<java.lang.String> arn()
- Returns:
- ARN of the Replicator.
-
currentVersion
public com.pulumi.core.Output<java.lang.String> currentVersion()
- Returns:
- Current version of the MSK Replicator.
-
description
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> description()
- Returns:
- Summary description of the replicator.
-
kafkaClusters
public com.pulumi.core.Output<java.util.List<ReplicatorKafkaCluster>> kafkaClusters()
- Returns:
- Source and target Kafka clusters for the replicator. Exactly two blocks are required. See `kafkaCluster` Block below.
-
logDelivery
public com.pulumi.core.Output<java.util.Optional<ReplicatorLogDelivery>> logDelivery()
- Returns:
- Configuration block for delivering replicator logs to customer destinations. See `logDelivery` Block below.
-
region
public com.pulumi.core.Output<java.lang.String> region()
- Returns:
- Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
-
replicationInfoList
public com.pulumi.core.Output<ReplicatorReplicationInfoList> replicationInfoList()
- Returns:
- List of replication configurations, where each configuration targets a given source cluster to target cluster replication flow. See `replicationInfoList` Block below.
-
replicatorName
public com.pulumi.core.Output<java.lang.String> replicatorName()
- Returns:
- Name of the replicator.
-
serviceExecutionRoleArn
public com.pulumi.core.Output<java.lang.String> serviceExecutionRoleArn()
- Returns:
- ARN of the IAM role used by the replicator to access resources in the customer's account (e.g source and target clusters).
-
tags
public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>> tags()
- Returns:
- Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
-
tagsAll
public com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>> tagsAll()
- Returns:
- Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
-
get
public static Replicator get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable ReplicatorState state, @Nullable com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.- Parameters:
name- The _unique_ name of the resulting resource.id- The _unique_ provider ID of the resource to lookup.state-options- Optional settings to control the behavior of the CustomResource.
-
-