aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
1 lines • 126 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnIntegration=exports.CfnScheduledAction=exports.CfnEventSubscription=exports.CfnEndpointAuthorization=exports.CfnEndpointAccess=exports.CfnClusterSubnetGroup=exports.CfnClusterSecurityGroupIngress=exports.CfnClusterSecurityGroup=exports.CfnClusterParameterGroup=exports.CfnCluster=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 CfnCluster extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_redshift.CfnCluster",version:"2.251.0"};static CFN_RESOURCE_TYPE_NAME="AWS::Redshift::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}_allowVersionUpgrade;_aquaConfigurationStatus;_automatedSnapshotRetentionPeriod;_availabilityZone;_availabilityZoneRelocation;_availabilityZoneRelocationStatus;_classic;_clusterIdentifier;_clusterParameterGroupName;_clusterSecurityGroups;_clusterSubnetGroupName;_clusterType;_clusterVersion;_dbName;_deferMaintenance;_deferMaintenanceDuration;_deferMaintenanceEndTime;_deferMaintenanceStartTime;_destinationRegion;_elasticIp;_encrypted;_endpoint;_enhancedVpcRouting;_hsmClientCertificateIdentifier;_hsmConfigurationIdentifier;_iamRoles;_kmsKeyId;_loggingProperties;_maintenanceTrackName;_manageMasterPassword;_manualSnapshotRetentionPeriod;_masterPasswordSecretKmsKeyId;_masterUsername;_masterUserPassword;_multiAz;_namespaceResourcePolicy;_nodeType;_numberOfNodes;_ownerAccount;_port;_preferredMaintenanceWindow;_publiclyAccessible;_resourceAction;_revisionTarget;_rotateEncryptionKey;_snapshotClusterIdentifier;_snapshotCopyGrantName;_snapshotCopyManual;_snapshotCopyRetentionPeriod;_snapshotIdentifier;tags;_tagsRaw;_vpcSecurityGroupIds;constructor(scope,id,props){super(scope,id,{type:CfnCluster.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_redshift_CfnClusterProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCluster),error}cdk().requireProperty(props,"clusterType",this),cdk().requireProperty(props,"dbName",this),cdk().requireProperty(props,"masterUsername",this),cdk().requireProperty(props,"nodeType",this),this._allowVersionUpgrade=props.allowVersionUpgrade,this._aquaConfigurationStatus=props.aquaConfigurationStatus,this._automatedSnapshotRetentionPeriod=props.automatedSnapshotRetentionPeriod,this._availabilityZone=props.availabilityZone,this._availabilityZoneRelocation=props.availabilityZoneRelocation,this._availabilityZoneRelocationStatus=props.availabilityZoneRelocationStatus,this._classic=props.classic,this._clusterIdentifier=props.clusterIdentifier,this._clusterParameterGroupName=cdk().getRefProperty(props.clusterParameterGroupName?.clusterParameterGroupRef,"parameterGroupName")??cdk().ensureStringOrUndefined(props.clusterParameterGroupName,"clusterParameterGroupName","redshift.IClusterParameterGroupRef | string"),this._clusterSecurityGroups=cdk().mapArrayInPlace(props.clusterSecurityGroups,item=>cdk().getRefProperty(item?.securityGroupRef,"securityGroupId")??cdk().getRefProperty(item?.clusterSecurityGroupRef,"clusterSecurityGroupId")??cdk().ensureStringOrUndefined(item,"clusterSecurityGroups","ec2.ISecurityGroupRef | redshift.IClusterSecurityGroupRef | string")),this._clusterSubnetGroupName=cdk().getRefProperty(props.clusterSubnetGroupName?.clusterSubnetGroupRef,"clusterSubnetGroupName")??cdk().ensureStringOrUndefined(props.clusterSubnetGroupName,"clusterSubnetGroupName","redshift.IClusterSubnetGroupRef | string"),this._clusterType=props.clusterType,this._clusterVersion=props.clusterVersion,this._dbName=props.dbName,this._deferMaintenance=props.deferMaintenance,this._deferMaintenanceDuration=props.deferMaintenanceDuration,this._deferMaintenanceEndTime=props.deferMaintenanceEndTime,this._deferMaintenanceStartTime=props.deferMaintenanceStartTime,this._destinationRegion=props.destinationRegion,this._elasticIp=cdk().getRefProperty(props.elasticIp?.eipRef,"publicIp")??cdk().getRefProperty(props.elasticIp?.eipRef,"allocationId")??cdk().ensureStringOrUndefined(props.elasticIp,"elasticIp","ec2.IEIPRef | string"),this._encrypted=props.encrypted,this._endpoint=props.endpoint,this._enhancedVpcRouting=props.enhancedVpcRouting,this._hsmClientCertificateIdentifier=props.hsmClientCertificateIdentifier,this._hsmConfigurationIdentifier=props.hsmConfigurationIdentifier,this._iamRoles=cdk().mapArrayInPlace(props.iamRoles,item=>cdk().getRefProperty(item?.roleRef,"roleArn")??cdk().ensureStringOrUndefined(item,"iamRoles","iam.IRoleRef | string")),this._kmsKeyId=cdk().getRefProperty(props.kmsKeyId?.keyRef,"keyArn")??cdk().getRefProperty(props.kmsKeyId?.keyRef,"keyId")??cdk().ensureStringOrUndefined(props.kmsKeyId,"kmsKeyId","kms.IKeyRef | string"),this._loggingProperties=props.loggingProperties,this._maintenanceTrackName=props.maintenanceTrackName,this._manageMasterPassword=props.manageMasterPassword,this._manualSnapshotRetentionPeriod=props.manualSnapshotRetentionPeriod,this._masterPasswordSecretKmsKeyId=cdk().getRefProperty(props.masterPasswordSecretKmsKeyId?.keyRef,"keyArn")??cdk().getRefProperty(props.masterPasswordSecretKmsKeyId?.keyRef,"keyId")??cdk().ensureStringOrUndefined(props.masterPasswordSecretKmsKeyId,"masterPasswordSecretKmsKeyId","kms.IKeyRef | string"),this._masterUsername=props.masterUsername,this._masterUserPassword=props.masterUserPassword,this._multiAz=props.multiAz,this._namespaceResourcePolicy=props.namespaceResourcePolicy,this._nodeType=props.nodeType,this._numberOfNodes=props.numberOfNodes,this._ownerAccount=props.ownerAccount,this._port=props.port,this._preferredMaintenanceWindow=props.preferredMaintenanceWindow,this._publiclyAccessible=props.publiclyAccessible,this._resourceAction=props.resourceAction,this._revisionTarget=props.revisionTarget,this._rotateEncryptionKey=props.rotateEncryptionKey,this._snapshotClusterIdentifier=props.snapshotClusterIdentifier,this._snapshotCopyGrantName=props.snapshotCopyGrantName,this._snapshotCopyManual=props.snapshotCopyManual,this._snapshotCopyRetentionPeriod=props.snapshotCopyRetentionPeriod,this._snapshotIdentifier=props.snapshotIdentifier,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::Redshift::Cluster",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._vpcSecurityGroupIds=cdk().mapArrayInPlace(props.vpcSecurityGroupIds,item=>cdk().getRefProperty(item?.securityGroupRef,"securityGroupId")??cdk().ensureStringOrUndefined(item,"vpcSecurityGroupIds","ec2.ISecurityGroupRef | string")),this.node.scope!=null&&cdk().Resource.isResource(this.node.scope)&&this.node.addValidation({validate:()=>this.cfnOptions.deletionPolicy===void 0?["'AWS::Redshift::Cluster' is a stateful resource type, and you must specify a Removal Policy for it. Call 'resource.applyRemovalPolicy()'."]:[]})}get clusterRef(){return{clusterIdentifier:this.ref}}get allowVersionUpgrade(){return this._allowVersionUpgrade}set allowVersionUpgrade(value){cdk().traceProperty(this.node,"AllowVersionUpgrade"),this._allowVersionUpgrade=value}get aquaConfigurationStatus(){return this._aquaConfigurationStatus}set aquaConfigurationStatus(value){cdk().traceProperty(this.node,"AquaConfigurationStatus"),this._aquaConfigurationStatus=value}get automatedSnapshotRetentionPeriod(){return this._automatedSnapshotRetentionPeriod}set automatedSnapshotRetentionPeriod(value){cdk().traceProperty(this.node,"AutomatedSnapshotRetentionPeriod"),this._automatedSnapshotRetentionPeriod=value}get availabilityZone(){return this._availabilityZone}set availabilityZone(value){cdk().traceProperty(this.node,"AvailabilityZone"),this._availabilityZone=value}get availabilityZoneRelocation(){return this._availabilityZoneRelocation}set availabilityZoneRelocation(value){cdk().traceProperty(this.node,"AvailabilityZoneRelocation"),this._availabilityZoneRelocation=value}get availabilityZoneRelocationStatus(){return this._availabilityZoneRelocationStatus}set availabilityZoneRelocationStatus(value){cdk().traceProperty(this.node,"AvailabilityZoneRelocationStatus"),this._availabilityZoneRelocationStatus=value}get classic(){return this._classic}set classic(value){cdk().traceProperty(this.node,"Classic"),this._classic=value}get clusterIdentifier(){return this._clusterIdentifier}set clusterIdentifier(value){cdk().traceProperty(this.node,"ClusterIdentifier"),this._clusterIdentifier=value}get clusterParameterGroupName(){return this._clusterParameterGroupName}set clusterParameterGroupName(value){cdk().traceProperty(this.node,"ClusterParameterGroupName"),this._clusterParameterGroupName=value}get clusterSecurityGroups(){return this._clusterSecurityGroups}set clusterSecurityGroups(value){cdk().traceProperty(this.node,"ClusterSecurityGroups"),this._clusterSecurityGroups=value}get clusterSubnetGroupName(){return this._clusterSubnetGroupName}set clusterSubnetGroupName(value){cdk().traceProperty(this.node,"ClusterSubnetGroupName"),this._clusterSubnetGroupName=value}get clusterType(){return this._clusterType}set clusterType(value){cdk().traceProperty(this.node,"ClusterType"),this._clusterType=value}get clusterVersion(){return this._clusterVersion}set clusterVersion(value){cdk().traceProperty(this.node,"ClusterVersion"),this._clusterVersion=value}get dbName(){return this._dbName}set dbName(value){cdk().traceProperty(this.node,"DBName"),this._dbName=value}get deferMaintenance(){return this._deferMaintenance}set deferMaintenance(value){cdk().traceProperty(this.node,"DeferMaintenance"),this._deferMaintenance=value}get deferMaintenanceDuration(){return this._deferMaintenanceDuration}set deferMaintenanceDuration(value){cdk().traceProperty(this.node,"DeferMaintenanceDuration"),this._deferMaintenanceDuration=value}get deferMaintenanceEndTime(){return this._deferMaintenanceEndTime}set deferMaintenanceEndTime(value){cdk().traceProperty(this.node,"DeferMaintenanceEndTime"),this._deferMaintenanceEndTime=value}get deferMaintenanceStartTime(){return this._deferMaintenanceStartTime}set deferMaintenanceStartTime(value){cdk().traceProperty(this.node,"DeferMaintenanceStartTime"),this._deferMaintenanceStartTime=value}get destinationRegion(){return this._destinationRegion}set destinationRegion(value){cdk().traceProperty(this.node,"DestinationRegion"),this._destinationRegion=value}get elasticIp(){return this._elasticIp}set elasticIp(value){cdk().traceProperty(this.node,"ElasticIp"),this._elasticIp=value}get encrypted(){return this._encrypted}set encrypted(value){cdk().traceProperty(this.node,"Encrypted"),this._encrypted=value}get endpoint(){return this._endpoint}set endpoint(value){cdk().traceProperty(this.node,"Endpoint"),this._endpoint=value}get enhancedVpcRouting(){return this._enhancedVpcRouting}set enhancedVpcRouting(value){cdk().traceProperty(this.node,"EnhancedVpcRouting"),this._enhancedVpcRouting=value}get hsmClientCertificateIdentifier(){return this._hsmClientCertificateIdentifier}set hsmClientCertificateIdentifier(value){cdk().traceProperty(this.node,"HsmClientCertificateIdentifier"),this._hsmClientCertificateIdentifier=value}get hsmConfigurationIdentifier(){return this._hsmConfigurationIdentifier}set hsmConfigurationIdentifier(value){cdk().traceProperty(this.node,"HsmConfigurationIdentifier"),this._hsmConfigurationIdentifier=value}get iamRoles(){return this._iamRoles}set iamRoles(value){cdk().traceProperty(this.node,"IamRoles"),this._iamRoles=value}get kmsKeyId(){return this._kmsKeyId}set kmsKeyId(value){cdk().traceProperty(this.node,"KmsKeyId"),this._kmsKeyId=value}get loggingProperties(){return this._loggingProperties}set loggingProperties(value){cdk().traceProperty(this.node,"LoggingProperties"),this._loggingProperties=value}get maintenanceTrackName(){return this._maintenanceTrackName}set maintenanceTrackName(value){cdk().traceProperty(this.node,"MaintenanceTrackName"),this._maintenanceTrackName=value}get manageMasterPassword(){return this._manageMasterPassword}set manageMasterPassword(value){cdk().traceProperty(this.node,"ManageMasterPassword"),this._manageMasterPassword=value}get manualSnapshotRetentionPeriod(){return this._manualSnapshotRetentionPeriod}set manualSnapshotRetentionPeriod(value){cdk().traceProperty(this.node,"ManualSnapshotRetentionPeriod"),this._manualSnapshotRetentionPeriod=value}get masterPasswordSecretKmsKeyId(){return this._masterPasswordSecretKmsKeyId}set masterPasswordSecretKmsKeyId(value){cdk().traceProperty(this.node,"MasterPasswordSecretKmsKeyId"),this._masterPasswordSecretKmsKeyId=value}get masterUsername(){return this._masterUsername}set masterUsername(value){cdk().traceProperty(this.node,"MasterUsername"),this._masterUsername=value}get masterUserPassword(){return this._masterUserPassword}set masterUserPassword(value){cdk().traceProperty(this.node,"MasterUserPassword"),this._masterUserPassword=value}get multiAz(){return this._multiAz}set multiAz(value){cdk().traceProperty(this.node,"MultiAZ"),this._multiAz=value}get namespaceResourcePolicy(){return this._namespaceResourcePolicy}set namespaceResourcePolicy(value){cdk().traceProperty(this.node,"NamespaceResourcePolicy"),this._namespaceResourcePolicy=value}get nodeType(){return this._nodeType}set nodeType(value){cdk().traceProperty(this.node,"NodeType"),this._nodeType=value}get numberOfNodes(){return this._numberOfNodes}set numberOfNodes(value){cdk().traceProperty(this.node,"NumberOfNodes"),this._numberOfNodes=value}get ownerAccount(){return this._ownerAccount}set ownerAccount(value){cdk().traceProperty(this.node,"OwnerAccount"),this._ownerAccount=value}get port(){return this._port}set port(value){cdk().traceProperty(this.node,"Port"),this._port=value}get preferredMaintenanceWindow(){return this._preferredMaintenanceWindow}set preferredMaintenanceWindow(value){cdk().traceProperty(this.node,"PreferredMaintenanceWindow"),this._preferredMaintenanceWindow=value}get publiclyAccessible(){return this._publiclyAccessible}set publiclyAccessible(value){cdk().traceProperty(this.node,"PubliclyAccessible"),this._publiclyAccessible=value}get resourceAction(){return this._resourceAction}set resourceAction(value){cdk().traceProperty(this.node,"ResourceAction"),this._resourceAction=value}get revisionTarget(){return this._revisionTarget}set revisionTarget(value){cdk().traceProperty(this.node,"RevisionTarget"),this._revisionTarget=value}get rotateEncryptionKey(){return this._rotateEncryptionKey}set rotateEncryptionKey(value){cdk().traceProperty(this.node,"RotateEncryptionKey"),this._rotateEncryptionKey=value}get snapshotClusterIdentifier(){return this._snapshotClusterIdentifier}set snapshotClusterIdentifier(value){cdk().traceProperty(this.node,"SnapshotClusterIdentifier"),this._snapshotClusterIdentifier=value}get snapshotCopyGrantName(){return this._snapshotCopyGrantName}set snapshotCopyGrantName(value){cdk().traceProperty(this.node,"SnapshotCopyGrantName"),this._snapshotCopyGrantName=value}get snapshotCopyManual(){return this._snapshotCopyManual}set snapshotCopyManual(value){cdk().traceProperty(this.node,"SnapshotCopyManual"),this._snapshotCopyManual=value}get snapshotCopyRetentionPeriod(){return this._snapshotCopyRetentionPeriod}set snapshotCopyRetentionPeriod(value){cdk().traceProperty(this.node,"SnapshotCopyRetentionPeriod"),this._snapshotCopyRetentionPeriod=value}get snapshotIdentifier(){return this._snapshotIdentifier}set snapshotIdentifier(value){cdk().traceProperty(this.node,"SnapshotIdentifier"),this._snapshotIdentifier=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get vpcSecurityGroupIds(){return this._vpcSecurityGroupIds}set vpcSecurityGroupIds(value){cdk().traceProperty(this.node,"VpcSecurityGroupIds"),this._vpcSecurityGroupIds=value}get attrClusterNamespaceArn(){return cdk().Token.asString(this.getAtt("ClusterNamespaceArn",cdk().ResolutionTypeHint.STRING))}get attrDeferMaintenanceIdentifier(){return cdk().Token.asString(this.getAtt("DeferMaintenanceIdentifier",cdk().ResolutionTypeHint.STRING))}get attrEndpointAddress(){return cdk().Token.asString(this.getAtt("Endpoint.Address",cdk().ResolutionTypeHint.STRING))}get attrEndpointPort(){return cdk().Token.asString(this.getAtt("Endpoint.Port",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrMasterPasswordSecretArn(){return cdk().Token.asString(this.getAtt("MasterPasswordSecretArn",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{allowVersionUpgrade:this._allowVersionUpgrade,aquaConfigurationStatus:this._aquaConfigurationStatus,automatedSnapshotRetentionPeriod:this._automatedSnapshotRetentionPeriod,availabilityZone:this._availabilityZone,availabilityZoneRelocation:this._availabilityZoneRelocation,availabilityZoneRelocationStatus:this._availabilityZoneRelocationStatus,classic:this._classic,clusterIdentifier:this._clusterIdentifier,clusterParameterGroupName:this._clusterParameterGroupName,clusterSecurityGroups:this._clusterSecurityGroups,clusterSubnetGroupName:this._clusterSubnetGroupName,clusterType:this._clusterType,clusterVersion:this._clusterVersion,dbName:this._dbName,deferMaintenance:this._deferMaintenance,deferMaintenanceDuration:this._deferMaintenanceDuration,deferMaintenanceEndTime:this._deferMaintenanceEndTime,deferMaintenanceStartTime:this._deferMaintenanceStartTime,destinationRegion:this._destinationRegion,elasticIp:this._elasticIp,encrypted:this._encrypted,endpoint:this._endpoint,enhancedVpcRouting:this._enhancedVpcRouting,hsmClientCertificateIdentifier:this._hsmClientCertificateIdentifier,hsmConfigurationIdentifier:this._hsmConfigurationIdentifier,iamRoles:this._iamRoles,kmsKeyId:this._kmsKeyId,loggingProperties:this._loggingProperties,maintenanceTrackName:this._maintenanceTrackName,manageMasterPassword:this._manageMasterPassword,manualSnapshotRetentionPeriod:this._manualSnapshotRetentionPeriod,masterPasswordSecretKmsKeyId:this._masterPasswordSecretKmsKeyId,masterUsername:this._masterUsername,masterUserPassword:this._masterUserPassword,multiAz:this._multiAz,namespaceResourcePolicy:this._namespaceResourcePolicy,nodeType:this._nodeType,numberOfNodes:this._numberOfNodes,ownerAccount:this._ownerAccount,port:this._port,preferredMaintenanceWindow:this._preferredMaintenanceWindow,publiclyAccessible:this._publiclyAccessible,resourceAction:this._resourceAction,revisionTarget:this._revisionTarget,rotateEncryptionKey:this._rotateEncryptionKey,snapshotClusterIdentifier:this._snapshotClusterIdentifier,snapshotCopyGrantName:this._snapshotCopyGrantName,snapshotCopyManual:this._snapshotCopyManual,snapshotCopyRetentionPeriod:this._snapshotCopyRetentionPeriod,snapshotIdentifier:this._snapshotIdentifier,tags:this.tags.renderTags(),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",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().validateString)(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().stringToCloudFormation(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.getString(properties.Port):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterLoggingPropertiesPropertyValidator(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("bucketName",cdk().validateString)(properties.bucketName)),errors.collect(cdk().propertyValidator("logDestinationType",cdk().validateString)(properties.logDestinationType)),errors.collect(cdk().propertyValidator("logExports",cdk().listValidator(cdk().validateString))(properties.logExports)),errors.collect(cdk().propertyValidator("s3KeyPrefix",cdk().validateString)(properties.s3KeyPrefix)),errors.wrap('supplied properties not correct for "LoggingPropertiesProperty"')}function convertCfnClusterLoggingPropertiesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterLoggingPropertiesPropertyValidator(properties).assertSuccess(),{BucketName:cdk().stringToCloudFormation(properties.bucketName),LogDestinationType:cdk().stringToCloudFormation(properties.logDestinationType),LogExports:cdk().listMapper(cdk().stringToCloudFormation)(properties.logExports),S3KeyPrefix:cdk().stringToCloudFormation(properties.s3KeyPrefix)}):properties}function CfnClusterLoggingPropertiesPropertyFromCloudFormation(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("bucketName","BucketName",properties.BucketName!=null?cfn_parse().FromCloudFormation.getString(properties.BucketName):void 0),ret.addPropertyResult("logDestinationType","LogDestinationType",properties.LogDestinationType!=null?cfn_parse().FromCloudFormation.getString(properties.LogDestinationType):void 0),ret.addPropertyResult("logExports","LogExports",properties.LogExports!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.LogExports):void 0),ret.addPropertyResult("s3KeyPrefix","S3KeyPrefix",properties.S3KeyPrefix!=null?cfn_parse().FromCloudFormation.getString(properties.S3KeyPrefix):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("allowVersionUpgrade",cdk().validateBoolean)(properties.allowVersionUpgrade)),errors.collect(cdk().propertyValidator("aquaConfigurationStatus",cdk().validateString)(properties.aquaConfigurationStatus)),errors.collect(cdk().propertyValidator("automatedSnapshotRetentionPeriod",cdk().validateNumber)(properties.automatedSnapshotRetentionPeriod)),errors.collect(cdk().propertyValidator("availabilityZone",cdk().validateString)(properties.availabilityZone)),errors.collect(cdk().propertyValidator("availabilityZoneRelocation",cdk().validateBoolean)(properties.availabilityZoneRelocation)),errors.collect(cdk().propertyValidator("availabilityZoneRelocationStatus",cdk().validateString)(properties.availabilityZoneRelocationStatus)),errors.collect(cdk().propertyValidator("classic",cdk().validateBoolean)(properties.classic)),errors.collect(cdk().propertyValidator("clusterIdentifier",cdk().validateString)(properties.clusterIdentifier)),errors.collect(cdk().propertyValidator("clusterParameterGroupName",cdk().validateString)(properties.clusterParameterGroupName)),errors.collect(cdk().propertyValidator("clusterSecurityGroups",cdk().listValidator(cdk().validateString))(properties.clusterSecurityGroups)),errors.collect(cdk().propertyValidator("clusterSubnetGroupName",cdk().validateString)(properties.clusterSubnetGroupName)),errors.collect(cdk().propertyValidator("clusterType",cdk().requiredValidator)(properties.clusterType)),errors.collect(cdk().propertyValidator("clusterType",cdk().validateString)(properties.clusterType)),errors.collect(cdk().propertyValidator("clusterVersion",cdk().validateString)(properties.clusterVersion)),errors.collect(cdk().propertyValidator("dbName",cdk().requiredValidator)(properties.dbName)),errors.collect(cdk().propertyValidator("dbName",cdk().validateString)(properties.dbName)),errors.collect(cdk().propertyValidator("deferMaintenance",cdk().validateBoolean)(properties.deferMaintenance)),errors.collect(cdk().propertyValidator("deferMaintenanceDuration",cdk().validateNumber)(properties.deferMaintenanceDuration)),errors.collect(cdk().propertyValidator("deferMaintenanceEndTime",cdk().validateString)(properties.deferMaintenanceEndTime)),errors.collect(cdk().propertyValidator("deferMaintenanceStartTime",cdk().validateString)(properties.deferMaintenanceStartTime)),errors.collect(cdk().propertyValidator("destinationRegion",cdk().validateString)(properties.destinationRegion)),errors.collect(cdk().propertyValidator("elasticIp",cdk().validateString)(properties.elasticIp)),errors.collect(cdk().propertyValidator("encrypted",cdk().validateBoolean)(properties.encrypted)),errors.collect(cdk().propertyValidator("endpoint",CfnClusterEndpointPropertyValidator)(properties.endpoint)),errors.collect(cdk().propertyValidator("enhancedVpcRouting",cdk().validateBoolean)(properties.enhancedVpcRouting)),errors.collect(cdk().propertyValidator("hsmClientCertificateIdentifier",cdk().validateString)(properties.hsmClientCertificateIdentifier)),errors.collect(cdk().propertyValidator("hsmConfigurationIdentifier",cdk().validateString)(properties.hsmConfigurationIdentifier)),errors.collect(cdk().propertyValidator("iamRoles",cdk().listValidator(cdk().validateString))(properties.iamRoles)),errors.collect(cdk().propertyValidator("kmsKeyId",cdk().validateString)(properties.kmsKeyId)),errors.collect(cdk().propertyValidator("loggingProperties",CfnClusterLoggingPropertiesPropertyValidator)(properties.loggingProperties)),errors.collect(cdk().propertyValidator("maintenanceTrackName",cdk().validateString)(properties.maintenanceTrackName)),errors.collect(cdk().propertyValidator("manageMasterPassword",cdk().validateBoolean)(properties.manageMasterPassword)),errors.collect(cdk().propertyValidator("manualSnapshotRetentionPeriod",cdk().validateNumber)(properties.manualSnapshotRetentionPeriod)),errors.collect(cdk().propertyValidator("masterPasswordSecretKmsKeyId",cdk().validateString)(properties.masterPasswordSecretKmsKeyId)),errors.collect(cdk().propertyValidator("masterUserPassword",cdk().validateString)(properties.masterUserPassword)),errors.collect(cdk().propertyValidator("masterUsername",cdk().requiredValidator)(properties.masterUsername)),errors.collect(cdk().propertyValidator("masterUsername",cdk().validateString)(properties.masterUsername)),errors.collect(cdk().propertyValidator("multiAz",cdk().validateBoolean)(properties.multiAz)),errors.collect(cdk().propertyValidator("namespaceResourcePolicy",cdk().validateObject)(properties.namespaceResourcePolicy)),errors.collect(cdk().propertyValidator("nodeType",cdk().requiredValidator)(properties.nodeType)),errors.collect(cdk().propertyValidator("nodeType",cdk().validateString)(properties.nodeType)),errors.collect(cdk().propertyValidator("numberOfNodes",cdk().validateNumber)(properties.numberOfNodes)),errors.collect(cdk().propertyValidator("ownerAccount",cdk().validateString)(properties.ownerAccount)),errors.collect(cdk().propertyValidator("port",cdk().validateNumber)(properties.port)),errors.collect(cdk().propertyValidator("preferredMaintenanceWindow",cdk().validateString)(properties.preferredMaintenanceWindow)),errors.collect(cdk().propertyValidator("publiclyAccessible",cdk().validateBoolean)(properties.publiclyAccessible)),errors.collect(cdk().propertyValidator("resourceAction",cdk().validateString)(properties.resourceAction)),errors.collect(cdk().propertyValidator("revisionTarget",cdk().validateString)(properties.revisionTarget)),errors.collect(cdk().propertyValidator("rotateEncryptionKey",cdk().validateBoolean)(properties.rotateEncryptionKey)),errors.collect(cdk().propertyValidator("snapshotClusterIdentifier",cdk().validateString)(properties.snapshotClusterIdentifier)),errors.collect(cdk().propertyValidator("snapshotCopyGrantName",cdk().validateString)(properties.snapshotCopyGrantName)),errors.collect(cdk().propertyValidator("snapshotCopyManual",cdk().validateBoolean)(properties.snapshotCopyManual)),errors.collect(cdk().propertyValidator("snapshotCopyRetentionPeriod",cdk().validateNumber)(properties.snapshotCopyRetentionPeriod)),errors.collect(cdk().propertyValidator("snapshotIdentifier",cdk().validateString)(properties.snapshotIdentifier)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("vpcSecurityGroupIds",cdk().listValidator(cdk().validateString))(properties.vpcSecurityGroupIds)),errors.wrap('supplied properties not correct for "CfnClusterProps"')}function convertCfnClusterPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterPropsValidator(properties).assertSuccess(),{AllowVersionUpgrade:cdk().booleanToCloudFormation(properties.allowVersionUpgrade),AquaConfigurationStatus:cdk().stringToCloudFormation(properties.aquaConfigurationStatus),AutomatedSnapshotRetentionPeriod:cdk().numberToCloudFormation(properties.automatedSnapshotRetentionPeriod),AvailabilityZone:cdk().stringToCloudFormation(properties.availabilityZone),AvailabilityZoneRelocation:cdk().booleanToCloudFormation(properties.availabilityZoneRelocation),AvailabilityZoneRelocationStatus:cdk().stringToCloudFormation(properties.availabilityZoneRelocationStatus),Classic:cdk().booleanToCloudFormation(properties.classic),ClusterIdentifier:cdk().stringToCloudFormation(properties.clusterIdentifier),ClusterParameterGroupName:cdk().stringToCloudFormation(properties.clusterParameterGroupName),ClusterSecurityGroups:cdk().listMapper(cdk().stringToCloudFormation)(properties.clusterSecurityGroups),ClusterSubnetGroupName:cdk().stringToCloudFormation(properties.clusterSubnetGroupName),ClusterType:cdk().stringToCloudFormation(properties.clusterType),ClusterVersion:cdk().stringToCloudFormation(properties.clusterVersion),DBName:cdk().stringToCloudFormation(properties.dbName),DeferMaintenance:cdk().booleanToCloudFormation(properties.deferMaintenance),DeferMaintenanceDuration:cdk().numberToCloudFormation(properties.deferMaintenanceDuration),DeferMaintenanceEndTime:cdk().stringToCloudFormation(properties.deferMaintenanceEndTime),DeferMaintenanceStartTime:cdk().stringToCloudFormation(properties.deferMaintenanceStartTime),DestinationRegion:cdk().stringToCloudFormation(properties.destinationRegion),ElasticIp:cdk().stringToCloudFormation(properties.elasticIp),Encrypted:cdk().booleanToCloudFormation(properties.encrypted),Endpoint:convertCfnClusterEndpointPropertyToCloudFormation(properties.endpoint),EnhancedVpcRouting:cdk().booleanToCloudFormation(properties.enhancedVpcRouting),HsmClientCertificateIdentifier:cdk().stringToCloudFormation(properties.hsmClientCertificateIdentifier),HsmConfigurationIdentifier:cdk().stringToCloudFormation(properties.hsmConfigurationIdentifier),IamRoles:cdk().listMapper(cdk().stringToCloudFormation)(properties.iamRoles),KmsKeyId:cdk().stringToCloudFormation(properties.kmsKeyId),LoggingProperties:convertCfnClusterLoggingPropertiesPropertyToCloudFormation(properties.loggingProperties),MaintenanceTrackName:cdk().stringToCloudFormation(properties.maintenanceTrackName),ManageMasterPassword:cdk().booleanToCloudFormation(properties.manageMasterPassword),ManualSnapshotRetentionPeriod:cdk().numberToCloudFormation(properties.manualSnapshotRetentionPeriod),MasterPasswordSecretKmsKeyId:cdk().stringToCloudFormation(properties.masterPasswordSecretKmsKeyId),MasterUserPassword:cdk().stringToCloudFormation(properties.masterUserPassword),MasterUsername:cdk().stringToCloudFormation(properties.masterUsername),MultiAZ:cdk().booleanToCloudFormation(properties.multiAz),NamespaceResourcePolicy:cdk().objectToCloudFormation(properties.namespaceResourcePolicy),NodeType:cdk().stringToCloudFormation(properties.nodeType),NumberOfNodes:cdk().numberToCloudFormation(properties.numberOfNodes),OwnerAccount:cdk().stringToCloudFormation(properties.ownerAccount),Port:cdk().numberToCloudFormation(properties.port),PreferredMaintenanceWindow:cdk().stringToCloudFormation(properties.preferredMaintenanceWindow),PubliclyAccessible:cdk().booleanToCloudFormation(properties.publiclyAccessible),ResourceAction:cdk().stringToCloudFormation(properties.resourceAction),RevisionTarget:cdk().stringToCloudFormation(properties.revisionTarget),RotateEncryptionKey:cdk().booleanToCloudFormation(properties.rotateEncryptionKey),SnapshotClusterIdentifier:cdk().stringToCloudFormation(properties.snapshotClusterIdentifier),SnapshotCopyGrantName:cdk().stringToCloudFormation(properties.snapshotCopyGrantName),SnapshotCopyManual:cdk().booleanToCloudFormation(properties.snapshotCopyManual),SnapshotCopyRetentionPeriod:cdk().numberToCloudFormation(properties.snapshotCopyRetentionPeriod),SnapshotIdentifier:cdk().stringToCloudFormation(properties.snapshotIdentifier),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),VpcSecurityGroupIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.vpcSecurityGroupIds)}):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("allowVersionUpgrade","AllowVersionUpgrade",properties.AllowVersionUpgrade!=null?cfn_parse().FromCloudFormation.getBoolean(properties.AllowVersionUpgrade):void 0),ret.addPropertyResult("aquaConfigurationStatus","AquaConfigurationStatus",properties.AquaConfigurationStatus!=null?cfn_parse().FromCloudFormation.getString(properties.AquaConfigurationStatus):void 0),ret.addPropertyResult("automatedSnapshotRetentionPeriod","AutomatedSnapshotRetentionPeriod",properties.AutomatedSnapshotRetentionPeriod!=null?cfn_parse().FromCloudFormation.getNumber(properties.AutomatedSnapshotRetentionPeriod):void 0),ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse().FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("availabilityZoneRelocation","AvailabilityZoneRelocation",properties.AvailabilityZoneRelocation!=null?cfn_parse().FromCloudFormation.getBoolean(properties.AvailabilityZoneRelocation):void 0),ret.addPropertyResult("availabilityZoneRelocationStatus","AvailabilityZoneRelocationStatus",properties.AvailabilityZoneRelocationStatus!=null?cfn_parse().FromCloudFormation.getString(properties.AvailabilityZoneRelocationStatus):void 0),ret.addPropertyResult("classic","Classic",properties.Classic!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Classic):void 0),ret.addPropertyResult("clusterIdentifier","ClusterIdentifier",properties.ClusterIdentifier!=null?cfn_parse().FromCloudFormation.getString(properties.ClusterIdentifier):void 0),ret.addPropertyResult("clusterParameterGroupName","ClusterParameterGroupName",properties.ClusterParameterGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.ClusterParameterGroupName):void 0),ret.addPropertyResult("clusterSecurityGroups","ClusterSecurityGroups",properties.ClusterSecurityGroups!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ClusterSecurityGroups):void 0),ret.addPropertyResult("clusterSubnetGroupName","ClusterSubnetGroupName",properties.ClusterSubnetGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.ClusterSubnetGroupName):void 0),ret.addPropertyResult("clusterType","ClusterType",properties.ClusterType!=null?cfn_parse().FromCloudFormation.getString(properties.ClusterType):void 0),ret.addPropertyResult("clusterVersion","ClusterVersion",properties.ClusterVersion!=null?cfn_parse().FromCloudFormation.getString(properties.ClusterVersion):void 0),ret.addPropertyResult("dbName","DBName",properties.DBName!=null?cfn_parse().FromCloudFormation.getString(properties.DBName):void 0),ret.addPropertyResult("deferMaintenance","DeferMaintenance",properties.DeferMaintenance!=null?cfn_parse().FromCloudFormation.getBoolean(properties.DeferMaintenance):void 0),ret.addPropertyResult("deferMaintenanceDuration","DeferMaintenanceDuration",properties.DeferMaintenanceDuration!=null?cfn_parse().FromCloudFormation.getNumber(properties.DeferMaintenanceDuration):void 0),ret.addPropertyResult("deferMaintenanceEndTime","DeferMaintenanceEndTime",properties.DeferMaintenanceEndTime!=null?cfn_parse().FromCloudFormation.getString(properties.DeferMaintenanceEndTime):void 0),ret.addPropertyResult("deferMaintenanceStartTime","DeferMaintenanceStartTime",properties.DeferMaintenanceStartTime!=null?cfn_parse().FromCloudFormation.getString(properties.DeferMaintenanceStartTime):void 0),ret.addPropertyResult("destinationRegion","DestinationRegion",properties.DestinationRegion!=null?cfn_parse().FromCloudFormation.getString(properties.DestinationRegion):void 0),ret.addPropertyResult("elasticIp","ElasticIp",properties.ElasticIp!=null?cfn_parse().FromCloudFormation.getString(properties.ElasticIp):void 0),ret.addPropertyResult("encrypted","Encrypted",properties.Encrypted!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Encrypted):void 0),ret.addPropertyResult("endpoint","Endpoint",properties.Endpoint!=null?CfnClusterEndpointPropertyFromCloudFormation(properties.Endpoint):void 0),ret.addPropertyResult("enhancedVpcRouting","EnhancedVpcRouting",properties.EnhancedVpcRouting!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnhancedVpcRouting):void 0),ret.addPropertyResult("hsmClientCertificateIdentifier","HsmClientCertificateIdentifier",properties.HsmClientCertificateIdentifier!=null?cfn_parse().FromCloudFormation.getString(properties.HsmClientCertificateIdentifier):void 0),ret.addPropertyResult("hsmConfigurationIdentifier","HsmConfigurationIdentifier",properties.HsmConfigurationIdentifier!=null?cfn_parse().FromCloudFormation.getString(properties.HsmConfigurationIdentifier):void 0),ret.addPropertyResult("iamRoles","IamRoles",properties.IamRoles!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.IamRoles):void 0),ret.addPropertyResult("kmsKeyId","KmsKeyId",properties.KmsKeyId!=null?cfn_parse().FromCloudFormation.getString(properties.KmsKeyId):void 0),ret.addPropertyResult("loggingProperties","LoggingProperties",properties.LoggingProperties!=null?CfnClusterLoggingPropertiesPropertyFromCloudFormation(properties.LoggingProperties):void 0),ret.addPropertyResult("maintenanceTrackName","MaintenanceTrackName",properties.MaintenanceTrackName!=null?cfn_parse().FromCloudFormation.getString(properties.MaintenanceTrackName):void 0),ret.addPropertyResult("manageMasterPassword","ManageMasterPassword",properties.ManageMasterPassword!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ManageMasterPassword):void 0),ret.addPropertyResult("manualSnapshotRetentionPeriod","ManualSnapshotRetentionPeriod",properties.ManualSnapshotRetentionPeriod!=null?cfn_parse().FromCloudFormation.getNumber(properties.ManualSnapshotRetentionPeriod):void 0),ret.addPropertyResult("masterPasswordSecretKmsKeyId","MasterPasswordSecretKmsKeyId",properties.MasterPasswordSecretKmsKeyId!=null?cfn_parse().FromCloudFormation.getString(properties.MasterPasswordSecretKmsKeyId):void 0),ret.addPropertyResult("masterUsername","MasterUsername",properties.MasterUsername!=null?cfn_parse().FromCloudFormation.getString(properties.MasterUsername):void 0),ret.addPropertyResult("masterUserPassword","MasterUserPassword",properties.MasterUserPassword!=null?cfn_parse().FromCloudFormation.getString(properties.MasterUserPassword):void 0),ret.addPropertyResult("multiAz","MultiAZ",properties.MultiAZ!=null?cfn_parse().FromCloudFormation.getBoolean(properties.MultiAZ):void 0),ret.addPropertyResult("namespaceResourcePolicy","NamespaceResourcePolicy",properties.NamespaceResourcePolicy!=null?cfn_parse().FromCloudFormation.getAny(properties.NamespaceResourcePolicy):void 0),ret.addPropertyResult("nodeType","NodeType",properties.NodeType!=null?cfn_parse().FromCloudFormation.getString(properties.NodeType):void 0),ret.addPropertyResult("numberOfNodes","NumberOfNodes",properties.NumberOfNodes!=null?cfn_parse().FromCloudFormation.getNumber(properties.NumberOfNodes):void 0),ret.addPropertyResult("ownerAccount","OwnerAccount",properties.OwnerAccount!=null?cfn_parse().FromCloudFormation.getString(properties.OwnerAccount):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse().FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("preferredMaintenanceWindow","PreferredMaintenanceWindow",properties.PreferredMaintenanceWindow!=null?cfn_parse().FromCloudFormation.getString(properties.PreferredMaintenanceWindow):void 0),ret.addPropertyResult("publiclyAccessible","PubliclyAccessible",properties.PubliclyAccessible!=null?cfn_parse().FromCloudFormation.getBoolean(properties.PubliclyAccessible):void 0),ret.addPropertyResult("resourceAction","ResourceAction",properties.ResourceAction!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceAction):void 0),ret.addPropertyResult("revisionTarget","RevisionTarget",properties.RevisionTarget!=null?cfn_parse().FromCloudFormation.getString(properties.RevisionTarget):void 0),ret.addPropertyResult("rotateEncryptionKey","RotateEncryptionKey",properties.RotateEncryptionKey!=null?cfn_parse().FromCloudFormation.getBoolean(properties.RotateEncryptionKey):void 0),ret.addPropertyResult("snapshotClusterIdentifier","SnapshotClusterIdentifier",properties.SnapshotClusterIdentifier!=null?cfn_parse().FromCloudFormation.getString(properties.SnapshotClusterIdentifier):void 0),ret.addPropertyResult("snapshotCopyGrantName","SnapshotCopyGrantName",properties.SnapshotCopyGrantName!=null?cfn_parse().FromCloudFormation.getString(properties.SnapshotCopyGrantName):void 0),ret.addPropertyResult("snapshotCopyManual","SnapshotCopyManual",properties.SnapshotCopyManual!=null?cfn_parse().FromCloudFormation.getBoolean(properties.SnapshotCopyManual):void 0),ret.addPropertyResult("snapshotCopyRetentionPeriod","SnapshotCopyRetentionPeriod",properties.SnapshotCopyRetentionPeriod!=null?cfn_parse().FromCloudFormation.getNumber(properties.SnapshotCopyRetentionPeriod):void 0),ret.addPropertyResult("snapshotIdentifier","SnapshotIdentifier",properties.SnapshotIdentifier!=null?cfn_parse().FromCloudFormation.getString(properties.SnapshotIdentifier):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):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 CfnClusterParameterGroup extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_redshift.CfnClusterParameterGroup",version:"2.251.0"};static CFN_RESOURCE_TYPE_NAME="AWS::Redshift::ClusterParameterGroup";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnClusterParameterGroupPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnClusterParameterGroup(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 isCfnClusterParameterGroup(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnClusterParameterGroup.CFN_RESOURCE_TYPE_NAME}static fromParameterGroupName(scope,id,parameterGroupName){class Import extends cdk().Resource{clusterParameterGroupRef;constructor(scope2,id2,parameterGroupName2){super(scope2,id2),this.clusterParameterGroupRef={parameterGroupName:parameterGroupName2}}}return new Import(scope,id,parameterGroupName)}static arnForClusterParameterGroup(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_redshift_IClusterParameterGroupRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForClusterParameterGroup),error}return new(cfn_parse()).TemplateString("arn:${Partition}:redshift:${Region}:${Account}:parametergroup:${ParameterGroupName}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,ParameterGroupName:resource.clusterParameterGroupRef.parameterGroupName})}_description;_parameterGroupFamily;_parameterGroupName;_parameters;tags;_tagsRaw;constructor(scope,id,props){super(scope,id,{type:CfnClusterParameterGroup.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_redshift_CfnClusterParameterGroupProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnClusterParameterGroup),error}cdk().requireProperty(props,"description",this),cdk().requireProperty(props,"parameterGroupFamily",this),this._description=props.description,this._parameterGroupFamily=props.parameterGroupFamily,this._parameterGroupName=props.parameterGroupName,this._parameters=props.parameters,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::Redshift::ClusterParameterGroup",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get clusterParameterGroupRef(){return{parameterGroupName:this.ref}}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get parameterGroupFamily(){return this._parameterGroupFamily}set parameterGroupFamily(value){cdk().traceProperty(this.node,"ParameterGroupFamily"),this._parameterGroupFamily=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 cfnProperties(){return{description:this._description,parameterGroupFamily:this._parameterGroupFamily,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",CfnClusterParameterGroup.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperti