UNPKG

@cdktf/provider-aws

Version:

Prebuilt aws Provider for Terraform CDK (cdktf)

1,304 lines 230 kB
"use strict"; var _a, _b, _c, _d, _e, _f; Object.defineProperty(exports, "__esModule", { value: true }); exports.ElasticacheReplicationGroup = exports.ElasticacheReplicationGroupTimeoutsOutputReference = exports.ElasticacheReplicationGroupNodeGroupConfigurationList = exports.ElasticacheReplicationGroupNodeGroupConfigurationOutputReference = exports.ElasticacheReplicationGroupLogDeliveryConfigurationList = exports.ElasticacheReplicationGroupLogDeliveryConfigurationOutputReference = void 0; exports.elasticacheReplicationGroupLogDeliveryConfigurationToTerraform = elasticacheReplicationGroupLogDeliveryConfigurationToTerraform; exports.elasticacheReplicationGroupLogDeliveryConfigurationToHclTerraform = elasticacheReplicationGroupLogDeliveryConfigurationToHclTerraform; exports.elasticacheReplicationGroupNodeGroupConfigurationToTerraform = elasticacheReplicationGroupNodeGroupConfigurationToTerraform; exports.elasticacheReplicationGroupNodeGroupConfigurationToHclTerraform = elasticacheReplicationGroupNodeGroupConfigurationToHclTerraform; exports.elasticacheReplicationGroupTimeoutsToTerraform = elasticacheReplicationGroupTimeoutsToTerraform; exports.elasticacheReplicationGroupTimeoutsToHclTerraform = elasticacheReplicationGroupTimeoutsToHclTerraform; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const cdktf = require("cdktf"); function elasticacheReplicationGroupLogDeliveryConfigurationToTerraform(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: cdktf.stringToTerraform(struct.destination), destination_type: cdktf.stringToTerraform(struct.destinationType), log_format: cdktf.stringToTerraform(struct.logFormat), log_type: cdktf.stringToTerraform(struct.logType), }; } function elasticacheReplicationGroupLogDeliveryConfigurationToHclTerraform(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: { value: cdktf.stringToHclTerraform(struct.destination), isBlock: false, type: "simple", storageClassType: "string", }, destination_type: { value: cdktf.stringToHclTerraform(struct.destinationType), isBlock: false, type: "simple", storageClassType: "string", }, log_format: { value: cdktf.stringToHclTerraform(struct.logFormat), isBlock: false, type: "simple", storageClassType: "string", }, log_type: { value: cdktf.stringToHclTerraform(struct.logType), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class ElasticacheReplicationGroupLogDeliveryConfigurationOutputReference 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() { if (this.resolvableValue) { return this.resolvableValue; } let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._destination !== undefined) { hasAnyValues = true; internalValueResult.destination = this._destination; } if (this._destinationType !== undefined) { hasAnyValues = true; internalValueResult.destinationType = this._destinationType; } if (this._logFormat !== undefined) { hasAnyValues = true; internalValueResult.logFormat = this._logFormat; } if (this._logType !== undefined) { hasAnyValues = true; internalValueResult.logType = this._logType; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._destination = undefined; this._destinationType = undefined; this._logFormat = undefined; this._logType = 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._destination = value.destination; this._destinationType = value.destinationType; this._logFormat = value.logFormat; this._logType = value.logType; } } get destination() { return this.getStringAttribute('destination'); } set destination(value) { this._destination = value; } // Temporarily expose input value. Use with caution. get destinationInput() { return this._destination; } get destinationType() { return this.getStringAttribute('destination_type'); } set destinationType(value) { this._destinationType = value; } // Temporarily expose input value. Use with caution. get destinationTypeInput() { return this._destinationType; } get logFormat() { return this.getStringAttribute('log_format'); } set logFormat(value) { this._logFormat = value; } // Temporarily expose input value. Use with caution. get logFormatInput() { return this._logFormat; } get logType() { return this.getStringAttribute('log_type'); } set logType(value) { this._logType = value; } // Temporarily expose input value. Use with caution. get logTypeInput() { return this._logType; } } exports.ElasticacheReplicationGroupLogDeliveryConfigurationOutputReference = ElasticacheReplicationGroupLogDeliveryConfigurationOutputReference; _a = JSII_RTTI_SYMBOL_1; ElasticacheReplicationGroupLogDeliveryConfigurationOutputReference[_a] = { fqn: "@cdktf/provider-aws.elasticacheReplicationGroup.ElasticacheReplicationGroupLogDeliveryConfigurationOutputReference", version: "21.22.1" }; class ElasticacheReplicationGroupLogDeliveryConfigurationList 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 ElasticacheReplicationGroupLogDeliveryConfigurationOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet); } } exports.ElasticacheReplicationGroupLogDeliveryConfigurationList = ElasticacheReplicationGroupLogDeliveryConfigurationList; _b = JSII_RTTI_SYMBOL_1; ElasticacheReplicationGroupLogDeliveryConfigurationList[_b] = { fqn: "@cdktf/provider-aws.elasticacheReplicationGroup.ElasticacheReplicationGroupLogDeliveryConfigurationList", version: "21.22.1" }; function elasticacheReplicationGroupNodeGroupConfigurationToTerraform(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 { node_group_id: cdktf.stringToTerraform(struct.nodeGroupId), primary_availability_zone: cdktf.stringToTerraform(struct.primaryAvailabilityZone), primary_outpost_arn: cdktf.stringToTerraform(struct.primaryOutpostArn), replica_availability_zones: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.replicaAvailabilityZones), replica_count: cdktf.numberToTerraform(struct.replicaCount), replica_outpost_arns: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.replicaOutpostArns), slots: cdktf.stringToTerraform(struct.slots), }; } function elasticacheReplicationGroupNodeGroupConfigurationToHclTerraform(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 = { node_group_id: { value: cdktf.stringToHclTerraform(struct.nodeGroupId), isBlock: false, type: "simple", storageClassType: "string", }, primary_availability_zone: { value: cdktf.stringToHclTerraform(struct.primaryAvailabilityZone), isBlock: false, type: "simple", storageClassType: "string", }, primary_outpost_arn: { value: cdktf.stringToHclTerraform(struct.primaryOutpostArn), isBlock: false, type: "simple", storageClassType: "string", }, replica_availability_zones: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.replicaAvailabilityZones), isBlock: false, type: "list", storageClassType: "stringList", }, replica_count: { value: cdktf.numberToHclTerraform(struct.replicaCount), isBlock: false, type: "simple", storageClassType: "number", }, replica_outpost_arns: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.replicaOutpostArns), isBlock: false, type: "list", storageClassType: "stringList", }, slots: { value: cdktf.stringToHclTerraform(struct.slots), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class ElasticacheReplicationGroupNodeGroupConfigurationOutputReference 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() { if (this.resolvableValue) { return this.resolvableValue; } let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._nodeGroupId !== undefined) { hasAnyValues = true; internalValueResult.nodeGroupId = this._nodeGroupId; } if (this._primaryAvailabilityZone !== undefined) { hasAnyValues = true; internalValueResult.primaryAvailabilityZone = this._primaryAvailabilityZone; } if (this._primaryOutpostArn !== undefined) { hasAnyValues = true; internalValueResult.primaryOutpostArn = this._primaryOutpostArn; } if (this._replicaAvailabilityZones !== undefined) { hasAnyValues = true; internalValueResult.replicaAvailabilityZones = this._replicaAvailabilityZones; } if (this._replicaCount !== undefined) { hasAnyValues = true; internalValueResult.replicaCount = this._replicaCount; } if (this._replicaOutpostArns !== undefined) { hasAnyValues = true; internalValueResult.replicaOutpostArns = this._replicaOutpostArns; } if (this._slots !== undefined) { hasAnyValues = true; internalValueResult.slots = this._slots; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._nodeGroupId = undefined; this._primaryAvailabilityZone = undefined; this._primaryOutpostArn = undefined; this._replicaAvailabilityZones = undefined; this._replicaCount = undefined; this._replicaOutpostArns = undefined; this._slots = 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._nodeGroupId = value.nodeGroupId; this._primaryAvailabilityZone = value.primaryAvailabilityZone; this._primaryOutpostArn = value.primaryOutpostArn; this._replicaAvailabilityZones = value.replicaAvailabilityZones; this._replicaCount = value.replicaCount; this._replicaOutpostArns = value.replicaOutpostArns; this._slots = value.slots; } } get nodeGroupId() { return this.getStringAttribute('node_group_id'); } set nodeGroupId(value) { this._nodeGroupId = value; } resetNodeGroupId() { this._nodeGroupId = undefined; } // Temporarily expose input value. Use with caution. get nodeGroupIdInput() { return this._nodeGroupId; } get primaryAvailabilityZone() { return this.getStringAttribute('primary_availability_zone'); } set primaryAvailabilityZone(value) { this._primaryAvailabilityZone = value; } resetPrimaryAvailabilityZone() { this._primaryAvailabilityZone = undefined; } // Temporarily expose input value. Use with caution. get primaryAvailabilityZoneInput() { return this._primaryAvailabilityZone; } get primaryOutpostArn() { return this.getStringAttribute('primary_outpost_arn'); } set primaryOutpostArn(value) { this._primaryOutpostArn = value; } resetPrimaryOutpostArn() { this._primaryOutpostArn = undefined; } // Temporarily expose input value. Use with caution. get primaryOutpostArnInput() { return this._primaryOutpostArn; } get replicaAvailabilityZones() { return this.getListAttribute('replica_availability_zones'); } set replicaAvailabilityZones(value) { this._replicaAvailabilityZones = value; } resetReplicaAvailabilityZones() { this._replicaAvailabilityZones = undefined; } // Temporarily expose input value. Use with caution. get replicaAvailabilityZonesInput() { return this._replicaAvailabilityZones; } get replicaCount() { return this.getNumberAttribute('replica_count'); } set replicaCount(value) { this._replicaCount = value; } resetReplicaCount() { this._replicaCount = undefined; } // Temporarily expose input value. Use with caution. get replicaCountInput() { return this._replicaCount; } get replicaOutpostArns() { return this.getListAttribute('replica_outpost_arns'); } set replicaOutpostArns(value) { this._replicaOutpostArns = value; } resetReplicaOutpostArns() { this._replicaOutpostArns = undefined; } // Temporarily expose input value. Use with caution. get replicaOutpostArnsInput() { return this._replicaOutpostArns; } get slots() { return this.getStringAttribute('slots'); } set slots(value) { this._slots = value; } resetSlots() { this._slots = undefined; } // Temporarily expose input value. Use with caution. get slotsInput() { return this._slots; } } exports.ElasticacheReplicationGroupNodeGroupConfigurationOutputReference = ElasticacheReplicationGroupNodeGroupConfigurationOutputReference; _c = JSII_RTTI_SYMBOL_1; ElasticacheReplicationGroupNodeGroupConfigurationOutputReference[_c] = { fqn: "@cdktf/provider-aws.elasticacheReplicationGroup.ElasticacheReplicationGroupNodeGroupConfigurationOutputReference", version: "21.22.1" }; class ElasticacheReplicationGroupNodeGroupConfigurationList 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 ElasticacheReplicationGroupNodeGroupConfigurationOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet); } } exports.ElasticacheReplicationGroupNodeGroupConfigurationList = ElasticacheReplicationGroupNodeGroupConfigurationList; _d = JSII_RTTI_SYMBOL_1; ElasticacheReplicationGroupNodeGroupConfigurationList[_d] = { fqn: "@cdktf/provider-aws.elasticacheReplicationGroup.ElasticacheReplicationGroupNodeGroupConfigurationList", version: "21.22.1" }; function elasticacheReplicationGroupTimeoutsToTerraform(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), }; } function elasticacheReplicationGroupTimeoutsToHclTerraform(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)); } class ElasticacheReplicationGroupTimeoutsOutputReference 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.ElasticacheReplicationGroupTimeoutsOutputReference = ElasticacheReplicationGroupTimeoutsOutputReference; _e = JSII_RTTI_SYMBOL_1; ElasticacheReplicationGroupTimeoutsOutputReference[_e] = { fqn: "@cdktf/provider-aws.elasticacheReplicationGroup.ElasticacheReplicationGroupTimeoutsOutputReference", version: "21.22.1" }; /** * Represents a {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/elasticache_replication_group aws_elasticache_replication_group} */ class ElasticacheReplicationGroup extends cdktf.TerraformResource { // ============== // STATIC Methods // ============== /** * Generates CDKTF code for importing a ElasticacheReplicationGroup 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 ElasticacheReplicationGroup to import * @param importFromId The id of the existing ElasticacheReplicationGroup that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/elasticache_replication_group#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the ElasticacheReplicationGroup to import is found */ static generateConfigForImport(scope, importToId, importFromId, provider) { return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "aws_elasticache_replication_group", importId: importFromId, provider }); } // =========== // INITIALIZER // =========== /** * Create a new {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/elasticache_replication_group aws_elasticache_replication_group} 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 ElasticacheReplicationGroupConfig */ constructor(scope, id, config) { super(scope, id, { terraformResourceType: 'aws_elasticache_replication_group', terraformGeneratorMetadata: { providerName: 'aws', providerVersion: '6.25.0', providerVersionConstraint: '~> 6.0' }, provider: config.provider, dependsOn: config.dependsOn, count: config.count, lifecycle: config.lifecycle, provisioners: config.provisioners, connection: config.connection, forEach: config.forEach }); // log_delivery_configuration - computed: false, optional: true, required: false this._logDeliveryConfiguration = new ElasticacheReplicationGroupLogDeliveryConfigurationList(this, "log_delivery_configuration", true); // node_group_configuration - computed: false, optional: true, required: false this._nodeGroupConfiguration = new ElasticacheReplicationGroupNodeGroupConfigurationList(this, "node_group_configuration", true); // timeouts - computed: false, optional: true, required: false this._timeouts = new ElasticacheReplicationGroupTimeoutsOutputReference(this, "timeouts"); this._applyImmediately = config.applyImmediately; this._atRestEncryptionEnabled = config.atRestEncryptionEnabled; this._authToken = config.authToken; this._authTokenUpdateStrategy = config.authTokenUpdateStrategy; this._autoMinorVersionUpgrade = config.autoMinorVersionUpgrade; this._automaticFailoverEnabled = config.automaticFailoverEnabled; this._clusterMode = config.clusterMode; this._dataTieringEnabled = config.dataTieringEnabled; this._description = config.description; this._engine = config.engine; this._engineVersion = config.engineVersion; this._finalSnapshotIdentifier = config.finalSnapshotIdentifier; this._globalReplicationGroupId = config.globalReplicationGroupId; this._id = config.id; this._ipDiscovery = config.ipDiscovery; this._kmsKeyId = config.kmsKeyId; this._maintenanceWindow = config.maintenanceWindow; this._multiAzEnabled = config.multiAzEnabled; this._networkType = config.networkType; this._nodeType = config.nodeType; this._notificationTopicArn = config.notificationTopicArn; this._numCacheClusters = config.numCacheClusters; this._numNodeGroups = config.numNodeGroups; this._parameterGroupName = config.parameterGroupName; this._port = config.port; this._preferredCacheClusterAzs = config.preferredCacheClusterAzs; this._region = config.region; this._replicasPerNodeGroup = config.replicasPerNodeGroup; this._replicationGroupId = config.replicationGroupId; this._securityGroupIds = config.securityGroupIds; this._securityGroupNames = config.securityGroupNames; this._snapshotArns = config.snapshotArns; this._snapshotName = config.snapshotName; this._snapshotRetentionLimit = config.snapshotRetentionLimit; this._snapshotWindow = config.snapshotWindow; this._subnetGroupName = config.subnetGroupName; this._tags = config.tags; this._tagsAll = config.tagsAll; this._transitEncryptionEnabled = config.transitEncryptionEnabled; this._transitEncryptionMode = config.transitEncryptionMode; this._userGroupIds = config.userGroupIds; this._logDeliveryConfiguration.internalValue = config.logDeliveryConfiguration; this._nodeGroupConfiguration.internalValue = config.nodeGroupConfiguration; this._timeouts.internalValue = config.timeouts; } 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; } // arn - computed: true, optional: false, required: false get arn() { return this.getStringAttribute('arn'); } get atRestEncryptionEnabled() { return this.getStringAttribute('at_rest_encryption_enabled'); } set atRestEncryptionEnabled(value) { this._atRestEncryptionEnabled = value; } resetAtRestEncryptionEnabled() { this._atRestEncryptionEnabled = undefined; } // Temporarily expose input value. Use with caution. get atRestEncryptionEnabledInput() { return this._atRestEncryptionEnabled; } get authToken() { return this.getStringAttribute('auth_token'); } set authToken(value) { this._authToken = value; } resetAuthToken() { this._authToken = undefined; } // Temporarily expose input value. Use with caution. get authTokenInput() { return this._authToken; } get authTokenUpdateStrategy() { return this.getStringAttribute('auth_token_update_strategy'); } set authTokenUpdateStrategy(value) { this._authTokenUpdateStrategy = value; } resetAuthTokenUpdateStrategy() { this._authTokenUpdateStrategy = undefined; } // Temporarily expose input value. Use with caution. get authTokenUpdateStrategyInput() { return this._authTokenUpdateStrategy; } get autoMinorVersionUpgrade() { return this.getStringAttribute('auto_minor_version_upgrade'); } set autoMinorVersionUpgrade(value) { this._autoMinorVersionUpgrade = value; } resetAutoMinorVersionUpgrade() { this._autoMinorVersionUpgrade = undefined; } // Temporarily expose input value. Use with caution. get autoMinorVersionUpgradeInput() { return this._autoMinorVersionUpgrade; } get automaticFailoverEnabled() { return this.getBooleanAttribute('automatic_failover_enabled'); } set automaticFailoverEnabled(value) { this._automaticFailoverEnabled = value; } resetAutomaticFailoverEnabled() { this._automaticFailoverEnabled = undefined; } // Temporarily expose input value. Use with caution. get automaticFailoverEnabledInput() { return this._automaticFailoverEnabled; } // cluster_enabled - computed: true, optional: false, required: false get clusterEnabled() { return this.getBooleanAttribute('cluster_enabled'); } get clusterMode() { return this.getStringAttribute('cluster_mode'); } set clusterMode(value) { this._clusterMode = value; } resetClusterMode() { this._clusterMode = undefined; } // Temporarily expose input value. Use with caution. get clusterModeInput() { return this._clusterMode; } // configuration_endpoint_address - computed: true, optional: false, required: false get configurationEndpointAddress() { return this.getStringAttribute('configuration_endpoint_address'); } get dataTieringEnabled() { return this.getBooleanAttribute('data_tiering_enabled'); } set dataTieringEnabled(value) { this._dataTieringEnabled = value; } resetDataTieringEnabled() { this._dataTieringEnabled = undefined; } // Temporarily expose input value. Use with caution. get dataTieringEnabledInput() { return this._dataTieringEnabled; } get description() { return this.getStringAttribute('description'); } set description(value) { this._description = value; } // Temporarily expose input value. Use with caution. get descriptionInput() { return this._description; } get engine() { return this.getStringAttribute('engine'); } set engine(value) { this._engine = value; } resetEngine() { this._engine = undefined; } // Temporarily expose input value. Use with caution. get engineInput() { return this._engine; } get engineVersion() { return this.getStringAttribute('engine_version'); } set engineVersion(value) { this._engineVersion = value; } resetEngineVersion() { this._engineVersion = undefined; } // Temporarily expose input value. Use with caution. get engineVersionInput() { return this._engineVersion; } // engine_version_actual - computed: true, optional: false, required: false get engineVersionActual() { return this.getStringAttribute('engine_version_actual'); } 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 globalReplicationGroupId() { return this.getStringAttribute('global_replication_group_id'); } set globalReplicationGroupId(value) { this._globalReplicationGroupId = value; } resetGlobalReplicationGroupId() { this._globalReplicationGroupId = undefined; } // Temporarily expose input value. Use with caution. get globalReplicationGroupIdInput() { return this._globalReplicationGroupId; } 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 ipDiscovery() { return this.getStringAttribute('ip_discovery'); } set ipDiscovery(value) { this._ipDiscovery = value; } resetIpDiscovery() { this._ipDiscovery = undefined; } // Temporarily expose input value. Use with caution. get ipDiscoveryInput() { return this._ipDiscovery; } 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 maintenanceWindow() { return this.getStringAttribute('maintenance_window'); } set maintenanceWindow(value) { this._maintenanceWindow = value; } resetMaintenanceWindow() { this._maintenanceWindow = undefined; } // Temporarily expose input value. Use with caution. get maintenanceWindowInput() { return this._maintenanceWindow; } // member_clusters - computed: true, optional: false, required: false get memberClusters() { return cdktf.Fn.tolist(this.getListAttribute('member_clusters')); } get multiAzEnabled() { return this.getBooleanAttribute('multi_az_enabled'); } set multiAzEnabled(value) { this._multiAzEnabled = value; } resetMultiAzEnabled() { this._multiAzEnabled = undefined; } // Temporarily expose input value. Use with caution. get multiAzEnabledInput() { return this._multiAzEnabled; } get networkType() { return this.getStringAttribute('network_type'); } set networkType(value) { this._networkType = value; } resetNetworkType() { this._networkType = undefined; } // Temporarily expose input value. Use with caution. get networkTypeInput() { return this._networkType; } get nodeType() { return this.getStringAttribute('node_type'); } set nodeType(value) { this._nodeType = value; } resetNodeType() { this._nodeType = undefined; } // Temporarily expose input value. Use with caution. get nodeTypeInput() { return this._nodeType; } get notificationTopicArn() { return this.getStringAttribute('notification_topic_arn'); } set notificationTopicArn(value) { this._notificationTopicArn = value; } resetNotificationTopicArn() { this._notificationTopicArn = undefined; } // Temporarily expose input value. Use with caution. get notificationTopicArnInput() { return this._notificationTopicArn; } get numCacheClusters() { return this.getNumberAttribute('num_cache_clusters'); } set numCacheClusters(value) { this._numCacheClusters = value; } resetNumCacheClusters() { this._numCacheClusters = undefined; } // Temporarily expose input value. Use with caution. get numCacheClustersInput() { return this._numCacheClusters; } get numNodeGroups() { return this.getNumberAttribute('num_node_groups'); } set numNodeGroups(value) { this._numNodeGroups = value; } resetNumNodeGroups() { this._numNodeGroups = undefined; } // Temporarily expose input value. Use with caution. get numNodeGroupsInput() { return this._numNodeGroups; } get parameterGroupName() { return this.getStringAttribute('parameter_group_name'); } set parameterGroupName(value) { this._parameterGroupName = value; } resetParameterGroupName() { this._parameterGroupName = undefined; } // Temporarily expose input value. Use with caution. get parameterGroupNameInput() { return this._parameterGroupName; } 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 preferredCacheClusterAzs() { return this.getListAttribute('preferred_cache_cluster_azs'); } set preferredCacheClusterAzs(value) { this._preferredCacheClusterAzs = value; } resetPreferredCacheClusterAzs() { this._preferredCacheClusterAzs = undefined; } // Temporarily expose input value. Use with caution. get preferredCacheClusterAzsInput() { return this._preferredCacheClusterAzs; } // primary_endpoint_address - computed: true, optional: false, required: false get primaryEndpointAddress() { return this.getStringAttribute('primary_endpoint_address'); } // reader_endpoint_address - computed: true, optional: false, required: false get readerEndpointAddress() { return this.getStringAttribute('reader_endpoint_address'); } get region() { return this.getStringAttribute('region'); } set region(value) { this._region = value; } resetRegion() { this._region = undefined; } // Temporarily expose input value. Use with caution. get regionInput() { return this._region; } get replicasPerNodeGroup() { return this.getNumberAttribute('replicas_per_node_group'); } set replicasPerNodeGroup(value) { this._replicasPerNodeGroup = value; } resetReplicasPerNodeGroup() { this._replicasPerNodeGroup = undefined; } // Temporarily expose input value. Use with caution. get replicasPerNodeGroupInput() { return this._replicasPerNodeGroup; } get replicationGroupId() { return this.getStringAttribute('replication_group_id'); } set replicationGroupId(value) { this._replicationGroupId = value; } // Temporarily expose input value. Use with caution. get replicationGroupIdInput() { return this._replicationGroupId; } get securityGroupIds() { return cdktf.Fn.tolist(this.getListAttribute('security_group_ids')); } set securityGroupIds(value) { this._securityGroupIds = value; } resetSecurityGroupIds() { this._securityGroupIds = undefined; } // Temporarily expose input value. Use with caution. get securityGroupIdsInput() { return this._securityGroupIds; } get securityGroupNames() { return cdktf.Fn.tolist(this.getListAttribute('security_group_names')); } set securityGroupNames(value) { this._securityGroupNames = value; } resetSecurityGroupNames() { this._securityGroupNames = undefined; } // Temporarily expose input value. Use with caution. get securityGroupNamesInput() { return this._securityGroupNames; } get snapshotArns() { return cdktf.Fn.tolist(this.getListAttribute('snapshot_arns')); } set snapshotArns(value) { this._snapshotArns = value; } resetSnapshotArns() { this._snapshotArns = undefined; } // Temporarily expose input value. Use with caution. get snapshotArnsInput() { return this._snapshotArns; } get snapshotName() { return this.getStringAttribute('snapshot_name'); } set snapshotName(value) { this._snapshotName = value; } resetSnapshotName() { this._snapshotName = undefined; } // Temporarily expose input value. Use with caution. get snapshotNameInput() { return this._snapshotName; } get snapshotRetentionLimit() { return this.getNumberAttribute('snapshot_retention_limit'); } set snapshotRetentionLimit(value) { this._snapshotRetentionLimit = value; } resetSnapshotRetentionLimit() { this._snapshotRetentionLimit = undefined; } // Temporarily expose input value. Use with caution. get snapshotRetentionLimitInput() { return this._snapshotRetentionLimit; } get snapshotWindow() { return this.getStringAttribute('snapshot_window'); } set snapshotWindow(value) { this._snapshotWindow = value; } resetSnapshotWindow() { this._snapshotWindow = undefined; } // Temporarily expose input value. Use with caution. get snapshotWindowInput() { return this._snapshotWindow; } get subnetGroupName() { return this.getStringAttribute('subnet_group_name'); } set subnetGroupName(value) { this._subnetGroupName = value; } resetSubnetGroupName() { this._subnetGroupName = undefined; } // Temporarily expose input value. Use with caution. get subnetGroupNameInput() { return this._subnetGroupName; } 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 transitEncryptionEnabled() { return this.getBooleanAttribute('transit_encryption_enabled'); } set transitEncryptionEnabled(value) { this._transitEncryptionEnabled = value; } resetTransitEncryptionEnabled() { this._transitEncryptionEnabled = undefined; } // Temporarily expose input value. Use with caution. get transitEncryptionEnabledInput() { return this._transitEncryptionEnabled; } get transitEncryptionMode() { return this.getStringAttribute('transit_encryption_mode'); } set transitEncryptionMode(value) { this._transitEncryptionMode = value; } resetTransitEncryptionMode() { this._transitEncryptionMode = undefined; } // Temporarily expose input value. Use with caution. get transitEncryptionModeInput() { return this._transitEncryptionMode; } get userGroupIds() { return cdktf.Fn.tolist(this.getListAttribute('user_group_ids')); } set userGroupIds(value) { this._userGroupIds = value; } resetUserGroupIds() { this._userGroupIds = undefined; } // Temporarily expose input value. Use with caution. get userGroupIdsInput() { return this._userGroupIds; } get logDeliveryConfiguration() { return this._logDeliveryConfiguration; } putLogDeliveryConfiguration(value) { this._logDeliveryConfiguration.internalValue = value; } resetLogDeliveryConfiguration() { this._logDeliveryConfiguration.internalValue = undefined; } // Temporarily expose input value. Use with caution. get logDeliveryConfigurationInput() { return this._logDeliveryConfiguration.internalValue; } get nodeGroupConfiguration() { return this._nodeGroupConfiguration; } putNodeGroupConfiguration(value) { this._nodeGroupConfiguration.internalValue = value; } resetNodeGroupConfiguration() { this._nodeGroupConfiguration.internalValue = undefined; } // Temporarily expose input value. Use with caution. get nodeGroupConfigurationInput() { return this._nodeGroupConfiguration.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 { apply_immediately: cdktf.booleanToTerraform(this._applyImmediately), at_rest_encryption_enabled: cdktf.stringToTerraform(this._atRestEncryptionEnabled), auth_token: cdktf.stringToTerraform(this._authToken), auth_token_update_strategy: cdktf.stringToTerraform(this._authTokenUpdateStrategy), auto_minor_version_upgrade: cdktf.stringToTerraform(this._autoMinorVersionUpgrade), automatic_failover_enabled: cdktf.booleanToTerraform(this._automaticFailoverEnabled), cluster_mode: cdktf.stringToTerraform(this._clusterMode), data_tiering_enabled: cdktf.booleanToTerraform(this._dataTieringEnabled), description: cdktf.stringToTerraform(this._description), engine: cdktf.stringToTerraform(this._engine), engine_version: cdktf.stringToTerraform(this._engineVersion), final_snapshot_identifier: cdktf.stringToTerraform(this._finalSnapshotIdentifier), global_replication_group_id: cdktf.stringToTerraform(this._globalReplicationGroupId), id: cdktf.stringToTerraform(this._id), ip_discovery: cdktf.stringToTerraform(this._ipDiscovery), kms_key_id: cdktf.stringToTerraform(this._kmsKeyId), maintenance_window: cdktf.stringToTerraform(this._maintenanceWindow), multi_az_enabled: cdktf.booleanToTerraform(this._multiAzEnabled), network_type: cdktf.stringToTerraform(this._networkType), node_type: cdktf.stringToTerraform(this._nodeType), notification_topic_arn: cdktf.stringToTerraform(this._notificationTopicArn), num_cache_clusters: cdktf.numberToTerraform(this._numCacheClusters), num_node_groups: cdktf.numberToTerraform(this._numNodeGroups), parameter_group_name: cdktf.stringToTerraform(this._parameterGroupName), port: cdktf.numberToTerraform(this._port), preferred_cache_cluster_azs: cdktf.listMapper(cdktf.stringToTerraform, false)(this._preferredCacheClusterAzs), region: cdktf.stringToTerraform(this._region), r