UNPKG

@cdktf/provider-aws

Version:

Prebuilt aws Provider for Terraform CDK (cdktf)

1,083 lines 565 kB
"use strict"; var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8; Object.defineProperty(exports, "__esModule", { value: true }); exports.S3BucketReplicationConfigurationRulesDestinationOutputReference = exports.s3BucketReplicationConfigurationRulesDestinationToHclTerraform = exports.s3BucketReplicationConfigurationRulesDestinationToTerraform = exports.S3BucketReplicationConfigurationRulesDestinationReplicationTimeOutputReference = exports.s3BucketReplicationConfigurationRulesDestinationReplicationTimeToHclTerraform = exports.s3BucketReplicationConfigurationRulesDestinationReplicationTimeToTerraform = exports.S3BucketReplicationConfigurationRulesDestinationMetricsOutputReference = exports.s3BucketReplicationConfigurationRulesDestinationMetricsToHclTerraform = exports.s3BucketReplicationConfigurationRulesDestinationMetricsToTerraform = exports.S3BucketReplicationConfigurationRulesDestinationAccessControlTranslationOutputReference = exports.s3BucketReplicationConfigurationRulesDestinationAccessControlTranslationToHclTerraform = exports.s3BucketReplicationConfigurationRulesDestinationAccessControlTranslationToTerraform = exports.S3BucketObjectLockConfigurationOutputReference = exports.s3BucketObjectLockConfigurationToHclTerraform = exports.s3BucketObjectLockConfigurationToTerraform = exports.S3BucketObjectLockConfigurationRuleOutputReference = exports.s3BucketObjectLockConfigurationRuleToHclTerraform = exports.s3BucketObjectLockConfigurationRuleToTerraform = exports.S3BucketObjectLockConfigurationRuleDefaultRetentionOutputReference = exports.s3BucketObjectLockConfigurationRuleDefaultRetentionToHclTerraform = exports.s3BucketObjectLockConfigurationRuleDefaultRetentionToTerraform = exports.S3BucketLoggingOutputReference = exports.s3BucketLoggingToHclTerraform = exports.s3BucketLoggingToTerraform = exports.S3BucketLifecycleRuleList = exports.S3BucketLifecycleRuleOutputReference = exports.s3BucketLifecycleRuleToHclTerraform = exports.s3BucketLifecycleRuleToTerraform = exports.S3BucketLifecycleRuleTransitionList = exports.S3BucketLifecycleRuleTransitionOutputReference = exports.s3BucketLifecycleRuleTransitionToHclTerraform = exports.s3BucketLifecycleRuleTransitionToTerraform = exports.S3BucketLifecycleRuleNoncurrentVersionTransitionList = exports.S3BucketLifecycleRuleNoncurrentVersionTransitionOutputReference = exports.s3BucketLifecycleRuleNoncurrentVersionTransitionToHclTerraform = exports.s3BucketLifecycleRuleNoncurrentVersionTransitionToTerraform = exports.S3BucketLifecycleRuleNoncurrentVersionExpirationOutputReference = exports.s3BucketLifecycleRuleNoncurrentVersionExpirationToHclTerraform = exports.s3BucketLifecycleRuleNoncurrentVersionExpirationToTerraform = exports.S3BucketLifecycleRuleExpirationOutputReference = exports.s3BucketLifecycleRuleExpirationToHclTerraform = exports.s3BucketLifecycleRuleExpirationToTerraform = exports.S3BucketGrantList = exports.S3BucketGrantOutputReference = exports.s3BucketGrantToHclTerraform = exports.s3BucketGrantToTerraform = exports.S3BucketCorsRuleList = exports.S3BucketCorsRuleOutputReference = exports.s3BucketCorsRuleToHclTerraform = exports.s3BucketCorsRuleToTerraform = void 0; exports.S3Bucket = exports.S3BucketWebsiteOutputReference = exports.s3BucketWebsiteToHclTerraform = exports.s3BucketWebsiteToTerraform = exports.S3BucketVersioningOutputReference = exports.s3BucketVersioningToHclTerraform = exports.s3BucketVersioningToTerraform = exports.S3BucketTimeoutsOutputReference = exports.s3BucketTimeoutsToHclTerraform = exports.s3BucketTimeoutsToTerraform = exports.S3BucketServerSideEncryptionConfigurationOutputReference = exports.s3BucketServerSideEncryptionConfigurationToHclTerraform = exports.s3BucketServerSideEncryptionConfigurationToTerraform = exports.S3BucketServerSideEncryptionConfigurationRuleOutputReference = exports.s3BucketServerSideEncryptionConfigurationRuleToHclTerraform = exports.s3BucketServerSideEncryptionConfigurationRuleToTerraform = exports.S3BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutputReference = exports.s3BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultToHclTerraform = exports.s3BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultToTerraform = exports.S3BucketReplicationConfigurationOutputReference = exports.s3BucketReplicationConfigurationToHclTerraform = exports.s3BucketReplicationConfigurationToTerraform = exports.S3BucketReplicationConfigurationRulesList = exports.S3BucketReplicationConfigurationRulesOutputReference = exports.s3BucketReplicationConfigurationRulesToHclTerraform = exports.s3BucketReplicationConfigurationRulesToTerraform = exports.S3BucketReplicationConfigurationRulesSourceSelectionCriteriaOutputReference = exports.s3BucketReplicationConfigurationRulesSourceSelectionCriteriaToHclTerraform = exports.s3BucketReplicationConfigurationRulesSourceSelectionCriteriaToTerraform = exports.S3BucketReplicationConfigurationRulesSourceSelectionCriteriaSseKmsEncryptedObjectsOutputReference = exports.s3BucketReplicationConfigurationRulesSourceSelectionCriteriaSseKmsEncryptedObjectsToHclTerraform = exports.s3BucketReplicationConfigurationRulesSourceSelectionCriteriaSseKmsEncryptedObjectsToTerraform = exports.S3BucketReplicationConfigurationRulesFilterOutputReference = exports.s3BucketReplicationConfigurationRulesFilterToHclTerraform = exports.s3BucketReplicationConfigurationRulesFilterToTerraform = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const cdktf = require("cdktf"); function s3BucketCorsRuleToTerraform(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 { allowed_headers: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.allowedHeaders), allowed_methods: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.allowedMethods), allowed_origins: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.allowedOrigins), expose_headers: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.exposeHeaders), max_age_seconds: cdktf.numberToTerraform(struct.maxAgeSeconds), }; } exports.s3BucketCorsRuleToTerraform = s3BucketCorsRuleToTerraform; function s3BucketCorsRuleToHclTerraform(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 = { allowed_headers: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.allowedHeaders), isBlock: false, type: "list", storageClassType: "stringList", }, allowed_methods: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.allowedMethods), isBlock: false, type: "list", storageClassType: "stringList", }, allowed_origins: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.allowedOrigins), isBlock: false, type: "list", storageClassType: "stringList", }, expose_headers: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.exposeHeaders), isBlock: false, type: "list", storageClassType: "stringList", }, max_age_seconds: { value: cdktf.numberToHclTerraform(struct.maxAgeSeconds), isBlock: false, type: "simple", storageClassType: "number", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.s3BucketCorsRuleToHclTerraform = s3BucketCorsRuleToHclTerraform; class S3BucketCorsRuleOutputReference 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._allowedHeaders !== undefined) { hasAnyValues = true; internalValueResult.allowedHeaders = this._allowedHeaders; } if (this._allowedMethods !== undefined) { hasAnyValues = true; internalValueResult.allowedMethods = this._allowedMethods; } if (this._allowedOrigins !== undefined) { hasAnyValues = true; internalValueResult.allowedOrigins = this._allowedOrigins; } if (this._exposeHeaders !== undefined) { hasAnyValues = true; internalValueResult.exposeHeaders = this._exposeHeaders; } if (this._maxAgeSeconds !== undefined) { hasAnyValues = true; internalValueResult.maxAgeSeconds = this._maxAgeSeconds; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._allowedHeaders = undefined; this._allowedMethods = undefined; this._allowedOrigins = undefined; this._exposeHeaders = undefined; this._maxAgeSeconds = 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._allowedHeaders = value.allowedHeaders; this._allowedMethods = value.allowedMethods; this._allowedOrigins = value.allowedOrigins; this._exposeHeaders = value.exposeHeaders; this._maxAgeSeconds = value.maxAgeSeconds; } } get allowedHeaders() { return this.getListAttribute('allowed_headers'); } set allowedHeaders(value) { this._allowedHeaders = value; } resetAllowedHeaders() { this._allowedHeaders = undefined; } // Temporarily expose input value. Use with caution. get allowedHeadersInput() { return this._allowedHeaders; } get allowedMethods() { return this.getListAttribute('allowed_methods'); } set allowedMethods(value) { this._allowedMethods = value; } // Temporarily expose input value. Use with caution. get allowedMethodsInput() { return this._allowedMethods; } get allowedOrigins() { return this.getListAttribute('allowed_origins'); } set allowedOrigins(value) { this._allowedOrigins = value; } // Temporarily expose input value. Use with caution. get allowedOriginsInput() { return this._allowedOrigins; } get exposeHeaders() { return this.getListAttribute('expose_headers'); } set exposeHeaders(value) { this._exposeHeaders = value; } resetExposeHeaders() { this._exposeHeaders = undefined; } // Temporarily expose input value. Use with caution. get exposeHeadersInput() { return this._exposeHeaders; } get maxAgeSeconds() { return this.getNumberAttribute('max_age_seconds'); } set maxAgeSeconds(value) { this._maxAgeSeconds = value; } resetMaxAgeSeconds() { this._maxAgeSeconds = undefined; } // Temporarily expose input value. Use with caution. get maxAgeSecondsInput() { return this._maxAgeSeconds; } } exports.S3BucketCorsRuleOutputReference = S3BucketCorsRuleOutputReference; _a = JSII_RTTI_SYMBOL_1; S3BucketCorsRuleOutputReference[_a] = { fqn: "@cdktf/provider-aws.s3Bucket.S3BucketCorsRuleOutputReference", version: "19.50.0" }; class S3BucketCorsRuleList 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 S3BucketCorsRuleOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet); } } exports.S3BucketCorsRuleList = S3BucketCorsRuleList; _b = JSII_RTTI_SYMBOL_1; S3BucketCorsRuleList[_b] = { fqn: "@cdktf/provider-aws.s3Bucket.S3BucketCorsRuleList", version: "19.50.0" }; function s3BucketGrantToTerraform(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 { id: cdktf.stringToTerraform(struct.id), permissions: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.permissions), type: cdktf.stringToTerraform(struct.type), uri: cdktf.stringToTerraform(struct.uri), }; } exports.s3BucketGrantToTerraform = s3BucketGrantToTerraform; function s3BucketGrantToHclTerraform(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 = { id: { value: cdktf.stringToHclTerraform(struct.id), isBlock: false, type: "simple", storageClassType: "string", }, permissions: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.permissions), isBlock: false, type: "set", storageClassType: "stringList", }, type: { value: cdktf.stringToHclTerraform(struct.type), isBlock: false, type: "simple", storageClassType: "string", }, uri: { value: cdktf.stringToHclTerraform(struct.uri), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.s3BucketGrantToHclTerraform = s3BucketGrantToHclTerraform; class S3BucketGrantOutputReference 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._id !== undefined) { hasAnyValues = true; internalValueResult.id = this._id; } if (this._permissions !== undefined) { hasAnyValues = true; internalValueResult.permissions = this._permissions; } if (this._type !== undefined) { hasAnyValues = true; internalValueResult.type = this._type; } if (this._uri !== undefined) { hasAnyValues = true; internalValueResult.uri = this._uri; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._id = undefined; this._permissions = undefined; this._type = undefined; this._uri = 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._id = value.id; this._permissions = value.permissions; this._type = value.type; this._uri = value.uri; } } 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 permissions() { return cdktf.Fn.tolist(this.getListAttribute('permissions')); } set permissions(value) { this._permissions = value; } // Temporarily expose input value. Use with caution. get permissionsInput() { return this._permissions; } get type() { return this.getStringAttribute('type'); } set type(value) { this._type = value; } // Temporarily expose input value. Use with caution. get typeInput() { return this._type; } get uri() { return this.getStringAttribute('uri'); } set uri(value) { this._uri = value; } resetUri() { this._uri = undefined; } // Temporarily expose input value. Use with caution. get uriInput() { return this._uri; } } exports.S3BucketGrantOutputReference = S3BucketGrantOutputReference; _c = JSII_RTTI_SYMBOL_1; S3BucketGrantOutputReference[_c] = { fqn: "@cdktf/provider-aws.s3Bucket.S3BucketGrantOutputReference", version: "19.50.0" }; class S3BucketGrantList 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 S3BucketGrantOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet); } } exports.S3BucketGrantList = S3BucketGrantList; _d = JSII_RTTI_SYMBOL_1; S3BucketGrantList[_d] = { fqn: "@cdktf/provider-aws.s3Bucket.S3BucketGrantList", version: "19.50.0" }; function s3BucketLifecycleRuleExpirationToTerraform(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 { date: cdktf.stringToTerraform(struct.date), days: cdktf.numberToTerraform(struct.days), expired_object_delete_marker: cdktf.booleanToTerraform(struct.expiredObjectDeleteMarker), }; } exports.s3BucketLifecycleRuleExpirationToTerraform = s3BucketLifecycleRuleExpirationToTerraform; function s3BucketLifecycleRuleExpirationToHclTerraform(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 = { date: { value: cdktf.stringToHclTerraform(struct.date), isBlock: false, type: "simple", storageClassType: "string", }, days: { value: cdktf.numberToHclTerraform(struct.days), isBlock: false, type: "simple", storageClassType: "number", }, expired_object_delete_marker: { value: cdktf.booleanToHclTerraform(struct.expiredObjectDeleteMarker), isBlock: false, type: "simple", storageClassType: "boolean", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.s3BucketLifecycleRuleExpirationToHclTerraform = s3BucketLifecycleRuleExpirationToHclTerraform; class S3BucketLifecycleRuleExpirationOutputReference 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._date !== undefined) { hasAnyValues = true; internalValueResult.date = this._date; } if (this._days !== undefined) { hasAnyValues = true; internalValueResult.days = this._days; } if (this._expiredObjectDeleteMarker !== undefined) { hasAnyValues = true; internalValueResult.expiredObjectDeleteMarker = this._expiredObjectDeleteMarker; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._date = undefined; this._days = undefined; this._expiredObjectDeleteMarker = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._date = value.date; this._days = value.days; this._expiredObjectDeleteMarker = value.expiredObjectDeleteMarker; } } get date() { return this.getStringAttribute('date'); } set date(value) { this._date = value; } resetDate() { this._date = undefined; } // Temporarily expose input value. Use with caution. get dateInput() { return this._date; } get days() { return this.getNumberAttribute('days'); } set days(value) { this._days = value; } resetDays() { this._days = undefined; } // Temporarily expose input value. Use with caution. get daysInput() { return this._days; } get expiredObjectDeleteMarker() { return this.getBooleanAttribute('expired_object_delete_marker'); } set expiredObjectDeleteMarker(value) { this._expiredObjectDeleteMarker = value; } resetExpiredObjectDeleteMarker() { this._expiredObjectDeleteMarker = undefined; } // Temporarily expose input value. Use with caution. get expiredObjectDeleteMarkerInput() { return this._expiredObjectDeleteMarker; } } exports.S3BucketLifecycleRuleExpirationOutputReference = S3BucketLifecycleRuleExpirationOutputReference; _e = JSII_RTTI_SYMBOL_1; S3BucketLifecycleRuleExpirationOutputReference[_e] = { fqn: "@cdktf/provider-aws.s3Bucket.S3BucketLifecycleRuleExpirationOutputReference", version: "19.50.0" }; function s3BucketLifecycleRuleNoncurrentVersionExpirationToTerraform(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 { days: cdktf.numberToTerraform(struct.days), }; } exports.s3BucketLifecycleRuleNoncurrentVersionExpirationToTerraform = s3BucketLifecycleRuleNoncurrentVersionExpirationToTerraform; function s3BucketLifecycleRuleNoncurrentVersionExpirationToHclTerraform(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 = { days: { value: cdktf.numberToHclTerraform(struct.days), isBlock: false, type: "simple", storageClassType: "number", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.s3BucketLifecycleRuleNoncurrentVersionExpirationToHclTerraform = s3BucketLifecycleRuleNoncurrentVersionExpirationToHclTerraform; class S3BucketLifecycleRuleNoncurrentVersionExpirationOutputReference 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._days !== undefined) { hasAnyValues = true; internalValueResult.days = this._days; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._days = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._days = value.days; } } get days() { return this.getNumberAttribute('days'); } set days(value) { this._days = value; } resetDays() { this._days = undefined; } // Temporarily expose input value. Use with caution. get daysInput() { return this._days; } } exports.S3BucketLifecycleRuleNoncurrentVersionExpirationOutputReference = S3BucketLifecycleRuleNoncurrentVersionExpirationOutputReference; _f = JSII_RTTI_SYMBOL_1; S3BucketLifecycleRuleNoncurrentVersionExpirationOutputReference[_f] = { fqn: "@cdktf/provider-aws.s3Bucket.S3BucketLifecycleRuleNoncurrentVersionExpirationOutputReference", version: "19.50.0" }; function s3BucketLifecycleRuleNoncurrentVersionTransitionToTerraform(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 { days: cdktf.numberToTerraform(struct.days), storage_class: cdktf.stringToTerraform(struct.storageClass), }; } exports.s3BucketLifecycleRuleNoncurrentVersionTransitionToTerraform = s3BucketLifecycleRuleNoncurrentVersionTransitionToTerraform; function s3BucketLifecycleRuleNoncurrentVersionTransitionToHclTerraform(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 = { days: { value: cdktf.numberToHclTerraform(struct.days), isBlock: false, type: "simple", storageClassType: "number", }, storage_class: { value: cdktf.stringToHclTerraform(struct.storageClass), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.s3BucketLifecycleRuleNoncurrentVersionTransitionToHclTerraform = s3BucketLifecycleRuleNoncurrentVersionTransitionToHclTerraform; class S3BucketLifecycleRuleNoncurrentVersionTransitionOutputReference 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._days !== undefined) { hasAnyValues = true; internalValueResult.days = this._days; } if (this._storageClass !== undefined) { hasAnyValues = true; internalValueResult.storageClass = this._storageClass; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._days = undefined; this._storageClass = 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._days = value.days; this._storageClass = value.storageClass; } } get days() { return this.getNumberAttribute('days'); } set days(value) { this._days = value; } resetDays() { this._days = undefined; } // Temporarily expose input value. Use with caution. get daysInput() { return this._days; } get storageClass() { return this.getStringAttribute('storage_class'); } set storageClass(value) { this._storageClass = value; } // Temporarily expose input value. Use with caution. get storageClassInput() { return this._storageClass; } } exports.S3BucketLifecycleRuleNoncurrentVersionTransitionOutputReference = S3BucketLifecycleRuleNoncurrentVersionTransitionOutputReference; _g = JSII_RTTI_SYMBOL_1; S3BucketLifecycleRuleNoncurrentVersionTransitionOutputReference[_g] = { fqn: "@cdktf/provider-aws.s3Bucket.S3BucketLifecycleRuleNoncurrentVersionTransitionOutputReference", version: "19.50.0" }; class S3BucketLifecycleRuleNoncurrentVersionTransitionList 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 S3BucketLifecycleRuleNoncurrentVersionTransitionOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet); } } exports.S3BucketLifecycleRuleNoncurrentVersionTransitionList = S3BucketLifecycleRuleNoncurrentVersionTransitionList; _h = JSII_RTTI_SYMBOL_1; S3BucketLifecycleRuleNoncurrentVersionTransitionList[_h] = { fqn: "@cdktf/provider-aws.s3Bucket.S3BucketLifecycleRuleNoncurrentVersionTransitionList", version: "19.50.0" }; function s3BucketLifecycleRuleTransitionToTerraform(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 { date: cdktf.stringToTerraform(struct.date), days: cdktf.numberToTerraform(struct.days), storage_class: cdktf.stringToTerraform(struct.storageClass), }; } exports.s3BucketLifecycleRuleTransitionToTerraform = s3BucketLifecycleRuleTransitionToTerraform; function s3BucketLifecycleRuleTransitionToHclTerraform(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 = { date: { value: cdktf.stringToHclTerraform(struct.date), isBlock: false, type: "simple", storageClassType: "string", }, days: { value: cdktf.numberToHclTerraform(struct.days), isBlock: false, type: "simple", storageClassType: "number", }, storage_class: { value: cdktf.stringToHclTerraform(struct.storageClass), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.s3BucketLifecycleRuleTransitionToHclTerraform = s3BucketLifecycleRuleTransitionToHclTerraform; class S3BucketLifecycleRuleTransitionOutputReference 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._date !== undefined) { hasAnyValues = true; internalValueResult.date = this._date; } if (this._days !== undefined) { hasAnyValues = true; internalValueResult.days = this._days; } if (this._storageClass !== undefined) { hasAnyValues = true; internalValueResult.storageClass = this._storageClass; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._date = undefined; this._days = undefined; this._storageClass = 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._date = value.date; this._days = value.days; this._storageClass = value.storageClass; } } get date() { return this.getStringAttribute('date'); } set date(value) { this._date = value; } resetDate() { this._date = undefined; } // Temporarily expose input value. Use with caution. get dateInput() { return this._date; } get days() { return this.getNumberAttribute('days'); } set days(value) { this._days = value; } resetDays() { this._days = undefined; } // Temporarily expose input value. Use with caution. get daysInput() { return this._days; } get storageClass() { return this.getStringAttribute('storage_class'); } set storageClass(value) { this._storageClass = value; } // Temporarily expose input value. Use with caution. get storageClassInput() { return this._storageClass; } } exports.S3BucketLifecycleRuleTransitionOutputReference = S3BucketLifecycleRuleTransitionOutputReference; _j = JSII_RTTI_SYMBOL_1; S3BucketLifecycleRuleTransitionOutputReference[_j] = { fqn: "@cdktf/provider-aws.s3Bucket.S3BucketLifecycleRuleTransitionOutputReference", version: "19.50.0" }; class S3BucketLifecycleRuleTransitionList 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 S3BucketLifecycleRuleTransitionOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet); } } exports.S3BucketLifecycleRuleTransitionList = S3BucketLifecycleRuleTransitionList; _k = JSII_RTTI_SYMBOL_1; S3BucketLifecycleRuleTransitionList[_k] = { fqn: "@cdktf/provider-aws.s3Bucket.S3BucketLifecycleRuleTransitionList", version: "19.50.0" }; function s3BucketLifecycleRuleToTerraform(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 { abort_incomplete_multipart_upload_days: cdktf.numberToTerraform(struct.abortIncompleteMultipartUploadDays), enabled: cdktf.booleanToTerraform(struct.enabled), id: cdktf.stringToTerraform(struct.id), prefix: cdktf.stringToTerraform(struct.prefix), tags: cdktf.hashMapper(cdktf.stringToTerraform)(struct.tags), expiration: s3BucketLifecycleRuleExpirationToTerraform(struct.expiration), noncurrent_version_expiration: s3BucketLifecycleRuleNoncurrentVersionExpirationToTerraform(struct.noncurrentVersionExpiration), noncurrent_version_transition: cdktf.listMapper(s3BucketLifecycleRuleNoncurrentVersionTransitionToTerraform, true)(struct.noncurrentVersionTransition), transition: cdktf.listMapper(s3BucketLifecycleRuleTransitionToTerraform, true)(struct.transition), }; } exports.s3BucketLifecycleRuleToTerraform = s3BucketLifecycleRuleToTerraform; function s3BucketLifecycleRuleToHclTerraform(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 = { abort_incomplete_multipart_upload_days: { value: cdktf.numberToHclTerraform(struct.abortIncompleteMultipartUploadDays), isBlock: false, type: "simple", storageClassType: "number", }, enabled: { value: cdktf.booleanToHclTerraform(struct.enabled), isBlock: false, type: "simple", storageClassType: "boolean", }, id: { value: cdktf.stringToHclTerraform(struct.id), isBlock: false, type: "simple", storageClassType: "string", }, 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", }, expiration: { value: s3BucketLifecycleRuleExpirationToHclTerraform(struct.expiration), isBlock: true, type: "list", storageClassType: "S3BucketLifecycleRuleExpirationList", }, noncurrent_version_expiration: { value: s3BucketLifecycleRuleNoncurrentVersionExpirationToHclTerraform(struct.noncurrentVersionExpiration), isBlock: true, type: "list", storageClassType: "S3BucketLifecycleRuleNoncurrentVersionExpirationList", }, noncurrent_version_transition: { value: cdktf.listMapperHcl(s3BucketLifecycleRuleNoncurrentVersionTransitionToHclTerraform, true)(struct.noncurrentVersionTransition), isBlock: true, type: "set", storageClassType: "S3BucketLifecycleRuleNoncurrentVersionTransitionList", }, transition: { value: cdktf.listMapperHcl(s3BucketLifecycleRuleTransitionToHclTerraform, true)(struct.transition), isBlock: true, type: "set", storageClassType: "S3BucketLifecycleRuleTransitionList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.s3BucketLifecycleRuleToHclTerraform = s3BucketLifecycleRuleToHclTerraform; class S3BucketLifecycleRuleOutputReference 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; // expiration - computed: false, optional: true, required: false this._expiration = new S3BucketLifecycleRuleExpirationOutputReference(this, "expiration"); // noncurrent_version_expiration - computed: false, optional: true, required: false this._noncurrentVersionExpiration = new S3BucketLifecycleRuleNoncurrentVersionExpirationOutputReference(this, "noncurrent_version_expiration"); // noncurrent_version_transition - computed: false, optional: true, required: false this._noncurrentVersionTransition = new S3BucketLifecycleRuleNoncurrentVersionTransitionList(this, "noncurrent_version_transition", true); // transition - computed: false, optional: true, required: false this._transition = new S3BucketLifecycleRuleTransitionList(this, "transition", true); } get internalValue() { if (this.resolvableValue) { return this.resolvableValue; } let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._abortIncompleteMultipartUploadDays !== undefined) { hasAnyValues = true; internalValueResult.abortIncompleteMultipartUploadDays = this._abortIncompleteMultipartUploadDays; } if (this._enabled !== undefined) { hasAnyValues = true; internalValueResult.enabled = this._enabled; } if (this._id !== undefined) { hasAnyValues = true; internalValueResult.id = this._id; } if (this._prefix !== undefined) { hasAnyValues = true; internalValueResult.prefix = this._prefix; } if (this._tags !== undefined) { hasAnyValues = true; internalValueResult.tags = this._tags; } if (this._expiration?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.expiration = this._expiration?.internalValue; } if (this._noncurrentVersionExpiration?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.noncurrentVersionExpiration = this._noncurrentVersionExpiration?.internalValue; } if (this._noncurrentVersionTransition?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.noncurrentVersionTransition = this._noncurrentVersionTransition?.internalValue; } if (this._transition?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.transition = this._transition?.internalValue; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._abortIncompleteMultipartUploadDays = undefined; this._enabled = undefined; this._id = undefined; this._prefix = undefined; this._tags = undefined; this._expiration.internalValue = undefined; this._noncurrentVersionExpiration.internalValue = undefined; this._noncurrentVersionTransition.internalValue = undefined; this._transition.internalValue = 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._abortIncompleteMultipartUploadDays = value.abortIncompleteMultipartUploadDays; this._enabled = value.enabled; this._id = value.id; this._prefix = value.prefix; this._tags = value.tags; this._expiration.internalValue = value.expiration; this._noncurrentVersionExpiration.internalValue = value.noncurrentVersionExpiration; this._noncurrentVersionTransition.internalValue = value.noncurrentVersionTransition; this._transition.internalValue = value.transition; } } get abortIncompleteMultipartUploadDays() { return this.getNumberAttribute('abort_incomplete_multipart_upload_days'); } set abortIncompleteMultipartUploadDays(value) { this._abortIncompleteMultipartUploadDays = value; } resetAbortIncompleteMultipartUploadDays() { this._abortIncompleteMultipartUploadDays = undefined; } // Temporarily expose input value. Use with caution. get abortIncompleteMultipartUploadDaysInput() { return this._abortInc