@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/.jsii +8808 -0
- package/.jsii.tabl.json.gz +0 -0
- package/.warnings.jsii.js +217 -0
- package/LICENSE +201 -0
- package/NOTICE +2 -0
- package/README.md +421 -0
- package/lib/common.d.ts +13 -0
- package/lib/common.js +18 -0
- package/lib/iam-user.d.ts +79 -0
- package/lib/iam-user.js +106 -0
- package/lib/index.d.ts +8 -0
- package/lib/index.js +25 -0
- package/lib/no-password-user.d.ts +64 -0
- package/lib/no-password-user.js +78 -0
- package/lib/password-user.d.ts +70 -0
- package/lib/password-user.js +79 -0
- package/lib/serverless-cache-base.d.ts +247 -0
- package/lib/serverless-cache-base.js +183 -0
- package/lib/serverless-cache.d.ts +341 -0
- package/lib/serverless-cache.js +429 -0
- package/lib/user-base.d.ts +148 -0
- package/lib/user-base.js +114 -0
- package/lib/user-group.d.ts +199 -0
- package/lib/user-group.js +239 -0
- package/package.json +117 -0
- package/rosetta/_generated.ts-fixture +6 -0
- package/rosetta/default.ts-fixture +16 -0
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
|
+
}
|