UNPKG

@cdktf/provider-aws

Version:

Prebuilt aws Provider for Terraform CDK (cdktf)

1,060 lines 292 kB
"use strict"; var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t; Object.defineProperty(exports, "__esModule", { value: true }); exports.S3BucketReplicationConfigurationA = exports.S3BucketReplicationConfigurationRuleList = exports.S3BucketReplicationConfigurationRuleOutputReference = exports.S3BucketReplicationConfigurationRuleSourceSelectionCriteriaOutputReference = exports.S3BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutputReference = exports.S3BucketReplicationConfigurationRuleSourceSelectionCriteriaReplicaModificationsOutputReference = exports.S3BucketReplicationConfigurationRuleFilterOutputReference = exports.S3BucketReplicationConfigurationRuleFilterTagOutputReference = exports.S3BucketReplicationConfigurationRuleFilterAndOutputReference = exports.S3BucketReplicationConfigurationRuleExistingObjectReplicationOutputReference = exports.S3BucketReplicationConfigurationRuleDestinationOutputReference = exports.S3BucketReplicationConfigurationRuleDestinationReplicationTimeOutputReference = exports.S3BucketReplicationConfigurationRuleDestinationReplicationTimeTimeOutputReference = exports.S3BucketReplicationConfigurationRuleDestinationMetricsOutputReference = exports.S3BucketReplicationConfigurationRuleDestinationMetricsEventThresholdOutputReference = exports.S3BucketReplicationConfigurationRuleDestinationEncryptionConfigurationOutputReference = exports.S3BucketReplicationConfigurationRuleDestinationAccessControlTranslationOutputReference = exports.S3BucketReplicationConfigurationRuleDeleteMarkerReplicationOutputReference = void 0; exports.s3BucketReplicationConfigurationRuleDeleteMarkerReplicationToTerraform = s3BucketReplicationConfigurationRuleDeleteMarkerReplicationToTerraform; exports.s3BucketReplicationConfigurationRuleDeleteMarkerReplicationToHclTerraform = s3BucketReplicationConfigurationRuleDeleteMarkerReplicationToHclTerraform; exports.s3BucketReplicationConfigurationRuleDestinationAccessControlTranslationToTerraform = s3BucketReplicationConfigurationRuleDestinationAccessControlTranslationToTerraform; exports.s3BucketReplicationConfigurationRuleDestinationAccessControlTranslationToHclTerraform = s3BucketReplicationConfigurationRuleDestinationAccessControlTranslationToHclTerraform; exports.s3BucketReplicationConfigurationRuleDestinationEncryptionConfigurationToTerraform = s3BucketReplicationConfigurationRuleDestinationEncryptionConfigurationToTerraform; exports.s3BucketReplicationConfigurationRuleDestinationEncryptionConfigurationToHclTerraform = s3BucketReplicationConfigurationRuleDestinationEncryptionConfigurationToHclTerraform; exports.s3BucketReplicationConfigurationRuleDestinationMetricsEventThresholdToTerraform = s3BucketReplicationConfigurationRuleDestinationMetricsEventThresholdToTerraform; exports.s3BucketReplicationConfigurationRuleDestinationMetricsEventThresholdToHclTerraform = s3BucketReplicationConfigurationRuleDestinationMetricsEventThresholdToHclTerraform; exports.s3BucketReplicationConfigurationRuleDestinationMetricsToTerraform = s3BucketReplicationConfigurationRuleDestinationMetricsToTerraform; exports.s3BucketReplicationConfigurationRuleDestinationMetricsToHclTerraform = s3BucketReplicationConfigurationRuleDestinationMetricsToHclTerraform; exports.s3BucketReplicationConfigurationRuleDestinationReplicationTimeTimeToTerraform = s3BucketReplicationConfigurationRuleDestinationReplicationTimeTimeToTerraform; exports.s3BucketReplicationConfigurationRuleDestinationReplicationTimeTimeToHclTerraform = s3BucketReplicationConfigurationRuleDestinationReplicationTimeTimeToHclTerraform; exports.s3BucketReplicationConfigurationRuleDestinationReplicationTimeToTerraform = s3BucketReplicationConfigurationRuleDestinationReplicationTimeToTerraform; exports.s3BucketReplicationConfigurationRuleDestinationReplicationTimeToHclTerraform = s3BucketReplicationConfigurationRuleDestinationReplicationTimeToHclTerraform; exports.s3BucketReplicationConfigurationRuleDestinationToTerraform = s3BucketReplicationConfigurationRuleDestinationToTerraform; exports.s3BucketReplicationConfigurationRuleDestinationToHclTerraform = s3BucketReplicationConfigurationRuleDestinationToHclTerraform; exports.s3BucketReplicationConfigurationRuleExistingObjectReplicationToTerraform = s3BucketReplicationConfigurationRuleExistingObjectReplicationToTerraform; exports.s3BucketReplicationConfigurationRuleExistingObjectReplicationToHclTerraform = s3BucketReplicationConfigurationRuleExistingObjectReplicationToHclTerraform; exports.s3BucketReplicationConfigurationRuleFilterAndToTerraform = s3BucketReplicationConfigurationRuleFilterAndToTerraform; exports.s3BucketReplicationConfigurationRuleFilterAndToHclTerraform = s3BucketReplicationConfigurationRuleFilterAndToHclTerraform; exports.s3BucketReplicationConfigurationRuleFilterTagToTerraform = s3BucketReplicationConfigurationRuleFilterTagToTerraform; exports.s3BucketReplicationConfigurationRuleFilterTagToHclTerraform = s3BucketReplicationConfigurationRuleFilterTagToHclTerraform; exports.s3BucketReplicationConfigurationRuleFilterToTerraform = s3BucketReplicationConfigurationRuleFilterToTerraform; exports.s3BucketReplicationConfigurationRuleFilterToHclTerraform = s3BucketReplicationConfigurationRuleFilterToHclTerraform; exports.s3BucketReplicationConfigurationRuleSourceSelectionCriteriaReplicaModificationsToTerraform = s3BucketReplicationConfigurationRuleSourceSelectionCriteriaReplicaModificationsToTerraform; exports.s3BucketReplicationConfigurationRuleSourceSelectionCriteriaReplicaModificationsToHclTerraform = s3BucketReplicationConfigurationRuleSourceSelectionCriteriaReplicaModificationsToHclTerraform; exports.s3BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsToTerraform = s3BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsToTerraform; exports.s3BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsToHclTerraform = s3BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsToHclTerraform; exports.s3BucketReplicationConfigurationRuleSourceSelectionCriteriaToTerraform = s3BucketReplicationConfigurationRuleSourceSelectionCriteriaToTerraform; exports.s3BucketReplicationConfigurationRuleSourceSelectionCriteriaToHclTerraform = s3BucketReplicationConfigurationRuleSourceSelectionCriteriaToHclTerraform; exports.s3BucketReplicationConfigurationRuleToTerraform = s3BucketReplicationConfigurationRuleToTerraform; exports.s3BucketReplicationConfigurationRuleToHclTerraform = s3BucketReplicationConfigurationRuleToHclTerraform; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const cdktf = require("cdktf"); function s3BucketReplicationConfigurationRuleDeleteMarkerReplicationToTerraform(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 { status: cdktf.stringToTerraform(struct.status), }; } function s3BucketReplicationConfigurationRuleDeleteMarkerReplicationToHclTerraform(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 = { status: { value: cdktf.stringToHclTerraform(struct.status), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class S3BucketReplicationConfigurationRuleDeleteMarkerReplicationOutputReference 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._status !== undefined) { hasAnyValues = true; internalValueResult.status = this._status; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._status = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._status = value.status; } } get status() { return this.getStringAttribute('status'); } set status(value) { this._status = value; } // Temporarily expose input value. Use with caution. get statusInput() { return this._status; } } exports.S3BucketReplicationConfigurationRuleDeleteMarkerReplicationOutputReference = S3BucketReplicationConfigurationRuleDeleteMarkerReplicationOutputReference; _a = JSII_RTTI_SYMBOL_1; S3BucketReplicationConfigurationRuleDeleteMarkerReplicationOutputReference[_a] = { fqn: "@cdktf/provider-aws.s3BucketReplicationConfiguration.S3BucketReplicationConfigurationRuleDeleteMarkerReplicationOutputReference", version: "21.22.1" }; function s3BucketReplicationConfigurationRuleDestinationAccessControlTranslationToTerraform(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 { owner: cdktf.stringToTerraform(struct.owner), }; } function s3BucketReplicationConfigurationRuleDestinationAccessControlTranslationToHclTerraform(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 = { owner: { value: cdktf.stringToHclTerraform(struct.owner), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class S3BucketReplicationConfigurationRuleDestinationAccessControlTranslationOutputReference 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._owner !== undefined) { hasAnyValues = true; internalValueResult.owner = this._owner; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._owner = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._owner = value.owner; } } get owner() { return this.getStringAttribute('owner'); } set owner(value) { this._owner = value; } // Temporarily expose input value. Use with caution. get ownerInput() { return this._owner; } } exports.S3BucketReplicationConfigurationRuleDestinationAccessControlTranslationOutputReference = S3BucketReplicationConfigurationRuleDestinationAccessControlTranslationOutputReference; _b = JSII_RTTI_SYMBOL_1; S3BucketReplicationConfigurationRuleDestinationAccessControlTranslationOutputReference[_b] = { fqn: "@cdktf/provider-aws.s3BucketReplicationConfiguration.S3BucketReplicationConfigurationRuleDestinationAccessControlTranslationOutputReference", version: "21.22.1" }; function s3BucketReplicationConfigurationRuleDestinationEncryptionConfigurationToTerraform(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 { replica_kms_key_id: cdktf.stringToTerraform(struct.replicaKmsKeyId), }; } function s3BucketReplicationConfigurationRuleDestinationEncryptionConfigurationToHclTerraform(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 = { replica_kms_key_id: { value: cdktf.stringToHclTerraform(struct.replicaKmsKeyId), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class S3BucketReplicationConfigurationRuleDestinationEncryptionConfigurationOutputReference 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._replicaKmsKeyId !== undefined) { hasAnyValues = true; internalValueResult.replicaKmsKeyId = this._replicaKmsKeyId; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._replicaKmsKeyId = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._replicaKmsKeyId = value.replicaKmsKeyId; } } get replicaKmsKeyId() { return this.getStringAttribute('replica_kms_key_id'); } set replicaKmsKeyId(value) { this._replicaKmsKeyId = value; } // Temporarily expose input value. Use with caution. get replicaKmsKeyIdInput() { return this._replicaKmsKeyId; } } exports.S3BucketReplicationConfigurationRuleDestinationEncryptionConfigurationOutputReference = S3BucketReplicationConfigurationRuleDestinationEncryptionConfigurationOutputReference; _c = JSII_RTTI_SYMBOL_1; S3BucketReplicationConfigurationRuleDestinationEncryptionConfigurationOutputReference[_c] = { fqn: "@cdktf/provider-aws.s3BucketReplicationConfiguration.S3BucketReplicationConfigurationRuleDestinationEncryptionConfigurationOutputReference", version: "21.22.1" }; function s3BucketReplicationConfigurationRuleDestinationMetricsEventThresholdToTerraform(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 { minutes: cdktf.numberToTerraform(struct.minutes), }; } function s3BucketReplicationConfigurationRuleDestinationMetricsEventThresholdToHclTerraform(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 = { minutes: { value: cdktf.numberToHclTerraform(struct.minutes), isBlock: false, type: "simple", storageClassType: "number", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class S3BucketReplicationConfigurationRuleDestinationMetricsEventThresholdOutputReference 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._minutes !== undefined) { hasAnyValues = true; internalValueResult.minutes = this._minutes; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._minutes = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._minutes = value.minutes; } } get minutes() { return this.getNumberAttribute('minutes'); } set minutes(value) { this._minutes = value; } // Temporarily expose input value. Use with caution. get minutesInput() { return this._minutes; } } exports.S3BucketReplicationConfigurationRuleDestinationMetricsEventThresholdOutputReference = S3BucketReplicationConfigurationRuleDestinationMetricsEventThresholdOutputReference; _d = JSII_RTTI_SYMBOL_1; S3BucketReplicationConfigurationRuleDestinationMetricsEventThresholdOutputReference[_d] = { fqn: "@cdktf/provider-aws.s3BucketReplicationConfiguration.S3BucketReplicationConfigurationRuleDestinationMetricsEventThresholdOutputReference", version: "21.22.1" }; function s3BucketReplicationConfigurationRuleDestinationMetricsToTerraform(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 { status: cdktf.stringToTerraform(struct.status), event_threshold: s3BucketReplicationConfigurationRuleDestinationMetricsEventThresholdToTerraform(struct.eventThreshold), }; } function s3BucketReplicationConfigurationRuleDestinationMetricsToHclTerraform(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 = { status: { value: cdktf.stringToHclTerraform(struct.status), isBlock: false, type: "simple", storageClassType: "string", }, event_threshold: { value: s3BucketReplicationConfigurationRuleDestinationMetricsEventThresholdToHclTerraform(struct.eventThreshold), isBlock: true, type: "list", storageClassType: "S3BucketReplicationConfigurationRuleDestinationMetricsEventThresholdList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class S3BucketReplicationConfigurationRuleDestinationMetricsOutputReference 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; // event_threshold - computed: false, optional: true, required: false this._eventThreshold = new S3BucketReplicationConfigurationRuleDestinationMetricsEventThresholdOutputReference(this, "event_threshold"); } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._status !== undefined) { hasAnyValues = true; internalValueResult.status = this._status; } if (this._eventThreshold?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.eventThreshold = this._eventThreshold?.internalValue; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._status = undefined; this._eventThreshold.internalValue = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._status = value.status; this._eventThreshold.internalValue = value.eventThreshold; } } get status() { return this.getStringAttribute('status'); } set status(value) { this._status = value; } // Temporarily expose input value. Use with caution. get statusInput() { return this._status; } get eventThreshold() { return this._eventThreshold; } putEventThreshold(value) { this._eventThreshold.internalValue = value; } resetEventThreshold() { this._eventThreshold.internalValue = undefined; } // Temporarily expose input value. Use with caution. get eventThresholdInput() { return this._eventThreshold.internalValue; } } exports.S3BucketReplicationConfigurationRuleDestinationMetricsOutputReference = S3BucketReplicationConfigurationRuleDestinationMetricsOutputReference; _e = JSII_RTTI_SYMBOL_1; S3BucketReplicationConfigurationRuleDestinationMetricsOutputReference[_e] = { fqn: "@cdktf/provider-aws.s3BucketReplicationConfiguration.S3BucketReplicationConfigurationRuleDestinationMetricsOutputReference", version: "21.22.1" }; function s3BucketReplicationConfigurationRuleDestinationReplicationTimeTimeToTerraform(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 { minutes: cdktf.numberToTerraform(struct.minutes), }; } function s3BucketReplicationConfigurationRuleDestinationReplicationTimeTimeToHclTerraform(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 = { minutes: { value: cdktf.numberToHclTerraform(struct.minutes), isBlock: false, type: "simple", storageClassType: "number", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class S3BucketReplicationConfigurationRuleDestinationReplicationTimeTimeOutputReference 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._minutes !== undefined) { hasAnyValues = true; internalValueResult.minutes = this._minutes; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._minutes = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._minutes = value.minutes; } } get minutes() { return this.getNumberAttribute('minutes'); } set minutes(value) { this._minutes = value; } // Temporarily expose input value. Use with caution. get minutesInput() { return this._minutes; } } exports.S3BucketReplicationConfigurationRuleDestinationReplicationTimeTimeOutputReference = S3BucketReplicationConfigurationRuleDestinationReplicationTimeTimeOutputReference; _f = JSII_RTTI_SYMBOL_1; S3BucketReplicationConfigurationRuleDestinationReplicationTimeTimeOutputReference[_f] = { fqn: "@cdktf/provider-aws.s3BucketReplicationConfiguration.S3BucketReplicationConfigurationRuleDestinationReplicationTimeTimeOutputReference", version: "21.22.1" }; function s3BucketReplicationConfigurationRuleDestinationReplicationTimeToTerraform(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 { status: cdktf.stringToTerraform(struct.status), time: s3BucketReplicationConfigurationRuleDestinationReplicationTimeTimeToTerraform(struct.time), }; } function s3BucketReplicationConfigurationRuleDestinationReplicationTimeToHclTerraform(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 = { status: { value: cdktf.stringToHclTerraform(struct.status), isBlock: false, type: "simple", storageClassType: "string", }, time: { value: s3BucketReplicationConfigurationRuleDestinationReplicationTimeTimeToHclTerraform(struct.time), isBlock: true, type: "list", storageClassType: "S3BucketReplicationConfigurationRuleDestinationReplicationTimeTimeList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class S3BucketReplicationConfigurationRuleDestinationReplicationTimeOutputReference 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; // time - computed: false, optional: false, required: true this._time = new S3BucketReplicationConfigurationRuleDestinationReplicationTimeTimeOutputReference(this, "time"); } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._status !== undefined) { hasAnyValues = true; internalValueResult.status = this._status; } if (this._time?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.time = this._time?.internalValue; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._status = undefined; this._time.internalValue = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._status = value.status; this._time.internalValue = value.time; } } get status() { return this.getStringAttribute('status'); } set status(value) { this._status = value; } // Temporarily expose input value. Use with caution. get statusInput() { return this._status; } get time() { return this._time; } putTime(value) { this._time.internalValue = value; } // Temporarily expose input value. Use with caution. get timeInput() { return this._time.internalValue; } } exports.S3BucketReplicationConfigurationRuleDestinationReplicationTimeOutputReference = S3BucketReplicationConfigurationRuleDestinationReplicationTimeOutputReference; _g = JSII_RTTI_SYMBOL_1; S3BucketReplicationConfigurationRuleDestinationReplicationTimeOutputReference[_g] = { fqn: "@cdktf/provider-aws.s3BucketReplicationConfiguration.S3BucketReplicationConfigurationRuleDestinationReplicationTimeOutputReference", version: "21.22.1" }; function s3BucketReplicationConfigurationRuleDestinationToTerraform(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 { account: cdktf.stringToTerraform(struct.account), bucket: cdktf.stringToTerraform(struct.bucket), storage_class: cdktf.stringToTerraform(struct.storageClass), access_control_translation: s3BucketReplicationConfigurationRuleDestinationAccessControlTranslationToTerraform(struct.accessControlTranslation), encryption_configuration: s3BucketReplicationConfigurationRuleDestinationEncryptionConfigurationToTerraform(struct.encryptionConfiguration), metrics: s3BucketReplicationConfigurationRuleDestinationMetricsToTerraform(struct.metrics), replication_time: s3BucketReplicationConfigurationRuleDestinationReplicationTimeToTerraform(struct.replicationTime), }; } function s3BucketReplicationConfigurationRuleDestinationToHclTerraform(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 = { account: { value: cdktf.stringToHclTerraform(struct.account), isBlock: false, type: "simple", storageClassType: "string", }, bucket: { value: cdktf.stringToHclTerraform(struct.bucket), isBlock: false, type: "simple", storageClassType: "string", }, storage_class: { value: cdktf.stringToHclTerraform(struct.storageClass), isBlock: false, type: "simple", storageClassType: "string", }, access_control_translation: { value: s3BucketReplicationConfigurationRuleDestinationAccessControlTranslationToHclTerraform(struct.accessControlTranslation), isBlock: true, type: "list", storageClassType: "S3BucketReplicationConfigurationRuleDestinationAccessControlTranslationList", }, encryption_configuration: { value: s3BucketReplicationConfigurationRuleDestinationEncryptionConfigurationToHclTerraform(struct.encryptionConfiguration), isBlock: true, type: "list", storageClassType: "S3BucketReplicationConfigurationRuleDestinationEncryptionConfigurationList", }, metrics: { value: s3BucketReplicationConfigurationRuleDestinationMetricsToHclTerraform(struct.metrics), isBlock: true, type: "list", storageClassType: "S3BucketReplicationConfigurationRuleDestinationMetricsList", }, replication_time: { value: s3BucketReplicationConfigurationRuleDestinationReplicationTimeToHclTerraform(struct.replicationTime), isBlock: true, type: "list", storageClassType: "S3BucketReplicationConfigurationRuleDestinationReplicationTimeList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class S3BucketReplicationConfigurationRuleDestinationOutputReference 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; // access_control_translation - computed: false, optional: true, required: false this._accessControlTranslation = new S3BucketReplicationConfigurationRuleDestinationAccessControlTranslationOutputReference(this, "access_control_translation"); // encryption_configuration - computed: false, optional: true, required: false this._encryptionConfiguration = new S3BucketReplicationConfigurationRuleDestinationEncryptionConfigurationOutputReference(this, "encryption_configuration"); // metrics - computed: false, optional: true, required: false this._metrics = new S3BucketReplicationConfigurationRuleDestinationMetricsOutputReference(this, "metrics"); // replication_time - computed: false, optional: true, required: false this._replicationTime = new S3BucketReplicationConfigurationRuleDestinationReplicationTimeOutputReference(this, "replication_time"); } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._account !== undefined) { hasAnyValues = true; internalValueResult.account = this._account; } if (this._bucket !== undefined) { hasAnyValues = true; internalValueResult.bucket = this._bucket; } if (this._storageClass !== undefined) { hasAnyValues = true; internalValueResult.storageClass = this._storageClass; } if (this._accessControlTranslation?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.accessControlTranslation = this._accessControlTranslation?.internalValue; } if (this._encryptionConfiguration?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.encryptionConfiguration = this._encryptionConfiguration?.internalValue; } if (this._metrics?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.metrics = this._metrics?.internalValue; } if (this._replicationTime?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.replicationTime = this._replicationTime?.internalValue; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._account = undefined; this._bucket = undefined; this._storageClass = undefined; this._accessControlTranslation.internalValue = undefined; this._encryptionConfiguration.internalValue = undefined; this._metrics.internalValue = undefined; this._replicationTime.internalValue = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._account = value.account; this._bucket = value.bucket; this._storageClass = value.storageClass; this._accessControlTranslation.internalValue = value.accessControlTranslation; this._encryptionConfiguration.internalValue = value.encryptionConfiguration; this._metrics.internalValue = value.metrics; this._replicationTime.internalValue = value.replicationTime; } } get account() { return this.getStringAttribute('account'); } set account(value) { this._account = value; } resetAccount() { this._account = undefined; } // Temporarily expose input value. Use with caution. get accountInput() { return this._account; } get bucket() { return this.getStringAttribute('bucket'); } set bucket(value) { this._bucket = value; } // Temporarily expose input value. Use with caution. get bucketInput() { return this._bucket; } get storageClass() { return this.getStringAttribute('storage_class'); } set storageClass(value) { this._storageClass = value; } resetStorageClass() { this._storageClass = undefined; } // Temporarily expose input value. Use with caution. get storageClassInput() { return this._storageClass; } get accessControlTranslation() { return this._accessControlTranslation; } putAccessControlTranslation(value) { this._accessControlTranslation.internalValue = value; } resetAccessControlTranslation() { this._accessControlTranslation.internalValue = undefined; } // Temporarily expose input value. Use with caution. get accessControlTranslationInput() { return this._accessControlTranslation.internalValue; } get encryptionConfiguration() { return this._encryptionConfiguration; } putEncryptionConfiguration(value) { this._encryptionConfiguration.internalValue = value; } resetEncryptionConfiguration() { this._encryptionConfiguration.internalValue = undefined; } // Temporarily expose input value. Use with caution. get encryptionConfigurationInput() { return this._encryptionConfiguration.internalValue; } get metrics() { return this._metrics; } putMetrics(value) { this._metrics.internalValue = value; } resetMetrics() { this._metrics.internalValue = undefined; } // Temporarily expose input value. Use with caution. get metricsInput() { return this._metrics.internalValue; } get replicationTime() { return this._replicationTime; } putReplicationTime(value) { this._replicationTime.internalValue = value; } resetReplicationTime() { this._replicationTime.internalValue = undefined; } // Temporarily expose input value. Use with caution. get replicationTimeInput() { return this._replicationTime.internalValue; } } exports.S3BucketReplicationConfigurationRuleDestinationOutputReference = S3BucketReplicationConfigurationRuleDestinationOutputReference; _h = JSII_RTTI_SYMBOL_1; S3BucketReplicationConfigurationRuleDestinationOutputReference[_h] = { fqn: "@cdktf/provider-aws.s3BucketReplicationConfiguration.S3BucketReplicationConfigurationRuleDestinationOutputReference", version: "21.22.1" }; function s3BucketReplicationConfigurationRuleExistingObjectReplicationToTerraform(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 { status: cdktf.stringToTerraform(struct.status), }; } function s3BucketReplicationConfigurationRuleExistingObjectReplicationToHclTerraform(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 = { status: { value: cdktf.stringToHclTerraform(struct.status), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class S3BucketReplicationConfigurationRuleExistingObjectReplicationOutputReference 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._status !== undefined) { hasAnyValues = true; internalValueResult.status = this._status; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._status = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._status = value.status; } } get status() { return this.getStringAttribute('status'); } set status(value) { this._status = value; } // Temporarily expose input value. Use with caution. get statusInput() { return this._status; } } exports.S3BucketReplicationConfigurationRuleExistingObjectReplicationOutputReference = S3BucketReplicationConfigurationRuleExistingObjectReplicationOutputReference; _j = JSII_RTTI_SYMBOL_1; S3BucketReplicationConfigurationRuleExistingObjectReplicationOutputReference[_j] = { fqn: "@cdktf/provider-aws.s3BucketReplicationConfiguration.S3BucketReplicationConfigurationRuleExistingObjectReplicationOutputReference", version: "21.22.1" }; function s3BucketReplicationConfigurationRuleFilterAndToTerraform(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 { prefix: cdktf.stringToTerraform(struct.prefix), tags: cdktf.hashMapper(cdktf.stringToTerraform)(struct.tags), }; } function s3BucketReplicationConfigurationRuleFilterAndToHclTerraform(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 = { prefix: { value: cdktf.stringToHclTerraform(struct.prefix), isBlock: false, type: "simple", storageClassType: "string", }, tags: { value: cdktf.hashMapperHcl(cdktf.stringToHclTerraform)(struct.tags), isBlock: false, type: "map", storageClassType: "stringMap", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class S3BucketReplicationConfigurationRuleFilterAndOutputReference 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._prefix !== undefined) { hasAnyValues = true; internalValueResult.prefix = this._prefix; } if (this._tags !== undefined) { hasAnyValues = true; internalValueResult.tags = this._tags; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._prefix = undefined; this._tags = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._prefix = value.prefix; this._tags = value.tags; } } get prefix() { return this.getStringAttribute('prefix'); } set prefix(value) { this._prefix = value; } resetPrefix() { this._prefix = undefined; } // Temporarily expose input value. Use with caution. get prefixInput() { return this._prefix; } 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; } } exports.S3BucketReplicationConfigurationRuleFilterAndOutputReference = S3BucketReplicationConfigurationRuleFilterAndOutputReference; _k = JSII_RTTI_SYMBOL_1; S3BucketReplicationConfigurationRuleFilterAndOutputReference[_k] = { fqn: "@cdktf/provider-aws.s3BucketReplicationConfiguration.S3BucketReplicationConfigurationRuleFilterAndOutputReference", version: "21.22.1" }; function s3BucketReplicationConfigurationRuleFilterTagToTerraform(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 { key: cdktf.stringToTerraform(struct.key), value: cdktf.stringToTerraform(struct.value), }; } function s3BucketReplicationConfigurationRuleFilterTagToHclTerraform(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 = { key: { value: cdktf.stringToHclTerraform(struct.key), isBlock: false, type: "simple", storageClassType: "string", }, value: { value: cdktf.stringToHclTerraform(struct.value), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class S3BucketReplicationConfigurationRuleFilterTagOutputReference 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._key !== undefined) { hasAnyValues = true; internalValueResult.key = this._key; } if (this._value !== undefined) { hasAnyValues = true; internalValueResult.value = this._value; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._key = undefined; this._value = undefined; } else { this.isEmptyObject = Object.keys(v