import * as pulumi from "@pulumi/pulumi"; import * as inputs from "./types/input"; import * as outputs from "./types/output"; /** * Creates and manages an [Aiven for Apache Kafka® MirrorMaker 2](https://aiven.io/docs/products/kafka/kafka-mirrormaker) replication flow. If this resource is missing (for example, after a service power off), it's removed from the state and a new create plan is generated. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aiven from "@pulumi/aiven"; * * const example = new aiven.MirrorMakerReplicationFlow("example", { * project: "my-project", * serviceName: "foo", * sourceCluster: "kafka-abc", * targetCluster: "kafka-abc", * enable: true, * configPropertiesExcludes: [ * "follower.replication.throttled.replicas", * "leader.replication.throttled.replicas", * "message.timestamp.difference.max.ms", * "message.timestamp.type", * "unclean.leader.election.enable", * "min.insync.replicas", * ], * emitBackwardHeartbeatsEnabled: false, * emitHeartbeatsEnabled: false, * exactlyOnceDeliveryEnabled: false, * followerFetchingEnabled: true, * offsetLagMax: 42, * offsetSyncsTopicLocation: "source", * replicationFactor: 1, * replicationPolicyClass: "org.apache.kafka.connect.mirror.DefaultReplicationPolicy", * syncGroupOffsetsEnabled: false, * syncGroupOffsetsIntervalSeconds: 1, * topics: [".*"], * topicsBlacklists: [ * ".*[\\-\\.]internal", * ".*\\.replica", * "__.*", * ], * }); * ``` * * ## Import * * ```sh * $ pulumi import aiven:index/mirrorMakerReplicationFlow:MirrorMakerReplicationFlow example PROJECT/SERVICE_NAME/SOURCE_CLUSTER/TARGET_CLUSTER * ``` */ export declare class MirrorMakerReplicationFlow extends pulumi.CustomResource { /** * Get an existing MirrorMakerReplicationFlow resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input, state?: MirrorMakerReplicationFlowState, opts?: pulumi.CustomResourceOptions): MirrorMakerReplicationFlow; /** * Returns true if the given object is an instance of MirrorMakerReplicationFlow. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is MirrorMakerReplicationFlow; /** * List of topic configuration properties and/or regexes that should not be replicated. If omitted, MirrorMaker will use default list of exclusions. For stability reasons, we always include the `unclean.leader.election.enable` field in the excluded parameters. If you have specific requirements for this configuration, please reach out to our support team for assistance. */ readonly configPropertiesExcludes: pulumi.Output; /** * Whether to emit heartbeats to the direction opposite to the flow, i.e. to the source cluster. The default value is `false`. */ readonly emitBackwardHeartbeatsEnabled: pulumi.Output; /** * Whether to emit heartbeats to the target cluster. The default value is `false`. */ readonly emitHeartbeatsEnabled: pulumi.Output; /** * Is replication flow enabled. */ readonly enable: pulumi.Output; /** * Whether to enable exactly-once message delivery. We recommend you set this to enabled for new replications. The default value is `false`. */ readonly exactlyOnceDeliveryEnabled: pulumi.Output; /** * Assigns a Rack ID based on the availability-zone to enable follower fetching and rack awareness per replication flow. */ readonly followerFetchingEnabled: pulumi.Output; /** * How out-of-sync a remote partition can be before it is resynced (default: 100). */ readonly offsetLagMax: pulumi.Output; /** * The location of the offset-syncs topic. The possible values are `source` and `target`. */ readonly offsetSyncsTopicLocation: pulumi.Output; /** * Project name. Changing this property forces recreation of the resource. */ readonly project: pulumi.Output; /** * Replication factor used when creating the remote topics. If the replication factor surpasses the number of nodes in the target cluster, topic creation will fail. Minimum value: `1`. */ readonly replicationFactor: pulumi.Output; /** * Class which defines the remote topic naming convention. The possible values are `org.apache.kafka.connect.mirror.DefaultReplicationPolicy` and `org.apache.kafka.connect.mirror.IdentityReplicationPolicy`. */ readonly replicationPolicyClass: pulumi.Output; /** * Service name. Changing this property forces recreation of the resource. */ readonly serviceName: pulumi.Output; /** * The alias of the source cluster to use in this replication flow. Can contain the following symbols: ASCII alphanumerics, `.`, `_`, and `-`. Maximum length: `128`. Changing this property forces recreation of the resource. */ readonly sourceCluster: pulumi.Output; /** * Whether to periodically write the translated offsets of replicated consumer groups (in the source cluster) to _*consumer*offsets topic in target cluster, as long as no active consumers in that group are connected to the target cluster. The default value is `false`. */ readonly syncGroupOffsetsEnabled: pulumi.Output; /** * Frequency at which consumer group offsets are synced (default: 60, every minute). Minimum value: `1`. The default value is `1`. */ readonly syncGroupOffsetsIntervalSeconds: pulumi.Output; /** * The alias of the target cluster to use in this replication flow. Can contain the following symbols: ASCII alphanumerics, `.`, `_`, and `-`. Maximum length: `128`. Changing this property forces recreation of the resource. */ readonly targetCluster: pulumi.Output; readonly timeouts: pulumi.Output; /** * Topic names and regular expressions that match topic names that should be replicated. MirrorMaker will replicate these topics if they are not matched by `topicsBlacklist`. The topics to include are defined by a [list of regular expressions in Java format](https://aiven.io/docs/products/kafka/kafka-mirrormaker/concepts/replication-flow-topics-regex). */ readonly topics: pulumi.Output; /** * Topic names and regular expressions that match topic names that should not be replicated. MirrorMaker will not replicate these topics even if they are matched by `topics`. The topics to exclude are defined by a [list of regular expressions in Java format](https://aiven.io/docs/products/kafka/kafka-mirrormaker/concepts/replication-flow-topics-regex). */ readonly topicsBlacklists: pulumi.Output; /** * Create a MirrorMakerReplicationFlow resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: MirrorMakerReplicationFlowArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering MirrorMakerReplicationFlow resources. */ export interface MirrorMakerReplicationFlowState { /** * List of topic configuration properties and/or regexes that should not be replicated. If omitted, MirrorMaker will use default list of exclusions. For stability reasons, we always include the `unclean.leader.election.enable` field in the excluded parameters. If you have specific requirements for this configuration, please reach out to our support team for assistance. */ configPropertiesExcludes?: pulumi.Input[] | undefined>; /** * Whether to emit heartbeats to the direction opposite to the flow, i.e. to the source cluster. The default value is `false`. */ emitBackwardHeartbeatsEnabled?: pulumi.Input; /** * Whether to emit heartbeats to the target cluster. The default value is `false`. */ emitHeartbeatsEnabled?: pulumi.Input; /** * Is replication flow enabled. */ enable?: pulumi.Input; /** * Whether to enable exactly-once message delivery. We recommend you set this to enabled for new replications. The default value is `false`. */ exactlyOnceDeliveryEnabled?: pulumi.Input; /** * Assigns a Rack ID based on the availability-zone to enable follower fetching and rack awareness per replication flow. */ followerFetchingEnabled?: pulumi.Input; /** * How out-of-sync a remote partition can be before it is resynced (default: 100). */ offsetLagMax?: pulumi.Input; /** * The location of the offset-syncs topic. The possible values are `source` and `target`. */ offsetSyncsTopicLocation?: pulumi.Input; /** * Project name. Changing this property forces recreation of the resource. */ project?: pulumi.Input; /** * Replication factor used when creating the remote topics. If the replication factor surpasses the number of nodes in the target cluster, topic creation will fail. Minimum value: `1`. */ replicationFactor?: pulumi.Input; /** * Class which defines the remote topic naming convention. The possible values are `org.apache.kafka.connect.mirror.DefaultReplicationPolicy` and `org.apache.kafka.connect.mirror.IdentityReplicationPolicy`. */ replicationPolicyClass?: pulumi.Input; /** * Service name. Changing this property forces recreation of the resource. */ serviceName?: pulumi.Input; /** * The alias of the source cluster to use in this replication flow. Can contain the following symbols: ASCII alphanumerics, `.`, `_`, and `-`. Maximum length: `128`. Changing this property forces recreation of the resource. */ sourceCluster?: pulumi.Input; /** * Whether to periodically write the translated offsets of replicated consumer groups (in the source cluster) to _*consumer*offsets topic in target cluster, as long as no active consumers in that group are connected to the target cluster. The default value is `false`. */ syncGroupOffsetsEnabled?: pulumi.Input; /** * Frequency at which consumer group offsets are synced (default: 60, every minute). Minimum value: `1`. The default value is `1`. */ syncGroupOffsetsIntervalSeconds?: pulumi.Input; /** * The alias of the target cluster to use in this replication flow. Can contain the following symbols: ASCII alphanumerics, `.`, `_`, and `-`. Maximum length: `128`. Changing this property forces recreation of the resource. */ targetCluster?: pulumi.Input; timeouts?: pulumi.Input; /** * Topic names and regular expressions that match topic names that should be replicated. MirrorMaker will replicate these topics if they are not matched by `topicsBlacklist`. The topics to include are defined by a [list of regular expressions in Java format](https://aiven.io/docs/products/kafka/kafka-mirrormaker/concepts/replication-flow-topics-regex). */ topics?: pulumi.Input[] | undefined>; /** * Topic names and regular expressions that match topic names that should not be replicated. MirrorMaker will not replicate these topics even if they are matched by `topics`. The topics to exclude are defined by a [list of regular expressions in Java format](https://aiven.io/docs/products/kafka/kafka-mirrormaker/concepts/replication-flow-topics-regex). */ topicsBlacklists?: pulumi.Input[] | undefined>; } /** * The set of arguments for constructing a MirrorMakerReplicationFlow resource. */ export interface MirrorMakerReplicationFlowArgs { /** * List of topic configuration properties and/or regexes that should not be replicated. If omitted, MirrorMaker will use default list of exclusions. For stability reasons, we always include the `unclean.leader.election.enable` field in the excluded parameters. If you have specific requirements for this configuration, please reach out to our support team for assistance. */ configPropertiesExcludes?: pulumi.Input[] | undefined>; /** * Whether to emit heartbeats to the direction opposite to the flow, i.e. to the source cluster. The default value is `false`. */ emitBackwardHeartbeatsEnabled?: pulumi.Input; /** * Whether to emit heartbeats to the target cluster. The default value is `false`. */ emitHeartbeatsEnabled?: pulumi.Input; /** * Is replication flow enabled. */ enable: pulumi.Input; /** * Whether to enable exactly-once message delivery. We recommend you set this to enabled for new replications. The default value is `false`. */ exactlyOnceDeliveryEnabled?: pulumi.Input; /** * Assigns a Rack ID based on the availability-zone to enable follower fetching and rack awareness per replication flow. */ followerFetchingEnabled?: pulumi.Input; /** * How out-of-sync a remote partition can be before it is resynced (default: 100). */ offsetLagMax?: pulumi.Input; /** * The location of the offset-syncs topic. The possible values are `source` and `target`. */ offsetSyncsTopicLocation?: pulumi.Input; /** * Project name. Changing this property forces recreation of the resource. */ project: pulumi.Input; /** * Replication factor used when creating the remote topics. If the replication factor surpasses the number of nodes in the target cluster, topic creation will fail. Minimum value: `1`. */ replicationFactor?: pulumi.Input; /** * Class which defines the remote topic naming convention. The possible values are `org.apache.kafka.connect.mirror.DefaultReplicationPolicy` and `org.apache.kafka.connect.mirror.IdentityReplicationPolicy`. */ replicationPolicyClass?: pulumi.Input; /** * Service name. Changing this property forces recreation of the resource. */ serviceName: pulumi.Input; /** * The alias of the source cluster to use in this replication flow. Can contain the following symbols: ASCII alphanumerics, `.`, `_`, and `-`. Maximum length: `128`. Changing this property forces recreation of the resource. */ sourceCluster: pulumi.Input; /** * Whether to periodically write the translated offsets of replicated consumer groups (in the source cluster) to _*consumer*offsets topic in target cluster, as long as no active consumers in that group are connected to the target cluster. The default value is `false`. */ syncGroupOffsetsEnabled?: pulumi.Input; /** * Frequency at which consumer group offsets are synced (default: 60, every minute). Minimum value: `1`. The default value is `1`. */ syncGroupOffsetsIntervalSeconds?: pulumi.Input; /** * The alias of the target cluster to use in this replication flow. Can contain the following symbols: ASCII alphanumerics, `.`, `_`, and `-`. Maximum length: `128`. Changing this property forces recreation of the resource. */ targetCluster: pulumi.Input; timeouts?: pulumi.Input; /** * Topic names and regular expressions that match topic names that should be replicated. MirrorMaker will replicate these topics if they are not matched by `topicsBlacklist`. The topics to include are defined by a [list of regular expressions in Java format](https://aiven.io/docs/products/kafka/kafka-mirrormaker/concepts/replication-flow-topics-regex). */ topics?: pulumi.Input[] | undefined>; /** * Topic names and regular expressions that match topic names that should not be replicated. MirrorMaker will not replicate these topics even if they are matched by `topics`. The topics to exclude are defined by a [list of regular expressions in Java format](https://aiven.io/docs/products/kafka/kafka-mirrormaker/concepts/replication-flow-topics-regex). */ topicsBlacklists?: pulumi.Input[] | undefined>; } //# sourceMappingURL=mirrorMakerReplicationFlow.d.ts.map