UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

1 lines 102 kB
"use strict";var _a,_b,_c,_d,_e,_f,_g,_h,_j,_k;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");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 _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("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}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.attrClusterNamespaceArn=cdk().Token.asString(this.getAtt("ClusterNamespaceArn",cdk().ResolutionTypeHint.STRING)),this.attrDeferMaintenanceIdentifier=cdk().Token.asString(this.getAtt("DeferMaintenanceIdentifier",cdk().ResolutionTypeHint.STRING)),this.attrEndpointAddress=cdk().Token.asString(this.getAtt("Endpoint.Address",cdk().ResolutionTypeHint.STRING)),this.attrEndpointPort=cdk().Token.asString(this.getAtt("Endpoint.Port",cdk().ResolutionTypeHint.STRING)),this.attrId=cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING)),this.attrMasterPasswordSecretArn=cdk().Token.asString(this.getAtt("MasterPasswordSecretArn",cdk().ResolutionTypeHint.STRING)),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=props.clusterParameterGroupName,this.clusterSecurityGroups=props.clusterSecurityGroups,this.clusterSubnetGroupName=props.clusterSubnetGroupName,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=props.elasticIp,this.encrypted=props.encrypted,this.endpoint=props.endpoint,this.enhancedVpcRouting=props.enhancedVpcRouting,this.hsmClientCertificateIdentifier=props.hsmClientCertificateIdentifier,this.hsmConfigurationIdentifier=props.hsmConfigurationIdentifier,this.iamRoles=props.iamRoles,this.kmsKeyId=props.kmsKeyId,this.loggingProperties=props.loggingProperties,this.maintenanceTrackName=props.maintenanceTrackName,this.manageMasterPassword=props.manageMasterPassword,this.manualSnapshotRetentionPeriod=props.manualSnapshotRetentionPeriod,this.masterPasswordSecretKmsKeyId=props.masterPasswordSecretKmsKeyId,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=props.vpcSecurityGroupIds,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 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:props",this.cfnProperties)}renderProperties(props){return convertCfnClusterPropsToCloudFormation(props)}}exports.CfnCluster=CfnCluster,_a=JSII_RTTI_SYMBOL_1,CfnCluster[_a]={fqn:"aws-cdk-lib.aws_redshift.CfnCluster",version:"2.202.0"},CfnCluster.CFN_RESOURCE_TYPE_NAME="AWS::Redshift::Cluster";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 _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("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}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 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:props",this.cfnProperties)}renderProperties(props){return convertCfnClusterParameterGroupPropsToCloudFormation(props)}}exports.CfnClusterParameterGroup=CfnClusterParameterGroup,_b=JSII_RTTI_SYMBOL_1,CfnClusterParameterGroup[_b]={fqn:"aws-cdk-lib.aws_redshift.CfnClusterParameterGroup",version:"2.202.0"},CfnClusterParameterGroup.CFN_RESOURCE_TYPE_NAME="AWS::Redshift::ClusterParameterGroup";function CfnClusterParameterGroupParameterPropertyValidator(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("parameterName",cdk().requiredValidator)(properties.parameterName)),errors.collect(cdk().propertyValidator("parameterName",cdk().validateString)(properties.parameterName)),errors.collect(cdk().propertyValidator("parameterValue",cdk().requiredValidator)(properties.parameterValue)),errors.collect(cdk().propertyValidator("parameterValue",cdk().validateString)(properties.parameterValue)),errors.wrap('supplied properties not correct for "ParameterProperty"')}function convertCfnClusterParameterGroupParameterPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterParameterGroupParameterPropertyValidator(properties).assertSuccess(),{ParameterName:cdk().stringToCloudFormation(properties.parameterName),ParameterValue:cdk().stringToCloudFormation(properties.parameterValue)}):properties}function CfnClusterParameterGroupParameterPropertyFromCloudFormation(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("parameterName","ParameterName",properties.ParameterName!=null?cfn_parse().FromCloudFormation.getString(properties.ParameterName):void 0),ret.addPropertyResult("parameterValue","ParameterValue",properties.ParameterValue!=null?cfn_parse().FromCloudFormation.getString(properties.ParameterValue):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClusterParameterGroupPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("description",cdk().requiredValidator)(properties.description)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("parameterGroupFamily",cdk().requiredValidator)(properties.parameterGroupFamily)),errors.collect(cdk().propertyValidator("parameterGroupFamily",cdk().validateString)(properties.parameterGroupFamily)),errors.collect(cdk().propertyValidator("parameterGroupName",cdk().validateString)(properties.parameterGroupName)),errors.collect(cdk().propertyValidator("parameters",cdk().listValidator(CfnClusterParameterGroupParameterPropertyValidator))(properties.parameters)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnClusterParameterGroupProps"')}function convertCfnClusterParameterGroupPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterParameterGroupPropsValidator(properties).assertSuccess(),{Description:cdk().stringToCloudFormation(properties.description),ParameterGroupFamily:cdk().stringToCloudFormation(properties.parameterGroupFamily),ParameterGroupName:cdk().stringToCloudFormation(properties.parameterGroupName),Parameters:cdk().listMapper(convertCfnClusterParameterGroupParameterPropertyToCloudFormation)(properties.parameters),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnClusterParameterGroupPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("parameterGroupFamily","ParameterGroupFamily",properties.ParameterGroupFamily!=null?cfn_parse().FromCloudFormation.getString(properties.ParameterGroupFamily):void 0),ret.addPropertyResult("parameterGroupName","ParameterGroupName",properties.ParameterGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.ParameterGroupName):void 0),ret.addPropertyResult("parameters","Parameters",properties.Parameters!=null?cfn_parse().FromCloudFormation.getArray(CfnClusterParameterGroupParameterPropertyFromCloudFormation)(properties.Parameters):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnClusterSecurityGroup extends cdk().CfnResource{static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnClusterSecurityGroupPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError("Unexpected IResolvable",scope);const ret=new CfnClusterSecurityGroup(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}constructor(scope,id,props){super(scope,id,{type:CfnClusterSecurityGroup.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_redshift_CfnClusterSecurityGroupProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnClusterSecurityGroup),error}cdk().requireProperty(props,"description",this),this.attrId=cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING)),this.description=props.description,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::Redshift::ClusterSecurityGroup",props.tags,{tagPropertyName:"tags"}),this.tagsRaw=props.tags}get cfnProperties(){return{description:this.description,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",CfnClusterSecurityGroup.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnClusterSecurityGroupPropsToCloudFormation(props)}}exports.CfnClusterSecurityGroup=CfnClusterSecurityGroup,_c=JSII_RTTI_SYMBOL_1,CfnClusterSecurityGroup[_c]={fqn:"aws-cdk-lib.aws_redshift.CfnClusterSecurityGroup",version:"2.202.0"},CfnClusterSecurityGroup.CFN_RESOURCE_TYPE_NAME="AWS::Redshift::ClusterSecurityGroup";function CfnClusterSecurityGroupPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("description",cdk().requiredValidator)(properties.description)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnClusterSecurityGroupProps"')}function convertCfnClusterSecurityGroupPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterSecurityGroupPropsValidator(properties).assertSuccess(),{Description:cdk().stringToCloudFormation(properties.description),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnClusterSecurityGroupPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnClusterSecurityGroupIngress extends cdk().CfnResource{static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnClusterSecurityGroupIngressPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError("Unexpected IResolvable",scope);const ret=new CfnClusterSecurityGroupIngress(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}constructor(scope,id,props){super(scope,id,{type:CfnClusterSecurityGroupIngress.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_redshift_CfnClusterSecurityGroupIngressProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnClusterSecurityGroupIngress),error}cdk().requireProperty(props,"clusterSecurityGroupName",this),this.attrId=cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING)),this.cidrip=props.cidrip,this.clusterSecurityGroupName=props.clusterSecurityGroupName,this.ec2SecurityGroupName=props.ec2SecurityGroupName,this.ec2SecurityGroupOwnerId=props.ec2SecurityGroupOwnerId}get cfnProperties(){return{cidrip:this.cidrip,clusterSecurityGroupName:this.clusterSecurityGroupName,ec2SecurityGroupName:this.ec2SecurityGroupName,ec2SecurityGroupOwnerId:this.ec2SecurityGroupOwnerId}}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",CfnClusterSecurityGroupIngress.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnClusterSecurityGroupIngressPropsToCloudFormation(props)}}exports.CfnClusterSecurityGroupIngress=CfnClusterSecurityGroupIngress,_d=JSII_RTTI_SYMBOL_1,CfnClusterSecurityGroupIngress[_d]={fqn:"aws-cdk-lib.aws_redshift.CfnClusterSecurityGroupIngress",version:"2.202.0"},CfnClusterSecurityGroupIngress.CFN_RESOURCE_TYPE_NAME="AWS::Redshift::ClusterSecurityGroupIngress";function CfnClusterSecurityGroupIngressPropsValidator(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("cidrip",cdk().validateString)(properties.cidrip)),errors.collect(cdk().propertyValidator("clusterSecurityGroupName",cdk().requiredValidator)(properties.clusterSecurityGroupName)),errors.collect(cdk().propertyValidator("clusterSecurityGroupName",cdk().validateString)(properties.clusterSecurityGroupName)),errors.collect(cdk().propertyValidator("ec2SecurityGroupName",cdk().validateString)(properties.ec2SecurityGroupName)),errors.collect(cdk().propertyValidator("ec2SecurityGroupOwnerId",cdk().validateString)(properties.ec2SecurityGroupOwnerId)),errors.wrap('supplied properties not correct for "CfnClusterSecurityGroupIngressProps"')}function convertCfnClusterSecurityGroupIngressPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClusterSecurityGroupIngressPropsValidator(properties).assertSuccess(),{CIDRIP:cdk().stringToCloudFormation(properties.cidrip),ClusterSecurityGroupName:cdk().stringToCloudFormation(properties.clusterSecurityGroupName),EC2SecurityGroupName:cdk().stringToCloudFormation(properties.ec2SecurityGroupName),EC2SecurityGroupOwnerId:cdk().stringToCloudFormation(properties.ec2SecurityGroupOwnerId)}):properties}function CfnClusterSecurityGroupIngressPropsFromCloudFormation(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("cidrip","CIDRIP",properties.CIDRIP!=null?cfn_parse().FromCloudFormation.getString(properties.CIDRIP):void 0),ret.addPropertyResult("cl