UNPKG

@cdktf/provider-aws

Version:

Prebuilt aws Provider for Terraform CDK (cdktf)

1,315 lines (1,314 loc) 220 kB
"use strict"; var _a, _b, _c, _d, _e, _f; Object.defineProperty(exports, "__esModule", { value: true }); exports.RedshiftCluster = exports.RedshiftClusterTimeoutsOutputReference = exports.redshiftClusterTimeoutsToHclTerraform = exports.redshiftClusterTimeoutsToTerraform = exports.RedshiftClusterSnapshotCopyOutputReference = exports.redshiftClusterSnapshotCopyToHclTerraform = exports.redshiftClusterSnapshotCopyToTerraform = exports.RedshiftClusterLoggingOutputReference = exports.redshiftClusterLoggingToHclTerraform = exports.redshiftClusterLoggingToTerraform = exports.RedshiftClusterClusterNodesList = exports.RedshiftClusterClusterNodesOutputReference = exports.redshiftClusterClusterNodesToHclTerraform = exports.redshiftClusterClusterNodesToTerraform = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const cdktf = require("cdktf"); function redshiftClusterClusterNodesToTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } return {}; } exports.redshiftClusterClusterNodesToTerraform = redshiftClusterClusterNodesToTerraform; function redshiftClusterClusterNodesToHclTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } const attrs = {}; return attrs; } exports.redshiftClusterClusterNodesToHclTerraform = redshiftClusterClusterNodesToHclTerraform; class RedshiftClusterClusterNodesOutputReference extends cdktf.ComplexObject { /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param complexObjectIndex the index of this item in the list * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource, terraformAttribute, complexObjectIndex, complexObjectIsFromSet) { super(terraformResource, terraformAttribute, complexObjectIsFromSet, complexObjectIndex); this.isEmptyObject = false; } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; } else { this.isEmptyObject = Object.keys(value).length === 0; } } // node_role - computed: true, optional: false, required: false get nodeRole() { return this.getStringAttribute('node_role'); } // private_ip_address - computed: true, optional: false, required: false get privateIpAddress() { return this.getStringAttribute('private_ip_address'); } // public_ip_address - computed: true, optional: false, required: false get publicIpAddress() { return this.getStringAttribute('public_ip_address'); } } exports.RedshiftClusterClusterNodesOutputReference = RedshiftClusterClusterNodesOutputReference; _a = JSII_RTTI_SYMBOL_1; RedshiftClusterClusterNodesOutputReference[_a] = { fqn: "@cdktf/provider-aws.redshiftCluster.RedshiftClusterClusterNodesOutputReference", version: "19.50.0" }; class RedshiftClusterClusterNodesList extends cdktf.ComplexList { /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource, terraformAttribute, wrapsSet) { super(terraformResource, terraformAttribute, wrapsSet); this.terraformResource = terraformResource; this.terraformAttribute = terraformAttribute; this.wrapsSet = wrapsSet; } /** * @param index the index of the item to return */ get(index) { return new RedshiftClusterClusterNodesOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet); } } exports.RedshiftClusterClusterNodesList = RedshiftClusterClusterNodesList; _b = JSII_RTTI_SYMBOL_1; RedshiftClusterClusterNodesList[_b] = { fqn: "@cdktf/provider-aws.redshiftCluster.RedshiftClusterClusterNodesList", version: "19.50.0" }; function redshiftClusterLoggingToTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } return { bucket_name: cdktf.stringToTerraform(struct.bucketName), enable: cdktf.booleanToTerraform(struct.enable), log_destination_type: cdktf.stringToTerraform(struct.logDestinationType), log_exports: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.logExports), s3_key_prefix: cdktf.stringToTerraform(struct.s3KeyPrefix), }; } exports.redshiftClusterLoggingToTerraform = redshiftClusterLoggingToTerraform; function redshiftClusterLoggingToHclTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } const attrs = { bucket_name: { value: cdktf.stringToHclTerraform(struct.bucketName), isBlock: false, type: "simple", storageClassType: "string", }, enable: { value: cdktf.booleanToHclTerraform(struct.enable), isBlock: false, type: "simple", storageClassType: "boolean", }, log_destination_type: { value: cdktf.stringToHclTerraform(struct.logDestinationType), isBlock: false, type: "simple", storageClassType: "string", }, log_exports: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.logExports), isBlock: false, type: "set", storageClassType: "stringList", }, s3_key_prefix: { value: cdktf.stringToHclTerraform(struct.s3KeyPrefix), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.redshiftClusterLoggingToHclTerraform = redshiftClusterLoggingToHclTerraform; class RedshiftClusterLoggingOutputReference extends cdktf.ComplexObject { /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource, terraformAttribute) { super(terraformResource, terraformAttribute, false, 0); this.isEmptyObject = false; } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._bucketName !== undefined) { hasAnyValues = true; internalValueResult.bucketName = this._bucketName; } if (this._enable !== undefined) { hasAnyValues = true; internalValueResult.enable = this._enable; } if (this._logDestinationType !== undefined) { hasAnyValues = true; internalValueResult.logDestinationType = this._logDestinationType; } if (this._logExports !== undefined) { hasAnyValues = true; internalValueResult.logExports = this._logExports; } if (this._s3KeyPrefix !== undefined) { hasAnyValues = true; internalValueResult.s3KeyPrefix = this._s3KeyPrefix; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._bucketName = undefined; this._enable = undefined; this._logDestinationType = undefined; this._logExports = undefined; this._s3KeyPrefix = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._bucketName = value.bucketName; this._enable = value.enable; this._logDestinationType = value.logDestinationType; this._logExports = value.logExports; this._s3KeyPrefix = value.s3KeyPrefix; } } get bucketName() { return this.getStringAttribute('bucket_name'); } set bucketName(value) { this._bucketName = value; } resetBucketName() { this._bucketName = undefined; } // Temporarily expose input value. Use with caution. get bucketNameInput() { return this._bucketName; } get enable() { return this.getBooleanAttribute('enable'); } set enable(value) { this._enable = value; } // Temporarily expose input value. Use with caution. get enableInput() { return this._enable; } get logDestinationType() { return this.getStringAttribute('log_destination_type'); } set logDestinationType(value) { this._logDestinationType = value; } resetLogDestinationType() { this._logDestinationType = undefined; } // Temporarily expose input value. Use with caution. get logDestinationTypeInput() { return this._logDestinationType; } get logExports() { return cdktf.Fn.tolist(this.getListAttribute('log_exports')); } set logExports(value) { this._logExports = value; } resetLogExports() { this._logExports = undefined; } // Temporarily expose input value. Use with caution. get logExportsInput() { return this._logExports; } get s3KeyPrefix() { return this.getStringAttribute('s3_key_prefix'); } set s3KeyPrefix(value) { this._s3KeyPrefix = value; } resetS3KeyPrefix() { this._s3KeyPrefix = undefined; } // Temporarily expose input value. Use with caution. get s3KeyPrefixInput() { return this._s3KeyPrefix; } } exports.RedshiftClusterLoggingOutputReference = RedshiftClusterLoggingOutputReference; _c = JSII_RTTI_SYMBOL_1; RedshiftClusterLoggingOutputReference[_c] = { fqn: "@cdktf/provider-aws.redshiftCluster.RedshiftClusterLoggingOutputReference", version: "19.50.0" }; function redshiftClusterSnapshotCopyToTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } return { destination_region: cdktf.stringToTerraform(struct.destinationRegion), grant_name: cdktf.stringToTerraform(struct.grantName), retention_period: cdktf.numberToTerraform(struct.retentionPeriod), }; } exports.redshiftClusterSnapshotCopyToTerraform = redshiftClusterSnapshotCopyToTerraform; function redshiftClusterSnapshotCopyToHclTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } const attrs = { destination_region: { value: cdktf.stringToHclTerraform(struct.destinationRegion), isBlock: false, type: "simple", storageClassType: "string", }, grant_name: { value: cdktf.stringToHclTerraform(struct.grantName), isBlock: false, type: "simple", storageClassType: "string", }, retention_period: { value: cdktf.numberToHclTerraform(struct.retentionPeriod), isBlock: false, type: "simple", storageClassType: "number", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.redshiftClusterSnapshotCopyToHclTerraform = redshiftClusterSnapshotCopyToHclTerraform; class RedshiftClusterSnapshotCopyOutputReference extends cdktf.ComplexObject { /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource, terraformAttribute) { super(terraformResource, terraformAttribute, false, 0); this.isEmptyObject = false; } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._destinationRegion !== undefined) { hasAnyValues = true; internalValueResult.destinationRegion = this._destinationRegion; } if (this._grantName !== undefined) { hasAnyValues = true; internalValueResult.grantName = this._grantName; } if (this._retentionPeriod !== undefined) { hasAnyValues = true; internalValueResult.retentionPeriod = this._retentionPeriod; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._destinationRegion = undefined; this._grantName = undefined; this._retentionPeriod = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._destinationRegion = value.destinationRegion; this._grantName = value.grantName; this._retentionPeriod = value.retentionPeriod; } } get destinationRegion() { return this.getStringAttribute('destination_region'); } set destinationRegion(value) { this._destinationRegion = value; } // Temporarily expose input value. Use with caution. get destinationRegionInput() { return this._destinationRegion; } get grantName() { return this.getStringAttribute('grant_name'); } set grantName(value) { this._grantName = value; } resetGrantName() { this._grantName = undefined; } // Temporarily expose input value. Use with caution. get grantNameInput() { return this._grantName; } get retentionPeriod() { return this.getNumberAttribute('retention_period'); } set retentionPeriod(value) { this._retentionPeriod = value; } resetRetentionPeriod() { this._retentionPeriod = undefined; } // Temporarily expose input value. Use with caution. get retentionPeriodInput() { return this._retentionPeriod; } } exports.RedshiftClusterSnapshotCopyOutputReference = RedshiftClusterSnapshotCopyOutputReference; _d = JSII_RTTI_SYMBOL_1; RedshiftClusterSnapshotCopyOutputReference[_d] = { fqn: "@cdktf/provider-aws.redshiftCluster.RedshiftClusterSnapshotCopyOutputReference", version: "19.50.0" }; function redshiftClusterTimeoutsToTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } return { create: cdktf.stringToTerraform(struct.create), delete: cdktf.stringToTerraform(struct.delete), update: cdktf.stringToTerraform(struct.update), }; } exports.redshiftClusterTimeoutsToTerraform = redshiftClusterTimeoutsToTerraform; function redshiftClusterTimeoutsToHclTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } const attrs = { create: { value: cdktf.stringToHclTerraform(struct.create), isBlock: false, type: "simple", storageClassType: "string", }, delete: { value: cdktf.stringToHclTerraform(struct.delete), isBlock: false, type: "simple", storageClassType: "string", }, update: { value: cdktf.stringToHclTerraform(struct.update), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.redshiftClusterTimeoutsToHclTerraform = redshiftClusterTimeoutsToHclTerraform; class RedshiftClusterTimeoutsOutputReference extends cdktf.ComplexObject { /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource, terraformAttribute) { super(terraformResource, terraformAttribute, false); this.isEmptyObject = false; } get internalValue() { if (this.resolvableValue) { return this.resolvableValue; } let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._create !== undefined) { hasAnyValues = true; internalValueResult.create = this._create; } if (this._delete !== undefined) { hasAnyValues = true; internalValueResult.delete = this._delete; } if (this._update !== undefined) { hasAnyValues = true; internalValueResult.update = this._update; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._create = undefined; this._delete = undefined; this._update = undefined; } else if (cdktf.Tokenization.isResolvable(value)) { this.isEmptyObject = false; this.resolvableValue = value; } else { this.isEmptyObject = Object.keys(value).length === 0; this.resolvableValue = undefined; this._create = value.create; this._delete = value.delete; this._update = value.update; } } get create() { return this.getStringAttribute('create'); } set create(value) { this._create = value; } resetCreate() { this._create = undefined; } // Temporarily expose input value. Use with caution. get createInput() { return this._create; } get delete() { return this.getStringAttribute('delete'); } set delete(value) { this._delete = value; } resetDelete() { this._delete = undefined; } // Temporarily expose input value. Use with caution. get deleteInput() { return this._delete; } get update() { return this.getStringAttribute('update'); } set update(value) { this._update = value; } resetUpdate() { this._update = undefined; } // Temporarily expose input value. Use with caution. get updateInput() { return this._update; } } exports.RedshiftClusterTimeoutsOutputReference = RedshiftClusterTimeoutsOutputReference; _e = JSII_RTTI_SYMBOL_1; RedshiftClusterTimeoutsOutputReference[_e] = { fqn: "@cdktf/provider-aws.redshiftCluster.RedshiftClusterTimeoutsOutputReference", version: "19.50.0" }; /** * Represents a {@link https://registry.terraform.io/providers/hashicorp/aws/5.84.0/docs/resources/redshift_cluster aws_redshift_cluster} */ class RedshiftCluster extends cdktf.TerraformResource { // ============== // STATIC Methods // ============== /** * Generates CDKTF code for importing a RedshiftCluster resource upon running "cdktf plan <stack-name>" * @param scope The scope in which to define this construct * @param importToId The construct id used in the generated config for the RedshiftCluster to import * @param importFromId The id of the existing RedshiftCluster that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/aws/5.84.0/docs/resources/redshift_cluster#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the RedshiftCluster to import is found */ static generateConfigForImport(scope, importToId, importFromId, provider) { return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "aws_redshift_cluster", importId: importFromId, provider }); } // =========== // INITIALIZER // =========== /** * Create a new {@link https://registry.terraform.io/providers/hashicorp/aws/5.84.0/docs/resources/redshift_cluster aws_redshift_cluster} Resource * * @param scope The scope in which to define this construct * @param id The scoped construct ID. Must be unique amongst siblings in the same scope * @param options RedshiftClusterConfig */ constructor(scope, id, config) { super(scope, id, { terraformResourceType: 'aws_redshift_cluster', terraformGeneratorMetadata: { providerName: 'aws', providerVersion: '5.84.0', providerVersionConstraint: '~> 5.0' }, provider: config.provider, dependsOn: config.dependsOn, count: config.count, lifecycle: config.lifecycle, provisioners: config.provisioners, connection: config.connection, forEach: config.forEach }); // cluster_nodes - computed: true, optional: false, required: false this._clusterNodes = new RedshiftClusterClusterNodesList(this, "cluster_nodes", false); // logging - computed: false, optional: true, required: false this._logging = new RedshiftClusterLoggingOutputReference(this, "logging"); // snapshot_copy - computed: false, optional: true, required: false this._snapshotCopy = new RedshiftClusterSnapshotCopyOutputReference(this, "snapshot_copy"); // timeouts - computed: false, optional: true, required: false this._timeouts = new RedshiftClusterTimeoutsOutputReference(this, "timeouts"); this._allowVersionUpgrade = config.allowVersionUpgrade; this._applyImmediately = config.applyImmediately; this._aquaConfigurationStatus = config.aquaConfigurationStatus; this._automatedSnapshotRetentionPeriod = config.automatedSnapshotRetentionPeriod; this._availabilityZone = config.availabilityZone; this._availabilityZoneRelocationEnabled = config.availabilityZoneRelocationEnabled; this._clusterIdentifier = config.clusterIdentifier; this._clusterParameterGroupName = config.clusterParameterGroupName; this._clusterPublicKey = config.clusterPublicKey; this._clusterRevisionNumber = config.clusterRevisionNumber; this._clusterSubnetGroupName = config.clusterSubnetGroupName; this._clusterType = config.clusterType; this._clusterVersion = config.clusterVersion; this._databaseName = config.databaseName; this._defaultIamRoleArn = config.defaultIamRoleArn; this._elasticIp = config.elasticIp; this._encrypted = config.encrypted; this._endpoint = config.endpoint; this._enhancedVpcRouting = config.enhancedVpcRouting; this._finalSnapshotIdentifier = config.finalSnapshotIdentifier; this._iamRoles = config.iamRoles; this._id = config.id; this._kmsKeyId = config.kmsKeyId; this._maintenanceTrackName = config.maintenanceTrackName; this._manageMasterPassword = config.manageMasterPassword; this._manualSnapshotRetentionPeriod = config.manualSnapshotRetentionPeriod; this._masterPassword = config.masterPassword; this._masterPasswordSecretKmsKeyId = config.masterPasswordSecretKmsKeyId; this._masterUsername = config.masterUsername; this._multiAz = config.multiAz; this._nodeType = config.nodeType; this._numberOfNodes = config.numberOfNodes; this._ownerAccount = config.ownerAccount; this._port = config.port; this._preferredMaintenanceWindow = config.preferredMaintenanceWindow; this._publiclyAccessible = config.publiclyAccessible; this._skipFinalSnapshot = config.skipFinalSnapshot; this._snapshotArn = config.snapshotArn; this._snapshotClusterIdentifier = config.snapshotClusterIdentifier; this._snapshotIdentifier = config.snapshotIdentifier; this._tags = config.tags; this._tagsAll = config.tagsAll; this._vpcSecurityGroupIds = config.vpcSecurityGroupIds; this._logging.internalValue = config.logging; this._snapshotCopy.internalValue = config.snapshotCopy; this._timeouts.internalValue = config.timeouts; } get allowVersionUpgrade() { return this.getBooleanAttribute('allow_version_upgrade'); } set allowVersionUpgrade(value) { this._allowVersionUpgrade = value; } resetAllowVersionUpgrade() { this._allowVersionUpgrade = undefined; } // Temporarily expose input value. Use with caution. get allowVersionUpgradeInput() { return this._allowVersionUpgrade; } get applyImmediately() { return this.getBooleanAttribute('apply_immediately'); } set applyImmediately(value) { this._applyImmediately = value; } resetApplyImmediately() { this._applyImmediately = undefined; } // Temporarily expose input value. Use with caution. get applyImmediatelyInput() { return this._applyImmediately; } get aquaConfigurationStatus() { return this.getStringAttribute('aqua_configuration_status'); } set aquaConfigurationStatus(value) { this._aquaConfigurationStatus = value; } resetAquaConfigurationStatus() { this._aquaConfigurationStatus = undefined; } // Temporarily expose input value. Use with caution. get aquaConfigurationStatusInput() { return this._aquaConfigurationStatus; } // arn - computed: true, optional: false, required: false get arn() { return this.getStringAttribute('arn'); } get automatedSnapshotRetentionPeriod() { return this.getNumberAttribute('automated_snapshot_retention_period'); } set automatedSnapshotRetentionPeriod(value) { this._automatedSnapshotRetentionPeriod = value; } resetAutomatedSnapshotRetentionPeriod() { this._automatedSnapshotRetentionPeriod = undefined; } // Temporarily expose input value. Use with caution. get automatedSnapshotRetentionPeriodInput() { return this._automatedSnapshotRetentionPeriod; } get availabilityZone() { return this.getStringAttribute('availability_zone'); } set availabilityZone(value) { this._availabilityZone = value; } resetAvailabilityZone() { this._availabilityZone = undefined; } // Temporarily expose input value. Use with caution. get availabilityZoneInput() { return this._availabilityZone; } get availabilityZoneRelocationEnabled() { return this.getBooleanAttribute('availability_zone_relocation_enabled'); } set availabilityZoneRelocationEnabled(value) { this._availabilityZoneRelocationEnabled = value; } resetAvailabilityZoneRelocationEnabled() { this._availabilityZoneRelocationEnabled = undefined; } // Temporarily expose input value. Use with caution. get availabilityZoneRelocationEnabledInput() { return this._availabilityZoneRelocationEnabled; } get clusterIdentifier() { return this.getStringAttribute('cluster_identifier'); } set clusterIdentifier(value) { this._clusterIdentifier = value; } // Temporarily expose input value. Use with caution. get clusterIdentifierInput() { return this._clusterIdentifier; } // cluster_namespace_arn - computed: true, optional: false, required: false get clusterNamespaceArn() { return this.getStringAttribute('cluster_namespace_arn'); } get clusterNodes() { return this._clusterNodes; } get clusterParameterGroupName() { return this.getStringAttribute('cluster_parameter_group_name'); } set clusterParameterGroupName(value) { this._clusterParameterGroupName = value; } resetClusterParameterGroupName() { this._clusterParameterGroupName = undefined; } // Temporarily expose input value. Use with caution. get clusterParameterGroupNameInput() { return this._clusterParameterGroupName; } get clusterPublicKey() { return this.getStringAttribute('cluster_public_key'); } set clusterPublicKey(value) { this._clusterPublicKey = value; } resetClusterPublicKey() { this._clusterPublicKey = undefined; } // Temporarily expose input value. Use with caution. get clusterPublicKeyInput() { return this._clusterPublicKey; } get clusterRevisionNumber() { return this.getStringAttribute('cluster_revision_number'); } set clusterRevisionNumber(value) { this._clusterRevisionNumber = value; } resetClusterRevisionNumber() { this._clusterRevisionNumber = undefined; } // Temporarily expose input value. Use with caution. get clusterRevisionNumberInput() { return this._clusterRevisionNumber; } get clusterSubnetGroupName() { return this.getStringAttribute('cluster_subnet_group_name'); } set clusterSubnetGroupName(value) { this._clusterSubnetGroupName = value; } resetClusterSubnetGroupName() { this._clusterSubnetGroupName = undefined; } // Temporarily expose input value. Use with caution. get clusterSubnetGroupNameInput() { return this._clusterSubnetGroupName; } get clusterType() { return this.getStringAttribute('cluster_type'); } set clusterType(value) { this._clusterType = value; } resetClusterType() { this._clusterType = undefined; } // Temporarily expose input value. Use with caution. get clusterTypeInput() { return this._clusterType; } get clusterVersion() { return this.getStringAttribute('cluster_version'); } set clusterVersion(value) { this._clusterVersion = value; } resetClusterVersion() { this._clusterVersion = undefined; } // Temporarily expose input value. Use with caution. get clusterVersionInput() { return this._clusterVersion; } get databaseName() { return this.getStringAttribute('database_name'); } set databaseName(value) { this._databaseName = value; } resetDatabaseName() { this._databaseName = undefined; } // Temporarily expose input value. Use with caution. get databaseNameInput() { return this._databaseName; } get defaultIamRoleArn() { return this.getStringAttribute('default_iam_role_arn'); } set defaultIamRoleArn(value) { this._defaultIamRoleArn = value; } resetDefaultIamRoleArn() { this._defaultIamRoleArn = undefined; } // Temporarily expose input value. Use with caution. get defaultIamRoleArnInput() { return this._defaultIamRoleArn; } // dns_name - computed: true, optional: false, required: false get dnsName() { return this.getStringAttribute('dns_name'); } get elasticIp() { return this.getStringAttribute('elastic_ip'); } set elasticIp(value) { this._elasticIp = value; } resetElasticIp() { this._elasticIp = undefined; } // Temporarily expose input value. Use with caution. get elasticIpInput() { return this._elasticIp; } get encrypted() { return this.getBooleanAttribute('encrypted'); } set encrypted(value) { this._encrypted = value; } resetEncrypted() { this._encrypted = undefined; } // Temporarily expose input value. Use with caution. get encryptedInput() { return this._encrypted; } get endpoint() { return this.getStringAttribute('endpoint'); } set endpoint(value) { this._endpoint = value; } resetEndpoint() { this._endpoint = undefined; } // Temporarily expose input value. Use with caution. get endpointInput() { return this._endpoint; } get enhancedVpcRouting() { return this.getBooleanAttribute('enhanced_vpc_routing'); } set enhancedVpcRouting(value) { this._enhancedVpcRouting = value; } resetEnhancedVpcRouting() { this._enhancedVpcRouting = undefined; } // Temporarily expose input value. Use with caution. get enhancedVpcRoutingInput() { return this._enhancedVpcRouting; } get finalSnapshotIdentifier() { return this.getStringAttribute('final_snapshot_identifier'); } set finalSnapshotIdentifier(value) { this._finalSnapshotIdentifier = value; } resetFinalSnapshotIdentifier() { this._finalSnapshotIdentifier = undefined; } // Temporarily expose input value. Use with caution. get finalSnapshotIdentifierInput() { return this._finalSnapshotIdentifier; } get iamRoles() { return cdktf.Fn.tolist(this.getListAttribute('iam_roles')); } set iamRoles(value) { this._iamRoles = value; } resetIamRoles() { this._iamRoles = undefined; } // Temporarily expose input value. Use with caution. get iamRolesInput() { return this._iamRoles; } get id() { return this.getStringAttribute('id'); } set id(value) { this._id = value; } resetId() { this._id = undefined; } // Temporarily expose input value. Use with caution. get idInput() { return this._id; } get kmsKeyId() { return this.getStringAttribute('kms_key_id'); } set kmsKeyId(value) { this._kmsKeyId = value; } resetKmsKeyId() { this._kmsKeyId = undefined; } // Temporarily expose input value. Use with caution. get kmsKeyIdInput() { return this._kmsKeyId; } get maintenanceTrackName() { return this.getStringAttribute('maintenance_track_name'); } set maintenanceTrackName(value) { this._maintenanceTrackName = value; } resetMaintenanceTrackName() { this._maintenanceTrackName = undefined; } // Temporarily expose input value. Use with caution. get maintenanceTrackNameInput() { return this._maintenanceTrackName; } get manageMasterPassword() { return this.getBooleanAttribute('manage_master_password'); } set manageMasterPassword(value) { this._manageMasterPassword = value; } resetManageMasterPassword() { this._manageMasterPassword = undefined; } // Temporarily expose input value. Use with caution. get manageMasterPasswordInput() { return this._manageMasterPassword; } get manualSnapshotRetentionPeriod() { return this.getNumberAttribute('manual_snapshot_retention_period'); } set manualSnapshotRetentionPeriod(value) { this._manualSnapshotRetentionPeriod = value; } resetManualSnapshotRetentionPeriod() { this._manualSnapshotRetentionPeriod = undefined; } // Temporarily expose input value. Use with caution. get manualSnapshotRetentionPeriodInput() { return this._manualSnapshotRetentionPeriod; } get masterPassword() { return this.getStringAttribute('master_password'); } set masterPassword(value) { this._masterPassword = value; } resetMasterPassword() { this._masterPassword = undefined; } // Temporarily expose input value. Use with caution. get masterPasswordInput() { return this._masterPassword; } // master_password_secret_arn - computed: true, optional: false, required: false get masterPasswordSecretArn() { return this.getStringAttribute('master_password_secret_arn'); } get masterPasswordSecretKmsKeyId() { return this.getStringAttribute('master_password_secret_kms_key_id'); } set masterPasswordSecretKmsKeyId(value) { this._masterPasswordSecretKmsKeyId = value; } resetMasterPasswordSecretKmsKeyId() { this._masterPasswordSecretKmsKeyId = undefined; } // Temporarily expose input value. Use with caution. get masterPasswordSecretKmsKeyIdInput() { return this._masterPasswordSecretKmsKeyId; } get masterUsername() { return this.getStringAttribute('master_username'); } set masterUsername(value) { this._masterUsername = value; } resetMasterUsername() { this._masterUsername = undefined; } // Temporarily expose input value. Use with caution. get masterUsernameInput() { return this._masterUsername; } get multiAz() { return this.getBooleanAttribute('multi_az'); } set multiAz(value) { this._multiAz = value; } resetMultiAz() { this._multiAz = undefined; } // Temporarily expose input value. Use with caution. get multiAzInput() { return this._multiAz; } get nodeType() { return this.getStringAttribute('node_type'); } set nodeType(value) { this._nodeType = value; } // Temporarily expose input value. Use with caution. get nodeTypeInput() { return this._nodeType; } get numberOfNodes() { return this.getNumberAttribute('number_of_nodes'); } set numberOfNodes(value) { this._numberOfNodes = value; } resetNumberOfNodes() { this._numberOfNodes = undefined; } // Temporarily expose input value. Use with caution. get numberOfNodesInput() { return this._numberOfNodes; } get ownerAccount() { return this.getStringAttribute('owner_account'); } set ownerAccount(value) { this._ownerAccount = value; } resetOwnerAccount() { this._ownerAccount = undefined; } // Temporarily expose input value. Use with caution. get ownerAccountInput() { return this._ownerAccount; } get port() { return this.getNumberAttribute('port'); } set port(value) { this._port = value; } resetPort() { this._port = undefined; } // Temporarily expose input value. Use with caution. get portInput() { return this._port; } get preferredMaintenanceWindow() { return this.getStringAttribute('preferred_maintenance_window'); } set preferredMaintenanceWindow(value) { this._preferredMaintenanceWindow = value; } resetPreferredMaintenanceWindow() { this._preferredMaintenanceWindow = undefined; } // Temporarily expose input value. Use with caution. get preferredMaintenanceWindowInput() { return this._preferredMaintenanceWindow; } get publiclyAccessible() { return this.getBooleanAttribute('publicly_accessible'); } set publiclyAccessible(value) { this._publiclyAccessible = value; } resetPubliclyAccessible() { this._publiclyAccessible = undefined; } // Temporarily expose input value. Use with caution. get publiclyAccessibleInput() { return this._publiclyAccessible; } get skipFinalSnapshot() { return this.getBooleanAttribute('skip_final_snapshot'); } set skipFinalSnapshot(value) { this._skipFinalSnapshot = value; } resetSkipFinalSnapshot() { this._skipFinalSnapshot = undefined; } // Temporarily expose input value. Use with caution. get skipFinalSnapshotInput() { return this._skipFinalSnapshot; } get snapshotArn() { return this.getStringAttribute('snapshot_arn'); } set snapshotArn(value) { this._snapshotArn = value; } resetSnapshotArn() { this._snapshotArn = undefined; } // Temporarily expose input value. Use with caution. get snapshotArnInput() { return this._snapshotArn; } get snapshotClusterIdentifier() { return this.getStringAttribute('snapshot_cluster_identifier'); } set snapshotClusterIdentifier(value) { this._snapshotClusterIdentifier = value; } resetSnapshotClusterIdentifier() { this._snapshotClusterIdentifier = undefined; } // Temporarily expose input value. Use with caution. get snapshotClusterIdentifierInput() { return this._snapshotClusterIdentifier; } get snapshotIdentifier() { return this.getStringAttribute('snapshot_identifier'); } set snapshotIdentifier(value) { this._snapshotIdentifier = value; } resetSnapshotIdentifier() { this._snapshotIdentifier = undefined; } // Temporarily expose input value. Use with caution. get snapshotIdentifierInput() { return this._snapshotIdentifier; } get tags() { return this.getStringMapAttribute('tags'); } set tags(value) { this._tags = value; } resetTags() { this._tags = undefined; } // Temporarily expose input value. Use with caution. get tagsInput() { return this._tags; } get tagsAll() { return this.getStringMapAttribute('tags_all'); } set tagsAll(value) { this._tagsAll = value; } resetTagsAll() { this._tagsAll = undefined; } // Temporarily expose input value. Use with caution. get tagsAllInput() { return this._tagsAll; } get vpcSecurityGroupIds() { return cdktf.Fn.tolist(this.getListAttribute('vpc_security_group_ids')); } set vpcSecurityGroupIds(value) { this._vpcSecurityGroupIds = value; } resetVpcSecurityGroupIds() { this._vpcSecurityGroupIds = undefined; } // Temporarily expose input value. Use with caution. get vpcSecurityGroupIdsInput() { return this._vpcSecurityGroupIds; } get logging() { return this._logging; } putLogging(value) { this._logging.internalValue = value; } resetLogging() { this._logging.internalValue = undefined; } // Temporarily expose input value. Use with caution. get loggingInput() { return this._logging.internalValue; } get snapshotCopy() { return this._snapshotCopy; } putSnapshotCopy(value) { this._snapshotCopy.internalValue = value; } resetSnapshotCopy() { this._snapshotCopy.internalValue = undefined; } // Temporarily expose input value. Use with caution. get snapshotCopyInput() { return this._snapshotCopy.internalValue; } get timeouts() { return this._timeouts; } putTimeouts(value) { this._timeouts.internalValue = value; } resetTimeouts() { this._timeouts.internalValue = undefined; } // Temporarily expose input value. Use with caution. get timeoutsInput() { return this._timeouts.internalValue; } // ========= // SYNTHESIS // ========= synthesizeAttributes() { return { allow_version_upgrade: cdktf.booleanToTerraform(this._allowVersionUpgrade), apply_immediately: cdktf.booleanToTerraform(this._applyImmediately), aqua_configuration_status: cdktf.stringToTerraform(this._aquaConfigurationStatus), automated_snapshot_retention_period: cdktf.numberToTerraform(this._automatedSnapshotRetentionPeriod), availability_zone: cdktf.stringToTerraform(this._availabilityZone), availability_zone_relocation_enabled: cdktf.booleanToTerraform(this._availabilityZoneRelocationEnabled), cluster_identifier: cdktf.stringToTerraform(this._clusterIdentifier), cluster_parameter_group_name: cdktf.stringToTerraform(this._clusterParameterGroupName), cluster_public_key: cdktf.stringToTerraform(this._clusterPublicKey), cluster_revision_number: cdktf.stringToTerraform(this._clusterRevisionNumber), cluster_subnet_group_name: cdktf.stringToTerraform(this._clusterSubnetGroupName), cluster_type: cdktf.stringToTerraform(this._clusterType), cluster_version: cdktf.stringToTerraform(this._clusterVersion), database_name: cdktf.stringToTerraform(this._databaseName), default_iam_role_arn: cdktf.stringToTerraform(this._defaultIamRoleArn), elastic_ip: cdktf.stringToTerraform(this._elasticIp), encrypted: cdktf.booleanToTerraform(this._encrypted), endpoint: cdktf.stringToTerraform(this._endpoint), enhanced_vpc_routing: cdktf.booleanToTerraform(this._enhancedVpcRouting), final_snapshot_identifier: cdktf.stringToTerraform(this._finalSnapshotIdentifier), iam_roles: cdktf.listMapper(cdktf.stringToTerraform, false)(this._iamRoles), id: cdktf.stringToTerraform(this._id), kms_key_id: cdktf.stringToTerraform(this._kmsKeyId), maintenance_track_name: cdktf.stringToTerraform(this._maintenanceTrackName), manage_master_password: cdktf.booleanToTerraform(this._manageMasterPassword), manual_snapshot_retention_period: cdktf.numberToTerraform(this._manualSnapshotRetentionPeriod), master_password: cdktf.stringToTerraform(this._masterPassword), master_password_secret_kms_key_id: cdktf.stringToTerraform(this._masterPasswordSecretKmsKeyId), master_username: cdktf.stringToTerraform(this._masterUsername), multi_az: cdktf.booleanToTerraform(this._multiAz), node_type: cdktf.stringToTerraform(this._nodeType), number_of_nodes: cdktf.numberToTerraform(this._numberOfNodes), owner_account: cdktf.stringToTerraform(this._ownerAccount), port: cdktf.numberToTerraform(this._port), preferred_maintenance_window: cdktf.stringToTerraform(this._preferredMaintenanceWindow), publicly_accessible: cdktf.booleanToTerraform(this._publiclyAccessible), skip_final_snapshot: cdktf.booleanToTerraform(this._skipFinalSnapshot), snapshot_arn: cdktf.stringToTerraform(this._snapshotArn), snapshot_cluster_identifier: cdktf.stringToTerraform(this._snapshotClusterIdentifier), snapshot_identifier: cdktf.stringToTerraform(this._snapshotIdentifier), tags: cdktf.hashMapper(cdktf.stringToTerraform)(this._tags), tags_all: cdktf.hashMapper(cdktf.stringToTerraform)(this._tagsAll), vpc_security_group_ids: cdktf.listMapper(cdktf.stringToTerraform, false)(this._vpcSecurityGroupIds), logging: redshiftClusterLoggingToTerraform(this._logging.internalValue), snapshot_copy: redshiftClusterSnapshotCopyToTerraform(this._snapshotCopy.internalValue), timeouts: redshiftClusterTimeoutsToTerraform(this._timeouts.internalValue), }; } synthesizeHclAttributes() { const attrs = { allow_version_upgrade: { value: cdktf.booleanToHclTerraform(this._allowVersionUpgrade), isBlock: false, type: "simple", storageClassType: "boolean", }, apply_immediately: { value: cdktf.booleanToHclTerraform(this._applyImmediately), isBlock: false, type: "simple", storageClassType: "boolean", }, aqua_configuration_status: { value: cdktf.stringToHclTerraform(this._aquaConfigurationStatus), isBlock: false, type: "simple", storageClassType: "string", }, automated_snapshot_retention_period: { value: cdktf.numberToHclTerraform(this._automatedSnapshotRetentionPeriod), isBlock: false, type: "simple",