aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
1 lines • 162 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnServerlessCache=exports.CfnUserGroup=exports.CfnUser=exports.CfnSubnetGroup=exports.CfnSecurityGroupIngress=exports.CfnSecurityGroup=exports.CfnReplicationGroup=exports.CfnParameterGroup=exports.CfnGlobalReplicationGroup=exports.CfnCacheCluster=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 CfnCacheCluster extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_elasticache.CfnCacheCluster",version:"2.251.0"};static CFN_RESOURCE_TYPE_NAME="AWS::ElastiCache::CacheCluster";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnCacheClusterPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnCacheCluster(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 isCfnCacheCluster(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnCacheCluster.CFN_RESOURCE_TYPE_NAME}_autoMinorVersionUpgrade;_azMode;_cacheNodeType;_cacheParameterGroupName;_cacheSecurityGroupNames;_cacheSubnetGroupName;_clusterName;_engine;_engineVersion;_ipDiscovery;_logDeliveryConfigurations;_networkType;_notificationTopicArn;_numCacheNodes;_port;_preferredAvailabilityZone;_preferredAvailabilityZones;_preferredMaintenanceWindow;_snapshotArns;_snapshotName;_snapshotRetentionLimit;_snapshotWindow;tags;_tagsRaw;_transitEncryptionEnabled;_vpcSecurityGroupIds;constructor(scope,id,props){super(scope,id,{type:CfnCacheCluster.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_elasticache_CfnCacheClusterProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCacheCluster),error}cdk().requireProperty(props,"cacheNodeType",this),cdk().requireProperty(props,"engine",this),cdk().requireProperty(props,"numCacheNodes",this),this._autoMinorVersionUpgrade=props.autoMinorVersionUpgrade,this._azMode=props.azMode,this._cacheNodeType=props.cacheNodeType,this._cacheParameterGroupName=props.cacheParameterGroupName,this._cacheSecurityGroupNames=props.cacheSecurityGroupNames,this._cacheSubnetGroupName=props.cacheSubnetGroupName,this._clusterName=props.clusterName,this._engine=props.engine,this._engineVersion=props.engineVersion,this._ipDiscovery=props.ipDiscovery,this._logDeliveryConfigurations=props.logDeliveryConfigurations,this._networkType=props.networkType,this._notificationTopicArn=props.notificationTopicArn,this._numCacheNodes=props.numCacheNodes,this._port=props.port,this._preferredAvailabilityZone=props.preferredAvailabilityZone,this._preferredAvailabilityZones=props.preferredAvailabilityZones,this._preferredMaintenanceWindow=props.preferredMaintenanceWindow,this._snapshotArns=props.snapshotArns,this._snapshotName=props.snapshotName,this._snapshotRetentionLimit=props.snapshotRetentionLimit,this._snapshotWindow=props.snapshotWindow,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::ElastiCache::CacheCluster",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._transitEncryptionEnabled=props.transitEncryptionEnabled,this._vpcSecurityGroupIds=props.vpcSecurityGroupIds,this.node.scope!=null&&cdk().Resource.isResource(this.node.scope)&&this.node.addValidation({validate:()=>this.cfnOptions.deletionPolicy===void 0?["'AWS::ElastiCache::CacheCluster' is a stateful resource type, and you must specify a Removal Policy for it. Call 'resource.applyRemovalPolicy()'."]:[]})}get cacheClusterRef(){return{clusterName:this.ref}}get autoMinorVersionUpgrade(){return this._autoMinorVersionUpgrade}set autoMinorVersionUpgrade(value){cdk().traceProperty(this.node,"AutoMinorVersionUpgrade"),this._autoMinorVersionUpgrade=value}get azMode(){return this._azMode}set azMode(value){cdk().traceProperty(this.node,"AZMode"),this._azMode=value}get cacheNodeType(){return this._cacheNodeType}set cacheNodeType(value){cdk().traceProperty(this.node,"CacheNodeType"),this._cacheNodeType=value}get cacheParameterGroupName(){return this._cacheParameterGroupName}set cacheParameterGroupName(value){cdk().traceProperty(this.node,"CacheParameterGroupName"),this._cacheParameterGroupName=value}get cacheSecurityGroupNames(){return this._cacheSecurityGroupNames}set cacheSecurityGroupNames(value){cdk().traceProperty(this.node,"CacheSecurityGroupNames"),this._cacheSecurityGroupNames=value}get cacheSubnetGroupName(){return this._cacheSubnetGroupName}set cacheSubnetGroupName(value){cdk().traceProperty(this.node,"CacheSubnetGroupName"),this._cacheSubnetGroupName=value}get clusterName(){return this._clusterName}set clusterName(value){cdk().traceProperty(this.node,"ClusterName"),this._clusterName=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 ipDiscovery(){return this._ipDiscovery}set ipDiscovery(value){cdk().traceProperty(this.node,"IpDiscovery"),this._ipDiscovery=value}get logDeliveryConfigurations(){return this._logDeliveryConfigurations}set logDeliveryConfigurations(value){cdk().traceProperty(this.node,"LogDeliveryConfigurations"),this._logDeliveryConfigurations=value}get networkType(){return this._networkType}set networkType(value){cdk().traceProperty(this.node,"NetworkType"),this._networkType=value}get notificationTopicArn(){return this._notificationTopicArn}set notificationTopicArn(value){cdk().traceProperty(this.node,"NotificationTopicArn"),this._notificationTopicArn=value}get numCacheNodes(){return this._numCacheNodes}set numCacheNodes(value){cdk().traceProperty(this.node,"NumCacheNodes"),this._numCacheNodes=value}get port(){return this._port}set port(value){cdk().traceProperty(this.node,"Port"),this._port=value}get preferredAvailabilityZone(){return this._preferredAvailabilityZone}set preferredAvailabilityZone(value){cdk().traceProperty(this.node,"PreferredAvailabilityZone"),this._preferredAvailabilityZone=value}get preferredAvailabilityZones(){return this._preferredAvailabilityZones}set preferredAvailabilityZones(value){cdk().traceProperty(this.node,"PreferredAvailabilityZones"),this._preferredAvailabilityZones=value}get preferredMaintenanceWindow(){return this._preferredMaintenanceWindow}set preferredMaintenanceWindow(value){cdk().traceProperty(this.node,"PreferredMaintenanceWindow"),this._preferredMaintenanceWindow=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 tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get transitEncryptionEnabled(){return this._transitEncryptionEnabled}set transitEncryptionEnabled(value){cdk().traceProperty(this.node,"TransitEncryptionEnabled"),this._transitEncryptionEnabled=value}get vpcSecurityGroupIds(){return this._vpcSecurityGroupIds}set vpcSecurityGroupIds(value){cdk().traceProperty(this.node,"VpcSecurityGroupIds"),this._vpcSecurityGroupIds=value}get attrConfigurationEndpointAddress(){return cdk().Token.asString(this.getAtt("ConfigurationEndpoint.Address",cdk().ResolutionTypeHint.STRING))}get attrConfigurationEndpointPort(){return cdk().Token.asString(this.getAtt("ConfigurationEndpoint.Port",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrRedisEndpointAddress(){return cdk().Token.asString(this.getAtt("RedisEndpoint.Address",cdk().ResolutionTypeHint.STRING))}get attrRedisEndpointPort(){return cdk().Token.asString(this.getAtt("RedisEndpoint.Port",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{autoMinorVersionUpgrade:this._autoMinorVersionUpgrade,azMode:this._azMode,cacheNodeType:this._cacheNodeType,cacheParameterGroupName:this._cacheParameterGroupName,cacheSecurityGroupNames:this._cacheSecurityGroupNames,cacheSubnetGroupName:this._cacheSubnetGroupName,clusterName:this._clusterName,engine:this._engine,engineVersion:this._engineVersion,ipDiscovery:this._ipDiscovery,logDeliveryConfigurations:this._logDeliveryConfigurations,networkType:this._networkType,notificationTopicArn:this._notificationTopicArn,numCacheNodes:this._numCacheNodes,port:this._port,preferredAvailabilityZone:this._preferredAvailabilityZone,preferredAvailabilityZones:this._preferredAvailabilityZones,preferredMaintenanceWindow:this._preferredMaintenanceWindow,snapshotArns:this._snapshotArns,snapshotName:this._snapshotName,snapshotRetentionLimit:this._snapshotRetentionLimit,snapshotWindow:this._snapshotWindow,tags:this.tags.renderTags(),transitEncryptionEnabled:this._transitEncryptionEnabled,vpcSecurityGroupIds:this._vpcSecurityGroupIds}}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",CfnCacheCluster.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnCacheClusterPropsToCloudFormation(props)}}exports.CfnCacheCluster=CfnCacheCluster;function CfnCacheClusterCloudWatchLogsDestinationDetailsPropertyValidator(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("logGroup",cdk().requiredValidator)(properties.logGroup)),errors.collect(cdk().propertyValidator("logGroup",cdk().validateString)(properties.logGroup)),errors.wrap('supplied properties not correct for "CloudWatchLogsDestinationDetailsProperty"')}function convertCfnCacheClusterCloudWatchLogsDestinationDetailsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCacheClusterCloudWatchLogsDestinationDetailsPropertyValidator(properties).assertSuccess(),{LogGroup:cdk().stringToCloudFormation(properties.logGroup)}):properties}function CfnCacheClusterCloudWatchLogsDestinationDetailsPropertyFromCloudFormation(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("logGroup","LogGroup",properties.LogGroup!=null?cfn_parse().FromCloudFormation.getString(properties.LogGroup):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCacheClusterKinesisFirehoseDestinationDetailsPropertyValidator(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("deliveryStream",cdk().requiredValidator)(properties.deliveryStream)),errors.collect(cdk().propertyValidator("deliveryStream",cdk().validateString)(properties.deliveryStream)),errors.wrap('supplied properties not correct for "KinesisFirehoseDestinationDetailsProperty"')}function convertCfnCacheClusterKinesisFirehoseDestinationDetailsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCacheClusterKinesisFirehoseDestinationDetailsPropertyValidator(properties).assertSuccess(),{DeliveryStream:cdk().stringToCloudFormation(properties.deliveryStream)}):properties}function CfnCacheClusterKinesisFirehoseDestinationDetailsPropertyFromCloudFormation(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("deliveryStream","DeliveryStream",properties.DeliveryStream!=null?cfn_parse().FromCloudFormation.getString(properties.DeliveryStream):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCacheClusterDestinationDetailsPropertyValidator(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("cloudWatchLogsDetails",CfnCacheClusterCloudWatchLogsDestinationDetailsPropertyValidator)(properties.cloudWatchLogsDetails)),errors.collect(cdk().propertyValidator("kinesisFirehoseDetails",CfnCacheClusterKinesisFirehoseDestinationDetailsPropertyValidator)(properties.kinesisFirehoseDetails)),errors.wrap('supplied properties not correct for "DestinationDetailsProperty"')}function convertCfnCacheClusterDestinationDetailsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCacheClusterDestinationDetailsPropertyValidator(properties).assertSuccess(),{CloudWatchLogsDetails:convertCfnCacheClusterCloudWatchLogsDestinationDetailsPropertyToCloudFormation(properties.cloudWatchLogsDetails),KinesisFirehoseDetails:convertCfnCacheClusterKinesisFirehoseDestinationDetailsPropertyToCloudFormation(properties.kinesisFirehoseDetails)}):properties}function CfnCacheClusterDestinationDetailsPropertyFromCloudFormation(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("cloudWatchLogsDetails","CloudWatchLogsDetails",properties.CloudWatchLogsDetails!=null?CfnCacheClusterCloudWatchLogsDestinationDetailsPropertyFromCloudFormation(properties.CloudWatchLogsDetails):void 0),ret.addPropertyResult("kinesisFirehoseDetails","KinesisFirehoseDetails",properties.KinesisFirehoseDetails!=null?CfnCacheClusterKinesisFirehoseDestinationDetailsPropertyFromCloudFormation(properties.KinesisFirehoseDetails):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCacheClusterLogDeliveryConfigurationRequestPropertyValidator(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("destinationDetails",cdk().requiredValidator)(properties.destinationDetails)),errors.collect(cdk().propertyValidator("destinationDetails",CfnCacheClusterDestinationDetailsPropertyValidator)(properties.destinationDetails)),errors.collect(cdk().propertyValidator("destinationType",cdk().requiredValidator)(properties.destinationType)),errors.collect(cdk().propertyValidator("destinationType",cdk().validateString)(properties.destinationType)),errors.collect(cdk().propertyValidator("logFormat",cdk().requiredValidator)(properties.logFormat)),errors.collect(cdk().propertyValidator("logFormat",cdk().validateString)(properties.logFormat)),errors.collect(cdk().propertyValidator("logType",cdk().requiredValidator)(properties.logType)),errors.collect(cdk().propertyValidator("logType",cdk().validateString)(properties.logType)),errors.wrap('supplied properties not correct for "LogDeliveryConfigurationRequestProperty"')}function convertCfnCacheClusterLogDeliveryConfigurationRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCacheClusterLogDeliveryConfigurationRequestPropertyValidator(properties).assertSuccess(),{DestinationDetails:convertCfnCacheClusterDestinationDetailsPropertyToCloudFormation(properties.destinationDetails),DestinationType:cdk().stringToCloudFormation(properties.destinationType),LogFormat:cdk().stringToCloudFormation(properties.logFormat),LogType:cdk().stringToCloudFormation(properties.logType)}):properties}function CfnCacheClusterLogDeliveryConfigurationRequestPropertyFromCloudFormation(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("destinationDetails","DestinationDetails",properties.DestinationDetails!=null?CfnCacheClusterDestinationDetailsPropertyFromCloudFormation(properties.DestinationDetails):void 0),ret.addPropertyResult("destinationType","DestinationType",properties.DestinationType!=null?cfn_parse().FromCloudFormation.getString(properties.DestinationType):void 0),ret.addPropertyResult("logFormat","LogFormat",properties.LogFormat!=null?cfn_parse().FromCloudFormation.getString(properties.LogFormat):void 0),ret.addPropertyResult("logType","LogType",properties.LogType!=null?cfn_parse().FromCloudFormation.getString(properties.LogType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCacheClusterPropsValidator(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("azMode",cdk().validateString)(properties.azMode)),errors.collect(cdk().propertyValidator("autoMinorVersionUpgrade",cdk().validateBoolean)(properties.autoMinorVersionUpgrade)),errors.collect(cdk().propertyValidator("cacheNodeType",cdk().requiredValidator)(properties.cacheNodeType)),errors.collect(cdk().propertyValidator("cacheNodeType",cdk().validateString)(properties.cacheNodeType)),errors.collect(cdk().propertyValidator("cacheParameterGroupName",cdk().validateString)(properties.cacheParameterGroupName)),errors.collect(cdk().propertyValidator("cacheSecurityGroupNames",cdk().listValidator(cdk().validateString))(properties.cacheSecurityGroupNames)),errors.collect(cdk().propertyValidator("cacheSubnetGroupName",cdk().validateString)(properties.cacheSubnetGroupName)),errors.collect(cdk().propertyValidator("clusterName",cdk().validateString)(properties.clusterName)),errors.collect(cdk().propertyValidator("engine",cdk().requiredValidator)(properties.engine)),errors.collect(cdk().propertyValidator("engine",cdk().validateString)(properties.engine)),errors.collect(cdk().propertyValidator("engineVersion",cdk().validateString)(properties.engineVersion)),errors.collect(cdk().propertyValidator("ipDiscovery",cdk().validateString)(properties.ipDiscovery)),errors.collect(cdk().propertyValidator("logDeliveryConfigurations",cdk().listValidator(CfnCacheClusterLogDeliveryConfigurationRequestPropertyValidator))(properties.logDeliveryConfigurations)),errors.collect(cdk().propertyValidator("networkType",cdk().validateString)(properties.networkType)),errors.collect(cdk().propertyValidator("notificationTopicArn",cdk().validateString)(properties.notificationTopicArn)),errors.collect(cdk().propertyValidator("numCacheNodes",cdk().requiredValidator)(properties.numCacheNodes)),errors.collect(cdk().propertyValidator("numCacheNodes",cdk().validateNumber)(properties.numCacheNodes)),errors.collect(cdk().propertyValidator("port",cdk().validateNumber)(properties.port)),errors.collect(cdk().propertyValidator("preferredAvailabilityZone",cdk().validateString)(properties.preferredAvailabilityZone)),errors.collect(cdk().propertyValidator("preferredAvailabilityZones",cdk().listValidator(cdk().validateString))(properties.preferredAvailabilityZones)),errors.collect(cdk().propertyValidator("preferredMaintenanceWindow",cdk().validateString)(properties.preferredMaintenanceWindow)),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("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("transitEncryptionEnabled",cdk().validateBoolean)(properties.transitEncryptionEnabled)),errors.collect(cdk().propertyValidator("vpcSecurityGroupIds",cdk().listValidator(cdk().validateString))(properties.vpcSecurityGroupIds)),errors.wrap('supplied properties not correct for "CfnCacheClusterProps"')}function convertCfnCacheClusterPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCacheClusterPropsValidator(properties).assertSuccess(),{AZMode:cdk().stringToCloudFormation(properties.azMode),AutoMinorVersionUpgrade:cdk().booleanToCloudFormation(properties.autoMinorVersionUpgrade),CacheNodeType:cdk().stringToCloudFormation(properties.cacheNodeType),CacheParameterGroupName:cdk().stringToCloudFormation(properties.cacheParameterGroupName),CacheSecurityGroupNames:cdk().listMapper(cdk().stringToCloudFormation)(properties.cacheSecurityGroupNames),CacheSubnetGroupName:cdk().stringToCloudFormation(properties.cacheSubnetGroupName),ClusterName:cdk().stringToCloudFormation(properties.clusterName),Engine:cdk().stringToCloudFormation(properties.engine),EngineVersion:cdk().stringToCloudFormation(properties.engineVersion),IpDiscovery:cdk().stringToCloudFormation(properties.ipDiscovery),LogDeliveryConfigurations:cdk().listMapper(convertCfnCacheClusterLogDeliveryConfigurationRequestPropertyToCloudFormation)(properties.logDeliveryConfigurations),NetworkType:cdk().stringToCloudFormation(properties.networkType),NotificationTopicArn:cdk().stringToCloudFormation(properties.notificationTopicArn),NumCacheNodes:cdk().numberToCloudFormation(properties.numCacheNodes),Port:cdk().numberToCloudFormation(properties.port),PreferredAvailabilityZone:cdk().stringToCloudFormation(properties.preferredAvailabilityZone),PreferredAvailabilityZones:cdk().listMapper(cdk().stringToCloudFormation)(properties.preferredAvailabilityZones),PreferredMaintenanceWindow:cdk().stringToCloudFormation(properties.preferredMaintenanceWindow),SnapshotArns:cdk().listMapper(cdk().stringToCloudFormation)(properties.snapshotArns),SnapshotName:cdk().stringToCloudFormation(properties.snapshotName),SnapshotRetentionLimit:cdk().numberToCloudFormation(properties.snapshotRetentionLimit),SnapshotWindow:cdk().stringToCloudFormation(properties.snapshotWindow),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TransitEncryptionEnabled:cdk().booleanToCloudFormation(properties.transitEncryptionEnabled),VpcSecurityGroupIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.vpcSecurityGroupIds)}):properties}function CfnCacheClusterPropsFromCloudFormation(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("autoMinorVersionUpgrade","AutoMinorVersionUpgrade",properties.AutoMinorVersionUpgrade!=null?cfn_parse().FromCloudFormation.getBoolean(properties.AutoMinorVersionUpgrade):void 0),ret.addPropertyResult("azMode","AZMode",properties.AZMode!=null?cfn_parse().FromCloudFormation.getString(properties.AZMode):void 0),ret.addPropertyResult("cacheNodeType","CacheNodeType",properties.CacheNodeType!=null?cfn_parse().FromCloudFormation.getString(properties.CacheNodeType):void 0),ret.addPropertyResult("cacheParameterGroupName","CacheParameterGroupName",properties.CacheParameterGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.CacheParameterGroupName):void 0),ret.addPropertyResult("cacheSecurityGroupNames","CacheSecurityGroupNames",properties.CacheSecurityGroupNames!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.CacheSecurityGroupNames):void 0),ret.addPropertyResult("cacheSubnetGroupName","CacheSubnetGroupName",properties.CacheSubnetGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.CacheSubnetGroupName):void 0),ret.addPropertyResult("clusterName","ClusterName",properties.ClusterName!=null?cfn_parse().FromCloudFormation.getString(properties.ClusterName):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("ipDiscovery","IpDiscovery",properties.IpDiscovery!=null?cfn_parse().FromCloudFormation.getString(properties.IpDiscovery):void 0),ret.addPropertyResult("logDeliveryConfigurations","LogDeliveryConfigurations",properties.LogDeliveryConfigurations!=null?cfn_parse().FromCloudFormation.getArray(CfnCacheClusterLogDeliveryConfigurationRequestPropertyFromCloudFormation)(properties.LogDeliveryConfigurations):void 0),ret.addPropertyResult("networkType","NetworkType",properties.NetworkType!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkType):void 0),ret.addPropertyResult("notificationTopicArn","NotificationTopicArn",properties.NotificationTopicArn!=null?cfn_parse().FromCloudFormation.getString(properties.NotificationTopicArn):void 0),ret.addPropertyResult("numCacheNodes","NumCacheNodes",properties.NumCacheNodes!=null?cfn_parse().FromCloudFormation.getNumber(properties.NumCacheNodes):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse().FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("preferredAvailabilityZone","PreferredAvailabilityZone",properties.PreferredAvailabilityZone!=null?cfn_parse().FromCloudFormation.getString(properties.PreferredAvailabilityZone):void 0),ret.addPropertyResult("preferredAvailabilityZones","PreferredAvailabilityZones",properties.PreferredAvailabilityZones!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.PreferredAvailabilityZones):void 0),ret.addPropertyResult("preferredMaintenanceWindow","PreferredMaintenanceWindow",properties.PreferredMaintenanceWindow!=null?cfn_parse().FromCloudFormation.getString(properties.PreferredMaintenanceWindow):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("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("transitEncryptionEnabled","TransitEncryptionEnabled",properties.TransitEncryptionEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.TransitEncryptionEnabled):void 0),ret.addPropertyResult("vpcSecurityGroupIds","VpcSecurityGroupIds",properties.VpcSecurityGroupIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.VpcSecurityGroupIds):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnGlobalReplicationGroup extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_elasticache.CfnGlobalReplicationGroup",version:"2.251.0"};static CFN_RESOURCE_TYPE_NAME="AWS::ElastiCache::GlobalReplicationGroup";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnGlobalReplicationGroupPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnGlobalReplicationGroup(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 isCfnGlobalReplicationGroup(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnGlobalReplicationGroup.CFN_RESOURCE_TYPE_NAME}static fromGlobalReplicationGroupId(scope,id,globalReplicationGroupId){class Import extends cdk().Resource{globalReplicationGroupRef;constructor(scope2,id2,globalReplicationGroupId2){super(scope2,id2),this.globalReplicationGroupRef={globalReplicationGroupId:globalReplicationGroupId2}}}return new Import(scope,id,globalReplicationGroupId)}static arnForGlobalReplicationGroup(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_elasticache_IGlobalReplicationGroupRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForGlobalReplicationGroup),error}return new(cfn_parse()).TemplateString("arn:${Partition}:elasticache::${Account}:globalreplicationgroup:${GlobalReplicationGroupId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,GlobalReplicationGroupId:resource.globalReplicationGroupRef.globalReplicationGroupId})}_automaticFailoverEnabled;_cacheNodeType;_cacheParameterGroupName;_engine;_engineVersion;_globalNodeGroupCount;_globalReplicationGroupDescription;_globalReplicationGroupIdSuffix;_members;_regionalConfigurations;constructor(scope,id,props){super(scope,id,{type:CfnGlobalReplicationGroup.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_elasticache_CfnGlobalReplicationGroupProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnGlobalReplicationGroup),error}cdk().requireProperty(props,"members",this),this._automaticFailoverEnabled=props.automaticFailoverEnabled,this._cacheNodeType=props.cacheNodeType,this._cacheParameterGroupName=props.cacheParameterGroupName,this._engine=props.engine,this._engineVersion=props.engineVersion,this._globalNodeGroupCount=props.globalNodeGroupCount,this._globalReplicationGroupDescription=props.globalReplicationGroupDescription,this._globalReplicationGroupIdSuffix=props.globalReplicationGroupIdSuffix,this._members=props.members,this._regionalConfigurations=props.regionalConfigurations}get globalReplicationGroupRef(){return{globalReplicationGroupId:this.ref}}get automaticFailoverEnabled(){return this._automaticFailoverEnabled}set automaticFailoverEnabled(value){cdk().traceProperty(this.node,"AutomaticFailoverEnabled"),this._automaticFailoverEnabled=value}get cacheNodeType(){return this._cacheNodeType}set cacheNodeType(value){cdk().traceProperty(this.node,"CacheNodeType"),this._cacheNodeType=value}get cacheParameterGroupName(){return this._cacheParameterGroupName}set cacheParameterGroupName(value){cdk().traceProperty(this.node,"CacheParameterGroupName"),this._cacheParameterGroupName=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 globalNodeGroupCount(){return this._globalNodeGroupCount}set globalNodeGroupCount(value){cdk().traceProperty(this.node,"GlobalNodeGroupCount"),this._globalNodeGroupCount=value}get globalReplicationGroupDescription(){return this._globalReplicationGroupDescription}set globalReplicationGroupDescription(value){cdk().traceProperty(this.node,"GlobalReplicationGroupDescription"),this._globalReplicationGroupDescription=value}get globalReplicationGroupIdSuffix(){return this._globalReplicationGroupIdSuffix}set globalReplicationGroupIdSuffix(value){cdk().traceProperty(this.node,"GlobalReplicationGroupIdSuffix"),this._globalReplicationGroupIdSuffix=value}get members(){return this._members}set members(value){cdk().traceProperty(this.node,"Members"),this._members=value}get regionalConfigurations(){return this._regionalConfigurations}set regionalConfigurations(value){cdk().traceProperty(this.node,"RegionalConfigurations"),this._regionalConfigurations=value}get attrGlobalReplicationGroupId(){return cdk().Token.asString(this.getAtt("GlobalReplicationGroupId",cdk().ResolutionTypeHint.STRING))}get attrStatus(){return cdk().Token.asString(this.getAtt("Status",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{automaticFailoverEnabled:this._automaticFailoverEnabled,cacheNodeType:this._cacheNodeType,cacheParameterGroupName:this._cacheParameterGroupName,engine:this._engine,engineVersion:this._engineVersion,globalNodeGroupCount:this._globalNodeGroupCount,globalReplicationGroupDescription:this._globalReplicationGroupDescription,globalReplicationGroupIdSuffix:this._globalReplicationGroupIdSuffix,members:this._members,regionalConfigurations:this._regionalConfigurations}}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",CfnGlobalReplicationGroup.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnGlobalReplicationGroupPropsToCloudFormation(props)}}exports.CfnGlobalReplicationGroup=CfnGlobalReplicationGroup;function CfnGlobalReplicationGroupReshardingConfigurationPropertyValidator(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("nodeGroupId",cdk().validateString)(properties.nodeGroupId)),errors.collect(cdk().propertyValidator("preferredAvailabilityZones",cdk().listValidator(cdk().validateString))(properties.preferredAvailabilityZones)),errors.wrap('supplied properties not correct for "ReshardingConfigurationProperty"')}function convertCfnGlobalReplicationGroupReshardingConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalReplicationGroupReshardingConfigurationPropertyValidator(properties).assertSuccess(),{NodeGroupId:cdk().stringToCloudFormation(properties.nodeGroupId),PreferredAvailabilityZones:cdk().listMapper(cdk().stringToCloudFormation)(properties.preferredAvailabilityZones)}):properties}function CfnGlobalReplicationGroupReshardingConfigurationPropertyFromCloudFormation(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("nodeGroupId","NodeGroupId",properties.NodeGroupId!=null?cfn_parse().FromCloudFormation.getString(properties.NodeGroupId):void 0),ret.addPropertyResult("preferredAvailabilityZones","PreferredAvailabilityZones",properties.PreferredAvailabilityZones!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.PreferredAvailabilityZones):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalReplicationGroupRegionalConfigurationPropertyValidator(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("replicationGroupId",cdk().validateString)(properties.replicationGroupId)),errors.collect(cdk().propertyValidator("replicationGroupRegion",cdk().validateString)(properties.replicationGroupRegion)),errors.collect(cdk().propertyValidator("reshardingConfigurations",cdk().listValidator(CfnGlobalReplicationGroupReshardingConfigurationPropertyValidator))(properties.reshardingConfigurations)),errors.wrap('supplied properties not correct for "RegionalConfigurationProperty"')}function convertCfnGlobalReplicationGroupRegionalConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalReplicationGroupRegionalConfigurationPropertyValidator(properties).assertSuccess(),{ReplicationGroupId:cdk().stringToCloudFormation(properties.replicationGroupId),ReplicationGroupRegion:cdk().stringToCloudFormation(properties.replicationGroupRegion),ReshardingConfigurations:cdk().listMapper(convertCfnGlobalReplicationGroupReshardingConfigurationPropertyToCloudFormation)(properties.reshardingConfigurations)}):properties}function CfnGlobalReplicationGroupRegionalConfigurationPropertyFromCloudFormation(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("replicationGroupId","ReplicationGroupId",properties.ReplicationGroupId!=null?cfn_parse().FromCloudFormation.getString(properties.ReplicationGroupId):void 0),ret.addPropertyResult("replicationGroupRegion","ReplicationGroupRegion",properties.ReplicationGroupRegion!=null?cfn_parse().FromCloudFormation.getString(properties.ReplicationGroupRegion):void 0),ret.addPropertyResult("reshardingConfigurations","ReshardingConfigurations",properties.ReshardingConfigurations!=null?cfn_parse().FromCloudFormation.getArray(CfnGlobalReplicationGroupReshardingConfigurationPropertyFromCloudFormation)(properties.ReshardingConfigurations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalReplicationGroupGlobalReplicationGroupMemberPropertyValidator(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("replicationGroupId",cdk().validateString)(properties.replicationGroupId)),errors.collect(cdk().propertyValidator("replicationGroupRegion",cdk().validateString)(properties.replicationGroupRegion)),errors.collect(cdk().propertyValidator("role",cdk().validateString)(properties.role)),errors.wrap('supplied properties not correct for "GlobalReplicationGroupMemberProperty"')}function convertCfnGlobalReplicationGroupGlobalReplicationGroupMemberPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalReplicationGroupGlobalReplicationGroupMemberPropertyValidator(properties).assertSuccess(),{ReplicationGroupId:cdk().stringToCloudFormation(properties.replicationGroupId),ReplicationGroupRegion:cdk().stringToCloudFormation(properties.replicationGroupRegion),Role:cdk().stringToCloudFormation(properties.role)}):properties}function CfnGlobalReplicationGroupGlobalReplicationGroupMemberPropertyFromCloudFormation(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("replicationGroupId","ReplicationGroupId",properties.ReplicationGroupId!=null?cfn_parse().FromCloudFormation.getString(properties.ReplicationGroupId):void 0),ret.addPropertyResult("replicationGroupRegion","ReplicationGroupRegion",properties.ReplicationGroupRegion!=null?cfn_parse().FromCloudFormation.getString(properties.ReplicationGroupRegion):void 0),ret.addPropertyResult("role","Role",properties.Role!=null?cfn_parse().FromCloudFormation.getString(properties.Role):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalReplicationGroupPropsValidator(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("automaticFailoverEnabled",cdk().validateBoolean)(properties.automaticFailoverEnabled)),errors.collect(cdk().propertyValidator("cacheNodeType",cdk().validateString)(properties.cacheNodeType)),errors.collect(cdk().propertyValidator("cacheParameterGroupName",cdk().validateString)(properties.cacheParameterGroupName)),errors.collect(cdk().propertyValidator("engine",cdk().validateString)(properties.engine)),errors.collect(cdk().propertyValidator("engineVersion",cdk().validateString)(properties.engineVersion)),errors.collect(cdk().propertyValidator("globalNodeGroupCount",cdk().validateNumber)(properties.globalNodeGroupCount)),errors.collect(cdk().propertyValidator("globalReplicationGroupDescription",cdk().validateString)(properties.globalReplicationGroupDescription)),errors.collect(cdk().propertyValidator("globalReplicationGroupIdSuffix",cdk().validateString)(properties.globalReplicationGroupIdSuffix)),errors.collect(cdk().propertyValidator("members",cdk().requiredValidator)(properties.members)),errors.collect(cdk().propertyValidator("members",cdk().listValidator(CfnGlobalReplicationGroupGlobalReplicationGroupMemberPropertyValidator))(properties.members)),errors.collect(cdk().propertyValidator("regionalConfigurations",cdk().listValidator(CfnGlobalReplicationGroupRegionalConfigurationPropertyValidator))(properties.regionalConfigurations)),errors.wrap('supplied properties not correct for "CfnGlobalReplicationGroupProps"')}function convertCfnGlobalReplicationGroupPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalReplicationGroupPropsValidator(properties).assertSuccess(),{AutomaticFailoverEnabled:cdk().booleanToCloudFormation(properties.automaticFailoverEnabled),CacheNodeType:cdk().stringToCloudFormation(properties.cacheNodeType),CacheParameterGroupName:cdk().stringToCloudFormation(properties.cacheParameterGroupName),Engine:cdk().stringToCloudFormation(properties.engine),EngineVersion:cdk().stringToCloudFormation(properties.engineVersion),GlobalNodeGroupCount:cdk().numberToCloudFormation(properties.globalNodeGroupCount),GlobalReplicationGroupDescription:cdk().stringToCloudFormation(properties.globalReplicationGroupDescription),GlobalReplicationGroupIdSuffix:cdk().stringToCloudFormation(properties.globalReplicationGroupIdSuffix),Members:cdk().listMapper(convertCfnGlobalReplicationGroupGlobalReplicationGroupMemberPropertyToCloudFormation)(properties.members),RegionalConfigurations:cdk().listMapper(convertCfnGlobalReplicationGroupRegionalConfigurationPropertyToCloudFormation)(properties.regionalConfigurations)}):properties}function CfnGlobalReplicationGroupPropsFromCloudFormation(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("automaticFailoverEnabled","AutomaticFailoverEnabled",properties.AutomaticFailoverEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.AutomaticFailoverEnabled):void 0),ret.addPropertyResult("cacheNodeType","CacheNodeType",properties.CacheNodeType!=null?cfn_parse().FromCloudFormation.getString(properties.CacheNodeType):void 0),ret.addPropertyResult("cacheParameterGroupName","CacheParameterGroupName",properties.CacheParameterGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.CacheParameterGroupName):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("globalNodeGroupCount","GlobalNodeGroupCount",properties.GlobalNodeGroupCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.GlobalNodeGroupCount):void 0),ret.addPropertyResult("globalReplicationGroupDescription","GlobalReplicationGroupDescription",properties.GlobalReplicationGroupDescription!=null?cfn_parse().FromCloudFormation.getString(properties.GlobalReplicationGroupDescription):void 0),ret.addPropertyResult("globalReplicationGroupIdSuffix","GlobalReplicationGroupIdSuffix",properties.GlobalReplicationGroupIdSuffix!=null?cfn_parse().FromCloudFormation.getString(properties.GlobalReplicationGroupIdSuffix):void 0),ret.addPropertyResult("members","Members",properties.Members!=null?cfn_parse().FromCloudFormation.getArray(CfnGlobalReplicationGroupGlobalReplicationGroupMemberPropertyFromCloudFormation)(properties.Members):void 0),ret.addPropertyResult("regionalConfigurations","RegionalConfigurations",properties.RegionalConfigurations!=null?cfn_parse().FromCloudFormation.getArray(CfnGlobalReplicationGroupRegionalConfigurationPropertyFromCloudFormation)(properties.RegionalConfigurations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnParameterGroup extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_elasticache.CfnParameterGroup",version:"2.251.0"};static CFN_RESOURCE_TYPE_NAME="AWS::ElastiCache::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 fromCacheParameterGroupName(scope,id,cacheParameterGroupName){class Import extends cdk().Resource{parameterGroupRef;constructor(scope2,id2,cacheParameterGroupName2){super(scope2,id2),this.parameterGroupRef={cacheParameterGroupName:cacheParameterGroupName2}}}return new Import(scope,id,cacheParameterGroupName)}static arnForParameterGroup(