aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
1 lines • 63.9 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnMultiRegionCluster=exports.CfnUser=exports.CfnSubnetGroup=exports.CfnParameterGroup=exports.CfnCluster=exports.CfnACL=void 0;var jsiiDeprecationWarnings=()=>{var tmp=require("../../.warnings.jsii.js");return jsiiDeprecationWarnings=()=>tmp,tmp};const JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti");var cdk=()=>{var tmp=require("../../core/lib");return cdk=()=>tmp,tmp},cfn_parse=()=>{var tmp=require("../../core/lib/helpers-internal");return cfn_parse=()=>tmp,tmp},cdk_errors=()=>{var tmp=require("../../core/lib/errors");return cdk_errors=()=>tmp,tmp};class CfnACL extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_memorydb.CfnACL",version:"2.251.0"};static CFN_RESOURCE_TYPE_NAME="AWS::MemoryDB::ACL";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnACLPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnACL(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnACL(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnACL.CFN_RESOURCE_TYPE_NAME}static fromACLArn(scope,id,arn){class Import extends cdk().Resource{aclRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:memorydb:${Region}:${Account}:acl/${AclName}").parse(arn2);this.aclRef={aclName:variables.AclName,aclArn:arn2}}}return new Import(scope,id,arn)}static fromAclName(scope,id,aclName){class Import extends cdk().Resource{aclRef;constructor(scope2,id2,aclName2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:memorydb:${Region}:${Account}:acl/${AclName}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,AclName:aclName2});super(scope2,id2,{environmentFromArn:arn}),this.aclRef={aclName:aclName2,aclArn:arn}}}return new Import(scope,id,aclName)}static arnForACL(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_memorydb_IACLRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForACL),error}return resource.aclRef.aclArn}_aclName;tags;_tagsRaw;_userNames;constructor(scope,id,props){super(scope,id,{type:CfnACL.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_memorydb_CfnACLProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnACL),error}cdk().requireProperty(props,"aclName",this),this._aclName=props.aclName,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::MemoryDB::ACL",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._userNames=props.userNames}get aclRef(){return{aclName:this.ref,aclArn:this.attrArn}}get aclName(){return this._aclName}set aclName(value){cdk().traceProperty(this.node,"ACLName"),this._aclName=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get userNames(){return this._userNames}set userNames(value){cdk().traceProperty(this.node,"UserNames"),this._userNames=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrStatus(){return cdk().Token.asString(this.getAtt("Status",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{aclName:this._aclName,tags:this.tags.renderTags(),userNames:this._userNames}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnACL.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnACLPropsToCloudFormation(props)}}exports.CfnACL=CfnACL;function CfnACLPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("aclName",cdk().requiredValidator)(properties.aclName)),errors.collect(cdk().propertyValidator("aclName",cdk().validateString)(properties.aclName)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("userNames",cdk().listValidator(cdk().validateString))(properties.userNames)),errors.wrap('supplied properties not correct for "CfnACLProps"')}function convertCfnACLPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnACLPropsValidator(properties).assertSuccess(),{ACLName:cdk().stringToCloudFormation(properties.aclName),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),UserNames:cdk().listMapper(cdk().stringToCloudFormation)(properties.userNames)}):properties}function CfnACLPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("aclName","ACLName",properties.ACLName!=null?cfn_parse().FromCloudFormation.getString(properties.ACLName):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("userNames","UserNames",properties.UserNames!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.UserNames):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnCluster extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_memorydb.CfnCluster",version:"2.251.0"};static CFN_RESOURCE_TYPE_NAME="AWS::MemoryDB::Cluster";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnClusterPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnCluster(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnCluster(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnCluster.CFN_RESOURCE_TYPE_NAME}static fromClusterArn(scope,id,arn){class Import extends cdk().Resource{clusterRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:memorydb:${Region}:${Account}:cluster/${ClusterName}").parse(arn2);this.clusterRef={clusterName:variables.ClusterName,clusterArn:arn2}}}return new Import(scope,id,arn)}static fromClusterName(scope,id,clusterName){class Import extends cdk().Resource{clusterRef;constructor(scope2,id2,clusterName2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:memorydb:${Region}:${Account}:cluster/${ClusterName}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,ClusterName:clusterName2});super(scope2,id2,{environmentFromArn:arn}),this.clusterRef={clusterName:clusterName2,clusterArn:arn}}}return new Import(scope,id,clusterName)}static arnForCluster(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_memorydb_IClusterRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForCluster),error}return resource.clusterRef.clusterArn}_aclName;_autoMinorVersionUpgrade;_clusterEndpoint;_clusterName;_dataTiering;_description;_engine;_engineVersion;_finalSnapshotName;_ipDiscovery;_kmsKeyId;_maintenanceWindow;_multiRegionClusterName;_networkType;_nodeType;_numReplicasPerShard;_numShards;_parameterGroupName;_port;_securityGroupIds;_snapshotArns;_snapshotName;_snapshotRetentionLimit;_snapshotWindow;_snsTopicArn;_snsTopicStatus;_subnetGroupName;tags;_tagsRaw;_tlsEnabled;constructor(scope,id,props){super(scope,id,{type:CfnCluster.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_memorydb_CfnClusterProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCluster),error}cdk().requireProperty(props,"aclName",this),cdk().requireProperty(props,"clusterName",this),cdk().requireProperty(props,"nodeType",this),this._aclName=props.aclName,this._autoMinorVersionUpgrade=props.autoMinorVersionUpgrade,this._clusterEndpoint=props.clusterEndpoint,this._clusterName=props.clusterName,this._dataTiering=props.dataTiering,this._description=props.description,this._engine=props.engine,this._engineVersion=props.engineVersion,this._finalSnapshotName=props.finalSnapshotName,this._ipDiscovery=props.ipDiscovery,this._kmsKeyId=props.kmsKeyId,this._maintenanceWindow=props.maintenanceWindow,this._multiRegionClusterName=props.multiRegionClusterName,this._networkType=props.networkType,this._nodeType=props.nodeType,this._numReplicasPerShard=props.numReplicasPerShard,this._numShards=props.numShards,this._parameterGroupName=props.parameterGroupName,this._port=props.port,this._securityGroupIds=cdk().mapArrayInPlace(props.securityGroupIds,item=>cdk().getRefProperty(item?.securityGroupRef,"securityGroupId")??cdk().ensureStringOrUndefined(item,"securityGroupIds","ec2.ISecurityGroupRef | string")),this._snapshotArns=props.snapshotArns,this._snapshotName=props.snapshotName,this._snapshotRetentionLimit=props.snapshotRetentionLimit,this._snapshotWindow=props.snapshotWindow,this._snsTopicArn=props.snsTopicArn,this._snsTopicStatus=props.snsTopicStatus,this._subnetGroupName=props.subnetGroupName,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::MemoryDB::Cluster",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._tlsEnabled=props.tlsEnabled}get clusterRef(){return{clusterName:this.ref,clusterArn:this.attrArn}}get aclName(){return this._aclName}set aclName(value){cdk().traceProperty(this.node,"ACLName"),this._aclName=value}get autoMinorVersionUpgrade(){return this._autoMinorVersionUpgrade}set autoMinorVersionUpgrade(value){cdk().traceProperty(this.node,"AutoMinorVersionUpgrade"),this._autoMinorVersionUpgrade=value}get clusterEndpoint(){return this._clusterEndpoint}set clusterEndpoint(value){cdk().traceProperty(this.node,"ClusterEndpoint"),this._clusterEndpoint=value}get clusterName(){return this._clusterName}set clusterName(value){cdk().traceProperty(this.node,"ClusterName"),this._clusterName=value}get dataTiering(){return this._dataTiering}set dataTiering(value){cdk().traceProperty(this.node,"DataTiering"),this._dataTiering=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get engine(){return this._engine}set engine(value){cdk().traceProperty(this.node,"Engine"),this._engine=value}get engineVersion(){return this._engineVersion}set engineVersion(value){cdk().traceProperty(this.node,"EngineVersion"),this._engineVersion=value}get finalSnapshotName(){return this._finalSnapshotName}set finalSnapshotName(value){cdk().traceProperty(this.node,"FinalSnapshotName"),this._finalSnapshotName=value}get ipDiscovery(){return this._ipDiscovery}set ipDiscovery(value){cdk().traceProperty(this.node,"IpDiscovery"),this._ipDiscovery=value}get kmsKeyId(){return this._kmsKeyId}set kmsKeyId(value){cdk().traceProperty(this.node,"KmsKeyId"),this._kmsKeyId=value}get maintenanceWindow(){return this._maintenanceWindow}set maintenanceWindow(value){cdk().traceProperty(this.node,"MaintenanceWindow"),this._maintenanceWindow=value}get multiRegionClusterName(){return this._multiRegionClusterName}set multiRegionClusterName(value){cdk().traceProperty(this.node,"MultiRegionClusterName"),this._multiRegionClusterName=value}get networkType(){return this._networkType}set networkType(value){cdk().traceProperty(this.node,"NetworkType"),this._networkType=value}get nodeType(){return this._nodeType}set nodeType(value){cdk().traceProperty(this.node,"NodeType"),this._nodeType=value}get numReplicasPerShard(){return this._numReplicasPerShard}set numReplicasPerShard(value){cdk().traceProperty(this.node,"NumReplicasPerShard"),this._numReplicasPerShard=value}get numShards(){return this._numShards}set numShards(value){cdk().traceProperty(this.node,"NumShards"),this._numShards=value}get parameterGroupName(){return this._parameterGroupName}set parameterGroupName(value){cdk().traceProperty(this.node,"ParameterGroupName"),this._parameterGroupName=value}get port(){return this._port}set port(value){cdk().traceProperty(this.node,"Port"),this._port=value}get securityGroupIds(){return this._securityGroupIds}set securityGroupIds(value){cdk().traceProperty(this.node,"SecurityGroupIds"),this._securityGroupIds=value}get snapshotArns(){return this._snapshotArns}set snapshotArns(value){cdk().traceProperty(this.node,"SnapshotArns"),this._snapshotArns=value}get snapshotName(){return this._snapshotName}set snapshotName(value){cdk().traceProperty(this.node,"SnapshotName"),this._snapshotName=value}get snapshotRetentionLimit(){return this._snapshotRetentionLimit}set snapshotRetentionLimit(value){cdk().traceProperty(this.node,"SnapshotRetentionLimit"),this._snapshotRetentionLimit=value}get snapshotWindow(){return this._snapshotWindow}set snapshotWindow(value){cdk().traceProperty(this.node,"SnapshotWindow"),this._snapshotWindow=value}get snsTopicArn(){return this._snsTopicArn}set snsTopicArn(value){cdk().traceProperty(this.node,"SnsTopicArn"),this._snsTopicArn=value}get snsTopicStatus(){return this._snsTopicStatus}set snsTopicStatus(value){cdk().traceProperty(this.node,"SnsTopicStatus"),this._snsTopicStatus=value}get subnetGroupName(){return this._subnetGroupName}set subnetGroupName(value){cdk().traceProperty(this.node,"SubnetGroupName"),this._subnetGroupName=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get tlsEnabled(){return this._tlsEnabled}set tlsEnabled(value){cdk().traceProperty(this.node,"TLSEnabled"),this._tlsEnabled=value}get attrArn(){return cdk().Token.asString(this.getAtt("ARN",cdk().ResolutionTypeHint.STRING))}get attrClusterEndpointAddress(){return cdk().Token.asString(this.getAtt("ClusterEndpoint.Address",cdk().ResolutionTypeHint.STRING))}get attrClusterEndpointPort(){return cdk().Token.asNumber(this.getAtt("ClusterEndpoint.Port",cdk().ResolutionTypeHint.NUMBER))}get attrParameterGroupStatus(){return cdk().Token.asString(this.getAtt("ParameterGroupStatus",cdk().ResolutionTypeHint.STRING))}get attrStatus(){return cdk().Token.asString(this.getAtt("Status",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{aclName:this._aclName,autoMinorVersionUpgrade:this._autoMinorVersionUpgrade,clusterEndpoint:this._clusterEndpoint,clusterName:this._clusterName,dataTiering:this._dataTiering,description:this._description,engine:this._engine,engineVersion:this._engineVersion,finalSnapshotName:this._finalSnapshotName,ipDiscovery:this._ipDiscovery,kmsKeyId:this._kmsKeyId,maintenanceWindow:this._maintenanceWindow,multiRegionClusterName:this._multiRegionClusterName,networkType:this._networkType,nodeType:this._nodeType,numReplicasPerShard:this._numReplicasPerShard,numShards:this._numShards,parameterGroupName:this._parameterGroupName,port:this._port,securityGroupIds:this._securityGroupIds,snapshotArns:this._snapshotArns,snapshotName:this._snapshotName,snapshotRetentionLimit:this._snapshotRetentionLimit,snapshotWindow:this._snapshotWindow,snsTopicArn:this._snsTopicArn,snsTopicStatus:this._snsTopicStatus,subnetGroupName:this._subnetGroupName,tags:this.tags.renderTags(),tlsEnabled:this._tlsEnabled}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnCluster.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnClusterPropsToCloudFormation(props)}}exports.CfnCluster=CfnCluster;function CfnClusterEndpointPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("address",cdk().validateString)(properties.address)),errors.collect(cdk().propertyValidator("port",cdk().validateNumber)(properties.port)),errors.wrap('supplied properties not correct for "EndpointProperty"')}function convertCfnClusterEndpointPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterEndpointPropertyValidator(properties).assertSuccess(),{Address:cdk().stringToCloudFormation(properties.address),Port:cdk().numberToCloudFormation(properties.port)}):properties}function CfnClusterEndpointPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("address","Address",properties.Address!=null?cfn_parse().FromCloudFormation.getString(properties.Address):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse().FromCloudFormation.getNumber(properties.Port):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("aclName",cdk().requiredValidator)(properties.aclName)),errors.collect(cdk().propertyValidator("aclName",cdk().validateString)(properties.aclName)),errors.collect(cdk().propertyValidator("autoMinorVersionUpgrade",cdk().validateBoolean)(properties.autoMinorVersionUpgrade)),errors.collect(cdk().propertyValidator("clusterEndpoint",CfnClusterEndpointPropertyValidator)(properties.clusterEndpoint)),errors.collect(cdk().propertyValidator("clusterName",cdk().requiredValidator)(properties.clusterName)),errors.collect(cdk().propertyValidator("clusterName",cdk().validateString)(properties.clusterName)),errors.collect(cdk().propertyValidator("dataTiering",cdk().validateString)(properties.dataTiering)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("engine",cdk().validateString)(properties.engine)),errors.collect(cdk().propertyValidator("engineVersion",cdk().validateString)(properties.engineVersion)),errors.collect(cdk().propertyValidator("finalSnapshotName",cdk().validateString)(properties.finalSnapshotName)),errors.collect(cdk().propertyValidator("ipDiscovery",cdk().validateString)(properties.ipDiscovery)),errors.collect(cdk().propertyValidator("kmsKeyId",cdk().validateString)(properties.kmsKeyId)),errors.collect(cdk().propertyValidator("maintenanceWindow",cdk().validateString)(properties.maintenanceWindow)),errors.collect(cdk().propertyValidator("multiRegionClusterName",cdk().validateString)(properties.multiRegionClusterName)),errors.collect(cdk().propertyValidator("networkType",cdk().validateString)(properties.networkType)),errors.collect(cdk().propertyValidator("nodeType",cdk().requiredValidator)(properties.nodeType)),errors.collect(cdk().propertyValidator("nodeType",cdk().validateString)(properties.nodeType)),errors.collect(cdk().propertyValidator("numReplicasPerShard",cdk().validateNumber)(properties.numReplicasPerShard)),errors.collect(cdk().propertyValidator("numShards",cdk().validateNumber)(properties.numShards)),errors.collect(cdk().propertyValidator("parameterGroupName",cdk().validateString)(properties.parameterGroupName)),errors.collect(cdk().propertyValidator("port",cdk().validateNumber)(properties.port)),errors.collect(cdk().propertyValidator("securityGroupIds",cdk().listValidator(cdk().validateString))(properties.securityGroupIds)),errors.collect(cdk().propertyValidator("snapshotArns",cdk().listValidator(cdk().validateString))(properties.snapshotArns)),errors.collect(cdk().propertyValidator("snapshotName",cdk().validateString)(properties.snapshotName)),errors.collect(cdk().propertyValidator("snapshotRetentionLimit",cdk().validateNumber)(properties.snapshotRetentionLimit)),errors.collect(cdk().propertyValidator("snapshotWindow",cdk().validateString)(properties.snapshotWindow)),errors.collect(cdk().propertyValidator("snsTopicArn",cdk().validateString)(properties.snsTopicArn)),errors.collect(cdk().propertyValidator("snsTopicStatus",cdk().validateString)(properties.snsTopicStatus)),errors.collect(cdk().propertyValidator("subnetGroupName",cdk().validateString)(properties.subnetGroupName)),errors.collect(cdk().propertyValidator("tlsEnabled",cdk().validateBoolean)(properties.tlsEnabled)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnClusterProps"')}function convertCfnClusterPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterPropsValidator(properties).assertSuccess(),{ACLName:cdk().stringToCloudFormation(properties.aclName),AutoMinorVersionUpgrade:cdk().booleanToCloudFormation(properties.autoMinorVersionUpgrade),ClusterEndpoint:convertCfnClusterEndpointPropertyToCloudFormation(properties.clusterEndpoint),ClusterName:cdk().stringToCloudFormation(properties.clusterName),DataTiering:cdk().stringToCloudFormation(properties.dataTiering),Description:cdk().stringToCloudFormation(properties.description),Engine:cdk().stringToCloudFormation(properties.engine),EngineVersion:cdk().stringToCloudFormation(properties.engineVersion),FinalSnapshotName:cdk().stringToCloudFormation(properties.finalSnapshotName),IpDiscovery:cdk().stringToCloudFormation(properties.ipDiscovery),KmsKeyId:cdk().stringToCloudFormation(properties.kmsKeyId),MaintenanceWindow:cdk().stringToCloudFormation(properties.maintenanceWindow),MultiRegionClusterName:cdk().stringToCloudFormation(properties.multiRegionClusterName),NetworkType:cdk().stringToCloudFormation(properties.networkType),NodeType:cdk().stringToCloudFormation(properties.nodeType),NumReplicasPerShard:cdk().numberToCloudFormation(properties.numReplicasPerShard),NumShards:cdk().numberToCloudFormation(properties.numShards),ParameterGroupName:cdk().stringToCloudFormation(properties.parameterGroupName),Port:cdk().numberToCloudFormation(properties.port),SecurityGroupIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.securityGroupIds),SnapshotArns:cdk().listMapper(cdk().stringToCloudFormation)(properties.snapshotArns),SnapshotName:cdk().stringToCloudFormation(properties.snapshotName),SnapshotRetentionLimit:cdk().numberToCloudFormation(properties.snapshotRetentionLimit),SnapshotWindow:cdk().stringToCloudFormation(properties.snapshotWindow),SnsTopicArn:cdk().stringToCloudFormation(properties.snsTopicArn),SnsTopicStatus:cdk().stringToCloudFormation(properties.snsTopicStatus),SubnetGroupName:cdk().stringToCloudFormation(properties.subnetGroupName),TLSEnabled:cdk().booleanToCloudFormation(properties.tlsEnabled),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnClusterPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("aclName","ACLName",properties.ACLName!=null?cfn_parse().FromCloudFormation.getString(properties.ACLName):void 0),ret.addPropertyResult("autoMinorVersionUpgrade","AutoMinorVersionUpgrade",properties.AutoMinorVersionUpgrade!=null?cfn_parse().FromCloudFormation.getBoolean(properties.AutoMinorVersionUpgrade):void 0),ret.addPropertyResult("clusterEndpoint","ClusterEndpoint",properties.ClusterEndpoint!=null?CfnClusterEndpointPropertyFromCloudFormation(properties.ClusterEndpoint):void 0),ret.addPropertyResult("clusterName","ClusterName",properties.ClusterName!=null?cfn_parse().FromCloudFormation.getString(properties.ClusterName):void 0),ret.addPropertyResult("dataTiering","DataTiering",properties.DataTiering!=null?cfn_parse().FromCloudFormation.getString(properties.DataTiering):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("engine","Engine",properties.Engine!=null?cfn_parse().FromCloudFormation.getString(properties.Engine):void 0),ret.addPropertyResult("engineVersion","EngineVersion",properties.EngineVersion!=null?cfn_parse().FromCloudFormation.getString(properties.EngineVersion):void 0),ret.addPropertyResult("finalSnapshotName","FinalSnapshotName",properties.FinalSnapshotName!=null?cfn_parse().FromCloudFormation.getString(properties.FinalSnapshotName):void 0),ret.addPropertyResult("ipDiscovery","IpDiscovery",properties.IpDiscovery!=null?cfn_parse().FromCloudFormation.getString(properties.IpDiscovery):void 0),ret.addPropertyResult("kmsKeyId","KmsKeyId",properties.KmsKeyId!=null?cfn_parse().FromCloudFormation.getString(properties.KmsKeyId):void 0),ret.addPropertyResult("maintenanceWindow","MaintenanceWindow",properties.MaintenanceWindow!=null?cfn_parse().FromCloudFormation.getString(properties.MaintenanceWindow):void 0),ret.addPropertyResult("multiRegionClusterName","MultiRegionClusterName",properties.MultiRegionClusterName!=null?cfn_parse().FromCloudFormation.getString(properties.MultiRegionClusterName):void 0),ret.addPropertyResult("networkType","NetworkType",properties.NetworkType!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkType):void 0),ret.addPropertyResult("nodeType","NodeType",properties.NodeType!=null?cfn_parse().FromCloudFormation.getString(properties.NodeType):void 0),ret.addPropertyResult("numReplicasPerShard","NumReplicasPerShard",properties.NumReplicasPerShard!=null?cfn_parse().FromCloudFormation.getNumber(properties.NumReplicasPerShard):void 0),ret.addPropertyResult("numShards","NumShards",properties.NumShards!=null?cfn_parse().FromCloudFormation.getNumber(properties.NumShards):void 0),ret.addPropertyResult("parameterGroupName","ParameterGroupName",properties.ParameterGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.ParameterGroupName):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse().FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("securityGroupIds","SecurityGroupIds",properties.SecurityGroupIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SecurityGroupIds):void 0),ret.addPropertyResult("snapshotArns","SnapshotArns",properties.SnapshotArns!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SnapshotArns):void 0),ret.addPropertyResult("snapshotName","SnapshotName",properties.SnapshotName!=null?cfn_parse().FromCloudFormation.getString(properties.SnapshotName):void 0),ret.addPropertyResult("snapshotRetentionLimit","SnapshotRetentionLimit",properties.SnapshotRetentionLimit!=null?cfn_parse().FromCloudFormation.getNumber(properties.SnapshotRetentionLimit):void 0),ret.addPropertyResult("snapshotWindow","SnapshotWindow",properties.SnapshotWindow!=null?cfn_parse().FromCloudFormation.getString(properties.SnapshotWindow):void 0),ret.addPropertyResult("snsTopicArn","SnsTopicArn",properties.SnsTopicArn!=null?cfn_parse().FromCloudFormation.getString(properties.SnsTopicArn):void 0),ret.addPropertyResult("snsTopicStatus","SnsTopicStatus",properties.SnsTopicStatus!=null?cfn_parse().FromCloudFormation.getString(properties.SnsTopicStatus):void 0),ret.addPropertyResult("subnetGroupName","SubnetGroupName",properties.SubnetGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.SubnetGroupName):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("tlsEnabled","TLSEnabled",properties.TLSEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.TLSEnabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnParameterGroup extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_memorydb.CfnParameterGroup",version:"2.251.0"};static CFN_RESOURCE_TYPE_NAME="AWS::MemoryDB::ParameterGroup";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnParameterGroupPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnParameterGroup(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnParameterGroup(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnParameterGroup.CFN_RESOURCE_TYPE_NAME}static fromParameterGroupArn(scope,id,arn){class Import extends cdk().Resource{parameterGroupRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:memorydb:${Region}:${Account}:parametergroup/${ParameterGroupName}").parse(arn2);this.parameterGroupRef={parameterGroupName:variables.ParameterGroupName,parameterGroupArn:arn2}}}return new Import(scope,id,arn)}static fromParameterGroupName(scope,id,parameterGroupName){class Import extends cdk().Resource{parameterGroupRef;constructor(scope2,id2,parameterGroupName2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:memorydb:${Region}:${Account}:parametergroup/${ParameterGroupName}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,ParameterGroupName:parameterGroupName2});super(scope2,id2,{environmentFromArn:arn}),this.parameterGroupRef={parameterGroupName:parameterGroupName2,parameterGroupArn:arn}}}return new Import(scope,id,parameterGroupName)}static arnForParameterGroup(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_memorydb_IParameterGroupRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForParameterGroup),error}return resource.parameterGroupRef.parameterGroupArn}_description;_family;_parameterGroupName;_parameters;tags;_tagsRaw;constructor(scope,id,props){super(scope,id,{type:CfnParameterGroup.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_memorydb_CfnParameterGroupProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnParameterGroup),error}cdk().requireProperty(props,"family",this),cdk().requireProperty(props,"parameterGroupName",this),this._description=props.description,this._family=props.family,this._parameterGroupName=props.parameterGroupName,this._parameters=props.parameters,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::MemoryDB::ParameterGroup",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get parameterGroupRef(){return{parameterGroupName:this.ref,parameterGroupArn:this.attrArn}}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get family(){return this._family}set family(value){cdk().traceProperty(this.node,"Family"),this._family=value}get parameterGroupName(){return this._parameterGroupName}set parameterGroupName(value){cdk().traceProperty(this.node,"ParameterGroupName"),this._parameterGroupName=value}get parameters(){return this._parameters}set parameters(value){cdk().traceProperty(this.node,"Parameters"),this._parameters=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrArn(){return cdk().Token.asString(this.getAtt("ARN",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{description:this._description,family:this._family,parameterGroupName:this._parameterGroupName,parameters:this._parameters,tags:this.tags.renderTags()}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnParameterGroup.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnParameterGroupPropsToCloudFormation(props)}}exports.CfnParameterGroup=CfnParameterGroup;function CfnParameterGroupPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("family",cdk().requiredValidator)(properties.family)),errors.collect(cdk().propertyValidator("family",cdk().validateString)(properties.family)),errors.collect(cdk().propertyValidator("parameterGroupName",cdk().requiredValidator)(properties.parameterGroupName)),errors.collect(cdk().propertyValidator("parameterGroupName",cdk().validateString)(properties.parameterGroupName)),errors.collect(cdk().propertyValidator("parameters",cdk().validateObject)(properties.parameters)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnParameterGroupProps"')}function convertCfnParameterGroupPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnParameterGroupPropsValidator(properties).assertSuccess(),{Description:cdk().stringToCloudFormation(properties.description),Family:cdk().stringToCloudFormation(properties.family),ParameterGroupName:cdk().stringToCloudFormation(properties.parameterGroupName),Parameters:cdk().objectToCloudFormation(properties.parameters),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnParameterGroupPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("family","Family",properties.Family!=null?cfn_parse().FromCloudFormation.getString(properties.Family):void 0),ret.addPropertyResult("parameterGroupName","ParameterGroupName",properties.ParameterGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.ParameterGroupName):void 0),ret.addPropertyResult("parameters","Parameters",properties.Parameters!=null?cfn_parse().FromCloudFormation.getAny(properties.Parameters):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSubnetGroup extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_memorydb.CfnSubnetGroup",version:"2.251.0"};static CFN_RESOURCE_TYPE_NAME="AWS::MemoryDB::SubnetGroup";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSubnetGroupPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnSubnetGroup(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnSubnetGroup(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnSubnetGroup.CFN_RESOURCE_TYPE_NAME}static fromSubnetGroupArn(scope,id,arn){class Import extends cdk().Resource{subnetGroupRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:memorydb:${Region}:${Account}:subnetgroup/${SubnetGroupName}").parse(arn2);this.subnetGroupRef={subnetGroupName:variables.SubnetGroupName,subnetGroupArn:arn2}}}return new Import(scope,id,arn)}static fromSubnetGroupName(scope,id,subnetGroupName){class Import extends cdk().Resource{subnetGroupRef;constructor(scope2,id2,subnetGroupName2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:memorydb:${Region}:${Account}:subnetgroup/${SubnetGroupName}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,SubnetGroupName:subnetGroupName2});super(scope2,id2,{environmentFromArn:arn}),this.subnetGroupRef={subnetGroupName:subnetGroupName2,subnetGroupArn:arn}}}return new Import(scope,id,subnetGroupName)}static arnForSubnetGroup(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_memorydb_ISubnetGroupRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForSubnetGroup),error}return resource.subnetGroupRef.subnetGroupArn}_description;_subnetGroupName;_subnetIds;tags;_tagsRaw;constructor(scope,id,props){super(scope,id,{type:CfnSubnetGroup.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_memorydb_CfnSubnetGroupProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSubnetGroup),error}cdk().requireProperty(props,"subnetGroupName",this),cdk().requireProperty(props,"subnetIds",this),this._description=props.description,this._subnetGroupName=props.subnetGroupName,this._subnetIds=cdk().mapArrayInPlace(props.subnetIds,item=>cdk().getRefProperty(item?.subnetRef,"subnetId")??cdk().ensureStringOrUndefined(item,"subnetIds","ec2.ISubnetRef | string")),this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::MemoryDB::SubnetGroup",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get subnetGroupRef(){return{subnetGroupName:this.ref,subnetGroupArn:this.attrArn}}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get subnetGroupName(){return this._subnetGroupName}set subnetGroupName(value){cdk().traceProperty(this.node,"SubnetGroupName"),this._subnetGroupName=value}get subnetIds(){return this._subnetIds}set subnetIds(value){cdk().traceProperty(this.node,"SubnetIds"),this._subnetIds=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrArn(){return cdk().Token.asString(this.getAtt("ARN",cdk().ResolutionTypeHint.STRING))}get attrSupportedNetworkTypes(){return cdk().Token.asList(this.getAtt("SupportedNetworkTypes",cdk().ResolutionTypeHint.STRING_LIST))}get cfnProperties(){return{description:this._description,subnetGroupName:this._subnetGroupName,subnetIds:this._subnetIds,tags:this.tags.renderTags()}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnSubnetGroup.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnSubnetGroupPropsToCloudFormation(props)}}exports.CfnSubnetGroup=CfnSubnetGroup;function CfnSubnetGroupPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("subnetGroupName",cdk().requiredValidator)(properties.subnetGroupName)),errors.collect(cdk().propertyValidator("subnetGroupName",cdk().validateString)(properties.subnetGroupName)),errors.collect(cdk().propertyValidator("subnetIds",cdk().requiredValidator)(properties.subnetIds)),errors.collect(cdk().propertyValidator("subnetIds",cdk().listValidator(cdk().validateString))(properties.subnetIds)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnSubnetGroupProps"')}function convertCfnSubnetGroupPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSubnetGroupPropsValidator(properties).assertSuccess(),{Description:cdk().stringToCloudFormation(properties.description),SubnetGroupName:cdk().stringToCloudFormation(properties.subnetGroupName),SubnetIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.subnetIds),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnSubnetGroupPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("subnetGroupName","SubnetGroupName",properties.SubnetGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.SubnetGroupName):void 0),ret.addPropertyResult("subnetIds","SubnetIds",properties.SubnetIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SubnetIds):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnUser extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_memorydb.CfnUser",version:"2.251.0"};static CFN_RESOURCE_TYPE_NAME="AWS::MemoryDB::User";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnUserPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnUser(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnUser(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnUser.CFN_RESOURCE_TYPE_NAME}static fromUserArn(scope,id,arn){class Import extends cdk().Resource{userRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:memorydb:${Region}:${Account}:user/${UserName}").parse(arn2);this.userRef={userName:variables.UserName,userArn:arn2}}}return new Import(scope,id,arn)}static fromUserName(scope,id,userName){class Import extends cdk().Resource{userRef;constructor(scope2,id2,userName2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:memorydb:${Region}:${Account}:user/${UserName}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,UserName:userName2});super(scope2,id2,{environmentFromArn:arn}),this.userRef={userName:userName2,userArn:arn}}}return new Import(scope,id,userName)}static arnForUser(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_memorydb_IUserRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForUser),error}return resource.userRef.userArn}_accessString;_authenticationMode;tags;_tagsRaw;_userName;constructor(scope,id,props){super(scope,id,{type:CfnUser.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_memorydb_CfnUserProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnUser),error}cdk().requireProperty(props,"userName",this),this._accessString=props.accessString,this._authenticationMode=props.authenticationMode,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::MemoryDB::User",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._userName=props.userName}get userRef(){return{userName:this.ref,userArn:this.attrArn}}get accessString(){return this._accessString}set accessString(value){cdk().traceProperty(this.node,"AccessString"),this._accessString=value}get authenticationMode(){return this._authenticationMode}set authenticationMode(value){cdk().traceProperty(this.node,"AuthenticationMode"),this._authenticationMode=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get userName(){return this._userName}set userName(value){cdk().traceProperty(this.node,"UserName"),this._userName=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrStatus(){return cdk().Token.asString(this.getAtt("Status",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{accessString:this._accessString,authenticationMode:this._authenticationMode,tags:this.tags.renderTags(),userName:this._userName}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnUser.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnUserPropsToCloudFormation(props)}}exports.CfnUser=CfnUser;function CfnUserAuthenticationModePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).V