@aws-cdk/aws-elasticache-alpha 2.257.0-alpha.0 → 2.258.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.jsii CHANGED
@@ -8,7 +8,7 @@
8
8
  "url": "https://aws.amazon.com"
9
9
  },
10
10
  "dependencies": {
11
- "aws-cdk-lib": "^2.257.0",
11
+ "aws-cdk-lib": "^2.258.0",
12
12
  "constructs": "^10.5.0"
13
13
  },
14
14
  "dependencyClosure": {
@@ -8966,7 +8966,7 @@
8966
8966
  "stability": "experimental"
8967
8967
  },
8968
8968
  "homepage": "https://github.com/aws/aws-cdk",
8969
- "jsiiVersion": "5.9.37 (build 5176c0d)",
8969
+ "jsiiVersion": "5.9.44 (build 150b837)",
8970
8970
  "keywords": [
8971
8971
  "aws",
8972
8972
  "cdk",
@@ -8988,7 +8988,7 @@
8988
8988
  },
8989
8989
  "name": "@aws-cdk/aws-elasticache-alpha",
8990
8990
  "readme": {
8991
- "markdown": "# ElastiCache CDK Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\nThis module has constructs for [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/WhatIs.html).\n\n* The `ServerlessCache` construct facilitates the creation and management of serverless cache.\n* The `User` and `UserGroup` constructs facilitate the creation and management of users for the cache.\n\n## Serverless Cache\n\nAmazon ElastiCache Serverless is a serverless option that automatically scales cache capacity based on application traffic patterns. You can create a serverless cache using the `ServerlessCache` construct:\n\n```ts\nconst vpc = new ec2.Vpc(this, 'VPC');\n\nconst cache = new elasticache.ServerlessCache(this, 'ServerlessCache', {\n vpc,\n});\n```\n\n### Connecting to serverless cache\n\nTo control who can access the serverless cache by the security groups, use the `.connections` attribute.\n\nThe serverless cache has a default port `6379`.\n\nThis example allows an EC2 instance to connect to the serverless cache:\n\n```ts\ndeclare const serverlessCache: elasticache.ServerlessCache;\ndeclare const instance: ec2.Instance;\n\n// allow the EC2 instance to connect to serverless cache on default port 6379\nserverlessCache.connections.allowDefaultPortFrom(instance);\n```\n\n### Cache usage limits\n\nYou can configure usage limits on both cache data storage and ECPU/second for your cache to control costs and ensure predictable performance.\n\n**Configuration options:**\n\n* **Maximum limits**: Ensure your cache usage never exceeds the configured maximum\n* **Minimum limits**: Reserve a baseline level of resources for consistent performance\n* **Both**: Define a range where your cache usage will operate\n\nFor more infomation, see [Setting scaling limits to manage costs](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Scaling.html#Pre-Scaling).\n\n```ts\ndeclare const vpc: ec2.Vpc;\n\nconst serverlessCache = new elasticache.ServerlessCache(this, 'ServerlessCache', {\n engine: elasticache.CacheEngine.VALKEY_LATEST,\n vpc,\n cacheUsageLimits: {\n // cache data storage limits (GB)\n dataStorageMinimumSize: Size.gibibytes(2), // minimum: 1GB\n dataStorageMaximumSize: Size.gibibytes(3), // maximum: 5000GB\n // rate limits (ECPU/second)\n requestRateLimitMinimum: 1000, // minimum: 1000\n requestRateLimitMaximum: 10000, // maximum: 15000000\n },\n});\n```\n\n### Backups and restore\n\nYou can enable automatic backups for serverless cache.\nWhen automatic backups are enabled, ElastiCache creates a backup of the cache on a daily basis.\n\nAlso you can set the backup window for any time when it's most convenient.\nIf you don't specify a backup window, ElastiCache assigns one automatically.\n\nFor more information, see [Scheduling automatic backups](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/backups-automatic.html).\n\nTo enable automatic backups, set the `backupRetentionLimit` property. You can also specify the snapshot creation time by setting `backupTime` property:\n\n```ts\ndeclare const vpc: ec2.Vpc;\n\nconst serverlessCache = new elasticache.ServerlessCache(this, 'ServerlessCache', {\n backup: {\n // enable automatic backups and set the retention period to 6 days\n backupRetentionLimit: 6,\n // set the backup window to 9:00 AM UTC\n backupTime: events.Schedule.cron({\n hour: '9',\n minute: '0',\n }),\n },\n vpc,\n});\n```\n\nYou can create a final backup by setting `backupNameBeforeDeletion` property.\n\n```ts\ndeclare const vpc: ec2.Vpc;\n\nconst serverlessCache = new elasticache.ServerlessCache(this, 'ServerlessCache', {\n engine: elasticache.CacheEngine.VALKEY_LATEST,\n backup: {\n // set a backup name before deleting a cache\n backupNameBeforeDeletion: \"my-final-backup-name\",\n },\n vpc,\n});\n```\n\nYou can restore from backups by setting snapshot ARNs to `backupArnsToRestore` property:\n\n```ts\ndeclare const vpc: ec2.Vpc;\n\nconst serverlessCache = new elasticache.ServerlessCache(this, 'ServerlessCache', {\n engine: elasticache.CacheEngine.VALKEY_LATEST,\n backup: {\n // set the backup(s) to restore\n backupArnsToRestore: ['arn:aws:elasticache:us-east-1:123456789012:serverlesscachesnapshot:my-final-backup-name'],\n },\n vpc,\n});\n```\n\n### Encryption at rest\n\nAt-rest encryption is always enabled for Serverless Cache. There are two encryption options:\n\n* **Default**: When no `kmsKey` is specified (left as `undefined`), AWS owned KMS keys are used automatically\n* **Customer Managed Key**: Create a KMS key first, then pass it to the cache via the `kmsKey` property\n\n### Customer Managed Key for encryption at rest\n\nElastiCache supports symmetric Customer Managed key (CMK) for encryption at rest.\n\nFor more information, see [Using customer managed keys from AWS KMS](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/at-rest-encryption.html#using-customer-managed-keys-for-elasticache-security).\n\nTo use CMK, set your CMK to the `kmsKey` property:\n\n```ts\nimport { Key } from 'aws-cdk-lib/aws-kms';\n\ndeclare const kmsKey: Key;\ndeclare const vpc: ec2.Vpc;\n\nconst serverlessCache = new elasticache.ServerlessCache(this, 'ServerlessCache', {\n engine: elasticache.CacheEngine.VALKEY_LATEST,\n serverlessCacheName: 'my-serverless-cache',\n vpc,\n // set Customer Managed Key\n kmsKey,\n});\n```\n\n### Metrics and monitoring\n\nYou can monitor your serverless cache using CloudWatch Metrics via the `metric` method.\n\nFor more information about serverless cache metrics, see [Serverless metrics and events for Valkey and Redis OSS](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/serverless-metrics-events-redis.html) and [Serverless metrics and events for Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/serverless-metrics-events.memcached.html).\n\n```ts\ndeclare const serverlessCache: elasticache.ServerlessCache;\n\n// The 5 minutes average of the total number of successful read-only key lookups in the cache.\nconst cacheHits = serverlessCache.metricCacheHitCount();\n\n// The 5 minutes average of the total number of bytes used by the data stored in the cache.\nconst bytesUsedForCache = serverlessCache.metricDataStored();\n\n// The 5 minutes average of the total number of ElastiCacheProcessingUnits (ECPUs) consumed by the requests executed on the cache.\nconst elastiCacheProcessingUnits = serverlessCache.metricProcessingUnitsConsumed();\n\n// Create an alarm for ECPUs.\nelastiCacheProcessingUnits.createAlarm(this, 'ElastiCacheProcessingUnitsAlarm', {\n threshold: 50,\n evaluationPeriods: 1,\n});\n```\n\n### Import an existing serverless cache\n\nTo import an existing ServerlessCache, use the `ServerlessCache.fromServerlessCacheAttributes` method:\n\n```ts\ndeclare const securityGroup: ec2.SecurityGroup;\n\nconst importedServerlessCache = elasticache.ServerlessCache.fromServerlessCacheAttributes(this, 'ImportedServerlessCache', {\n serverlessCacheName: 'my-serverless-cache',\n securityGroups: [securityGroup],\n});\n```\n\n## User and User Group\n\nSetup required properties and create:\n\n```ts\nconst newDefaultUser = new elasticache.NoPasswordUser(this, 'NoPasswordUser', {\n userId: 'default',\n accessControl: elasticache.AccessControl.fromAccessString(\"on ~* +@all\"),\n})\n\nconst userGroup = new elasticache.UserGroup(this, 'UserGroup', {\n users: [newDefaultUser],\n});\n```\n\n### RBAC\n\nIn Valkey 7.2 and onward and Redis OSS 6.0 onward you can use a feature called Role-Based Access Control (RBAC). RBAC is also the only way to control access to serverless caches.\n\nRBAC enables you to control cache access through user groups. These user groups are designed as a way to organize access to caches.\n\nFor more information, see [Role-Based Access Control (RBAC)](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Clusters.RBAC.html).\n\nTo enable RBAC for ElastiCache with Valkey or Redis OSS, you take the following steps:\n\n* Create users.\n* Create a user group and add users to the user group.\n* Assign the user group to a cache.\n\n### Create users\n\nFirst, you need to create users by using `IamUser`, `PasswordUser` or `NoPasswordUser` construct.\n\nWith RBAC, you create users and assign them specific permissions by using `accessString` property.\n\nFor more information, see [Specifying Permissions Using an Access String](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Clusters.RBAC.html#Access-string).\n\nYou can create an IAM-enabled user by using `IamUser` construct:\n\n```ts\nconst user = new elasticache.IamUser(this, 'User', {\n // set user engine\n engine: elasticache.UserEngine.REDIS,\n\n // set user id\n userId: 'my-user',\n\n // set username\n userName: 'my-user',\n\n // set access string\n accessControl: elasticache.AccessControl.fromAccessString(\"on ~* +@all\"),\n});\n```\n\n> NOTE: IAM-enabled users must have matching user id and username. For more information, see [Limitations](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/auth-iam.html). The construct can set automatically the username to be the same as the user id.\n\nIf you want to create a password authenticated user, use `PasswordUser` construct:\n\n```ts\nconst user = new elasticache.PasswordUser(this, 'User', {\n // set user engine\n engine: elasticache.UserEngine.VALKEY,\n\n // set user id\n userId: 'my-user-id',\n\n // set access string\n accessControl: elasticache.AccessControl.fromAccessString(\"on ~* +@all\"),\n\n // set username\n userName: 'my-user-name',\n\n // set up to two passwords\n passwords: [\n // \"SecretIdForPassword\" is the secret id for the password\n SecretValue.secretsManager('SecretIdForPassword'),\n // \"AnotherSecretIdForPassword\" is the secret id for the password\n SecretValue.secretsManager('AnotherSecretIdForPassword'),\n ],\n});\n```\n\nYou can also create a no password required user by using `NoPasswordUser` construct:\n\n```ts\nconst user = new elasticache.NoPasswordUser(this, 'User', {\n // set user engine\n engine: elasticache.UserEngine.REDIS,\n\n // set user id\n userId: 'my-user-id',\n\n // set access string\n accessControl: elasticache.AccessControl.fromAccessString(\"on ~* +@all\"),\n\n // set username\n userName: 'my-user-name',\n});\n```\n\n> NOTE: `NoPasswordUser` is only available for Redis Cache.\n\n### Default user\n\nElastiCache automatically creates a default user with both a user ID and username set to `default`. This default user cannot be modified or deleted. The user is created as a no password authentication user.\n\nThis user is intended for compatibility with the default behavior of previous Redis OSS versions and has an access string that permits it to call all commands and access all keys.\n\nTo use this automatically created default user in CDK, you can import it using `NoPasswordUser.fromUserAttributes` method. For more information on import methods, see the [Import an existing user and user group](#import-an-existing-user-and-user-group) section.\n\nTo add proper access control to a cache, replace the default user with a new one that is either disabled by setting the `accessString` to `off -@all` or secured with a strong password.\n\nTo change the default user, create a new default user with the username set to `default`. You can then swap it with the original default user.\n\nFor more information, see [Applying RBAC to a Cache for ElastiCache with Valkey or Redis OSS](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Clusters.RBAC.html#rbac-using).\n\nIf you want to create a new default user, `userName` must be `default` and `userId` must not be `default` by using `NoPasswordUser` or `PasswordUser`:\n\n```ts\n// use the original `default` user by using import method\nconst defaultUser = elasticache.NoPasswordUser.fromUserAttributes(this, 'DefaultUser', {\n // userId and userName must be 'default'\n userId: 'default',\n});\n\n// create a new default user\nconst newDefaultUser = new elasticache.NoPasswordUser(this, 'NewDefaultUser', {\n // new default user id must not be 'default'\n userId: 'new-default',\n // new default username must be 'default'\n userName: 'default',\n // set access string\n accessControl: elasticache.AccessControl.fromAccessString(\"on ~* +@all\"),\n});\n```\n\n> NOTE: You can't create a new default user using `IamUser` because an IAM-enabled user's username and user ID cannot be different.\n\n### Add users to the user group\n\nNext, use the `UserGroup` construct to create a user group and add users to it.\nEnsure that you include either the original default user or a new default user:\n\n```ts\ndeclare const newDefaultUser: elasticache.IUser;\ndeclare const user: elasticache.IUser;\ndeclare const anotherUser: elasticache.IUser;\n\nconst userGroup = new elasticache.UserGroup(this, 'UserGroup', {\n // add users including default user\n users: [newDefaultUser, user],\n});\n\n// you can also add a user by using addUser method\nuserGroup.addUser(anotherUser);\n```\n\n### Assign user group\n\nFinally, assign a user group to cache:\n\n```ts\ndeclare const vpc: ec2.Vpc;\ndeclare const userGroup: elasticache.UserGroup;\n\nconst serverlessCache = new elasticache.ServerlessCache(this, 'ServerlessCache', {\n engine: elasticache.CacheEngine.VALKEY_LATEST,\n serverlessCacheName: 'my-serverless-cache',\n vpc,\n // assign User Group\n userGroup,\n});\n\n```\n\n### Grant permissions to IAM-enabled users\n\nIf you create IAM-enabled users, `\"elasticache:Connect\"` action must be allowed for the users and cache.\n\n> NOTE: You don't need grant permissions to no password required users or password authentication users.\n\nFor more information, see [Authenticating with IAM](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/auth-iam.html).\n\nTo grant permissions, you can use the `grantConnect` method in `IamUser` and `ServerlessCache` constructs:\n\n```ts\ndeclare const user: elasticache.IamUser;\ndeclare const serverlessCache: elasticache.ServerlessCache;\ndeclare const role: iam.Role;\n\n// grant \"elasticache:Connect\" action permissions to role\nuser.grantConnect(role);\nserverlessCache.grants.connect(role);\n```\n\n### Import an existing user and user group\n\nYou can import an existing user and user group by using import methods:\n\n```ts\nconst stack = new Stack();\n\nconst importedIamUser = elasticache.IamUser.fromUserId(this, 'ImportedIamUser', 'my-iam-user-id');\n\nconst importedPasswordUser = elasticache.PasswordUser.fromUserAttributes(stack, 'ImportedPasswordUser', {\n userId: 'my-password-user-id',\n});\n\nconst importedNoPasswordUser = elasticache.NoPasswordUser.fromUserAttributes(stack, 'ImportedNoPasswordUser', {\n userId: 'my-no-password-user-id',\n});\n\nconst importedUserGroup = elasticache.UserGroup.fromUserGroupAttributes(this, 'ImportedUserGroup', {\n userGroupName: 'my-user-group-name'\n});\n```\n"
8991
+ "markdown": "# ElastiCache CDK Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\nThis module has constructs for [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/WhatIs.html).\n\n* The `ServerlessCache` construct facilitates the creation and management of serverless cache.\n* The `User` and `UserGroup` constructs facilitate the creation and management of users for the cache.\n\n## Serverless Cache\n\nAmazon ElastiCache Serverless is a serverless option that automatically scales cache capacity based on application traffic patterns. You can create a serverless cache using the `ServerlessCache` construct:\n\n```ts\nconst vpc = new ec2.Vpc(this, 'VPC');\n\nconst cache = new elasticache.ServerlessCache(this, 'ServerlessCache', {\n vpc,\n});\n```\n\n### Connecting to serverless cache\n\nTo control who can access the serverless cache by the security groups, use the `.connections` attribute.\n\nThe serverless cache has a default port `6379`.\n\nThis example allows an EC2 instance to connect to the serverless cache:\n\n```ts\ndeclare const serverlessCache: elasticache.ServerlessCache;\ndeclare const instance: ec2.Instance;\n\n// allow the EC2 instance to connect to serverless cache on default port 6379\nserverlessCache.connections.allowDefaultPortFrom(instance);\n```\n\n### Using a custom engine version\n\nThe named `CacheEngine` and `UserEngine` static members cover the versions available\nat the time of the most recent CDK release. If ElastiCache releases a new engine\nversion before it is added as a named member, use the `.of(...)` factory to target\nit without waiting for a CDK update:\n\n```ts\ndeclare const vpc: ec2.Vpc;\n\nnew elasticache.ServerlessCache(this, 'ServerlessCache', {\n // Use any engine/version combination supported by ElastiCache:\n engine: elasticache.CacheEngine.of('valkey', '9'),\n vpc,\n});\n```\n\nThe same pattern applies to `UserEngine.of(engineType)` for users and user groups.\n\n### Cache usage limits\n\nYou can configure usage limits on both cache data storage and ECPU/second for your cache to control costs and ensure predictable performance.\n\n**Configuration options:**\n\n* **Maximum limits**: Ensure your cache usage never exceeds the configured maximum\n* **Minimum limits**: Reserve a baseline level of resources for consistent performance\n* **Both**: Define a range where your cache usage will operate\n\nFor more infomation, see [Setting scaling limits to manage costs](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Scaling.html#Pre-Scaling).\n\n```ts\ndeclare const vpc: ec2.Vpc;\n\nconst serverlessCache = new elasticache.ServerlessCache(this, 'ServerlessCache', {\n engine: elasticache.CacheEngine.VALKEY_LATEST,\n vpc,\n cacheUsageLimits: {\n // cache data storage limits (GB)\n dataStorageMinimumSize: Size.gibibytes(2), // minimum: 1GB\n dataStorageMaximumSize: Size.gibibytes(3), // maximum: 5000GB\n // rate limits (ECPU/second)\n requestRateLimitMinimum: 1000, // minimum: 1000\n requestRateLimitMaximum: 10000, // maximum: 15000000\n },\n});\n```\n\n### Backups and restore\n\nYou can enable automatic backups for serverless cache.\nWhen automatic backups are enabled, ElastiCache creates a backup of the cache on a daily basis.\n\nAlso you can set the backup window for any time when it's most convenient.\nIf you don't specify a backup window, ElastiCache assigns one automatically.\n\nFor more information, see [Scheduling automatic backups](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/backups-automatic.html).\n\nTo enable automatic backups, set the `backupRetentionLimit` property. You can also specify the snapshot creation time by setting `backupTime` property:\n\n```ts\ndeclare const vpc: ec2.Vpc;\n\nconst serverlessCache = new elasticache.ServerlessCache(this, 'ServerlessCache', {\n backup: {\n // enable automatic backups and set the retention period to 6 days\n backupRetentionLimit: 6,\n // set the backup window to 9:00 AM UTC\n backupTime: events.Schedule.cron({\n hour: '9',\n minute: '0',\n }),\n },\n vpc,\n});\n```\n\nYou can create a final backup by setting `backupNameBeforeDeletion` property.\n\n```ts\ndeclare const vpc: ec2.Vpc;\n\nconst serverlessCache = new elasticache.ServerlessCache(this, 'ServerlessCache', {\n engine: elasticache.CacheEngine.VALKEY_LATEST,\n backup: {\n // set a backup name before deleting a cache\n backupNameBeforeDeletion: \"my-final-backup-name\",\n },\n vpc,\n});\n```\n\nYou can restore from backups by setting snapshot ARNs to `backupArnsToRestore` property:\n\n```ts\ndeclare const vpc: ec2.Vpc;\n\nconst serverlessCache = new elasticache.ServerlessCache(this, 'ServerlessCache', {\n engine: elasticache.CacheEngine.VALKEY_LATEST,\n backup: {\n // set the backup(s) to restore\n backupArnsToRestore: ['arn:aws:elasticache:us-east-1:123456789012:serverlesscachesnapshot:my-final-backup-name'],\n },\n vpc,\n});\n```\n\n### Encryption at rest\n\nAt-rest encryption is always enabled for Serverless Cache. There are two encryption options:\n\n* **Default**: When no `kmsKey` is specified (left as `undefined`), AWS owned KMS keys are used automatically\n* **Customer Managed Key**: Create a KMS key first, then pass it to the cache via the `kmsKey` property\n\n### Customer Managed Key for encryption at rest\n\nElastiCache supports symmetric Customer Managed key (CMK) for encryption at rest.\n\nFor more information, see [Using customer managed keys from AWS KMS](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/at-rest-encryption.html#using-customer-managed-keys-for-elasticache-security).\n\nTo use CMK, set your CMK to the `kmsKey` property:\n\n```ts\nimport { Key } from 'aws-cdk-lib/aws-kms';\n\ndeclare const kmsKey: Key;\ndeclare const vpc: ec2.Vpc;\n\nconst serverlessCache = new elasticache.ServerlessCache(this, 'ServerlessCache', {\n engine: elasticache.CacheEngine.VALKEY_LATEST,\n serverlessCacheName: 'my-serverless-cache',\n vpc,\n // set Customer Managed Key\n kmsKey,\n});\n```\n\n### Metrics and monitoring\n\nYou can monitor your serverless cache using CloudWatch Metrics via the `metric` method.\n\nFor more information about serverless cache metrics, see [Serverless metrics and events for Valkey and Redis OSS](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/serverless-metrics-events-redis.html) and [Serverless metrics and events for Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/serverless-metrics-events.memcached.html).\n\n```ts\ndeclare const serverlessCache: elasticache.ServerlessCache;\n\n// The 5 minutes average of the total number of successful read-only key lookups in the cache.\nconst cacheHits = serverlessCache.metricCacheHitCount();\n\n// The 5 minutes average of the total number of bytes used by the data stored in the cache.\nconst bytesUsedForCache = serverlessCache.metricDataStored();\n\n// The 5 minutes average of the total number of ElastiCacheProcessingUnits (ECPUs) consumed by the requests executed on the cache.\nconst elastiCacheProcessingUnits = serverlessCache.metricProcessingUnitsConsumed();\n\n// Create an alarm for ECPUs.\nelastiCacheProcessingUnits.createAlarm(this, 'ElastiCacheProcessingUnitsAlarm', {\n threshold: 50,\n evaluationPeriods: 1,\n});\n```\n\n### Import an existing serverless cache\n\nTo import an existing ServerlessCache, use the `ServerlessCache.fromServerlessCacheAttributes` method:\n\n```ts\ndeclare const securityGroup: ec2.SecurityGroup;\n\nconst importedServerlessCache = elasticache.ServerlessCache.fromServerlessCacheAttributes(this, 'ImportedServerlessCache', {\n serverlessCacheName: 'my-serverless-cache',\n securityGroups: [securityGroup],\n});\n```\n\n## User and User Group\n\nSetup required properties and create:\n\n```ts\nconst newDefaultUser = new elasticache.NoPasswordUser(this, 'NoPasswordUser', {\n userId: 'default',\n accessControl: elasticache.AccessControl.fromAccessString(\"on ~* +@all\"),\n})\n\nconst userGroup = new elasticache.UserGroup(this, 'UserGroup', {\n users: [newDefaultUser],\n});\n```\n\n### RBAC\n\nIn Valkey 7.2 and onward and Redis OSS 6.0 onward you can use a feature called Role-Based Access Control (RBAC). RBAC is also the only way to control access to serverless caches.\n\nRBAC enables you to control cache access through user groups. These user groups are designed as a way to organize access to caches.\n\nFor more information, see [Role-Based Access Control (RBAC)](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Clusters.RBAC.html).\n\nTo enable RBAC for ElastiCache with Valkey or Redis OSS, you take the following steps:\n\n* Create users.\n* Create a user group and add users to the user group.\n* Assign the user group to a cache.\n\n### Create users\n\nFirst, you need to create users by using `IamUser`, `PasswordUser` or `NoPasswordUser` construct.\n\nWith RBAC, you create users and assign them specific permissions by using `accessString` property.\n\nFor more information, see [Specifying Permissions Using an Access String](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Clusters.RBAC.html#Access-string).\n\nYou can create an IAM-enabled user by using `IamUser` construct:\n\n```ts\nconst user = new elasticache.IamUser(this, 'User', {\n // set user engine\n engine: elasticache.UserEngine.REDIS,\n\n // set user id\n userId: 'my-user',\n\n // set username\n userName: 'my-user',\n\n // set access string\n accessControl: elasticache.AccessControl.fromAccessString(\"on ~* +@all\"),\n});\n```\n\n> NOTE: IAM-enabled users must have matching user id and username. For more information, see [Limitations](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/auth-iam.html). The construct can set automatically the username to be the same as the user id.\n\nIf you want to create a password authenticated user, use `PasswordUser` construct:\n\n```ts\nconst user = new elasticache.PasswordUser(this, 'User', {\n // set user engine\n engine: elasticache.UserEngine.VALKEY,\n\n // set user id\n userId: 'my-user-id',\n\n // set access string\n accessControl: elasticache.AccessControl.fromAccessString(\"on ~* +@all\"),\n\n // set username\n userName: 'my-user-name',\n\n // set up to two passwords\n passwords: [\n // \"SecretIdForPassword\" is the secret id for the password\n SecretValue.secretsManager('SecretIdForPassword'),\n // \"AnotherSecretIdForPassword\" is the secret id for the password\n SecretValue.secretsManager('AnotherSecretIdForPassword'),\n ],\n});\n```\n\nYou can also create a no password required user by using `NoPasswordUser` construct:\n\n```ts\nconst user = new elasticache.NoPasswordUser(this, 'User', {\n // set user engine\n engine: elasticache.UserEngine.REDIS,\n\n // set user id\n userId: 'my-user-id',\n\n // set access string\n accessControl: elasticache.AccessControl.fromAccessString(\"on ~* +@all\"),\n\n // set username\n userName: 'my-user-name',\n});\n```\n\n> NOTE: `NoPasswordUser` is only available for Redis Cache.\n\n### Default user\n\nElastiCache automatically creates a default user with both a user ID and username set to `default`. This default user cannot be modified or deleted. The user is created as a no password authentication user.\n\nThis user is intended for compatibility with the default behavior of previous Redis OSS versions and has an access string that permits it to call all commands and access all keys.\n\nTo use this automatically created default user in CDK, you can import it using `NoPasswordUser.fromUserAttributes` method. For more information on import methods, see the [Import an existing user and user group](#import-an-existing-user-and-user-group) section.\n\nTo add proper access control to a cache, replace the default user with a new one that is either disabled by setting the `accessString` to `off -@all` or secured with a strong password.\n\nTo change the default user, create a new default user with the username set to `default`. You can then swap it with the original default user.\n\nFor more information, see [Applying RBAC to a Cache for ElastiCache with Valkey or Redis OSS](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Clusters.RBAC.html#rbac-using).\n\nIf you want to create a new default user, `userName` must be `default` and `userId` must not be `default` by using `NoPasswordUser` or `PasswordUser`:\n\n```ts\n// use the original `default` user by using import method\nconst defaultUser = elasticache.NoPasswordUser.fromUserAttributes(this, 'DefaultUser', {\n // userId and userName must be 'default'\n userId: 'default',\n});\n\n// create a new default user\nconst newDefaultUser = new elasticache.NoPasswordUser(this, 'NewDefaultUser', {\n // new default user id must not be 'default'\n userId: 'new-default',\n // new default username must be 'default'\n userName: 'default',\n // set access string\n accessControl: elasticache.AccessControl.fromAccessString(\"on ~* +@all\"),\n});\n```\n\n> NOTE: You can't create a new default user using `IamUser` because an IAM-enabled user's username and user ID cannot be different.\n\n### Add users to the user group\n\nNext, use the `UserGroup` construct to create a user group and add users to it.\nEnsure that you include either the original default user or a new default user:\n\n```ts\ndeclare const newDefaultUser: elasticache.IUser;\ndeclare const user: elasticache.IUser;\ndeclare const anotherUser: elasticache.IUser;\n\nconst userGroup = new elasticache.UserGroup(this, 'UserGroup', {\n // add users including default user\n users: [newDefaultUser, user],\n});\n\n// you can also add a user by using addUser method\nuserGroup.addUser(anotherUser);\n```\n\n### Assign user group\n\nFinally, assign a user group to cache:\n\n```ts\ndeclare const vpc: ec2.Vpc;\ndeclare const userGroup: elasticache.UserGroup;\n\nconst serverlessCache = new elasticache.ServerlessCache(this, 'ServerlessCache', {\n engine: elasticache.CacheEngine.VALKEY_LATEST,\n serverlessCacheName: 'my-serverless-cache',\n vpc,\n // assign User Group\n userGroup,\n});\n\n```\n\n### Grant permissions to IAM-enabled users\n\nIf you create IAM-enabled users, `\"elasticache:Connect\"` action must be allowed for the users and cache.\n\n> NOTE: You don't need grant permissions to no password required users or password authentication users.\n\nFor more information, see [Authenticating with IAM](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/auth-iam.html).\n\nTo grant permissions, you can use the `grantConnect` method in `IamUser` and `ServerlessCache` constructs:\n\n```ts\ndeclare const user: elasticache.IamUser;\ndeclare const serverlessCache: elasticache.ServerlessCache;\ndeclare const role: iam.Role;\n\n// grant \"elasticache:Connect\" action permissions to role\nuser.grantConnect(role);\nserverlessCache.grants.connect(role);\n```\n\n### Import an existing user and user group\n\nYou can import an existing user and user group by using import methods:\n\n```ts\nconst stack = new Stack();\n\nconst importedIamUser = elasticache.IamUser.fromUserId(this, 'ImportedIamUser', 'my-iam-user-id');\n\nconst importedPasswordUser = elasticache.PasswordUser.fromUserAttributes(stack, 'ImportedPasswordUser', {\n userId: 'my-password-user-id',\n});\n\nconst importedNoPasswordUser = elasticache.NoPasswordUser.fromUserAttributes(stack, 'ImportedNoPasswordUser', {\n userId: 'my-no-password-user-id',\n});\n\nconst importedUserGroup = elasticache.UserGroup.fromUserGroupAttributes(this, 'ImportedUserGroup', {\n userGroupName: 'my-user-group-name'\n});\n```\n"
8992
8992
  },
8993
8993
  "repository": {
8994
8994
  "directory": "packages/@aws-cdk/aws-elasticache-alpha",
@@ -9114,7 +9114,7 @@
9114
9114
  "kind": "interface",
9115
9115
  "locationInModule": {
9116
9116
  "filename": "lib/serverless-cache.ts",
9117
- "line": 79
9117
+ "line": 78
9118
9118
  },
9119
9119
  "name": "BackupSettings",
9120
9120
  "properties": [
@@ -9128,7 +9128,7 @@
9128
9128
  "immutable": true,
9129
9129
  "locationInModule": {
9130
9130
  "filename": "lib/serverless-cache.ts",
9131
- "line": 103
9131
+ "line": 102
9132
9132
  },
9133
9133
  "name": "backupArnsToRestore",
9134
9134
  "optional": true,
@@ -9151,7 +9151,7 @@
9151
9151
  "immutable": true,
9152
9152
  "locationInModule": {
9153
9153
  "filename": "lib/serverless-cache.ts",
9154
- "line": 97
9154
+ "line": 96
9155
9155
  },
9156
9156
  "name": "backupNameBeforeDeletion",
9157
9157
  "optional": true,
@@ -9169,7 +9169,7 @@
9169
9169
  "immutable": true,
9170
9170
  "locationInModule": {
9171
9171
  "filename": "lib/serverless-cache.ts",
9172
- "line": 91
9172
+ "line": 90
9173
9173
  },
9174
9174
  "name": "backupRetentionLimit",
9175
9175
  "optional": true,
@@ -9187,7 +9187,7 @@
9187
9187
  "immutable": true,
9188
9188
  "locationInModule": {
9189
9189
  "filename": "lib/serverless-cache.ts",
9190
- "line": 85
9190
+ "line": 84
9191
9191
  },
9192
9192
  "name": "backupTime",
9193
9193
  "optional": true,
@@ -9201,6 +9201,8 @@
9201
9201
  "@aws-cdk/aws-elasticache-alpha.CacheEngine": {
9202
9202
  "assembly": "@aws-cdk/aws-elasticache-alpha",
9203
9203
  "docs": {
9204
+ "remarks": "Named instances cover the versions currently available on ElastiCache Serverless.\nTo target a version that is not yet represented by a named instance, use\n`CacheEngine.of(engineType, majorEngineVersion)`.",
9205
+ "see": "https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/engine-versions.html",
9204
9206
  "stability": "experimental",
9205
9207
  "summary": "Supported cache engines together with available versions.",
9206
9208
  "example": "declare const vpc: ec2.Vpc;\n\nconst serverlessCache = new elasticache.ServerlessCache(this, 'ServerlessCache', {\n engine: elasticache.CacheEngine.VALKEY_LATEST,\n backup: {\n // set a backup name before deleting a cache\n backupNameBeforeDeletion: \"my-final-backup-name\",\n },\n vpc,\n});",
@@ -9209,63 +9211,241 @@
9209
9211
  }
9210
9212
  },
9211
9213
  "fqn": "@aws-cdk/aws-elasticache-alpha.CacheEngine",
9212
- "kind": "enum",
9214
+ "kind": "class",
9213
9215
  "locationInModule": {
9214
9216
  "filename": "lib/serverless-cache-base.ts",
9215
- "line": 17
9217
+ "line": 22
9216
9218
  },
9217
- "members": [
9219
+ "methods": [
9220
+ {
9221
+ "docs": {
9222
+ "remarks": "Use this for engine/version combinations that are not yet represented by a\nnamed static member.",
9223
+ "stability": "experimental",
9224
+ "summary": "Create a new `CacheEngine` with an arbitrary engine type and major version."
9225
+ },
9226
+ "locationInModule": {
9227
+ "filename": "lib/serverless-cache-base.ts",
9228
+ "line": 73
9229
+ },
9230
+ "name": "of",
9231
+ "parameters": [
9232
+ {
9233
+ "docs": {
9234
+ "summary": "the engine type (for example, `'valkey'`, `'redis'`, or `'memcached'`)."
9235
+ },
9236
+ "name": "engineType",
9237
+ "type": {
9238
+ "primitive": "string"
9239
+ }
9240
+ },
9241
+ {
9242
+ "docs": {
9243
+ "remarks": "When omitted,\nthe latest major version available is selected by the service.",
9244
+ "summary": "the major engine version (for example, `'9'`)."
9245
+ },
9246
+ "name": "majorEngineVersion",
9247
+ "optional": true,
9248
+ "type": {
9249
+ "primitive": "string"
9250
+ }
9251
+ }
9252
+ ],
9253
+ "returns": {
9254
+ "type": {
9255
+ "fqn": "@aws-cdk/aws-elasticache-alpha.CacheEngine"
9256
+ }
9257
+ },
9258
+ "static": true
9259
+ },
9260
+ {
9261
+ "docs": {
9262
+ "remarks": "The format is `engineType_majorEngineVersion` when a\nmajor version is set, or just `engineType` otherwise (for example,\n`'valkey_8'`, `'memcached_1.6'`, `'redis'`).",
9263
+ "stability": "experimental",
9264
+ "summary": "Returns a string representation of this cache engine, for logging and error messages."
9265
+ },
9266
+ "locationInModule": {
9267
+ "filename": "lib/serverless-cache-base.ts",
9268
+ "line": 102
9269
+ },
9270
+ "name": "toString",
9271
+ "returns": {
9272
+ "type": {
9273
+ "primitive": "string"
9274
+ }
9275
+ }
9276
+ }
9277
+ ],
9278
+ "name": "CacheEngine",
9279
+ "properties": [
9280
+ {
9281
+ "const": true,
9282
+ "docs": {
9283
+ "stability": "experimental",
9284
+ "summary": "Memcached engine, minor version 1.6, patch version is selected automatically."
9285
+ },
9286
+ "immutable": true,
9287
+ "locationInModule": {
9288
+ "filename": "lib/serverless-cache-base.ts",
9289
+ "line": 61
9290
+ },
9291
+ "name": "MEMCACHED_1_6",
9292
+ "static": true,
9293
+ "type": {
9294
+ "fqn": "@aws-cdk/aws-elasticache-alpha.CacheEngine"
9295
+ }
9296
+ },
9297
+ {
9298
+ "const": true,
9299
+ "docs": {
9300
+ "stability": "experimental",
9301
+ "summary": "Memcached engine, latest major version available, minor version is selected automatically."
9302
+ },
9303
+ "immutable": true,
9304
+ "locationInModule": {
9305
+ "filename": "lib/serverless-cache-base.ts",
9306
+ "line": 56
9307
+ },
9308
+ "name": "MEMCACHED_LATEST",
9309
+ "static": true,
9310
+ "type": {
9311
+ "fqn": "@aws-cdk/aws-elasticache-alpha.CacheEngine"
9312
+ }
9313
+ },
9218
9314
  {
9315
+ "const": true,
9219
9316
  "docs": {
9220
9317
  "stability": "experimental",
9221
- "summary": "Valkey engine, latest major version available, minor version is selected automatically For more information about the features related to this version check: https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/engine-versions.html."
9318
+ "summary": "Redis engine, major version 7, minor version is selected automatically."
9222
9319
  },
9223
- "name": "VALKEY_LATEST"
9320
+ "immutable": true,
9321
+ "locationInModule": {
9322
+ "filename": "lib/serverless-cache-base.ts",
9323
+ "line": 51
9324
+ },
9325
+ "name": "REDIS_7",
9326
+ "static": true,
9327
+ "type": {
9328
+ "fqn": "@aws-cdk/aws-elasticache-alpha.CacheEngine"
9329
+ }
9224
9330
  },
9225
9331
  {
9332
+ "const": true,
9226
9333
  "docs": {
9227
9334
  "stability": "experimental",
9228
- "summary": "Valkey engine, major version 7, minor version is selected automatically For more information about the features related to this version check: https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/engine-versions.html."
9335
+ "summary": "Redis engine, latest major version available, minor version is selected automatically."
9229
9336
  },
9230
- "name": "VALKEY_7"
9337
+ "immutable": true,
9338
+ "locationInModule": {
9339
+ "filename": "lib/serverless-cache-base.ts",
9340
+ "line": 46
9341
+ },
9342
+ "name": "REDIS_LATEST",
9343
+ "static": true,
9344
+ "type": {
9345
+ "fqn": "@aws-cdk/aws-elasticache-alpha.CacheEngine"
9346
+ }
9231
9347
  },
9232
9348
  {
9349
+ "const": true,
9233
9350
  "docs": {
9234
9351
  "stability": "experimental",
9235
- "summary": "Valkey engine, major version 8, minor version is selected automatically For more information about the features related to this version check: https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/engine-versions.html."
9352
+ "summary": "Valkey engine, major version 7, minor version is selected automatically."
9353
+ },
9354
+ "immutable": true,
9355
+ "locationInModule": {
9356
+ "filename": "lib/serverless-cache-base.ts",
9357
+ "line": 31
9236
9358
  },
9237
- "name": "VALKEY_8"
9359
+ "name": "VALKEY_7",
9360
+ "static": true,
9361
+ "type": {
9362
+ "fqn": "@aws-cdk/aws-elasticache-alpha.CacheEngine"
9363
+ }
9238
9364
  },
9239
9365
  {
9366
+ "const": true,
9240
9367
  "docs": {
9241
9368
  "stability": "experimental",
9242
- "summary": "Redis engine, latest major version available, minor version is selected automatically For more information about the features related to this version check: https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/engine-versions.html."
9369
+ "summary": "Valkey engine, major version 8, minor version is selected automatically."
9370
+ },
9371
+ "immutable": true,
9372
+ "locationInModule": {
9373
+ "filename": "lib/serverless-cache-base.ts",
9374
+ "line": 36
9243
9375
  },
9244
- "name": "REDIS_LATEST"
9376
+ "name": "VALKEY_8",
9377
+ "static": true,
9378
+ "type": {
9379
+ "fqn": "@aws-cdk/aws-elasticache-alpha.CacheEngine"
9380
+ }
9245
9381
  },
9246
9382
  {
9383
+ "const": true,
9247
9384
  "docs": {
9248
9385
  "stability": "experimental",
9249
- "summary": "Redis engine, major version 7, minor version is selected automatically For more information about the features related to this version check: https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/engine-versions.html."
9386
+ "summary": "Valkey engine, major version 9, minor version is selected automatically."
9250
9387
  },
9251
- "name": "REDIS_7"
9388
+ "immutable": true,
9389
+ "locationInModule": {
9390
+ "filename": "lib/serverless-cache-base.ts",
9391
+ "line": 41
9392
+ },
9393
+ "name": "VALKEY_9",
9394
+ "static": true,
9395
+ "type": {
9396
+ "fqn": "@aws-cdk/aws-elasticache-alpha.CacheEngine"
9397
+ }
9252
9398
  },
9253
9399
  {
9400
+ "const": true,
9254
9401
  "docs": {
9255
9402
  "stability": "experimental",
9256
- "summary": "Memcached engine, latest major version available, minor version is selected automatically For more information about the features related to this version check: https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/engine-versions.html."
9403
+ "summary": "Valkey engine, latest major version available, minor version is selected automatically."
9257
9404
  },
9258
- "name": "MEMCACHED_LATEST"
9405
+ "immutable": true,
9406
+ "locationInModule": {
9407
+ "filename": "lib/serverless-cache-base.ts",
9408
+ "line": 26
9409
+ },
9410
+ "name": "VALKEY_LATEST",
9411
+ "static": true,
9412
+ "type": {
9413
+ "fqn": "@aws-cdk/aws-elasticache-alpha.CacheEngine"
9414
+ }
9259
9415
  },
9260
9416
  {
9261
9417
  "docs": {
9418
+ "remarks": "Maps directly to the `Engine` property of `AWS::ElastiCache::ServerlessCache`.",
9262
9419
  "stability": "experimental",
9263
- "summary": "Memcached engine, minor version 1.6, patch version is selected automatically For more information about the features related to this version check: https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/engine-versions.html."
9420
+ "summary": "The engine type, for example `'valkey'`, `'redis'`, or `'memcached'`."
9421
+ },
9422
+ "immutable": true,
9423
+ "locationInModule": {
9424
+ "filename": "lib/serverless-cache-base.ts",
9425
+ "line": 81
9264
9426
  },
9265
- "name": "MEMCACHED_1_6"
9427
+ "name": "engineType",
9428
+ "type": {
9429
+ "primitive": "string"
9430
+ }
9431
+ },
9432
+ {
9433
+ "docs": {
9434
+ "stability": "experimental",
9435
+ "summary": "The major engine version, for example `'9'` or `'1.6'`. Maps directly to the `MajorEngineVersion` property of `AWS::ElastiCache::ServerlessCache`. When `undefined`, the service selects the latest major version automatically."
9436
+ },
9437
+ "immutable": true,
9438
+ "locationInModule": {
9439
+ "filename": "lib/serverless-cache-base.ts",
9440
+ "line": 89
9441
+ },
9442
+ "name": "majorEngineVersion",
9443
+ "optional": true,
9444
+ "type": {
9445
+ "primitive": "string"
9446
+ }
9266
9447
  }
9267
9448
  ],
9268
- "name": "CacheEngine",
9269
9449
  "symbolId": "lib/serverless-cache-base:CacheEngine"
9270
9450
  },
9271
9451
  "@aws-cdk/aws-elasticache-alpha.CacheUsageLimitsProperty": {
@@ -9283,7 +9463,7 @@
9283
9463
  "kind": "interface",
9284
9464
  "locationInModule": {
9285
9465
  "filename": "lib/serverless-cache.ts",
9286
- "line": 49
9466
+ "line": 48
9287
9467
  },
9288
9468
  "name": "CacheUsageLimitsProperty",
9289
9469
  "properties": [
@@ -9297,7 +9477,7 @@
9297
9477
  "immutable": true,
9298
9478
  "locationInModule": {
9299
9479
  "filename": "lib/serverless-cache.ts",
9300
- "line": 61
9480
+ "line": 60
9301
9481
  },
9302
9482
  "name": "dataStorageMaximumSize",
9303
9483
  "optional": true,
@@ -9315,7 +9495,7 @@
9315
9495
  "immutable": true,
9316
9496
  "locationInModule": {
9317
9497
  "filename": "lib/serverless-cache.ts",
9318
- "line": 55
9498
+ "line": 54
9319
9499
  },
9320
9500
  "name": "dataStorageMinimumSize",
9321
9501
  "optional": true,
@@ -9333,7 +9513,7 @@
9333
9513
  "immutable": true,
9334
9514
  "locationInModule": {
9335
9515
  "filename": "lib/serverless-cache.ts",
9336
- "line": 73
9516
+ "line": 72
9337
9517
  },
9338
9518
  "name": "requestRateLimitMaximum",
9339
9519
  "optional": true,
@@ -9351,7 +9531,7 @@
9351
9531
  "immutable": true,
9352
9532
  "locationInModule": {
9353
9533
  "filename": "lib/serverless-cache.ts",
9354
- "line": 67
9534
+ "line": 66
9355
9535
  },
9356
9536
  "name": "requestRateLimitMinimum",
9357
9537
  "optional": true,
@@ -9377,7 +9557,7 @@
9377
9557
  "kind": "interface",
9378
9558
  "locationInModule": {
9379
9559
  "filename": "lib/serverless-cache-base.ts",
9380
- "line": 58
9560
+ "line": 110
9381
9561
  },
9382
9562
  "methods": [
9383
9563
  {
@@ -9388,7 +9568,7 @@
9388
9568
  },
9389
9569
  "locationInModule": {
9390
9570
  "filename": "lib/serverless-cache-base.ts",
9391
- "line": 107
9571
+ "line": 159
9392
9572
  },
9393
9573
  "name": "grant",
9394
9574
  "parameters": [
@@ -9421,7 +9601,7 @@
9421
9601
  },
9422
9602
  "locationInModule": {
9423
9603
  "filename": "lib/serverless-cache-base.ts",
9424
- "line": 103
9604
+ "line": 155
9425
9605
  },
9426
9606
  "name": "grantConnect",
9427
9607
  "parameters": [
@@ -9446,7 +9626,7 @@
9446
9626
  },
9447
9627
  "locationInModule": {
9448
9628
  "filename": "lib/serverless-cache-base.ts",
9449
- "line": 112
9629
+ "line": 164
9450
9630
  },
9451
9631
  "name": "metric",
9452
9632
  "parameters": [
@@ -9478,7 +9658,7 @@
9478
9658
  },
9479
9659
  "locationInModule": {
9480
9660
  "filename": "lib/serverless-cache-base.ts",
9481
- "line": 144
9661
+ "line": 196
9482
9662
  },
9483
9663
  "name": "metricActiveConnections",
9484
9664
  "parameters": [
@@ -9504,7 +9684,7 @@
9504
9684
  },
9505
9685
  "locationInModule": {
9506
9686
  "filename": "lib/serverless-cache-base.ts",
9507
- "line": 116
9687
+ "line": 168
9508
9688
  },
9509
9689
  "name": "metricCacheHitCount",
9510
9690
  "parameters": [
@@ -9530,7 +9710,7 @@
9530
9710
  },
9531
9711
  "locationInModule": {
9532
9712
  "filename": "lib/serverless-cache-base.ts",
9533
- "line": 124
9713
+ "line": 176
9534
9714
  },
9535
9715
  "name": "metricCacheHitRate",
9536
9716
  "parameters": [
@@ -9556,7 +9736,7 @@
9556
9736
  },
9557
9737
  "locationInModule": {
9558
9738
  "filename": "lib/serverless-cache-base.ts",
9559
- "line": 120
9739
+ "line": 172
9560
9740
  },
9561
9741
  "name": "metricCacheMissCount",
9562
9742
  "parameters": [
@@ -9582,7 +9762,7 @@
9582
9762
  },
9583
9763
  "locationInModule": {
9584
9764
  "filename": "lib/serverless-cache-base.ts",
9585
- "line": 128
9765
+ "line": 180
9586
9766
  },
9587
9767
  "name": "metricDataStored",
9588
9768
  "parameters": [
@@ -9608,7 +9788,7 @@
9608
9788
  },
9609
9789
  "locationInModule": {
9610
9790
  "filename": "lib/serverless-cache-base.ts",
9611
- "line": 136
9791
+ "line": 188
9612
9792
  },
9613
9793
  "name": "metricNetworkBytesIn",
9614
9794
  "parameters": [
@@ -9634,7 +9814,7 @@
9634
9814
  },
9635
9815
  "locationInModule": {
9636
9816
  "filename": "lib/serverless-cache-base.ts",
9637
- "line": 140
9817
+ "line": 192
9638
9818
  },
9639
9819
  "name": "metricNetworkBytesOut",
9640
9820
  "parameters": [
@@ -9660,7 +9840,7 @@
9660
9840
  },
9661
9841
  "locationInModule": {
9662
9842
  "filename": "lib/serverless-cache-base.ts",
9663
- "line": 132
9843
+ "line": 184
9664
9844
  },
9665
9845
  "name": "metricProcessingUnitsConsumed",
9666
9846
  "parameters": [
@@ -9686,7 +9866,7 @@
9686
9866
  },
9687
9867
  "locationInModule": {
9688
9868
  "filename": "lib/serverless-cache-base.ts",
9689
- "line": 152
9869
+ "line": 204
9690
9870
  },
9691
9871
  "name": "metricReadRequestLatency",
9692
9872
  "parameters": [
@@ -9712,7 +9892,7 @@
9712
9892
  },
9713
9893
  "locationInModule": {
9714
9894
  "filename": "lib/serverless-cache-base.ts",
9715
- "line": 148
9895
+ "line": 200
9716
9896
  },
9717
9897
  "name": "metricWriteRequestLatency",
9718
9898
  "parameters": [
@@ -9745,7 +9925,7 @@
9745
9925
  "immutable": true,
9746
9926
  "locationInModule": {
9747
9927
  "filename": "lib/serverless-cache-base.ts",
9748
- "line": 98
9928
+ "line": 150
9749
9929
  },
9750
9930
  "name": "serverlessCacheArn",
9751
9931
  "type": {
@@ -9764,7 +9944,7 @@
9764
9944
  "immutable": true,
9765
9945
  "locationInModule": {
9766
9946
  "filename": "lib/serverless-cache-base.ts",
9767
- "line": 68
9947
+ "line": 120
9768
9948
  },
9769
9949
  "name": "serverlessCacheName",
9770
9950
  "type": {
@@ -9780,7 +9960,7 @@
9780
9960
  "immutable": true,
9781
9961
  "locationInModule": {
9782
9962
  "filename": "lib/serverless-cache-base.ts",
9783
- "line": 72
9963
+ "line": 124
9784
9964
  },
9785
9965
  "name": "backupArnsToRestore",
9786
9966
  "optional": true,
@@ -9802,7 +9982,7 @@
9802
9982
  "immutable": true,
9803
9983
  "locationInModule": {
9804
9984
  "filename": "lib/serverless-cache-base.ts",
9805
- "line": 62
9985
+ "line": 114
9806
9986
  },
9807
9987
  "name": "engine",
9808
9988
  "optional": true,
@@ -9819,7 +9999,7 @@
9819
9999
  "immutable": true,
9820
10000
  "locationInModule": {
9821
10001
  "filename": "lib/serverless-cache-base.ts",
9822
- "line": 76
10002
+ "line": 128
9823
10003
  },
9824
10004
  "name": "kmsKey",
9825
10005
  "optional": true,
@@ -9836,7 +10016,7 @@
9836
10016
  "immutable": true,
9837
10017
  "locationInModule": {
9838
10018
  "filename": "lib/serverless-cache-base.ts",
9839
- "line": 88
10019
+ "line": 140
9840
10020
  },
9841
10021
  "name": "securityGroups",
9842
10022
  "optional": true,
@@ -9858,7 +10038,7 @@
9858
10038
  "immutable": true,
9859
10039
  "locationInModule": {
9860
10040
  "filename": "lib/serverless-cache-base.ts",
9861
- "line": 84
10041
+ "line": 136
9862
10042
  },
9863
10043
  "name": "subnets",
9864
10044
  "optional": true,
@@ -9880,7 +10060,7 @@
9880
10060
  "immutable": true,
9881
10061
  "locationInModule": {
9882
10062
  "filename": "lib/serverless-cache-base.ts",
9883
- "line": 92
10063
+ "line": 144
9884
10064
  },
9885
10065
  "name": "userGroup",
9886
10066
  "optional": true,
@@ -9897,7 +10077,7 @@
9897
10077
  "immutable": true,
9898
10078
  "locationInModule": {
9899
10079
  "filename": "lib/serverless-cache-base.ts",
9900
- "line": 80
10080
+ "line": 132
9901
10081
  },
9902
10082
  "name": "vpc",
9903
10083
  "optional": true,
@@ -10978,7 +11158,7 @@
10978
11158
  },
10979
11159
  "locationInModule": {
10980
11160
  "filename": "lib/serverless-cache.ts",
10981
- "line": 418
11161
+ "line": 413
10982
11162
  },
10983
11163
  "parameters": [
10984
11164
  {
@@ -11004,7 +11184,7 @@
11004
11184
  "kind": "class",
11005
11185
  "locationInModule": {
11006
11186
  "filename": "lib/serverless-cache.ts",
11007
- "line": 241
11187
+ "line": 240
11008
11188
  },
11009
11189
  "methods": [
11010
11190
  {
@@ -11014,7 +11194,7 @@
11014
11194
  },
11015
11195
  "locationInModule": {
11016
11196
  "filename": "lib/serverless-cache.ts",
11017
- "line": 273
11197
+ "line": 272
11018
11198
  },
11019
11199
  "name": "fromServerlessCacheArn",
11020
11200
  "parameters": [
@@ -11060,7 +11240,7 @@
11060
11240
  },
11061
11241
  "locationInModule": {
11062
11242
  "filename": "lib/serverless-cache.ts",
11063
- "line": 284
11243
+ "line": 283
11064
11244
  },
11065
11245
  "name": "fromServerlessCacheAttributes",
11066
11246
  "parameters": [
@@ -11106,7 +11286,7 @@
11106
11286
  },
11107
11287
  "locationInModule": {
11108
11288
  "filename": "lib/serverless-cache.ts",
11109
- "line": 262
11289
+ "line": 261
11110
11290
  },
11111
11291
  "name": "fromServerlessCacheName",
11112
11292
  "parameters": [
@@ -11152,7 +11332,7 @@
11152
11332
  },
11153
11333
  "locationInModule": {
11154
11334
  "filename": "lib/serverless-cache.ts",
11155
- "line": 251
11335
+ "line": 250
11156
11336
  },
11157
11337
  "name": "isServerlessCache",
11158
11338
  "parameters": [
@@ -11182,7 +11362,7 @@
11182
11362
  "immutable": true,
11183
11363
  "locationInModule": {
11184
11364
  "filename": "lib/serverless-cache.ts",
11185
- "line": 246
11365
+ "line": 245
11186
11366
  },
11187
11367
  "name": "PROPERTY_INJECTION_ID",
11188
11368
  "static": true,
@@ -11198,7 +11378,7 @@
11198
11378
  "immutable": true,
11199
11379
  "locationInModule": {
11200
11380
  "filename": "lib/serverless-cache.ts",
11201
- "line": 416
11381
+ "line": 411
11202
11382
  },
11203
11383
  "name": "connections",
11204
11384
  "overrides": "@aws-cdk/aws-elasticache-alpha.ServerlessCacheBase",
@@ -11217,7 +11397,7 @@
11217
11397
  "immutable": true,
11218
11398
  "locationInModule": {
11219
11399
  "filename": "lib/serverless-cache.ts",
11220
- "line": 380
11400
+ "line": 375
11221
11401
  },
11222
11402
  "name": "serverlessCacheArn",
11223
11403
  "overrides": "@aws-cdk/aws-elasticache-alpha.ServerlessCacheBase",
@@ -11236,7 +11416,7 @@
11236
11416
  "immutable": true,
11237
11417
  "locationInModule": {
11238
11418
  "filename": "lib/serverless-cache.ts",
11239
- "line": 386
11419
+ "line": 381
11240
11420
  },
11241
11421
  "name": "serverlessCacheEndpointAddress",
11242
11422
  "type": {
@@ -11254,7 +11434,7 @@
11254
11434
  "immutable": true,
11255
11435
  "locationInModule": {
11256
11436
  "filename": "lib/serverless-cache.ts",
11257
- "line": 392
11437
+ "line": 387
11258
11438
  },
11259
11439
  "name": "serverlessCacheEndpointPort",
11260
11440
  "type": {
@@ -11269,7 +11449,7 @@
11269
11449
  "immutable": true,
11270
11450
  "locationInModule": {
11271
11451
  "filename": "lib/serverless-cache.ts",
11272
- "line": 367
11452
+ "line": 362
11273
11453
  },
11274
11454
  "name": "serverlessCacheName",
11275
11455
  "overrides": "@aws-cdk/aws-elasticache-alpha.ServerlessCacheBase",
@@ -11288,7 +11468,7 @@
11288
11468
  "immutable": true,
11289
11469
  "locationInModule": {
11290
11470
  "filename": "lib/serverless-cache.ts",
11291
- "line": 398
11471
+ "line": 393
11292
11472
  },
11293
11473
  "name": "serverlessCacheReaderEndpointAddress",
11294
11474
  "type": {
@@ -11306,7 +11486,7 @@
11306
11486
  "immutable": true,
11307
11487
  "locationInModule": {
11308
11488
  "filename": "lib/serverless-cache.ts",
11309
- "line": 404
11489
+ "line": 399
11310
11490
  },
11311
11491
  "name": "serverlessCacheReaderEndpointPort",
11312
11492
  "type": {
@@ -11324,7 +11504,7 @@
11324
11504
  "immutable": true,
11325
11505
  "locationInModule": {
11326
11506
  "filename": "lib/serverless-cache.ts",
11327
- "line": 411
11507
+ "line": 406
11328
11508
  },
11329
11509
  "name": "serverlessCacheStatus",
11330
11510
  "type": {
@@ -11339,7 +11519,7 @@
11339
11519
  "immutable": true,
11340
11520
  "locationInModule": {
11341
11521
  "filename": "lib/serverless-cache.ts",
11342
- "line": 368
11522
+ "line": 363
11343
11523
  },
11344
11524
  "name": "backupArnsToRestore",
11345
11525
  "optional": true,
@@ -11361,7 +11541,7 @@
11361
11541
  "immutable": true,
11362
11542
  "locationInModule": {
11363
11543
  "filename": "lib/serverless-cache.ts",
11364
- "line": 366
11544
+ "line": 361
11365
11545
  },
11366
11546
  "name": "engine",
11367
11547
  "optional": true,
@@ -11378,7 +11558,7 @@
11378
11558
  "immutable": true,
11379
11559
  "locationInModule": {
11380
11560
  "filename": "lib/serverless-cache.ts",
11381
- "line": 369
11561
+ "line": 364
11382
11562
  },
11383
11563
  "name": "kmsKey",
11384
11564
  "optional": true,
@@ -11395,7 +11575,7 @@
11395
11575
  "immutable": true,
11396
11576
  "locationInModule": {
11397
11577
  "filename": "lib/serverless-cache.ts",
11398
- "line": 372
11578
+ "line": 367
11399
11579
  },
11400
11580
  "name": "securityGroups",
11401
11581
  "optional": true,
@@ -11417,7 +11597,7 @@
11417
11597
  "immutable": true,
11418
11598
  "locationInModule": {
11419
11599
  "filename": "lib/serverless-cache.ts",
11420
- "line": 371
11600
+ "line": 366
11421
11601
  },
11422
11602
  "name": "subnets",
11423
11603
  "optional": true,
@@ -11439,7 +11619,7 @@
11439
11619
  "immutable": true,
11440
11620
  "locationInModule": {
11441
11621
  "filename": "lib/serverless-cache.ts",
11442
- "line": 373
11622
+ "line": 368
11443
11623
  },
11444
11624
  "name": "userGroup",
11445
11625
  "optional": true,
@@ -11456,7 +11636,7 @@
11456
11636
  "immutable": true,
11457
11637
  "locationInModule": {
11458
11638
  "filename": "lib/serverless-cache.ts",
11459
- "line": 370
11639
+ "line": 365
11460
11640
  },
11461
11641
  "name": "vpc",
11462
11642
  "optional": true,
@@ -11483,7 +11663,7 @@
11483
11663
  "kind": "interface",
11484
11664
  "locationInModule": {
11485
11665
  "filename": "lib/serverless-cache.ts",
11486
- "line": 175
11666
+ "line": 174
11487
11667
  },
11488
11668
  "name": "ServerlessCacheAttributes",
11489
11669
  "properties": [
@@ -11497,7 +11677,7 @@
11497
11677
  "immutable": true,
11498
11678
  "locationInModule": {
11499
11679
  "filename": "lib/serverless-cache.ts",
11500
- "line": 203
11680
+ "line": 202
11501
11681
  },
11502
11682
  "name": "backupArnsToRestore",
11503
11683
  "optional": true,
@@ -11520,7 +11700,7 @@
11520
11700
  "immutable": true,
11521
11701
  "locationInModule": {
11522
11702
  "filename": "lib/serverless-cache.ts",
11523
- "line": 181
11703
+ "line": 180
11524
11704
  },
11525
11705
  "name": "engine",
11526
11706
  "optional": true,
@@ -11538,7 +11718,7 @@
11538
11718
  "immutable": true,
11539
11719
  "locationInModule": {
11540
11720
  "filename": "lib/serverless-cache.ts",
11541
- "line": 209
11721
+ "line": 208
11542
11722
  },
11543
11723
  "name": "kmsKey",
11544
11724
  "optional": true,
@@ -11556,7 +11736,7 @@
11556
11736
  "immutable": true,
11557
11737
  "locationInModule": {
11558
11738
  "filename": "lib/serverless-cache.ts",
11559
- "line": 227
11739
+ "line": 226
11560
11740
  },
11561
11741
  "name": "securityGroups",
11562
11742
  "optional": true,
@@ -11580,7 +11760,7 @@
11580
11760
  "immutable": true,
11581
11761
  "locationInModule": {
11582
11762
  "filename": "lib/serverless-cache.ts",
11583
- "line": 197
11763
+ "line": 196
11584
11764
  },
11585
11765
  "name": "serverlessCacheArn",
11586
11766
  "optional": true,
@@ -11599,7 +11779,7 @@
11599
11779
  "immutable": true,
11600
11780
  "locationInModule": {
11601
11781
  "filename": "lib/serverless-cache.ts",
11602
- "line": 189
11782
+ "line": 188
11603
11783
  },
11604
11784
  "name": "serverlessCacheName",
11605
11785
  "optional": true,
@@ -11617,7 +11797,7 @@
11617
11797
  "immutable": true,
11618
11798
  "locationInModule": {
11619
11799
  "filename": "lib/serverless-cache.ts",
11620
- "line": 221
11800
+ "line": 220
11621
11801
  },
11622
11802
  "name": "subnets",
11623
11803
  "optional": true,
@@ -11640,7 +11820,7 @@
11640
11820
  "immutable": true,
11641
11821
  "locationInModule": {
11642
11822
  "filename": "lib/serverless-cache.ts",
11643
- "line": 233
11823
+ "line": 232
11644
11824
  },
11645
11825
  "name": "userGroup",
11646
11826
  "optional": true,
@@ -11658,7 +11838,7 @@
11658
11838
  "immutable": true,
11659
11839
  "locationInModule": {
11660
11840
  "filename": "lib/serverless-cache.ts",
11661
- "line": 215
11841
+ "line": 214
11662
11842
  },
11663
11843
  "name": "vpc",
11664
11844
  "optional": true,
@@ -11684,7 +11864,7 @@
11684
11864
  },
11685
11865
  "locationInModule": {
11686
11866
  "filename": "core/lib/resource.ts",
11687
- "line": 123
11867
+ "line": 124
11688
11868
  },
11689
11869
  "parameters": [
11690
11870
  {
@@ -11714,7 +11894,7 @@
11714
11894
  "kind": "class",
11715
11895
  "locationInModule": {
11716
11896
  "filename": "lib/serverless-cache-base.ts",
11717
- "line": 158
11897
+ "line": 210
11718
11898
  },
11719
11899
  "methods": [
11720
11900
  {
@@ -11724,7 +11904,7 @@
11724
11904
  },
11725
11905
  "locationInModule": {
11726
11906
  "filename": "lib/serverless-cache-base.ts",
11727
- "line": 203
11907
+ "line": 255
11728
11908
  },
11729
11909
  "name": "grant",
11730
11910
  "overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
@@ -11763,7 +11943,7 @@
11763
11943
  },
11764
11944
  "locationInModule": {
11765
11945
  "filename": "lib/serverless-cache-base.ts",
11766
- "line": 193
11946
+ "line": 245
11767
11947
  },
11768
11948
  "name": "grantConnect",
11769
11949
  "overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
@@ -11792,7 +11972,7 @@
11792
11972
  },
11793
11973
  "locationInModule": {
11794
11974
  "filename": "lib/serverless-cache-base.ts",
11795
- "line": 218
11975
+ "line": 270
11796
11976
  },
11797
11977
  "name": "metric",
11798
11978
  "overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
@@ -11831,7 +12011,7 @@
11831
12011
  },
11832
12012
  "locationInModule": {
11833
12013
  "filename": "lib/serverless-cache-base.ts",
11834
- "line": 299
12014
+ "line": 351
11835
12015
  },
11836
12016
  "name": "metricActiveConnections",
11837
12017
  "overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
@@ -11861,7 +12041,7 @@
11861
12041
  },
11862
12042
  "locationInModule": {
11863
12043
  "filename": "lib/serverless-cache-base.ts",
11864
- "line": 236
12044
+ "line": 288
11865
12045
  },
11866
12046
  "name": "metricCacheHitCount",
11867
12047
  "overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
@@ -11891,7 +12071,7 @@
11891
12071
  },
11892
12072
  "locationInModule": {
11893
12073
  "filename": "lib/serverless-cache-base.ts",
11894
- "line": 254
12074
+ "line": 306
11895
12075
  },
11896
12076
  "name": "metricCacheHitRate",
11897
12077
  "overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
@@ -11921,7 +12101,7 @@
11921
12101
  },
11922
12102
  "locationInModule": {
11923
12103
  "filename": "lib/serverless-cache-base.ts",
11924
- "line": 245
12104
+ "line": 297
11925
12105
  },
11926
12106
  "name": "metricCacheMissCount",
11927
12107
  "overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
@@ -11951,7 +12131,7 @@
11951
12131
  },
11952
12132
  "locationInModule": {
11953
12133
  "filename": "lib/serverless-cache-base.ts",
11954
- "line": 263
12134
+ "line": 315
11955
12135
  },
11956
12136
  "name": "metricDataStored",
11957
12137
  "overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
@@ -11981,7 +12161,7 @@
11981
12161
  },
11982
12162
  "locationInModule": {
11983
12163
  "filename": "lib/serverless-cache-base.ts",
11984
- "line": 281
12164
+ "line": 333
11985
12165
  },
11986
12166
  "name": "metricNetworkBytesIn",
11987
12167
  "overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
@@ -12011,7 +12191,7 @@
12011
12191
  },
12012
12192
  "locationInModule": {
12013
12193
  "filename": "lib/serverless-cache-base.ts",
12014
- "line": 290
12194
+ "line": 342
12015
12195
  },
12016
12196
  "name": "metricNetworkBytesOut",
12017
12197
  "overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
@@ -12041,7 +12221,7 @@
12041
12221
  },
12042
12222
  "locationInModule": {
12043
12223
  "filename": "lib/serverless-cache-base.ts",
12044
- "line": 272
12224
+ "line": 324
12045
12225
  },
12046
12226
  "name": "metricProcessingUnitsConsumed",
12047
12227
  "overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
@@ -12071,7 +12251,7 @@
12071
12251
  },
12072
12252
  "locationInModule": {
12073
12253
  "filename": "lib/serverless-cache-base.ts",
12074
- "line": 317
12254
+ "line": 369
12075
12255
  },
12076
12256
  "name": "metricReadRequestLatency",
12077
12257
  "overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
@@ -12101,7 +12281,7 @@
12101
12281
  },
12102
12282
  "locationInModule": {
12103
12283
  "filename": "lib/serverless-cache-base.ts",
12104
- "line": 308
12284
+ "line": 360
12105
12285
  },
12106
12286
  "name": "metricWriteRequestLatency",
12107
12287
  "overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
@@ -12135,7 +12315,7 @@
12135
12315
  "immutable": true,
12136
12316
  "locationInModule": {
12137
12317
  "filename": "lib/serverless-cache-base.ts",
12138
- "line": 173
12318
+ "line": 225
12139
12319
  },
12140
12320
  "name": "connections",
12141
12321
  "overrides": "aws-cdk-lib.aws_ec2.IConnectable",
@@ -12151,7 +12331,7 @@
12151
12331
  "immutable": true,
12152
12332
  "locationInModule": {
12153
12333
  "filename": "lib/serverless-cache-base.ts",
12154
- "line": 178
12334
+ "line": 230
12155
12335
  },
12156
12336
  "name": "grants",
12157
12337
  "type": {
@@ -12167,7 +12347,7 @@
12167
12347
  "immutable": true,
12168
12348
  "locationInModule": {
12169
12349
  "filename": "lib/serverless-cache-base.ts",
12170
- "line": 168
12350
+ "line": 220
12171
12351
  },
12172
12352
  "name": "serverlessCacheArn",
12173
12353
  "overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
@@ -12184,7 +12364,7 @@
12184
12364
  "immutable": true,
12185
12365
  "locationInModule": {
12186
12366
  "filename": "lib/serverless-cache-base.ts",
12187
- "line": 160
12367
+ "line": 212
12188
12368
  },
12189
12369
  "name": "serverlessCacheName",
12190
12370
  "overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
@@ -12200,7 +12380,7 @@
12200
12380
  "immutable": true,
12201
12381
  "locationInModule": {
12202
12382
  "filename": "lib/serverless-cache-base.ts",
12203
- "line": 180
12383
+ "line": 232
12204
12384
  },
12205
12385
  "name": "serverlessCacheRef",
12206
12386
  "overrides": "aws-cdk-lib.interfaces.aws_elasticache.IServerlessCacheRef",
@@ -12217,7 +12397,7 @@
12217
12397
  "immutable": true,
12218
12398
  "locationInModule": {
12219
12399
  "filename": "lib/serverless-cache-base.ts",
12220
- "line": 161
12400
+ "line": 213
12221
12401
  },
12222
12402
  "name": "backupArnsToRestore",
12223
12403
  "optional": true,
@@ -12240,7 +12420,7 @@
12240
12420
  "immutable": true,
12241
12421
  "locationInModule": {
12242
12422
  "filename": "lib/serverless-cache-base.ts",
12243
- "line": 159
12423
+ "line": 211
12244
12424
  },
12245
12425
  "name": "engine",
12246
12426
  "optional": true,
@@ -12258,7 +12438,7 @@
12258
12438
  "immutable": true,
12259
12439
  "locationInModule": {
12260
12440
  "filename": "lib/serverless-cache-base.ts",
12261
- "line": 162
12441
+ "line": 214
12262
12442
  },
12263
12443
  "name": "kmsKey",
12264
12444
  "optional": true,
@@ -12276,7 +12456,7 @@
12276
12456
  "immutable": true,
12277
12457
  "locationInModule": {
12278
12458
  "filename": "lib/serverless-cache-base.ts",
12279
- "line": 165
12459
+ "line": 217
12280
12460
  },
12281
12461
  "name": "securityGroups",
12282
12462
  "optional": true,
@@ -12299,7 +12479,7 @@
12299
12479
  "immutable": true,
12300
12480
  "locationInModule": {
12301
12481
  "filename": "lib/serverless-cache-base.ts",
12302
- "line": 164
12482
+ "line": 216
12303
12483
  },
12304
12484
  "name": "subnets",
12305
12485
  "optional": true,
@@ -12322,7 +12502,7 @@
12322
12502
  "immutable": true,
12323
12503
  "locationInModule": {
12324
12504
  "filename": "lib/serverless-cache-base.ts",
12325
- "line": 166
12505
+ "line": 218
12326
12506
  },
12327
12507
  "name": "userGroup",
12328
12508
  "optional": true,
@@ -12340,7 +12520,7 @@
12340
12520
  "immutable": true,
12341
12521
  "locationInModule": {
12342
12522
  "filename": "lib/serverless-cache-base.ts",
12343
- "line": 163
12523
+ "line": 215
12344
12524
  },
12345
12525
  "name": "vpc",
12346
12526
  "optional": true,
@@ -12496,7 +12676,7 @@
12496
12676
  "kind": "interface",
12497
12677
  "locationInModule": {
12498
12678
  "filename": "lib/serverless-cache.ts",
12499
- "line": 109
12679
+ "line": 108
12500
12680
  },
12501
12681
  "name": "ServerlessCacheProps",
12502
12682
  "properties": [
@@ -12509,7 +12689,7 @@
12509
12689
  "immutable": true,
12510
12690
  "locationInModule": {
12511
12691
  "filename": "lib/serverless-cache.ts",
12512
- "line": 151
12692
+ "line": 150
12513
12693
  },
12514
12694
  "name": "vpc",
12515
12695
  "type": {
@@ -12526,7 +12706,7 @@
12526
12706
  "immutable": true,
12527
12707
  "locationInModule": {
12528
12708
  "filename": "lib/serverless-cache.ts",
12529
- "line": 141
12709
+ "line": 140
12530
12710
  },
12531
12711
  "name": "backup",
12532
12712
  "optional": true,
@@ -12544,7 +12724,7 @@
12544
12724
  "immutable": true,
12545
12725
  "locationInModule": {
12546
12726
  "filename": "lib/serverless-cache.ts",
12547
- "line": 135
12727
+ "line": 134
12548
12728
  },
12549
12729
  "name": "cacheUsageLimits",
12550
12730
  "optional": true,
@@ -12562,7 +12742,7 @@
12562
12742
  "immutable": true,
12563
12743
  "locationInModule": {
12564
12744
  "filename": "lib/serverless-cache.ts",
12565
- "line": 129
12745
+ "line": 128
12566
12746
  },
12567
12747
  "name": "description",
12568
12748
  "optional": true,
@@ -12580,7 +12760,7 @@
12580
12760
  "immutable": true,
12581
12761
  "locationInModule": {
12582
12762
  "filename": "lib/serverless-cache.ts",
12583
- "line": 117
12763
+ "line": 116
12584
12764
  },
12585
12765
  "name": "engine",
12586
12766
  "optional": true,
@@ -12598,7 +12778,7 @@
12598
12778
  "immutable": true,
12599
12779
  "locationInModule": {
12600
12780
  "filename": "lib/serverless-cache.ts",
12601
- "line": 147
12781
+ "line": 146
12602
12782
  },
12603
12783
  "name": "kmsKey",
12604
12784
  "optional": true,
@@ -12616,7 +12796,7 @@
12616
12796
  "immutable": true,
12617
12797
  "locationInModule": {
12618
12798
  "filename": "lib/serverless-cache.ts",
12619
- "line": 163
12799
+ "line": 162
12620
12800
  },
12621
12801
  "name": "securityGroups",
12622
12802
  "optional": true,
@@ -12639,7 +12819,7 @@
12639
12819
  "immutable": true,
12640
12820
  "locationInModule": {
12641
12821
  "filename": "lib/serverless-cache.ts",
12642
- "line": 123
12822
+ "line": 122
12643
12823
  },
12644
12824
  "name": "serverlessCacheName",
12645
12825
  "optional": true,
@@ -12657,7 +12837,7 @@
12657
12837
  "immutable": true,
12658
12838
  "locationInModule": {
12659
12839
  "filename": "lib/serverless-cache.ts",
12660
- "line": 169
12840
+ "line": 168
12661
12841
  },
12662
12842
  "name": "userGroup",
12663
12843
  "optional": true,
@@ -12675,7 +12855,7 @@
12675
12855
  "immutable": true,
12676
12856
  "locationInModule": {
12677
12857
  "filename": "lib/serverless-cache.ts",
12678
- "line": 157
12858
+ "line": 156
12679
12859
  },
12680
12860
  "name": "vpcSubnets",
12681
12861
  "optional": true,
@@ -12705,7 +12885,7 @@
12705
12885
  },
12706
12886
  "locationInModule": {
12707
12887
  "filename": "core/lib/resource.ts",
12708
- "line": 123
12888
+ "line": 124
12709
12889
  },
12710
12890
  "parameters": [
12711
12891
  {
@@ -13063,7 +13243,7 @@
13063
13243
  "docs": {
13064
13244
  "stability": "experimental",
13065
13245
  "summary": "Properties for defining an ElastiCache base user.",
13066
- "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as elasticache_alpha from '@aws-cdk/aws-elasticache-alpha';\n\ndeclare const accessControl: elasticache_alpha.AccessControl;\nconst userBaseProps: elasticache_alpha.UserBaseProps = {\n accessControl: accessControl,\n userId: 'userId',\n\n // the properties below are optional\n engine: elasticache_alpha.UserEngine.VALKEY,\n};",
13246
+ "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as elasticache_alpha from '@aws-cdk/aws-elasticache-alpha';\n\ndeclare const accessControl: elasticache_alpha.AccessControl;\ndeclare const userEngine: elasticache_alpha.UserEngine;\nconst userBaseProps: elasticache_alpha.UserBaseProps = {\n accessControl: accessControl,\n userId: 'userId',\n\n // the properties below are optional\n engine: userEngine,\n};",
13067
13247
  "custom": {
13068
13248
  "exampleMetadata": "fixture=_generated"
13069
13249
  }
@@ -13133,6 +13313,7 @@
13133
13313
  "@aws-cdk/aws-elasticache-alpha.UserEngine": {
13134
13314
  "assembly": "@aws-cdk/aws-elasticache-alpha",
13135
13315
  "docs": {
13316
+ "remarks": "Use the named static members for the engines currently supported by ElastiCache\nuser/user-group resources. To target an engine not yet represented by a named\ninstance, use `UserEngine.of(engineType)`.",
13136
13317
  "stability": "experimental",
13137
13318
  "summary": "Engine type for ElastiCache users and user groups.",
13138
13319
  "example": "const user = new elasticache.IamUser(this, 'User', {\n // set user engine\n engine: elasticache.UserEngine.REDIS,\n\n // set user id\n userId: 'my-user',\n\n // set username\n userName: 'my-user',\n\n // set access string\n accessControl: elasticache.AccessControl.fromAccessString(\"on ~* +@all\"),\n});",
@@ -13141,28 +13322,110 @@
13141
13322
  }
13142
13323
  },
13143
13324
  "fqn": "@aws-cdk/aws-elasticache-alpha.UserEngine",
13144
- "kind": "enum",
13325
+ "kind": "class",
13145
13326
  "locationInModule": {
13146
13327
  "filename": "lib/common.ts",
13147
- "line": 4
13328
+ "line": 8
13148
13329
  },
13149
- "members": [
13330
+ "methods": [
13150
13331
  {
13151
13332
  "docs": {
13152
13333
  "stability": "experimental",
13153
- "summary": "Valkey engine."
13334
+ "summary": "Create a new `UserEngine` with an arbitrary engine type."
13335
+ },
13336
+ "locationInModule": {
13337
+ "filename": "lib/common.ts",
13338
+ "line": 24
13154
13339
  },
13155
- "name": "VALKEY"
13340
+ "name": "of",
13341
+ "parameters": [
13342
+ {
13343
+ "docs": {
13344
+ "summary": "the engine type (for example, `'valkey'` or `'redis'`)."
13345
+ },
13346
+ "name": "engineType",
13347
+ "type": {
13348
+ "primitive": "string"
13349
+ }
13350
+ }
13351
+ ],
13352
+ "returns": {
13353
+ "type": {
13354
+ "fqn": "@aws-cdk/aws-elasticache-alpha.UserEngine"
13355
+ }
13356
+ },
13357
+ "static": true
13156
13358
  },
13157
13359
  {
13158
13360
  "docs": {
13159
13361
  "stability": "experimental",
13160
- "summary": "Redis engine."
13362
+ "summary": "Returns the engine type as a string (for example, `'valkey'`)."
13363
+ },
13364
+ "locationInModule": {
13365
+ "filename": "lib/common.ts",
13366
+ "line": 42
13161
13367
  },
13162
- "name": "REDIS"
13368
+ "name": "toString",
13369
+ "returns": {
13370
+ "type": {
13371
+ "primitive": "string"
13372
+ }
13373
+ }
13163
13374
  }
13164
13375
  ],
13165
13376
  "name": "UserEngine",
13377
+ "properties": [
13378
+ {
13379
+ "const": true,
13380
+ "docs": {
13381
+ "stability": "experimental",
13382
+ "summary": "Redis engine."
13383
+ },
13384
+ "immutable": true,
13385
+ "locationInModule": {
13386
+ "filename": "lib/common.ts",
13387
+ "line": 17
13388
+ },
13389
+ "name": "REDIS",
13390
+ "static": true,
13391
+ "type": {
13392
+ "fqn": "@aws-cdk/aws-elasticache-alpha.UserEngine"
13393
+ }
13394
+ },
13395
+ {
13396
+ "const": true,
13397
+ "docs": {
13398
+ "stability": "experimental",
13399
+ "summary": "Valkey engine."
13400
+ },
13401
+ "immutable": true,
13402
+ "locationInModule": {
13403
+ "filename": "lib/common.ts",
13404
+ "line": 12
13405
+ },
13406
+ "name": "VALKEY",
13407
+ "static": true,
13408
+ "type": {
13409
+ "fqn": "@aws-cdk/aws-elasticache-alpha.UserEngine"
13410
+ }
13411
+ },
13412
+ {
13413
+ "docs": {
13414
+ "remarks": "Maps directly to the `Engine` property of `AWS::ElastiCache::User` and\n`AWS::ElastiCache::UserGroup`.",
13415
+ "stability": "experimental",
13416
+ "summary": "The engine type, for example `'valkey'` or `'redis'`."
13417
+ },
13418
+ "immutable": true,
13419
+ "locationInModule": {
13420
+ "filename": "lib/common.ts",
13421
+ "line": 33
13422
+ },
13423
+ "name": "engineType",
13424
+ "type": {
13425
+ "primitive": "string"
13426
+ }
13427
+ }
13428
+ ],
13166
13429
  "symbolId": "lib/common:UserEngine"
13167
13430
  },
13168
13431
  "@aws-cdk/aws-elasticache-alpha.UserGroup": {
@@ -13632,7 +13895,7 @@
13632
13895
  },
13633
13896
  "locationInModule": {
13634
13897
  "filename": "core/lib/resource.ts",
13635
- "line": 123
13898
+ "line": 124
13636
13899
  },
13637
13900
  "parameters": [
13638
13901
  {
@@ -13857,6 +14120,6 @@
13857
14120
  "symbolId": "lib/user-group:UserGroupProps"
13858
14121
  }
13859
14122
  },
13860
- "version": "2.257.0-alpha.0",
14123
+ "version": "2.258.0-alpha.0",
13861
14124
  "fingerprint": "**********"
13862
14125
  }