@aws-cdk/aws-elasticache-alpha 2.218.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/lib/index.js ADDED
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./common"), exports);
18
+ __exportStar(require("./user-group"), exports);
19
+ __exportStar(require("./user-base"), exports);
20
+ __exportStar(require("./iam-user"), exports);
21
+ __exportStar(require("./password-user"), exports);
22
+ __exportStar(require("./no-password-user"), exports);
23
+ __exportStar(require("./serverless-cache-base"), exports);
24
+ __exportStar(require("./serverless-cache"), exports);
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXlCO0FBQ3pCLCtDQUE2QjtBQUM3Qiw4Q0FBNEI7QUFDNUIsNkNBQTJCO0FBQzNCLGtEQUFnQztBQUNoQyxxREFBbUM7QUFDbkMsMERBQXdDO0FBQ3hDLHFEQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29tbW9uJztcbmV4cG9ydCAqIGZyb20gJy4vdXNlci1ncm91cCc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXItYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2lhbS11c2VyJztcbmV4cG9ydCAqIGZyb20gJy4vcGFzc3dvcmQtdXNlcic7XG5leHBvcnQgKiBmcm9tICcuL25vLXBhc3N3b3JkLXVzZXInO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2ZXJsZXNzLWNhY2hlLWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2ZXJsZXNzLWNhY2hlJztcbiJdfQ==
@@ -0,0 +1,64 @@
1
+ import { Construct } from 'constructs';
2
+ import { UserEngine } from './common';
3
+ import { UserBase, UserBaseProps } from './user-base';
4
+ /**
5
+ * Properties for defining an ElastiCache user with no password authentication.
6
+ */
7
+ export interface NoPasswordUserProps extends UserBaseProps {
8
+ /**
9
+ * The name of the user.
10
+ *
11
+ * @default - Same as userId.
12
+ */
13
+ readonly userName?: string;
14
+ }
15
+ /**
16
+ * Define an ElastiCache user with no password authentication.
17
+ *
18
+ * @resource AWS::ElastiCache::User
19
+ */
20
+ export declare class NoPasswordUser extends UserBase {
21
+ /**
22
+ * Uniquely identifies this class.
23
+ */
24
+ static readonly PROPERTY_INJECTION_ID: string;
25
+ /**
26
+ * Return whether the given object is a `NoPasswordUser`.
27
+ */
28
+ static isNoPasswordUser(x: any): x is NoPasswordUser;
29
+ /**
30
+ * The engine for the user.
31
+ */
32
+ readonly engine?: UserEngine;
33
+ /**
34
+ * The user's ID.
35
+ *
36
+ * @attribute
37
+ */
38
+ readonly userId: string;
39
+ /**
40
+ * The user's name.
41
+ *
42
+ * @attribute
43
+ */
44
+ readonly userName?: string;
45
+ /**
46
+ * The access string that defines the user's permissions.
47
+ */
48
+ readonly accessString: string;
49
+ /**
50
+ * The user's ARN.
51
+ *
52
+ * @attribute
53
+ */
54
+ readonly userArn: string;
55
+ /**
56
+ * The user's status.
57
+ * Can be 'active', 'modifying', 'deleting'.
58
+ *
59
+ * @attribute
60
+ */
61
+ readonly userStatus: string;
62
+ private readonly resource;
63
+ constructor(scope: Construct, id: string, props: NoPasswordUserProps);
64
+ }
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var _a;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.NoPasswordUser = void 0;
11
+ const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
12
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
13
+ const common_1 = require("./common");
14
+ const aws_elasticache_1 = require("aws-cdk-lib/aws-elasticache");
15
+ const user_base_1 = require("./user-base");
16
+ const core_1 = require("aws-cdk-lib/core");
17
+ const metadata_resource_1 = require("aws-cdk-lib/core/lib/metadata-resource");
18
+ const prop_injectable_1 = require("aws-cdk-lib/core/lib/prop-injectable");
19
+ const ELASTICACHE_NOPASSWORDUSER_SYMBOL = Symbol.for('@aws-cdk/aws-elasticache.NoPasswordUser');
20
+ /**
21
+ * Define an ElastiCache user with no password authentication.
22
+ *
23
+ * @resource AWS::ElastiCache::User
24
+ */
25
+ let NoPasswordUser = class NoPasswordUser extends user_base_1.UserBase {
26
+ /**
27
+ * Return whether the given object is a `NoPasswordUser`.
28
+ */
29
+ static isNoPasswordUser(x) {
30
+ return x !== null && typeof (x) === 'object' && ELASTICACHE_NOPASSWORDUSER_SYMBOL in x;
31
+ }
32
+ constructor(scope, id, props) {
33
+ super(scope, id);
34
+ try {
35
+ jsiiDeprecationWarnings._aws_cdk_aws_elasticache_alpha_NoPasswordUserProps(props);
36
+ }
37
+ catch (error) {
38
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
39
+ Error.captureStackTrace(error, NoPasswordUser);
40
+ }
41
+ throw error;
42
+ }
43
+ // Enhanced CDK Analytics Telemetry
44
+ (0, metadata_resource_1.addConstructMetadata)(this, props);
45
+ this.engine = props.engine ?? common_1.UserEngine.REDIS;
46
+ this.userId = props.userId;
47
+ this.userName = props.userName ?? props.userId;
48
+ this.accessString = props.accessControl.accessString;
49
+ if (this.engine === common_1.UserEngine.VALKEY) {
50
+ throw new core_1.ValidationError('Valkey engine does not support no-password authentication.', this);
51
+ }
52
+ this.resource = new aws_elasticache_1.CfnUser(this, 'Resource', {
53
+ engine: this.engine,
54
+ userId: props.userId,
55
+ userName: this.userName,
56
+ accessString: this.accessString,
57
+ authenticationMode: {
58
+ Type: 'no-password-required',
59
+ },
60
+ noPasswordRequired: true,
61
+ passwords: undefined,
62
+ });
63
+ this.userArn = this.resource.attrArn;
64
+ this.userStatus = this.resource.attrStatus;
65
+ Object.defineProperty(this, ELASTICACHE_NOPASSWORDUSER_SYMBOL, { value: true });
66
+ }
67
+ };
68
+ exports.NoPasswordUser = NoPasswordUser;
69
+ _a = JSII_RTTI_SYMBOL_1;
70
+ NoPasswordUser[_a] = { fqn: "@aws-cdk/aws-elasticache-alpha.NoPasswordUser", version: "2.218.0-alpha.0" };
71
+ /**
72
+ * Uniquely identifies this class.
73
+ */
74
+ NoPasswordUser.PROPERTY_INJECTION_ID = 'aws-cdk-lib.aws-elasticache.NoPasswordUser';
75
+ exports.NoPasswordUser = NoPasswordUser = __decorate([
76
+ prop_injectable_1.propertyInjectable
77
+ ], NoPasswordUser);
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tcGFzc3dvcmQtdXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm5vLXBhc3N3b3JkLXVzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQ0EscUNBQXNDO0FBQ3RDLGlFQUFzRDtBQUN0RCwyQ0FBc0Q7QUFDdEQsMkNBQW1EO0FBQ25ELDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFFMUUsTUFBTSxpQ0FBaUMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7QUFjaEc7Ozs7R0FJRztBQUVJLElBQU0sY0FBYyxHQUFwQixNQUFNLGNBQWUsU0FBUSxvQkFBUTtJQU0xQzs7T0FFRztJQUNJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFNO1FBQ25DLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxJQUFJLGlDQUFpQyxJQUFJLENBQUMsQ0FBQztLQUN4RjtJQXNDRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTBCO1FBQ2xFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7Ozs7OzsrQ0FsRFIsY0FBYzs7OztRQW9EdkIsbUNBQW1DO1FBQ25DLElBQUEsd0NBQW9CLEVBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRWxDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxtQkFBVSxDQUFDLEtBQUssQ0FBQztRQUMvQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDL0MsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQztRQUVyRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssbUJBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0QyxNQUFNLElBQUksc0JBQWUsQ0FBQyw0REFBNEQsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNoRyxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHlCQUFPLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUM1QyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDL0Isa0JBQWtCLEVBQUU7Z0JBQ2xCLElBQUksRUFBRSxzQkFBc0I7YUFDN0I7WUFDRCxrQkFBa0IsRUFBRSxJQUFJO1lBQ3hCLFNBQVMsRUFBRSxTQUFTO1NBQ3JCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQztRQUUzQyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxpQ0FBaUMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBQ2pGOztBQWhGVSx3Q0FBYzs7O0FBQ3pCOztHQUVHO0FBQ29CLG9DQUFxQixHQUFXLDRDQUE0QyxBQUF2RCxDQUF3RDt5QkFKekYsY0FBYztJQUQxQixvQ0FBa0I7R0FDTixjQUFjLENBaUYxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgVXNlckVuZ2luZSB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7IENmblVzZXIgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWxhc3RpY2FjaGUnO1xuaW1wb3J0IHsgVXNlckJhc2UsIFVzZXJCYXNlUHJvcHMgfSBmcm9tICcuL3VzZXItYmFzZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcblxuY29uc3QgRUxBU1RJQ0FDSEVfTk9QQVNTV09SRFVTRVJfU1lNQk9MID0gU3ltYm9sLmZvcignQGF3cy1jZGsvYXdzLWVsYXN0aWNhY2hlLk5vUGFzc3dvcmRVc2VyJyk7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgYW4gRWxhc3RpQ2FjaGUgdXNlciB3aXRoIG5vIHBhc3N3b3JkIGF1dGhlbnRpY2F0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vUGFzc3dvcmRVc2VyUHJvcHMgZXh0ZW5kcyBVc2VyQmFzZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB1c2VyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFNhbWUgYXMgdXNlcklkLlxuICAgKi9cbiAgcmVhZG9ubHkgdXNlck5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGVmaW5lIGFuIEVsYXN0aUNhY2hlIHVzZXIgd2l0aCBubyBwYXNzd29yZCBhdXRoZW50aWNhdGlvbi5cbiAqXG4gKiBAcmVzb3VyY2UgQVdTOjpFbGFzdGlDYWNoZTo6VXNlclxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgTm9QYXNzd29yZFVzZXIgZXh0ZW5kcyBVc2VyQmFzZSB7XG4gIC8qKlxuICAgKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ2F3cy1jZGstbGliLmF3cy1lbGFzdGljYWNoZS5Ob1Bhc3N3b3JkVXNlcic7XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoZSBnaXZlbiBvYmplY3QgaXMgYSBgTm9QYXNzd29yZFVzZXJgLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc05vUGFzc3dvcmRVc2VyKHg6IGFueSk6IHggaXMgTm9QYXNzd29yZFVzZXIge1xuICAgIHJldHVybiB4ICE9PSBudWxsICYmIHR5cGVvZiAoeCkgPT09ICdvYmplY3QnICYmIEVMQVNUSUNBQ0hFX05PUEFTU1dPUkRVU0VSX1NZTUJPTCBpbiB4O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBlbmdpbmUgZm9yIHRoZSB1c2VyLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGVuZ2luZT86IFVzZXJFbmdpbmU7XG4gIC8qKlxuICAgKiBUaGUgdXNlcidzIElELlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXNlcklkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdXNlcidzIG5hbWUuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1c2VyTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBhY2Nlc3Mgc3RyaW5nIHRoYXQgZGVmaW5lcyB0aGUgdXNlcidzIHBlcm1pc3Npb25zLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFjY2Vzc1N0cmluZzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHVzZXIncyBBUk4uXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1c2VyQXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdXNlcidzIHN0YXR1cy5cbiAgICogQ2FuIGJlICdhY3RpdmUnLCAnbW9kaWZ5aW5nJywgJ2RlbGV0aW5nJy5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVzZXJTdGF0dXM6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlOiBDZm5Vc2VyO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBOb1Bhc3N3b3JkVXNlclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgdGhpcy5lbmdpbmUgPSBwcm9wcy5lbmdpbmUgPz8gVXNlckVuZ2luZS5SRURJUztcbiAgICB0aGlzLnVzZXJJZCA9IHByb3BzLnVzZXJJZDtcbiAgICB0aGlzLnVzZXJOYW1lID0gcHJvcHMudXNlck5hbWUgPz8gcHJvcHMudXNlcklkO1xuICAgIHRoaXMuYWNjZXNzU3RyaW5nID0gcHJvcHMuYWNjZXNzQ29udHJvbC5hY2Nlc3NTdHJpbmc7XG5cbiAgICBpZiAodGhpcy5lbmdpbmUgPT09IFVzZXJFbmdpbmUuVkFMS0VZKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKCdWYWxrZXkgZW5naW5lIGRvZXMgbm90IHN1cHBvcnQgbm8tcGFzc3dvcmQgYXV0aGVudGljYXRpb24uJywgdGhpcyk7XG4gICAgfVxuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBDZm5Vc2VyKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIGVuZ2luZTogdGhpcy5lbmdpbmUsXG4gICAgICB1c2VySWQ6IHByb3BzLnVzZXJJZCxcbiAgICAgIHVzZXJOYW1lOiB0aGlzLnVzZXJOYW1lLFxuICAgICAgYWNjZXNzU3RyaW5nOiB0aGlzLmFjY2Vzc1N0cmluZyxcbiAgICAgIGF1dGhlbnRpY2F0aW9uTW9kZToge1xuICAgICAgICBUeXBlOiAnbm8tcGFzc3dvcmQtcmVxdWlyZWQnLFxuICAgICAgfSxcbiAgICAgIG5vUGFzc3dvcmRSZXF1aXJlZDogdHJ1ZSxcbiAgICAgIHBhc3N3b3JkczogdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgdGhpcy51c2VyQXJuID0gdGhpcy5yZXNvdXJjZS5hdHRyQXJuO1xuICAgIHRoaXMudXNlclN0YXR1cyA9IHRoaXMucmVzb3VyY2UuYXR0clN0YXR1cztcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBFTEFTVElDQUNIRV9OT1BBU1NXT1JEVVNFUl9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,70 @@
1
+ import { Construct } from 'constructs';
2
+ import { UserEngine } from './common';
3
+ import { UserBase, UserBaseProps } from './user-base';
4
+ import { SecretValue } from 'aws-cdk-lib/core';
5
+ /**
6
+ * Properties for defining an ElastiCache user with password authentication.
7
+ */
8
+ export interface PasswordUserProps extends UserBaseProps {
9
+ /**
10
+ * The name of the user.
11
+ *
12
+ * @default - Same as userId.
13
+ */
14
+ readonly userName?: string;
15
+ /**
16
+ * The passwords for the user.
17
+ * Password authentication requires using 1-2 passwords.
18
+ */
19
+ readonly passwords: SecretValue[];
20
+ }
21
+ /**
22
+ * Define an ElastiCache user with password authentication.
23
+ *
24
+ * @resource AWS::ElastiCache::User
25
+ */
26
+ export declare class PasswordUser extends UserBase {
27
+ /**
28
+ * Uniquely identifies this class.
29
+ */
30
+ static readonly PROPERTY_INJECTION_ID: string;
31
+ /**
32
+ * Return whether the given object is a `PasswordUser`.
33
+ */
34
+ static isPasswordUser(x: any): x is PasswordUser;
35
+ /**
36
+ * The engine for the user.
37
+ */
38
+ readonly engine?: UserEngine;
39
+ /**
40
+ * The user's ID.
41
+ *
42
+ * @attribute
43
+ */
44
+ readonly userId: string;
45
+ /**
46
+ * The user's name.
47
+ *
48
+ * @attribute
49
+ */
50
+ readonly userName?: string;
51
+ /**
52
+ * The access string that defines the user's permissions.
53
+ */
54
+ readonly accessString: string;
55
+ /**
56
+ * The user's ARN.
57
+ *
58
+ * @attribute
59
+ */
60
+ readonly userArn: string;
61
+ /**
62
+ * The user's status.
63
+ * Can be 'active', 'modifying', 'deleting'.
64
+ *
65
+ * @attribute
66
+ */
67
+ readonly userStatus: string;
68
+ private readonly resource;
69
+ constructor(scope: Construct, id: string, props: PasswordUserProps);
70
+ }
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var _a;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.PasswordUser = void 0;
11
+ const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
12
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
13
+ const common_1 = require("./common");
14
+ const aws_elasticache_1 = require("aws-cdk-lib/aws-elasticache");
15
+ const user_base_1 = require("./user-base");
16
+ const core_1 = require("aws-cdk-lib/core");
17
+ const metadata_resource_1 = require("aws-cdk-lib/core/lib/metadata-resource");
18
+ const prop_injectable_1 = require("aws-cdk-lib/core/lib/prop-injectable");
19
+ const ELASTICACHE_PASSWORDUSER_SYMBOL = Symbol.for('@aws-cdk/aws-elasticache.PasswordUser');
20
+ /**
21
+ * Define an ElastiCache user with password authentication.
22
+ *
23
+ * @resource AWS::ElastiCache::User
24
+ */
25
+ let PasswordUser = class PasswordUser extends user_base_1.UserBase {
26
+ /**
27
+ * Return whether the given object is a `PasswordUser`.
28
+ */
29
+ static isPasswordUser(x) {
30
+ return x !== null && typeof (x) === 'object' && ELASTICACHE_PASSWORDUSER_SYMBOL in x;
31
+ }
32
+ constructor(scope, id, props) {
33
+ super(scope, id);
34
+ try {
35
+ jsiiDeprecationWarnings._aws_cdk_aws_elasticache_alpha_PasswordUserProps(props);
36
+ }
37
+ catch (error) {
38
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
39
+ Error.captureStackTrace(error, PasswordUser);
40
+ }
41
+ throw error;
42
+ }
43
+ // Enhanced CDK Analytics Telemetry
44
+ (0, metadata_resource_1.addConstructMetadata)(this, props);
45
+ this.engine = props.engine ?? common_1.UserEngine.VALKEY;
46
+ this.userId = props.userId;
47
+ this.userName = props.userName ?? props.userId;
48
+ this.accessString = props.accessControl.accessString;
49
+ if (props.passwords.length < 1 || props.passwords.length > 2) {
50
+ throw new core_1.ValidationError('Password authentication requires 1-2 passwords.', this);
51
+ }
52
+ this.resource = new aws_elasticache_1.CfnUser(this, 'Resource', {
53
+ engine: this.engine,
54
+ userId: props.userId,
55
+ userName: this.userName,
56
+ accessString: this.accessString,
57
+ authenticationMode: {
58
+ Type: 'password',
59
+ Passwords: props.passwords.map(p => p.unsafeUnwrap()),
60
+ },
61
+ noPasswordRequired: false,
62
+ passwords: undefined,
63
+ });
64
+ this.userArn = this.resource.attrArn;
65
+ this.userStatus = this.resource.attrStatus;
66
+ Object.defineProperty(this, ELASTICACHE_PASSWORDUSER_SYMBOL, { value: true });
67
+ }
68
+ };
69
+ exports.PasswordUser = PasswordUser;
70
+ _a = JSII_RTTI_SYMBOL_1;
71
+ PasswordUser[_a] = { fqn: "@aws-cdk/aws-elasticache-alpha.PasswordUser", version: "2.218.0-alpha.0" };
72
+ /**
73
+ * Uniquely identifies this class.
74
+ */
75
+ PasswordUser.PROPERTY_INJECTION_ID = 'aws-cdk-lib.aws-elasticache.PasswordUser';
76
+ exports.PasswordUser = PasswordUser = __decorate([
77
+ prop_injectable_1.propertyInjectable
78
+ ], PasswordUser);
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtdXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInBhc3N3b3JkLXVzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQ0EscUNBQXNDO0FBQ3RDLGlFQUFzRDtBQUN0RCwyQ0FBc0Q7QUFDdEQsMkNBQWdFO0FBQ2hFLDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFFMUUsTUFBTSwrQkFBK0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7QUFtQjVGOzs7O0dBSUc7QUFFSSxJQUFNLFlBQVksR0FBbEIsTUFBTSxZQUFhLFNBQVEsb0JBQVE7SUFNeEM7O09BRUc7SUFDSSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQU07UUFDakMsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLE9BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLElBQUksK0JBQStCLElBQUksQ0FBQyxDQUFDO0tBQ3JGO0lBc0NELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBd0I7UUFDaEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQzs7Ozs7OytDQWxEUixZQUFZOzs7O1FBb0RyQixtQ0FBbUM7UUFDbkMsSUFBQSx3Q0FBb0IsRUFBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxJQUFJLG1CQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2hELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMvQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO1FBRXJELElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzdELE1BQU0sSUFBSSxzQkFBZSxDQUFDLGlEQUFpRCxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3JGLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUkseUJBQU8sQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQzVDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07WUFDcEIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMvQixrQkFBa0IsRUFBRTtnQkFDbEIsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUN0RDtZQUNELGtCQUFrQixFQUFFLEtBQUs7WUFDekIsU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO1FBRTNDLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLCtCQUErQixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7S0FDL0U7O0FBakZVLG9DQUFZOzs7QUFDdkI7O0dBRUc7QUFDb0Isa0NBQXFCLEdBQVcsMENBQTBDLEFBQXJELENBQXNEO3VCQUp2RixZQUFZO0lBRHhCLG9DQUFrQjtHQUNOLFlBQVksQ0FrRnhCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBVc2VyRW5naW5lIH0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHsgQ2ZuVXNlciB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lbGFzdGljYWNoZSc7XG5pbXBvcnQgeyBVc2VyQmFzZSwgVXNlckJhc2VQcm9wcyB9IGZyb20gJy4vdXNlci1iYXNlJztcbmltcG9ydCB7IFNlY3JldFZhbHVlLCBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcblxuY29uc3QgRUxBU1RJQ0FDSEVfUEFTU1dPUkRVU0VSX1NZTUJPTCA9IFN5bWJvbC5mb3IoJ0Bhd3MtY2RrL2F3cy1lbGFzdGljYWNoZS5QYXNzd29yZFVzZXInKTtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBhbiBFbGFzdGlDYWNoZSB1c2VyIHdpdGggcGFzc3dvcmQgYXV0aGVudGljYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFzc3dvcmRVc2VyUHJvcHMgZXh0ZW5kcyBVc2VyQmFzZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB1c2VyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFNhbWUgYXMgdXNlcklkLlxuICAgKi9cbiAgcmVhZG9ubHkgdXNlck5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcGFzc3dvcmRzIGZvciB0aGUgdXNlci5cbiAgICogUGFzc3dvcmQgYXV0aGVudGljYXRpb24gcmVxdWlyZXMgdXNpbmcgMS0yIHBhc3N3b3Jkcy5cbiAgICovXG4gIHJlYWRvbmx5IHBhc3N3b3JkczogU2VjcmV0VmFsdWVbXTtcbn1cblxuLyoqXG4gKiBEZWZpbmUgYW4gRWxhc3RpQ2FjaGUgdXNlciB3aXRoIHBhc3N3b3JkIGF1dGhlbnRpY2F0aW9uLlxuICpcbiAqIEByZXNvdXJjZSBBV1M6OkVsYXN0aUNhY2hlOjpVc2VyXG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBQYXNzd29yZFVzZXIgZXh0ZW5kcyBVc2VyQmFzZSB7XG4gIC8qKlxuICAgKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ2F3cy1jZGstbGliLmF3cy1lbGFzdGljYWNoZS5QYXNzd29yZFVzZXInO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGUgZ2l2ZW4gb2JqZWN0IGlzIGEgYFBhc3N3b3JkVXNlcmAuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzUGFzc3dvcmRVc2VyKHg6IGFueSkgOiB4IGlzIFBhc3N3b3JkVXNlciB7XG4gICAgcmV0dXJuIHggIT09IG51bGwgJiYgdHlwZW9mKHgpID09PSAnb2JqZWN0JyAmJiBFTEFTVElDQUNIRV9QQVNTV09SRFVTRVJfU1lNQk9MIGluIHg7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGVuZ2luZSBmb3IgdGhlIHVzZXIuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZW5naW5lPzogVXNlckVuZ2luZTtcbiAgLyoqXG4gICAqIFRoZSB1c2VyJ3MgSUQuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1c2VySWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB1c2VyJ3MgbmFtZS5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVzZXJOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGFjY2VzcyBzdHJpbmcgdGhhdCBkZWZpbmVzIHRoZSB1c2VyJ3MgcGVybWlzc2lvbnMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYWNjZXNzU3RyaW5nOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdXNlcidzIEFSTi5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVzZXJBcm46IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB1c2VyJ3Mgc3RhdHVzLlxuICAgKiBDYW4gYmUgJ2FjdGl2ZScsICdtb2RpZnlpbmcnLCAnZGVsZXRpbmcnLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXNlclN0YXR1czogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2U6IENmblVzZXI7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFBhc3N3b3JkVXNlclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgdGhpcy5lbmdpbmUgPSBwcm9wcy5lbmdpbmUgPz8gVXNlckVuZ2luZS5WQUxLRVk7XG4gICAgdGhpcy51c2VySWQgPSBwcm9wcy51c2VySWQ7XG4gICAgdGhpcy51c2VyTmFtZSA9IHByb3BzLnVzZXJOYW1lID8/IHByb3BzLnVzZXJJZDtcbiAgICB0aGlzLmFjY2Vzc1N0cmluZyA9IHByb3BzLmFjY2Vzc0NvbnRyb2wuYWNjZXNzU3RyaW5nO1xuXG4gICAgaWYgKHByb3BzLnBhc3N3b3Jkcy5sZW5ndGggPCAxIHx8IHByb3BzLnBhc3N3b3Jkcy5sZW5ndGggPiAyKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKCdQYXNzd29yZCBhdXRoZW50aWNhdGlvbiByZXF1aXJlcyAxLTIgcGFzc3dvcmRzLicsIHRoaXMpO1xuICAgIH1cblxuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgQ2ZuVXNlcih0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBlbmdpbmU6IHRoaXMuZW5naW5lLFxuICAgICAgdXNlcklkOiBwcm9wcy51c2VySWQsXG4gICAgICB1c2VyTmFtZTogdGhpcy51c2VyTmFtZSxcbiAgICAgIGFjY2Vzc1N0cmluZzogdGhpcy5hY2Nlc3NTdHJpbmcsXG4gICAgICBhdXRoZW50aWNhdGlvbk1vZGU6IHtcbiAgICAgICAgVHlwZTogJ3Bhc3N3b3JkJyxcbiAgICAgICAgUGFzc3dvcmRzOiBwcm9wcy5wYXNzd29yZHMubWFwKHAgPT4gcC51bnNhZmVVbndyYXAoKSksXG4gICAgICB9LFxuICAgICAgbm9QYXNzd29yZFJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIHBhc3N3b3JkczogdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgdGhpcy51c2VyQXJuID0gdGhpcy5yZXNvdXJjZS5hdHRyQXJuO1xuICAgIHRoaXMudXNlclN0YXR1cyA9IHRoaXMucmVzb3VyY2UuYXR0clN0YXR1cztcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBFTEFTVElDQUNIRV9QQVNTV09SRFVTRVJfU1lNQk9MLCB7IHZhbHVlOiB0cnVlIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,247 @@
1
+ import { IUserGroup } from './user-group';
2
+ import * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';
3
+ import * as ec2 from 'aws-cdk-lib/aws-ec2';
4
+ import * as iam from 'aws-cdk-lib/aws-iam';
5
+ import * as kms from 'aws-cdk-lib/aws-kms';
6
+ import { IResource, Resource } from 'aws-cdk-lib/core';
7
+ /**
8
+ * Supported cache engines together with available versions.
9
+ */
10
+ export declare enum CacheEngine {
11
+ /**
12
+ * Valkey engine, latest major version available, minor version is selected automatically
13
+ * For more information about the features related to this version check: https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/engine-versions.html
14
+ */
15
+ VALKEY_LATEST = "valkey",
16
+ /**
17
+ * Valkey engine, major version 7, minor version is selected automatically
18
+ * For more information about the features related to this version check: https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/engine-versions.html
19
+ */
20
+ VALKEY_7 = "valkey_7",
21
+ /**
22
+ * Valkey engine, major version 8, minor version is selected automatically
23
+ * For more information about the features related to this version check: https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/engine-versions.html
24
+ */
25
+ VALKEY_8 = "valkey_8",
26
+ /**
27
+ * Redis engine, latest major version available, minor version is selected automatically
28
+ * For more information about the features related to this version check: https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/engine-versions.html
29
+ */
30
+ REDIS_LATEST = "redis",
31
+ /**
32
+ * Redis engine, major version 7, minor version is selected automatically
33
+ * For more information about the features related to this version check: https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/engine-versions.html
34
+ */
35
+ REDIS_7 = "redis_7",
36
+ /**
37
+ * Memcached engine, latest major version available, minor version is selected automatically
38
+ * For more information about the features related to this version check: https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/engine-versions.html
39
+ */
40
+ MEMCACHED_LATEST = "memcached"
41
+ }
42
+ /**
43
+ * Represents a Serverless ElastiCache cache
44
+ */
45
+ export interface IServerlessCache extends IResource, ec2.IConnectable {
46
+ /**
47
+ * The cache engine used by this cache
48
+ */
49
+ readonly engine?: CacheEngine;
50
+ /**
51
+ * The name of the serverless cache
52
+ *
53
+ * @attribute
54
+ */
55
+ readonly serverlessCacheName: string;
56
+ /**
57
+ * The ARNs of backups restored in the cache
58
+ */
59
+ readonly backupArnsToRestore?: string[];
60
+ /**
61
+ * The KMS key used for encryption
62
+ */
63
+ readonly kmsKey?: kms.IKey;
64
+ /**
65
+ * The VPC this cache is deployed in
66
+ */
67
+ readonly vpc?: ec2.IVpc;
68
+ /**
69
+ * The subnets this cache is deployed in
70
+ */
71
+ readonly subnets?: ec2.ISubnet[];
72
+ /**
73
+ * The security groups associated with this cache
74
+ */
75
+ readonly securityGroups?: ec2.ISecurityGroup[];
76
+ /**
77
+ * The user group associated with this cache
78
+ */
79
+ readonly userGroup?: IUserGroup;
80
+ /**
81
+ * The ARN of the serverless cache
82
+ *
83
+ * @attribute
84
+ */
85
+ readonly serverlessCacheArn: string;
86
+ /**
87
+ * Grant connect permissions to the cache
88
+ */
89
+ grantConnect(grantee: iam.IGrantable): iam.Grant;
90
+ /**
91
+ * Grant the given identity custom permissions
92
+ */
93
+ grant(grantee: iam.IGrantable, ...actions: string[]): iam.Grant;
94
+ /**
95
+ * Return the given named metric for this cache
96
+ */
97
+ metric(metricName: string, props?: cloudwatch.MetricOptions): cloudwatch.Metric;
98
+ /**
99
+ * Metric for cache hit count
100
+ */
101
+ metricCacheHitCount(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
102
+ /**
103
+ * Metric for cache miss count
104
+ */
105
+ metricCacheMissCount(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
106
+ /**
107
+ * Metric for cache hit rate
108
+ */
109
+ metricCacheHitRate(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
110
+ /**
111
+ * Metric for data stored in the cache
112
+ */
113
+ metricDataStored(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
114
+ /**
115
+ * Metric for ECPUs consumed
116
+ */
117
+ metricProcessingUnitsConsumed(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
118
+ /**
119
+ * Metric for network bytes in
120
+ */
121
+ metricNetworkBytesIn(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
122
+ /**
123
+ * Metric for network bytes out
124
+ */
125
+ metricNetworkBytesOut(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
126
+ /**
127
+ * Metric for active connections
128
+ */
129
+ metricActiveConnections(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
130
+ /**
131
+ * Metric for write request latency
132
+ */
133
+ metricWriteRequestLatency(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
134
+ /**
135
+ * Metric for read request latency
136
+ */
137
+ metricReadRequestLatency(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
138
+ }
139
+ /**
140
+ * Base class for ServerlessCache constructs
141
+ */
142
+ export declare abstract class ServerlessCacheBase extends Resource implements IServerlessCache {
143
+ abstract readonly engine?: CacheEngine;
144
+ abstract readonly serverlessCacheName: string;
145
+ abstract readonly backupArnsToRestore?: string[];
146
+ abstract readonly kmsKey?: kms.IKey;
147
+ abstract readonly vpc?: ec2.IVpc;
148
+ abstract readonly subnets?: ec2.ISubnet[];
149
+ abstract readonly securityGroups?: ec2.ISecurityGroup[];
150
+ abstract readonly userGroup?: IUserGroup;
151
+ abstract readonly serverlessCacheArn: string;
152
+ /**
153
+ * Access to network connections.
154
+ */
155
+ abstract readonly connections: ec2.Connections;
156
+ /**
157
+ * Grant connect permissions to the cache
158
+ *
159
+ * @param grantee The principal to grant permissions to
160
+ */
161
+ grantConnect(grantee: iam.IGrantable): iam.Grant;
162
+ /**
163
+ * Grant the given identity custom permissions
164
+ *
165
+ * @param grantee The principal to grant permissions to
166
+ * @param actions The actions to grant
167
+ */
168
+ grant(grantee: iam.IGrantable, ...actions: string[]): iam.Grant;
169
+ /**
170
+ * Return the given named metric for this cache
171
+ *
172
+ * @param metricName The name of the metric
173
+ * @param props Additional properties which will be merged with the default metric
174
+ * @default Average over 5 minutes
175
+ */
176
+ metric(metricName: string, props?: cloudwatch.MetricOptions): cloudwatch.Metric;
177
+ /**
178
+ * Metric for cache hit count
179
+ *
180
+ * @param props Additional properties which will be merged with the default metric
181
+ * @default Sum over 5 minutes
182
+ */
183
+ metricCacheHitCount(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
184
+ /**
185
+ * Metric for cache miss count
186
+ *
187
+ * @param props Additional properties which will be merged with the default metric
188
+ * @default Sum over 5 minutes
189
+ */
190
+ metricCacheMissCount(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
191
+ /**
192
+ * Metric for cache hit rate
193
+ *
194
+ * @param props Additional properties which will be merged with the default metric
195
+ * @default Average over 5 minutes
196
+ */
197
+ metricCacheHitRate(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
198
+ /**
199
+ * Metric for data stored in the cache
200
+ *
201
+ * @param props Additional properties which will be merged with the default metric
202
+ * @default Maximum over 5 minutes
203
+ */
204
+ metricDataStored(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
205
+ /**
206
+ * Metric for ECPUs consumed
207
+ *
208
+ * @param props Additional properties which will be merged with the default metric
209
+ * @default Average over 5 minutes
210
+ */
211
+ metricProcessingUnitsConsumed(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
212
+ /**
213
+ * Metric for network bytes in
214
+ *
215
+ * @param props Additional properties which will be merged with the default metric
216
+ * @default Sum over 5 minutes
217
+ */
218
+ metricNetworkBytesIn(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
219
+ /**
220
+ * Metric for network bytes out
221
+ *
222
+ * @param props Additional properties which will be merged with the default metric
223
+ * @default Sum over 5 minutes
224
+ */
225
+ metricNetworkBytesOut(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
226
+ /**
227
+ * Metric for active connections
228
+ *
229
+ * @param props Additional properties which will be merged with the default metric
230
+ * @default Maximum over 5 minutes
231
+ */
232
+ metricActiveConnections(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
233
+ /**
234
+ * Metric for write request latency
235
+ *
236
+ * @param props Additional properties which will be merged with the default metric
237
+ * @default Average over 5 minutes
238
+ */
239
+ metricWriteRequestLatency(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
240
+ /**
241
+ * Metric for read request latency
242
+ *
243
+ * @param props Additional properties which will be merged with the default metric
244
+ * @default Average over 5 minutes
245
+ */
246
+ metricReadRequestLatency(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
247
+ }