import * as pulumi from "@pulumi/pulumi"; /** * Manages Managed Redis Geo-Replication by linking and unlinking databases in a geo-replication group. * * > **Note:** This resource manages the geo-replication group membership for Managed Redis databases. All databases to be linked must have `geoReplicationGroupName` provided with the same value. Linking will [discard cache data and cause temporary outage](https://learn.microsoft.com/azure/redis/how-to-active-geo-replication#add-an-existing-instance-to-an-active-geo-replication-group). * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * * const example = new azure.core.ResourceGroup("example", { * name: "example-managedredis", * location: "West Europe", * }); * const amr1 = new azure.managedredis.ManagedRedis("amr1", { * name: "example-managedredis-amr1", * resourceGroupName: example.name, * location: "West Europe", * skuName: "Balanced_B3", * defaultDatabase: { * geoReplicationGroupName: "example-geo-group", * }, * }); * const amr2 = new azure.managedredis.ManagedRedis("amr2", { * name: "example-managedredis-amr2", * resourceGroupName: example.name, * location: "Central US", * skuName: "Balanced_B3", * defaultDatabase: { * geoReplicationGroupName: "example-geo-group", * }, * }); * const exampleGeoReplication = new azure.managedredis.GeoReplication("example", { * managedRedisId: amr1.id, * linkedManagedRedisIds: [amr2.id], * }); * ``` * * ## API Providers * * * This resource uses the following Azure API Providers: * * * `Microsoft.Cache` - 2025-07-01 * * ## Import * * Managed Redis Database Geo-Replication can be imported using the Managed Redis `resource id`, e.g. * * ```sh * $ pulumi import azure:managedredis/geoReplication:GeoReplication example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Cache/redisEnterprise/cluster1 * ``` */ export declare class GeoReplication extends pulumi.CustomResource { /** * Get an existing GeoReplication 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?: GeoReplicationState, opts?: pulumi.CustomResourceOptions): GeoReplication; /** * Returns true if the given object is an instance of GeoReplication. 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 GeoReplication; /** * A set of other Managed Redis IDs to link together in the geo-replication group. The ID of this Managed Redis is always included by default and does not need to be provided here. Can contain up to 4 Managed Redis IDs, making up a group of 5 in total. All Managed Redis must have the same `geoReplicationGroupName` configured. Once linked, the geo-replication state of all Managed Redis will be updated. */ readonly linkedManagedRedisIds: pulumi.Output; /** * The ID of the Managed Redis through which geo-replication group will be managed. Linking is reciprocal, if A is linked to B, both A and B will have the same linking state. There is no need to have duplicate `azure.managedredis.GeoReplication` resources for each. Changing this forces a new resource to be created. */ readonly managedRedisId: pulumi.Output; /** * Create a GeoReplication 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: GeoReplicationArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering GeoReplication resources. */ export interface GeoReplicationState { /** * A set of other Managed Redis IDs to link together in the geo-replication group. The ID of this Managed Redis is always included by default and does not need to be provided here. Can contain up to 4 Managed Redis IDs, making up a group of 5 in total. All Managed Redis must have the same `geoReplicationGroupName` configured. Once linked, the geo-replication state of all Managed Redis will be updated. */ linkedManagedRedisIds?: pulumi.Input[]>; /** * The ID of the Managed Redis through which geo-replication group will be managed. Linking is reciprocal, if A is linked to B, both A and B will have the same linking state. There is no need to have duplicate `azure.managedredis.GeoReplication` resources for each. Changing this forces a new resource to be created. */ managedRedisId?: pulumi.Input; } /** * The set of arguments for constructing a GeoReplication resource. */ export interface GeoReplicationArgs { /** * A set of other Managed Redis IDs to link together in the geo-replication group. The ID of this Managed Redis is always included by default and does not need to be provided here. Can contain up to 4 Managed Redis IDs, making up a group of 5 in total. All Managed Redis must have the same `geoReplicationGroupName` configured. Once linked, the geo-replication state of all Managed Redis will be updated. */ linkedManagedRedisIds: pulumi.Input[]>; /** * The ID of the Managed Redis through which geo-replication group will be managed. Linking is reciprocal, if A is linked to B, both A and B will have the same linking state. There is no need to have duplicate `azure.managedredis.GeoReplication` resources for each. Changing this forces a new resource to be created. */ managedRedisId: pulumi.Input; }