import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * Manages a [Managed Redis](https://learn.microsoft.com/azure/redis/overview). This resource supersedes azure.redis.EnterpriseCluster and azure.redis.EnterpriseDatabase resources. Please refer to the migration guide for more information on migrating from Redis Enterprise to Managed Redis: [Migrating from Redis Enterprise to Managed Redis](https://learn.microsoft.com/azure/redis/migrate/migrate-overview). * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * * const example = new azure.core.ResourceGroup("example", { * name: "example-resources", * location: "West Europe", * }); * const exampleManagedRedis = new azure.managedredis.ManagedRedis("example", { * name: "example-managed-redis", * resourceGroupName: example.name, * location: example.location, * skuName: "Balanced_B3", * defaultDatabase: { * geoReplicationGroupName: "myGeoGroup", * }, * }); * ``` * * ### With Customer Managed Key * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * * const current = azure.core.getClientConfig({}); * const example = new azure.core.ResourceGroup("example", { * name: "example-resources", * location: "West Europe", * }); * const exampleUserAssignedIdentity = new azure.authorization.UserAssignedIdentity("example", { * name: "example", * resourceGroupName: example.name, * location: example.location, * }); * const exampleKeyVault = new azure.keyvault.KeyVault("example", { * name: "example", * location: example.location, * resourceGroupName: example.name, * tenantId: current.then(current => current.tenantId), * skuName: "standard", * purgeProtectionEnabled: true, * accessPolicies: [ * { * tenantId: current.then(current => current.tenantId), * objectId: current.then(current => current.objectId), * keyPermissions: [ * "Create", * "Delete", * "Get", * "List", * "Purge", * "Recover", * "Update", * "GetRotationPolicy", * "SetRotationPolicy", * ], * }, * { * tenantId: current.then(current => current.tenantId), * objectId: exampleUserAssignedIdentity.principalId, * keyPermissions: [ * "Get", * "WrapKey", * "UnwrapKey", * ], * }, * ], * }); * const exampleKey = new azure.keyvault.Key("example", { * name: "managedrediscmk", * keyVaultId: exampleKeyVault.id, * keyType: "RSA", * keySize: 2048, * keyOpts: [ * "unwrapKey", * "wrapKey", * ], * }); * const exampleManagedRedis = new azure.managedredis.ManagedRedis("example", { * name: "example-managed-redis", * resourceGroupName: example.name, * location: example.location, * skuName: "Balanced_B3", * identity: { * type: "UserAssigned", * identityIds: [exampleUserAssignedIdentity.id], * }, * customerManagedKey: { * keyVaultKeyId: exampleKey.id, * userAssignedIdentityId: exampleUserAssignedIdentity.id, * }, * defaultDatabase: { * geoReplicationGroupName: "myGeoGroup", * }, * }); * ``` * * ## API Providers * * * This resource uses the following Azure API Providers: * * * `Microsoft.Cache` - 2025-07-01 * * ## Import * * Managed Redis instances can be imported using the `resource id`, e.g. * * ```sh * $ pulumi import azure:managedredis/managedRedis:ManagedRedis example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Cache/redisEnterprise/cluster1 * ``` */ export declare class ManagedRedis extends pulumi.CustomResource { /** * Get an existing ManagedRedis 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?: ManagedRedisState, opts?: pulumi.CustomResourceOptions): ManagedRedis; /** * Returns true if the given object is an instance of ManagedRedis. 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 ManagedRedis; /** * A `customerManagedKey` block as defined below. */ readonly customerManagedKey: pulumi.Output; /** * A `defaultDatabase` block as defined below. * * > **Note:** `defaultDatabase` is Required when creating a new Managed Redis. * * > **Note:** A `defaultDatabase` can be deleted or recreated in-place but most properties will trigger an entire cluster replacement if changed. Data will be lost and Managed Redis will be unavailable during recreation. */ readonly defaultDatabase: pulumi.Output; /** * Whether to enable high availability for the Managed Redis instance. Defaults to `true`. Changing this forces a new Managed Redis instance to be created. */ readonly highAvailabilityEnabled: pulumi.Output; /** * DNS name of the cluster endpoint. */ readonly hostname: pulumi.Output; /** * An `identity` block as defined below. */ readonly identity: pulumi.Output; /** * The Azure Region where the Managed Redis instance should exist. Refer to "Redis Cache" on the [product availability documentation](https://azure.microsoft.com/explore/global-infrastructure/products-by-region/table) for supported locations. Changing this forces a new Managed Redis instance to be created. */ readonly location: pulumi.Output; /** * The name which should be used for this Managed Redis instance. Changing this forces a new Managed Redis instance to be created. */ readonly name: pulumi.Output; /** * The public network access setting for the Managed Redis instance. Possible values are `Enabled` and `Disabled`. Defaults to `Enabled`. */ readonly publicNetworkAccess: pulumi.Output; /** * The name of the Resource Group where the Managed Redis instance should exist. Changing this forces a new Managed Redis instance to be created. */ readonly resourceGroupName: pulumi.Output; /** * The features and specification of the Managed Redis instance to deploy. Possible values are `Balanced_B0`, `Balanced_B1`, `Balanced_B10`, `Balanced_B100`, `Balanced_B1000`, `Balanced_B150`, `Balanced_B20`, `Balanced_B250`, `Balanced_B3`, `Balanced_B350`, `Balanced_B5`, `Balanced_B50`, `Balanced_B500`, `Balanced_B700`, `ComputeOptimized_X10`, `ComputeOptimized_X100`, `ComputeOptimized_X150`, `ComputeOptimized_X20`, `ComputeOptimized_X250`, `ComputeOptimized_X3`, `ComputeOptimized_X350`, `ComputeOptimized_X5`, `ComputeOptimized_X50`, `ComputeOptimized_X500`, `ComputeOptimized_X700`, `FlashOptimized_A1000`, `FlashOptimized_A1500`, `FlashOptimized_A2000`, `FlashOptimized_A250`, `FlashOptimized_A4500`, `FlashOptimized_A500`, `FlashOptimized_A700`, `MemoryOptimized_M10`, `MemoryOptimized_M100`, `MemoryOptimized_M1000`, `MemoryOptimized_M150`, `MemoryOptimized_M1500`, `MemoryOptimized_M20`, `MemoryOptimized_M2000`, `MemoryOptimized_M250`, `MemoryOptimized_M350`, `MemoryOptimized_M50`, `MemoryOptimized_M500` and `MemoryOptimized_M700`. `Balanced_B3` SKU or higher is required for geo-replication. * * > **Note:** `Enterprise_` and `EnterpriseFlash_` prefixed SKUs were previously used by Redis Enterprise, and [not supported by Managed Redis](https://learn.microsoft.com/azure/redis/migrate/migrate-overview). * * > **Note:** Changing `skuName` to a lower tier is restricted by Azure under certain conditions, in which case the resource will be marked for recreation. Validation for this is on a best-effort basis, if the provider is unable to determine whether it can change the SKU in-place, it will attempt to do regardless and this request may fail. Please refer to the [Azure documentation](https://learn.microsoft.com/en-us/azure/redis/how-to-scale) for more information. */ readonly skuName: pulumi.Output; /** * A mapping of tags which should be assigned to the Managed Redis instance. */ readonly tags: pulumi.Output<{ [key: string]: string; } | undefined>; /** * Create a ManagedRedis 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: ManagedRedisArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering ManagedRedis resources. */ export interface ManagedRedisState { /** * A `customerManagedKey` block as defined below. */ customerManagedKey?: pulumi.Input; /** * A `defaultDatabase` block as defined below. * * > **Note:** `defaultDatabase` is Required when creating a new Managed Redis. * * > **Note:** A `defaultDatabase` can be deleted or recreated in-place but most properties will trigger an entire cluster replacement if changed. Data will be lost and Managed Redis will be unavailable during recreation. */ defaultDatabase?: pulumi.Input; /** * Whether to enable high availability for the Managed Redis instance. Defaults to `true`. Changing this forces a new Managed Redis instance to be created. */ highAvailabilityEnabled?: pulumi.Input; /** * DNS name of the cluster endpoint. */ hostname?: pulumi.Input; /** * An `identity` block as defined below. */ identity?: pulumi.Input; /** * The Azure Region where the Managed Redis instance should exist. Refer to "Redis Cache" on the [product availability documentation](https://azure.microsoft.com/explore/global-infrastructure/products-by-region/table) for supported locations. Changing this forces a new Managed Redis instance to be created. */ location?: pulumi.Input; /** * The name which should be used for this Managed Redis instance. Changing this forces a new Managed Redis instance to be created. */ name?: pulumi.Input; /** * The public network access setting for the Managed Redis instance. Possible values are `Enabled` and `Disabled`. Defaults to `Enabled`. */ publicNetworkAccess?: pulumi.Input; /** * The name of the Resource Group where the Managed Redis instance should exist. Changing this forces a new Managed Redis instance to be created. */ resourceGroupName?: pulumi.Input; /** * The features and specification of the Managed Redis instance to deploy. Possible values are `Balanced_B0`, `Balanced_B1`, `Balanced_B10`, `Balanced_B100`, `Balanced_B1000`, `Balanced_B150`, `Balanced_B20`, `Balanced_B250`, `Balanced_B3`, `Balanced_B350`, `Balanced_B5`, `Balanced_B50`, `Balanced_B500`, `Balanced_B700`, `ComputeOptimized_X10`, `ComputeOptimized_X100`, `ComputeOptimized_X150`, `ComputeOptimized_X20`, `ComputeOptimized_X250`, `ComputeOptimized_X3`, `ComputeOptimized_X350`, `ComputeOptimized_X5`, `ComputeOptimized_X50`, `ComputeOptimized_X500`, `ComputeOptimized_X700`, `FlashOptimized_A1000`, `FlashOptimized_A1500`, `FlashOptimized_A2000`, `FlashOptimized_A250`, `FlashOptimized_A4500`, `FlashOptimized_A500`, `FlashOptimized_A700`, `MemoryOptimized_M10`, `MemoryOptimized_M100`, `MemoryOptimized_M1000`, `MemoryOptimized_M150`, `MemoryOptimized_M1500`, `MemoryOptimized_M20`, `MemoryOptimized_M2000`, `MemoryOptimized_M250`, `MemoryOptimized_M350`, `MemoryOptimized_M50`, `MemoryOptimized_M500` and `MemoryOptimized_M700`. `Balanced_B3` SKU or higher is required for geo-replication. * * > **Note:** `Enterprise_` and `EnterpriseFlash_` prefixed SKUs were previously used by Redis Enterprise, and [not supported by Managed Redis](https://learn.microsoft.com/azure/redis/migrate/migrate-overview). * * > **Note:** Changing `skuName` to a lower tier is restricted by Azure under certain conditions, in which case the resource will be marked for recreation. Validation for this is on a best-effort basis, if the provider is unable to determine whether it can change the SKU in-place, it will attempt to do regardless and this request may fail. Please refer to the [Azure documentation](https://learn.microsoft.com/en-us/azure/redis/how-to-scale) for more information. */ skuName?: pulumi.Input; /** * A mapping of tags which should be assigned to the Managed Redis instance. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; }>; } /** * The set of arguments for constructing a ManagedRedis resource. */ export interface ManagedRedisArgs { /** * A `customerManagedKey` block as defined below. */ customerManagedKey?: pulumi.Input; /** * A `defaultDatabase` block as defined below. * * > **Note:** `defaultDatabase` is Required when creating a new Managed Redis. * * > **Note:** A `defaultDatabase` can be deleted or recreated in-place but most properties will trigger an entire cluster replacement if changed. Data will be lost and Managed Redis will be unavailable during recreation. */ defaultDatabase?: pulumi.Input; /** * Whether to enable high availability for the Managed Redis instance. Defaults to `true`. Changing this forces a new Managed Redis instance to be created. */ highAvailabilityEnabled?: pulumi.Input; /** * An `identity` block as defined below. */ identity?: pulumi.Input; /** * The Azure Region where the Managed Redis instance should exist. Refer to "Redis Cache" on the [product availability documentation](https://azure.microsoft.com/explore/global-infrastructure/products-by-region/table) for supported locations. Changing this forces a new Managed Redis instance to be created. */ location?: pulumi.Input; /** * The name which should be used for this Managed Redis instance. Changing this forces a new Managed Redis instance to be created. */ name?: pulumi.Input; /** * The public network access setting for the Managed Redis instance. Possible values are `Enabled` and `Disabled`. Defaults to `Enabled`. */ publicNetworkAccess?: pulumi.Input; /** * The name of the Resource Group where the Managed Redis instance should exist. Changing this forces a new Managed Redis instance to be created. */ resourceGroupName: pulumi.Input; /** * The features and specification of the Managed Redis instance to deploy. Possible values are `Balanced_B0`, `Balanced_B1`, `Balanced_B10`, `Balanced_B100`, `Balanced_B1000`, `Balanced_B150`, `Balanced_B20`, `Balanced_B250`, `Balanced_B3`, `Balanced_B350`, `Balanced_B5`, `Balanced_B50`, `Balanced_B500`, `Balanced_B700`, `ComputeOptimized_X10`, `ComputeOptimized_X100`, `ComputeOptimized_X150`, `ComputeOptimized_X20`, `ComputeOptimized_X250`, `ComputeOptimized_X3`, `ComputeOptimized_X350`, `ComputeOptimized_X5`, `ComputeOptimized_X50`, `ComputeOptimized_X500`, `ComputeOptimized_X700`, `FlashOptimized_A1000`, `FlashOptimized_A1500`, `FlashOptimized_A2000`, `FlashOptimized_A250`, `FlashOptimized_A4500`, `FlashOptimized_A500`, `FlashOptimized_A700`, `MemoryOptimized_M10`, `MemoryOptimized_M100`, `MemoryOptimized_M1000`, `MemoryOptimized_M150`, `MemoryOptimized_M1500`, `MemoryOptimized_M20`, `MemoryOptimized_M2000`, `MemoryOptimized_M250`, `MemoryOptimized_M350`, `MemoryOptimized_M50`, `MemoryOptimized_M500` and `MemoryOptimized_M700`. `Balanced_B3` SKU or higher is required for geo-replication. * * > **Note:** `Enterprise_` and `EnterpriseFlash_` prefixed SKUs were previously used by Redis Enterprise, and [not supported by Managed Redis](https://learn.microsoft.com/azure/redis/migrate/migrate-overview). * * > **Note:** Changing `skuName` to a lower tier is restricted by Azure under certain conditions, in which case the resource will be marked for recreation. Validation for this is on a best-effort basis, if the provider is unable to determine whether it can change the SKU in-place, it will attempt to do regardless and this request may fail. Please refer to the [Azure documentation](https://learn.microsoft.com/en-us/azure/redis/how-to-scale) for more information. */ skuName: pulumi.Input; /** * A mapping of tags which should be assigned to the Managed Redis instance. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; }>; }