From 11413410f31ebe19a269e03780c5ba7025c13a9e Mon Sep 17 00:00:00 2001 From: ansgarm Date: Fri, 18 Mar 2022 20:16:10 +0000 Subject: [PATCH] chore: upgrade provider --- API.md | 2958 ++++++++++++++++- src/aws/s3/index.ts | 10 + .../s3/s3-bucket-accelerate-configuration.ts | 123 + src/aws/s3/s3-bucket-acl.ts | 508 +++ src/aws/s3/s3-bucket-cors-configuration.ts | 168 + .../s3/s3-bucket-lifecycle-configuration.ts | 940 ++++++ src/aws/s3/s3-bucket-logging.ts | 340 ++ .../s3/s3-bucket-object-lock-configuration.ts | 354 ++ .../s3/s3-bucket-replication-configuration.ts | 25 +- ...s3-bucket-request-payment-configuration.ts | 123 + ...et-server-side-encryption-configuration.ts | 240 ++ src/aws/s3/s3-bucket-versioning.ts | 237 ++ src/aws/s3/s3-bucket-website-configuration.ts | 720 ++++ src/aws/s3/s3-bucket.ts | 29 +- 14 files changed, 6769 insertions(+), 6 deletions(-) create mode 100644 src/aws/s3/s3-bucket-accelerate-configuration.ts create mode 100644 src/aws/s3/s3-bucket-acl.ts create mode 100644 src/aws/s3/s3-bucket-cors-configuration.ts create mode 100644 src/aws/s3/s3-bucket-lifecycle-configuration.ts create mode 100644 src/aws/s3/s3-bucket-logging.ts create mode 100644 src/aws/s3/s3-bucket-object-lock-configuration.ts create mode 100644 src/aws/s3/s3-bucket-request-payment-configuration.ts create mode 100644 src/aws/s3/s3-bucket-server-side-encryption-configuration.ts create mode 100644 src/aws/s3/s3-bucket-versioning.ts create mode 100644 src/aws/s3/s3-bucket-website-configuration.ts diff --git a/API.md b/API.md index 8e4a9e06c..b549cef8f 100644 --- a/API.md +++ b/API.md @@ -2259,12 +2259,18 @@ Name|Description [s3.S3AccessPointVpcConfigurationOutputReference](#cdktf-aws-cdk-s3-s3accesspointvpcconfigurationoutputreference)|*No description* [s3.S3AccountPublicAccessBlock](#cdktf-aws-cdk-s3-s3accountpublicaccessblock)|Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_account_public_access_block aws_s3_account_public_access_block}. [s3.S3Bucket](#cdktf-aws-cdk-s3-s3bucket)|Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket aws_s3_bucket}. +[s3.S3BucketAccelerateConfiguration](#cdktf-aws-cdk-s3-s3bucketaccelerateconfiguration)|Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_accelerate_configuration aws_s3_bucket_accelerate_configuration}. +[s3.S3BucketAcl](#cdktf-aws-cdk-s3-s3bucketacl)|Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl aws_s3_bucket_acl}. +[s3.S3BucketAclAccessControlPolicyGrantGranteeOutputReference](#cdktf-aws-cdk-s3-s3bucketaclaccesscontrolpolicygrantgranteeoutputreference)|*No description* +[s3.S3BucketAclAccessControlPolicyOutputReference](#cdktf-aws-cdk-s3-s3bucketaclaccesscontrolpolicyoutputreference)|*No description* +[s3.S3BucketAclAccessControlPolicyOwnerOutputReference](#cdktf-aws-cdk-s3-s3bucketaclaccesscontrolpolicyowneroutputreference)|*No description* [s3.S3BucketAnalyticsConfiguration](#cdktf-aws-cdk-s3-s3bucketanalyticsconfiguration)|Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_analytics_configuration aws_s3_bucket_analytics_configuration}. [s3.S3BucketAnalyticsConfigurationFilterOutputReference](#cdktf-aws-cdk-s3-s3bucketanalyticsconfigurationfilteroutputreference)|*No description* [s3.S3BucketAnalyticsConfigurationStorageClassAnalysisDataExportDestinationOutputReference](#cdktf-aws-cdk-s3-s3bucketanalyticsconfigurationstorageclassanalysisdataexportdestinationoutputreference)|*No description* [s3.S3BucketAnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutputReference](#cdktf-aws-cdk-s3-s3bucketanalyticsconfigurationstorageclassanalysisdataexportdestinations3bucketdestinationoutputreference)|*No description* [s3.S3BucketAnalyticsConfigurationStorageClassAnalysisDataExportOutputReference](#cdktf-aws-cdk-s3-s3bucketanalyticsconfigurationstorageclassanalysisdataexportoutputreference)|*No description* [s3.S3BucketAnalyticsConfigurationStorageClassAnalysisOutputReference](#cdktf-aws-cdk-s3-s3bucketanalyticsconfigurationstorageclassanalysisoutputreference)|*No description* +[s3.S3BucketCorsConfiguration](#cdktf-aws-cdk-s3-s3bucketcorsconfiguration)|Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_cors_configuration aws_s3_bucket_cors_configuration}. [s3.S3BucketIntelligentTieringConfiguration](#cdktf-aws-cdk-s3-s3bucketintelligenttieringconfiguration)|Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_intelligent_tiering_configuration aws_s3_bucket_intelligent_tiering_configuration}. [s3.S3BucketIntelligentTieringConfigurationFilterOutputReference](#cdktf-aws-cdk-s3-s3bucketintelligenttieringconfigurationfilteroutputreference)|*No description* [s3.S3BucketInventory](#cdktf-aws-cdk-s3-s3bucketinventory)|Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_inventory aws_s3_bucket_inventory}. @@ -2275,13 +2281,25 @@ Name|Description [s3.S3BucketInventoryDestinationOutputReference](#cdktf-aws-cdk-s3-s3bucketinventorydestinationoutputreference)|*No description* [s3.S3BucketInventoryFilterOutputReference](#cdktf-aws-cdk-s3-s3bucketinventoryfilteroutputreference)|*No description* [s3.S3BucketInventoryScheduleOutputReference](#cdktf-aws-cdk-s3-s3bucketinventoryscheduleoutputreference)|*No description* +[s3.S3BucketLifecycleConfiguration](#cdktf-aws-cdk-s3-s3bucketlifecycleconfiguration)|Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration aws_s3_bucket_lifecycle_configuration}. +[s3.S3BucketLifecycleConfigurationRuleAbortIncompleteMultipartUploadOutputReference](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationruleabortincompletemultipartuploadoutputreference)|*No description* +[s3.S3BucketLifecycleConfigurationRuleExpirationOutputReference](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationruleexpirationoutputreference)|*No description* +[s3.S3BucketLifecycleConfigurationRuleFilterAndOutputReference](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationrulefilterandoutputreference)|*No description* +[s3.S3BucketLifecycleConfigurationRuleFilterOutputReference](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationrulefilteroutputreference)|*No description* +[s3.S3BucketLifecycleConfigurationRuleFilterTagOutputReference](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationrulefiltertagoutputreference)|*No description* +[s3.S3BucketLifecycleConfigurationRuleNoncurrentVersionExpirationOutputReference](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationrulenoncurrentversionexpirationoutputreference)|*No description* [s3.S3BucketLifecycleRuleExpirationOutputReference](#cdktf-aws-cdk-s3-s3bucketlifecycleruleexpirationoutputreference)|*No description* [s3.S3BucketLifecycleRuleNoncurrentVersionExpirationOutputReference](#cdktf-aws-cdk-s3-s3bucketlifecyclerulenoncurrentversionexpirationoutputreference)|*No description* +[s3.S3BucketLoggingA](#cdktf-aws-cdk-s3-s3bucketlogginga)|Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_logging aws_s3_bucket_logging}. +[s3.S3BucketLoggingTargetGrantGranteeOutputReference](#cdktf-aws-cdk-s3-s3bucketloggingtargetgrantgranteeoutputreference)|*No description* [s3.S3BucketMetric](#cdktf-aws-cdk-s3-s3bucketmetric)|Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_metric aws_s3_bucket_metric}. [s3.S3BucketMetricFilterOutputReference](#cdktf-aws-cdk-s3-s3bucketmetricfilteroutputreference)|*No description* [s3.S3BucketNotification](#cdktf-aws-cdk-s3-s3bucketnotification)|Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_notification aws_s3_bucket_notification}. [s3.S3BucketObject](#cdktf-aws-cdk-s3-s3bucketobject)|Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_object aws_s3_bucket_object}. +[s3.S3BucketObjectLockConfigurationA](#cdktf-aws-cdk-s3-s3bucketobjectlockconfigurationa)|Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_object_lock_configuration aws_s3_bucket_object_lock_configuration}. [s3.S3BucketObjectLockConfigurationOutputReference](#cdktf-aws-cdk-s3-s3bucketobjectlockconfigurationoutputreference)|*No description* +[s3.S3BucketObjectLockConfigurationRuleAOutputReference](#cdktf-aws-cdk-s3-s3bucketobjectlockconfigurationruleaoutputreference)|*No description* +[s3.S3BucketObjectLockConfigurationRuleDefaultRetentionAOutputReference](#cdktf-aws-cdk-s3-s3bucketobjectlockconfigurationruledefaultretentionaoutputreference)|*No description* [s3.S3BucketObjectLockConfigurationRuleDefaultRetentionOutputReference](#cdktf-aws-cdk-s3-s3bucketobjectlockconfigurationruledefaultretentionoutputreference)|*No description* [s3.S3BucketObjectLockConfigurationRuleOutputReference](#cdktf-aws-cdk-s3-s3bucketobjectlockconfigurationruleoutputreference)|*No description* [s3.S3BucketOwnershipControls](#cdktf-aws-cdk-s3-s3bucketownershipcontrols)|Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_ownership_controls aws_s3_bucket_ownership_controls}. @@ -2312,10 +2330,21 @@ Name|Description [s3.S3BucketReplicationConfigurationRulesFilterOutputReference](#cdktf-aws-cdk-s3-s3bucketreplicationconfigurationrulesfilteroutputreference)|*No description* [s3.S3BucketReplicationConfigurationRulesSourceSelectionCriteriaOutputReference](#cdktf-aws-cdk-s3-s3bucketreplicationconfigurationrulessourceselectioncriteriaoutputreference)|*No description* [s3.S3BucketReplicationConfigurationRulesSourceSelectionCriteriaSseKmsEncryptedObjectsOutputReference](#cdktf-aws-cdk-s3-s3bucketreplicationconfigurationrulessourceselectioncriteriassekmsencryptedobjectsoutputreference)|*No description* +[s3.S3BucketRequestPaymentConfiguration](#cdktf-aws-cdk-s3-s3bucketrequestpaymentconfiguration)|Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_request_payment_configuration aws_s3_bucket_request_payment_configuration}. +[s3.S3BucketServerSideEncryptionConfigurationA](#cdktf-aws-cdk-s3-s3bucketserversideencryptionconfigurationa)|Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_server_side_encryption_configuration aws_s3_bucket_server_side_encryption_configuration}. [s3.S3BucketServerSideEncryptionConfigurationOutputReference](#cdktf-aws-cdk-s3-s3bucketserversideencryptionconfigurationoutputreference)|*No description* +[s3.S3BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultAOutputReference](#cdktf-aws-cdk-s3-s3bucketserversideencryptionconfigurationruleapplyserversideencryptionbydefaultaoutputreference)|*No description* [s3.S3BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutputReference](#cdktf-aws-cdk-s3-s3bucketserversideencryptionconfigurationruleapplyserversideencryptionbydefaultoutputreference)|*No description* [s3.S3BucketServerSideEncryptionConfigurationRuleOutputReference](#cdktf-aws-cdk-s3-s3bucketserversideencryptionconfigurationruleoutputreference)|*No description* +[s3.S3BucketVersioningA](#cdktf-aws-cdk-s3-s3bucketversioninga)|Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_versioning aws_s3_bucket_versioning}. [s3.S3BucketVersioningOutputReference](#cdktf-aws-cdk-s3-s3bucketversioningoutputreference)|*No description* +[s3.S3BucketVersioningVersioningConfigurationOutputReference](#cdktf-aws-cdk-s3-s3bucketversioningversioningconfigurationoutputreference)|*No description* +[s3.S3BucketWebsiteConfiguration](#cdktf-aws-cdk-s3-s3bucketwebsiteconfiguration)|Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration aws_s3_bucket_website_configuration}. +[s3.S3BucketWebsiteConfigurationErrorDocumentOutputReference](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationerrordocumentoutputreference)|*No description* +[s3.S3BucketWebsiteConfigurationIndexDocumentOutputReference](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationindexdocumentoutputreference)|*No description* +[s3.S3BucketWebsiteConfigurationRedirectAllRequestsToOutputReference](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationredirectallrequeststooutputreference)|*No description* +[s3.S3BucketWebsiteConfigurationRoutingRuleConditionOutputReference](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationroutingruleconditionoutputreference)|*No description* +[s3.S3BucketWebsiteConfigurationRoutingRuleRedirectOutputReference](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationroutingruleredirectoutputreference)|*No description* [s3.S3BucketWebsiteOutputReference](#cdktf-aws-cdk-s3-s3bucketwebsiteoutputreference)|*No description* [s3.S3ControlAccessPointPolicy](#cdktf-aws-cdk-s3-s3controlaccesspointpolicy)|Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3control_access_point_policy aws_s3control_access_point_policy}. [s3.S3ControlBucket](#cdktf-aws-cdk-s3-s3controlbucket)|Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3control_bucket aws_s3control_bucket}. @@ -9357,6 +9386,12 @@ Name|Description [s3.S3AccessPointPublicAccessBlockConfiguration](#cdktf-aws-cdk-s3-s3accesspointpublicaccessblockconfiguration)|*No description* [s3.S3AccessPointVpcConfiguration](#cdktf-aws-cdk-s3-s3accesspointvpcconfiguration)|*No description* [s3.S3AccountPublicAccessBlockConfig](#cdktf-aws-cdk-s3-s3accountpublicaccessblockconfig)|AWS Simple Storage Service. +[s3.S3BucketAccelerateConfigurationConfig](#cdktf-aws-cdk-s3-s3bucketaccelerateconfigurationconfig)|AWS Simple Storage Service. +[s3.S3BucketAclAccessControlPolicy](#cdktf-aws-cdk-s3-s3bucketaclaccesscontrolpolicy)|*No description* +[s3.S3BucketAclAccessControlPolicyGrant](#cdktf-aws-cdk-s3-s3bucketaclaccesscontrolpolicygrant)|*No description* +[s3.S3BucketAclAccessControlPolicyGrantGrantee](#cdktf-aws-cdk-s3-s3bucketaclaccesscontrolpolicygrantgrantee)|*No description* +[s3.S3BucketAclAccessControlPolicyOwner](#cdktf-aws-cdk-s3-s3bucketaclaccesscontrolpolicyowner)|*No description* +[s3.S3BucketAclConfig](#cdktf-aws-cdk-s3-s3bucketaclconfig)|AWS Simple Storage Service. [s3.S3BucketAnalyticsConfigurationConfig](#cdktf-aws-cdk-s3-s3bucketanalyticsconfigurationconfig)|AWS Simple Storage Service. [s3.S3BucketAnalyticsConfigurationFilter](#cdktf-aws-cdk-s3-s3bucketanalyticsconfigurationfilter)|*No description* [s3.S3BucketAnalyticsConfigurationStorageClassAnalysis](#cdktf-aws-cdk-s3-s3bucketanalyticsconfigurationstorageclassanalysis)|*No description* @@ -9364,6 +9399,8 @@ Name|Description [s3.S3BucketAnalyticsConfigurationStorageClassAnalysisDataExportDestination](#cdktf-aws-cdk-s3-s3bucketanalyticsconfigurationstorageclassanalysisdataexportdestination)|*No description* [s3.S3BucketAnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination](#cdktf-aws-cdk-s3-s3bucketanalyticsconfigurationstorageclassanalysisdataexportdestinations3bucketdestination)|*No description* [s3.S3BucketConfig](#cdktf-aws-cdk-s3-s3bucketconfig)|AWS Simple Storage Service. +[s3.S3BucketCorsConfigurationConfig](#cdktf-aws-cdk-s3-s3bucketcorsconfigurationconfig)|AWS Simple Storage Service. +[s3.S3BucketCorsConfigurationCorsRule](#cdktf-aws-cdk-s3-s3bucketcorsconfigurationcorsrule)|*No description* [s3.S3BucketCorsRule](#cdktf-aws-cdk-s3-s3bucketcorsrule)|*No description* [s3.S3BucketGrant](#cdktf-aws-cdk-s3-s3bucketgrant)|*No description* [s3.S3BucketIntelligentTieringConfigurationConfig](#cdktf-aws-cdk-s3-s3bucketintelligenttieringconfigurationconfig)|AWS Simple Storage Service. @@ -9377,12 +9414,25 @@ Name|Description [s3.S3BucketInventoryDestinationBucketEncryptionSseS3](#cdktf-aws-cdk-s3-s3bucketinventorydestinationbucketencryptionsses3)|*No description* [s3.S3BucketInventoryFilter](#cdktf-aws-cdk-s3-s3bucketinventoryfilter)|*No description* [s3.S3BucketInventorySchedule](#cdktf-aws-cdk-s3-s3bucketinventoryschedule)|*No description* +[s3.S3BucketLifecycleConfigurationConfig](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationconfig)|AWS Simple Storage Service. +[s3.S3BucketLifecycleConfigurationRule](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationrule)|*No description* +[s3.S3BucketLifecycleConfigurationRuleAbortIncompleteMultipartUpload](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationruleabortincompletemultipartupload)|*No description* +[s3.S3BucketLifecycleConfigurationRuleExpiration](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationruleexpiration)|*No description* +[s3.S3BucketLifecycleConfigurationRuleFilter](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationrulefilter)|*No description* +[s3.S3BucketLifecycleConfigurationRuleFilterAnd](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationrulefilterand)|*No description* +[s3.S3BucketLifecycleConfigurationRuleFilterTag](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationrulefiltertag)|*No description* +[s3.S3BucketLifecycleConfigurationRuleNoncurrentVersionExpiration](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationrulenoncurrentversionexpiration)|*No description* +[s3.S3BucketLifecycleConfigurationRuleNoncurrentVersionTransition](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationrulenoncurrentversiontransition)|*No description* +[s3.S3BucketLifecycleConfigurationRuleTransition](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationruletransition)|*No description* [s3.S3BucketLifecycleRule](#cdktf-aws-cdk-s3-s3bucketlifecyclerule)|*No description* [s3.S3BucketLifecycleRuleExpiration](#cdktf-aws-cdk-s3-s3bucketlifecycleruleexpiration)|*No description* [s3.S3BucketLifecycleRuleNoncurrentVersionExpiration](#cdktf-aws-cdk-s3-s3bucketlifecyclerulenoncurrentversionexpiration)|*No description* [s3.S3BucketLifecycleRuleNoncurrentVersionTransition](#cdktf-aws-cdk-s3-s3bucketlifecyclerulenoncurrentversiontransition)|*No description* [s3.S3BucketLifecycleRuleTransition](#cdktf-aws-cdk-s3-s3bucketlifecycleruletransition)|*No description* [s3.S3BucketLogging](#cdktf-aws-cdk-s3-s3bucketlogging)|*No description* +[s3.S3BucketLoggingAConfig](#cdktf-aws-cdk-s3-s3bucketloggingaconfig)|AWS Simple Storage Service. +[s3.S3BucketLoggingTargetGrant](#cdktf-aws-cdk-s3-s3bucketloggingtargetgrant)|*No description* +[s3.S3BucketLoggingTargetGrantGrantee](#cdktf-aws-cdk-s3-s3bucketloggingtargetgrantgrantee)|*No description* [s3.S3BucketMetricConfig](#cdktf-aws-cdk-s3-s3bucketmetricconfig)|AWS Simple Storage Service. [s3.S3BucketMetricFilter](#cdktf-aws-cdk-s3-s3bucketmetricfilter)|*No description* [s3.S3BucketNotificationConfig](#cdktf-aws-cdk-s3-s3bucketnotificationconfig)|AWS Simple Storage Service. @@ -9391,8 +9441,11 @@ Name|Description [s3.S3BucketNotificationTopic](#cdktf-aws-cdk-s3-s3bucketnotificationtopic)|*No description* [s3.S3BucketObjectConfig](#cdktf-aws-cdk-s3-s3bucketobjectconfig)|AWS Simple Storage Service. [s3.S3BucketObjectLockConfiguration](#cdktf-aws-cdk-s3-s3bucketobjectlockconfiguration)|*No description* +[s3.S3BucketObjectLockConfigurationAConfig](#cdktf-aws-cdk-s3-s3bucketobjectlockconfigurationaconfig)|AWS Simple Storage Service. [s3.S3BucketObjectLockConfigurationRule](#cdktf-aws-cdk-s3-s3bucketobjectlockconfigurationrule)|*No description* +[s3.S3BucketObjectLockConfigurationRuleA](#cdktf-aws-cdk-s3-s3bucketobjectlockconfigurationrulea)|*No description* [s3.S3BucketObjectLockConfigurationRuleDefaultRetention](#cdktf-aws-cdk-s3-s3bucketobjectlockconfigurationruledefaultretention)|*No description* +[s3.S3BucketObjectLockConfigurationRuleDefaultRetentionA](#cdktf-aws-cdk-s3-s3bucketobjectlockconfigurationruledefaultretentiona)|*No description* [s3.S3BucketOwnershipControlsConfig](#cdktf-aws-cdk-s3-s3bucketownershipcontrolsconfig)|AWS Simple Storage Service. [s3.S3BucketOwnershipControlsRule](#cdktf-aws-cdk-s3-s3bucketownershipcontrolsrule)|*No description* [s3.S3BucketPolicyConfig](#cdktf-aws-cdk-s3-s3bucketpolicyconfig)|AWS Simple Storage Service. @@ -9423,11 +9476,24 @@ Name|Description [s3.S3BucketReplicationConfigurationRulesFilter](#cdktf-aws-cdk-s3-s3bucketreplicationconfigurationrulesfilter)|*No description* [s3.S3BucketReplicationConfigurationRulesSourceSelectionCriteria](#cdktf-aws-cdk-s3-s3bucketreplicationconfigurationrulessourceselectioncriteria)|*No description* [s3.S3BucketReplicationConfigurationRulesSourceSelectionCriteriaSseKmsEncryptedObjects](#cdktf-aws-cdk-s3-s3bucketreplicationconfigurationrulessourceselectioncriteriassekmsencryptedobjects)|*No description* +[s3.S3BucketRequestPaymentConfigurationConfig](#cdktf-aws-cdk-s3-s3bucketrequestpaymentconfigurationconfig)|AWS Simple Storage Service. [s3.S3BucketServerSideEncryptionConfiguration](#cdktf-aws-cdk-s3-s3bucketserversideencryptionconfiguration)|*No description* +[s3.S3BucketServerSideEncryptionConfigurationAConfig](#cdktf-aws-cdk-s3-s3bucketserversideencryptionconfigurationaconfig)|AWS Simple Storage Service. [s3.S3BucketServerSideEncryptionConfigurationRule](#cdktf-aws-cdk-s3-s3bucketserversideencryptionconfigurationrule)|*No description* +[s3.S3BucketServerSideEncryptionConfigurationRuleA](#cdktf-aws-cdk-s3-s3bucketserversideencryptionconfigurationrulea)|*No description* [s3.S3BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault](#cdktf-aws-cdk-s3-s3bucketserversideencryptionconfigurationruleapplyserversideencryptionbydefault)|*No description* +[s3.S3BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultA](#cdktf-aws-cdk-s3-s3bucketserversideencryptionconfigurationruleapplyserversideencryptionbydefaulta)|*No description* [s3.S3BucketVersioning](#cdktf-aws-cdk-s3-s3bucketversioning)|*No description* +[s3.S3BucketVersioningAConfig](#cdktf-aws-cdk-s3-s3bucketversioningaconfig)|AWS Simple Storage Service. +[s3.S3BucketVersioningVersioningConfiguration](#cdktf-aws-cdk-s3-s3bucketversioningversioningconfiguration)|*No description* [s3.S3BucketWebsite](#cdktf-aws-cdk-s3-s3bucketwebsite)|*No description* +[s3.S3BucketWebsiteConfigurationConfig](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationconfig)|AWS Simple Storage Service. +[s3.S3BucketWebsiteConfigurationErrorDocument](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationerrordocument)|*No description* +[s3.S3BucketWebsiteConfigurationIndexDocument](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationindexdocument)|*No description* +[s3.S3BucketWebsiteConfigurationRedirectAllRequestsTo](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationredirectallrequeststo)|*No description* +[s3.S3BucketWebsiteConfigurationRoutingRule](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationroutingrule)|*No description* +[s3.S3BucketWebsiteConfigurationRoutingRuleCondition](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationroutingrulecondition)|*No description* +[s3.S3BucketWebsiteConfigurationRoutingRuleRedirect](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationroutingruleredirect)|*No description* [s3.S3ControlAccessPointPolicyConfig](#cdktf-aws-cdk-s3-s3controlaccesspointpolicyconfig)|AWS Simple Storage Service. [s3.S3ControlBucketConfig](#cdktf-aws-cdk-s3-s3controlbucketconfig)|AWS Simple Storage Service. [s3.S3ControlBucketLifecycleConfigurationConfig](#cdktf-aws-cdk-s3-s3controlbucketlifecycleconfigurationconfig)|AWS Simple Storage Service. @@ -228717,6 +228783,7 @@ new s3.S3Bucket(scope: Construct, id: string, config?: S3BucketConfig) * **lifecycleRule** ([IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketLifecycleRule](#cdktf-aws-cdk-s3-s3bucketlifecyclerule)>) lifecycle_rule block. __*Optional*__ * **logging** ([IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketLogging](#cdktf-aws-cdk-s3-s3bucketlogging)>) logging block. __*Optional*__ * **objectLockConfiguration** ([s3.S3BucketObjectLockConfiguration](#cdktf-aws-cdk-s3-s3bucketobjectlockconfiguration)) object_lock_configuration block. __*Optional*__ + * **objectLockEnabled** (boolean | [IResolvable](#cdktf-iresolvable)) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket#object_lock_enabled S3Bucket#object_lock_enabled}. __*Optional*__ * **policy** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket#policy S3Bucket#policy}. __*Optional*__ * **replicationConfiguration** ([s3.S3BucketReplicationConfiguration](#cdktf-aws-cdk-s3-s3bucketreplicationconfiguration)) replication_configuration block. __*Optional*__ * **requestPayer** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket#request_payer S3Bucket#request_payer}. __*Optional*__ @@ -228750,6 +228817,7 @@ Name | Type | Description **lifecycleRule** | [IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketLifecycleRule](#cdktf-aws-cdk-s3-s3bucketlifecyclerule)> | **logging** | [IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketLogging](#cdktf-aws-cdk-s3-s3bucketlogging)> | **objectLockConfiguration** | [s3.S3BucketObjectLockConfigurationOutputReference](#cdktf-aws-cdk-s3-s3bucketobjectlockconfigurationoutputreference) | +**objectLockEnabled** | boolean | [IResolvable](#cdktf-iresolvable) | **policy** | string | **region** | string | **replicationConfiguration** | [s3.S3BucketReplicationConfigurationOutputReference](#cdktf-aws-cdk-s3-s3bucketreplicationconfigurationoutputreference) | @@ -228772,6 +228840,7 @@ Name | Type | Description **lifecycleRuleInput**? | [IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketLifecycleRule](#cdktf-aws-cdk-s3-s3bucketlifecyclerule)> | __*Optional*__ **loggingInput**? | [IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketLogging](#cdktf-aws-cdk-s3-s3bucketlogging)> | __*Optional*__ **objectLockConfigurationInput**? | [s3.S3BucketObjectLockConfiguration](#cdktf-aws-cdk-s3-s3bucketobjectlockconfiguration) | __*Optional*__ +**objectLockEnabledInput**? | boolean | [IResolvable](#cdktf-iresolvable) | __*Optional*__ **policyInput**? | string | __*Optional*__ **replicationConfigurationInput**? | [s3.S3BucketReplicationConfiguration](#cdktf-aws-cdk-s3-s3bucketreplicationconfiguration) | __*Optional*__ **requestPayerInput**? | string | __*Optional*__ @@ -228796,7 +228865,7 @@ putObjectLockConfiguration(value: S3BucketObjectLockConfiguration): void ``` * **value** ([s3.S3BucketObjectLockConfiguration](#cdktf-aws-cdk-s3-s3bucketobjectlockconfiguration)) *No description* - * **objectLockEnabled** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket#object_lock_enabled S3Bucket#object_lock_enabled}. + * **objectLockEnabled** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket#object_lock_enabled S3Bucket#object_lock_enabled}. __*Optional*__ * **rule** ([s3.S3BucketObjectLockConfigurationRule](#cdktf-aws-cdk-s3-s3bucketobjectlockconfigurationrule)) rule block. __*Optional*__ @@ -228995,6 +229064,18 @@ resetObjectLockConfiguration(): void +#### resetObjectLockEnabled() + + + +```ts +resetObjectLockEnabled(): void +``` + + + + + #### resetPolicy() @@ -229129,6 +229210,396 @@ __Returns__: +## class S3BucketAccelerateConfiguration + +Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_accelerate_configuration aws_s3_bucket_accelerate_configuration}. + +__Implements__: [IConstruct](#constructs-iconstruct), [IDependable](#constructs-idependable), [ITerraformResource](#cdktf-iterraformresource), [ITerraformDependable](#cdktf-iterraformdependable), [ITerraformAddressable](#cdktf-iterraformaddressable), [IInterpolatingParent](#cdktf-iinterpolatingparent) +__Submodule__: s3 + +__Extends__: [TerraformResource](#cdktf-terraformresource) + +### Initializer + + +Create a new {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_accelerate_configuration aws_s3_bucket_accelerate_configuration} Resource. + +```ts +new s3.S3BucketAccelerateConfiguration(scope: Construct, id: string, config: S3BucketAccelerateConfigurationConfig) +``` + +* **scope** ([Construct](#constructs-construct)) The scope in which to define this construct. +* **id** (string) The scoped construct ID. +* **config** ([s3.S3BucketAccelerateConfigurationConfig](#cdktf-aws-cdk-s3-s3bucketaccelerateconfigurationconfig)) *No description* + * **count** (number) *No description* __*Optional*__ + * **dependsOn** (Array<[ITerraformDependable](#cdktf-iterraformdependable)>) *No description* __*Optional*__ + * **lifecycle** ([TerraformResourceLifecycle](#cdktf-terraformresourcelifecycle)) *No description* __*Optional*__ + * **provider** ([TerraformProvider](#cdktf-terraformprovider)) *No description* __*Optional*__ + * **bucket** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_accelerate_configuration#bucket S3BucketAccelerateConfiguration#bucket}. + * **status** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_accelerate_configuration#status S3BucketAccelerateConfiguration#status}. + * **expectedBucketOwner** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_accelerate_configuration#expected_bucket_owner S3BucketAccelerateConfiguration#expected_bucket_owner}. __*Optional*__ + + + +### Properties + + +Name | Type | Description +-----|------|------------- +**bucket** | string | +**expectedBucketOwner** | string | +**id** | string | +**status** | string | +**bucketInput**? | string | __*Optional*__ +**expectedBucketOwnerInput**? | string | __*Optional*__ +**statusInput**? | string | __*Optional*__ +*static* **tfResourceType** | string | + +### Methods + + +#### resetExpectedBucketOwner() + + + +```ts +resetExpectedBucketOwner(): void +``` + + + + + +#### protected synthesizeAttributes() + + + +```ts +protected synthesizeAttributes(): Map +``` + + +__Returns__: +* Map + + + +## class S3BucketAcl + +Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl aws_s3_bucket_acl}. + +__Implements__: [IConstruct](#constructs-iconstruct), [IDependable](#constructs-idependable), [ITerraformResource](#cdktf-iterraformresource), [ITerraformDependable](#cdktf-iterraformdependable), [ITerraformAddressable](#cdktf-iterraformaddressable), [IInterpolatingParent](#cdktf-iinterpolatingparent) +__Submodule__: s3 + +__Extends__: [TerraformResource](#cdktf-terraformresource) + +### Initializer + + +Create a new {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl aws_s3_bucket_acl} Resource. + +```ts +new s3.S3BucketAcl(scope: Construct, id: string, config: S3BucketAclConfig) +``` + +* **scope** ([Construct](#constructs-construct)) The scope in which to define this construct. +* **id** (string) The scoped construct ID. +* **config** ([s3.S3BucketAclConfig](#cdktf-aws-cdk-s3-s3bucketaclconfig)) *No description* + * **count** (number) *No description* __*Optional*__ + * **dependsOn** (Array<[ITerraformDependable](#cdktf-iterraformdependable)>) *No description* __*Optional*__ + * **lifecycle** ([TerraformResourceLifecycle](#cdktf-terraformresourcelifecycle)) *No description* __*Optional*__ + * **provider** ([TerraformProvider](#cdktf-terraformprovider)) *No description* __*Optional*__ + * **bucket** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl#bucket S3BucketAcl#bucket}. + * **accessControlPolicy** ([s3.S3BucketAclAccessControlPolicy](#cdktf-aws-cdk-s3-s3bucketaclaccesscontrolpolicy)) access_control_policy block. __*Optional*__ + * **acl** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl#acl S3BucketAcl#acl}. __*Optional*__ + * **expectedBucketOwner** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl#expected_bucket_owner S3BucketAcl#expected_bucket_owner}. __*Optional*__ + + + +### Properties + + +Name | Type | Description +-----|------|------------- +**accessControlPolicy** | [s3.S3BucketAclAccessControlPolicyOutputReference](#cdktf-aws-cdk-s3-s3bucketaclaccesscontrolpolicyoutputreference) | +**acl** | string | +**bucket** | string | +**expectedBucketOwner** | string | +**id** | string | +**accessControlPolicyInput**? | [s3.S3BucketAclAccessControlPolicy](#cdktf-aws-cdk-s3-s3bucketaclaccesscontrolpolicy) | __*Optional*__ +**aclInput**? | string | __*Optional*__ +**bucketInput**? | string | __*Optional*__ +**expectedBucketOwnerInput**? | string | __*Optional*__ +*static* **tfResourceType** | string | + +### Methods + + +#### putAccessControlPolicy(value) + + + +```ts +putAccessControlPolicy(value: S3BucketAclAccessControlPolicy): void +``` + +* **value** ([s3.S3BucketAclAccessControlPolicy](#cdktf-aws-cdk-s3-s3bucketaclaccesscontrolpolicy)) *No description* + * **owner** ([s3.S3BucketAclAccessControlPolicyOwner](#cdktf-aws-cdk-s3-s3bucketaclaccesscontrolpolicyowner)) owner block. + * **grant** ([IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketAclAccessControlPolicyGrant](#cdktf-aws-cdk-s3-s3bucketaclaccesscontrolpolicygrant)>) grant block. __*Optional*__ + + + + +#### resetAccessControlPolicy() + + + +```ts +resetAccessControlPolicy(): void +``` + + + + + +#### resetAcl() + + + +```ts +resetAcl(): void +``` + + + + + +#### resetExpectedBucketOwner() + + + +```ts +resetExpectedBucketOwner(): void +``` + + + + + +#### protected synthesizeAttributes() + + + +```ts +protected synthesizeAttributes(): Map +``` + + +__Returns__: +* Map + + + +## class S3BucketAclAccessControlPolicyGrantGranteeOutputReference + + + +__Implements__: [IInterpolatingParent](#cdktf-iinterpolatingparent) +__Submodule__: s3 + +__Extends__: [ComplexObject](#cdktf-complexobject) + +### Initializer + + + + +```ts +new s3.S3BucketAclAccessControlPolicyGrantGranteeOutputReference(terraformResource: IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) +``` + +* **terraformResource** ([IInterpolatingParent](#cdktf-iinterpolatingparent)) The parent resource. +* **terraformAttribute** (string) The attribute on the parent resource this class is referencing. +* **isSingleItem** (boolean) True if this is a block, false if it's a list. + + + +### Properties + + +Name | Type | Description +-----|------|------------- +**displayName** | string | +**emailAddress** | string | +**id** | string | +**type** | string | +**uri** | string | +**emailAddressInput**? | string | __*Optional*__ +**idInput**? | string | __*Optional*__ +**internalValue**? | [s3.S3BucketAclAccessControlPolicyGrantGrantee](#cdktf-aws-cdk-s3-s3bucketaclaccesscontrolpolicygrantgrantee) | __*Optional*__ +**typeInput**? | string | __*Optional*__ +**uriInput**? | string | __*Optional*__ + +### Methods + + +#### resetEmailAddress() + + + +```ts +resetEmailAddress(): void +``` + + + + + +#### resetId() + + + +```ts +resetId(): void +``` + + + + + +#### resetUri() + + + +```ts +resetUri(): void +``` + + + + + + + +## class S3BucketAclAccessControlPolicyOutputReference + + + +__Implements__: [IInterpolatingParent](#cdktf-iinterpolatingparent) +__Submodule__: s3 + +__Extends__: [ComplexObject](#cdktf-complexobject) + +### Initializer + + + + +```ts +new s3.S3BucketAclAccessControlPolicyOutputReference(terraformResource: IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) +``` + +* **terraformResource** ([IInterpolatingParent](#cdktf-iinterpolatingparent)) The parent resource. +* **terraformAttribute** (string) The attribute on the parent resource this class is referencing. +* **isSingleItem** (boolean) True if this is a block, false if it's a list. + + + +### Properties + + +Name | Type | Description +-----|------|------------- +**grant** | [IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketAclAccessControlPolicyGrant](#cdktf-aws-cdk-s3-s3bucketaclaccesscontrolpolicygrant)> | +**owner** | [s3.S3BucketAclAccessControlPolicyOwnerOutputReference](#cdktf-aws-cdk-s3-s3bucketaclaccesscontrolpolicyowneroutputreference) | +**grantInput**? | [IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketAclAccessControlPolicyGrant](#cdktf-aws-cdk-s3-s3bucketaclaccesscontrolpolicygrant)> | __*Optional*__ +**internalValue**? | [s3.S3BucketAclAccessControlPolicy](#cdktf-aws-cdk-s3-s3bucketaclaccesscontrolpolicy) | __*Optional*__ +**ownerInput**? | [s3.S3BucketAclAccessControlPolicyOwner](#cdktf-aws-cdk-s3-s3bucketaclaccesscontrolpolicyowner) | __*Optional*__ + +### Methods + + +#### putOwner(value) + + + +```ts +putOwner(value: S3BucketAclAccessControlPolicyOwner): void +``` + +* **value** ([s3.S3BucketAclAccessControlPolicyOwner](#cdktf-aws-cdk-s3-s3bucketaclaccesscontrolpolicyowner)) *No description* + * **id** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl#id S3BucketAcl#id}. + * **displayName** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl#display_name S3BucketAcl#display_name}. __*Optional*__ + + + + +#### resetGrant() + + + +```ts +resetGrant(): void +``` + + + + + + + +## class S3BucketAclAccessControlPolicyOwnerOutputReference + + + +__Implements__: [IInterpolatingParent](#cdktf-iinterpolatingparent) +__Submodule__: s3 + +__Extends__: [ComplexObject](#cdktf-complexobject) + +### Initializer + + + + +```ts +new s3.S3BucketAclAccessControlPolicyOwnerOutputReference(terraformResource: IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) +``` + +* **terraformResource** ([IInterpolatingParent](#cdktf-iinterpolatingparent)) The parent resource. +* **terraformAttribute** (string) The attribute on the parent resource this class is referencing. +* **isSingleItem** (boolean) True if this is a block, false if it's a list. + + + +### Properties + + +Name | Type | Description +-----|------|------------- +**displayName** | string | +**id** | string | +**displayNameInput**? | string | __*Optional*__ +**idInput**? | string | __*Optional*__ +**internalValue**? | [s3.S3BucketAclAccessControlPolicyOwner](#cdktf-aws-cdk-s3-s3bucketaclaccesscontrolpolicyowner) | __*Optional*__ + +### Methods + + +#### resetDisplayName() + + + +```ts +resetDisplayName(): void +``` + + + + + + + ## class S3BucketAnalyticsConfiguration Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_analytics_configuration aws_s3_bucket_analytics_configuration}. @@ -229565,6 +230036,80 @@ putDataExport(value: S3BucketAnalyticsConfigurationStorageClassAnalysisDataExpor +## class S3BucketCorsConfiguration + +Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_cors_configuration aws_s3_bucket_cors_configuration}. + +__Implements__: [IConstruct](#constructs-iconstruct), [IDependable](#constructs-idependable), [ITerraformResource](#cdktf-iterraformresource), [ITerraformDependable](#cdktf-iterraformdependable), [ITerraformAddressable](#cdktf-iterraformaddressable), [IInterpolatingParent](#cdktf-iinterpolatingparent) +__Submodule__: s3 + +__Extends__: [TerraformResource](#cdktf-terraformresource) + +### Initializer + + +Create a new {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_cors_configuration aws_s3_bucket_cors_configuration} Resource. + +```ts +new s3.S3BucketCorsConfiguration(scope: Construct, id: string, config: S3BucketCorsConfigurationConfig) +``` + +* **scope** ([Construct](#constructs-construct)) The scope in which to define this construct. +* **id** (string) The scoped construct ID. +* **config** ([s3.S3BucketCorsConfigurationConfig](#cdktf-aws-cdk-s3-s3bucketcorsconfigurationconfig)) *No description* + * **count** (number) *No description* __*Optional*__ + * **dependsOn** (Array<[ITerraformDependable](#cdktf-iterraformdependable)>) *No description* __*Optional*__ + * **lifecycle** ([TerraformResourceLifecycle](#cdktf-terraformresourcelifecycle)) *No description* __*Optional*__ + * **provider** ([TerraformProvider](#cdktf-terraformprovider)) *No description* __*Optional*__ + * **bucket** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_cors_configuration#bucket S3BucketCorsConfiguration#bucket}. + * **corsRule** ([IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketCorsConfigurationCorsRule](#cdktf-aws-cdk-s3-s3bucketcorsconfigurationcorsrule)>) cors_rule block. + * **expectedBucketOwner** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_cors_configuration#expected_bucket_owner S3BucketCorsConfiguration#expected_bucket_owner}. __*Optional*__ + + + +### Properties + + +Name | Type | Description +-----|------|------------- +**bucket** | string | +**corsRule** | [IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketCorsConfigurationCorsRule](#cdktf-aws-cdk-s3-s3bucketcorsconfigurationcorsrule)> | +**expectedBucketOwner** | string | +**id** | string | +**bucketInput**? | string | __*Optional*__ +**corsRuleInput**? | [IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketCorsConfigurationCorsRule](#cdktf-aws-cdk-s3-s3bucketcorsconfigurationcorsrule)> | __*Optional*__ +**expectedBucketOwnerInput**? | string | __*Optional*__ +*static* **tfResourceType** | string | + +### Methods + + +#### resetExpectedBucketOwner() + + + +```ts +resetExpectedBucketOwner(): void +``` + + + + + +#### protected synthesizeAttributes() + + + +```ts +protected synthesizeAttributes(): Map +``` + + +__Returns__: +* Map + + + ## class S3BucketIntelligentTieringConfiguration Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_intelligent_tiering_configuration aws_s3_bucket_intelligent_tiering_configuration}. @@ -230288,6 +230833,539 @@ Name | Type | Description +## class S3BucketLifecycleConfiguration + +Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration aws_s3_bucket_lifecycle_configuration}. + +__Implements__: [IConstruct](#constructs-iconstruct), [IDependable](#constructs-idependable), [ITerraformResource](#cdktf-iterraformresource), [ITerraformDependable](#cdktf-iterraformdependable), [ITerraformAddressable](#cdktf-iterraformaddressable), [IInterpolatingParent](#cdktf-iinterpolatingparent) +__Submodule__: s3 + +__Extends__: [TerraformResource](#cdktf-terraformresource) + +### Initializer + + +Create a new {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration aws_s3_bucket_lifecycle_configuration} Resource. + +```ts +new s3.S3BucketLifecycleConfiguration(scope: Construct, id: string, config: S3BucketLifecycleConfigurationConfig) +``` + +* **scope** ([Construct](#constructs-construct)) The scope in which to define this construct. +* **id** (string) The scoped construct ID. +* **config** ([s3.S3BucketLifecycleConfigurationConfig](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationconfig)) *No description* + * **count** (number) *No description* __*Optional*__ + * **dependsOn** (Array<[ITerraformDependable](#cdktf-iterraformdependable)>) *No description* __*Optional*__ + * **lifecycle** ([TerraformResourceLifecycle](#cdktf-terraformresourcelifecycle)) *No description* __*Optional*__ + * **provider** ([TerraformProvider](#cdktf-terraformprovider)) *No description* __*Optional*__ + * **bucket** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#bucket S3BucketLifecycleConfiguration#bucket}. + * **rule** ([IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketLifecycleConfigurationRule](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationrule)>) rule block. + * **expectedBucketOwner** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#expected_bucket_owner S3BucketLifecycleConfiguration#expected_bucket_owner}. __*Optional*__ + + + +### Properties + + +Name | Type | Description +-----|------|------------- +**bucket** | string | +**expectedBucketOwner** | string | +**id** | string | +**rule** | [IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketLifecycleConfigurationRule](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationrule)> | +**bucketInput**? | string | __*Optional*__ +**expectedBucketOwnerInput**? | string | __*Optional*__ +**ruleInput**? | [IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketLifecycleConfigurationRule](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationrule)> | __*Optional*__ +*static* **tfResourceType** | string | + +### Methods + + +#### resetExpectedBucketOwner() + + + +```ts +resetExpectedBucketOwner(): void +``` + + + + + +#### protected synthesizeAttributes() + + + +```ts +protected synthesizeAttributes(): Map +``` + + +__Returns__: +* Map + + + +## class S3BucketLifecycleConfigurationRuleAbortIncompleteMultipartUploadOutputReference + + + +__Implements__: [IInterpolatingParent](#cdktf-iinterpolatingparent) +__Submodule__: s3 + +__Extends__: [ComplexObject](#cdktf-complexobject) + +### Initializer + + + + +```ts +new s3.S3BucketLifecycleConfigurationRuleAbortIncompleteMultipartUploadOutputReference(terraformResource: IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) +``` + +* **terraformResource** ([IInterpolatingParent](#cdktf-iinterpolatingparent)) The parent resource. +* **terraformAttribute** (string) The attribute on the parent resource this class is referencing. +* **isSingleItem** (boolean) True if this is a block, false if it's a list. + + + +### Properties + + +Name | Type | Description +-----|------|------------- +**daysAfterInitiation** | number | +**daysAfterInitiationInput**? | number | __*Optional*__ +**internalValue**? | [s3.S3BucketLifecycleConfigurationRuleAbortIncompleteMultipartUpload](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationruleabortincompletemultipartupload) | __*Optional*__ + +### Methods + + +#### resetDaysAfterInitiation() + + + +```ts +resetDaysAfterInitiation(): void +``` + + + + + + + +## class S3BucketLifecycleConfigurationRuleExpirationOutputReference + + + +__Implements__: [IInterpolatingParent](#cdktf-iinterpolatingparent) +__Submodule__: s3 + +__Extends__: [ComplexObject](#cdktf-complexobject) + +### Initializer + + + + +```ts +new s3.S3BucketLifecycleConfigurationRuleExpirationOutputReference(terraformResource: IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) +``` + +* **terraformResource** ([IInterpolatingParent](#cdktf-iinterpolatingparent)) The parent resource. +* **terraformAttribute** (string) The attribute on the parent resource this class is referencing. +* **isSingleItem** (boolean) True if this is a block, false if it's a list. + + + +### Properties + + +Name | Type | Description +-----|------|------------- +**date** | string | +**days** | number | +**expiredObjectDeleteMarker** | boolean | [IResolvable](#cdktf-iresolvable) | +**dateInput**? | string | __*Optional*__ +**daysInput**? | number | __*Optional*__ +**expiredObjectDeleteMarkerInput**? | boolean | [IResolvable](#cdktf-iresolvable) | __*Optional*__ +**internalValue**? | [s3.S3BucketLifecycleConfigurationRuleExpiration](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationruleexpiration) | __*Optional*__ + +### Methods + + +#### resetDate() + + + +```ts +resetDate(): void +``` + + + + + +#### resetDays() + + + +```ts +resetDays(): void +``` + + + + + +#### resetExpiredObjectDeleteMarker() + + + +```ts +resetExpiredObjectDeleteMarker(): void +``` + + + + + + + +## class S3BucketLifecycleConfigurationRuleFilterAndOutputReference + + + +__Implements__: [IInterpolatingParent](#cdktf-iinterpolatingparent) +__Submodule__: s3 + +__Extends__: [ComplexObject](#cdktf-complexobject) + +### Initializer + + + + +```ts +new s3.S3BucketLifecycleConfigurationRuleFilterAndOutputReference(terraformResource: IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) +``` + +* **terraformResource** ([IInterpolatingParent](#cdktf-iinterpolatingparent)) The parent resource. +* **terraformAttribute** (string) The attribute on the parent resource this class is referencing. +* **isSingleItem** (boolean) True if this is a block, false if it's a list. + + + +### Properties + + +Name | Type | Description +-----|------|------------- +**objectSizeGreaterThan** | number | +**objectSizeLessThan** | number | +**prefix** | string | +**tags** | Map | +**internalValue**? | [s3.S3BucketLifecycleConfigurationRuleFilterAnd](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationrulefilterand) | __*Optional*__ +**objectSizeGreaterThanInput**? | number | __*Optional*__ +**objectSizeLessThanInput**? | number | __*Optional*__ +**prefixInput**? | string | __*Optional*__ +**tagsInput**? | Map | __*Optional*__ + +### Methods + + +#### resetObjectSizeGreaterThan() + + + +```ts +resetObjectSizeGreaterThan(): void +``` + + + + + +#### resetObjectSizeLessThan() + + + +```ts +resetObjectSizeLessThan(): void +``` + + + + + +#### resetPrefix() + + + +```ts +resetPrefix(): void +``` + + + + + +#### resetTags() + + + +```ts +resetTags(): void +``` + + + + + + + +## class S3BucketLifecycleConfigurationRuleFilterOutputReference + + + +__Implements__: [IInterpolatingParent](#cdktf-iinterpolatingparent) +__Submodule__: s3 + +__Extends__: [ComplexObject](#cdktf-complexobject) + +### Initializer + + + + +```ts +new s3.S3BucketLifecycleConfigurationRuleFilterOutputReference(terraformResource: IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) +``` + +* **terraformResource** ([IInterpolatingParent](#cdktf-iinterpolatingparent)) The parent resource. +* **terraformAttribute** (string) The attribute on the parent resource this class is referencing. +* **isSingleItem** (boolean) True if this is a block, false if it's a list. + + + +### Properties + + +Name | Type | Description +-----|------|------------- +**and** | [s3.S3BucketLifecycleConfigurationRuleFilterAndOutputReference](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationrulefilterandoutputreference) | +**objectSizeGreaterThan** | string | +**objectSizeLessThan** | string | +**prefix** | string | +**tag** | [s3.S3BucketLifecycleConfigurationRuleFilterTagOutputReference](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationrulefiltertagoutputreference) | +**andInput**? | [s3.S3BucketLifecycleConfigurationRuleFilterAnd](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationrulefilterand) | __*Optional*__ +**internalValue**? | [s3.S3BucketLifecycleConfigurationRuleFilter](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationrulefilter) | __*Optional*__ +**objectSizeGreaterThanInput**? | string | __*Optional*__ +**objectSizeLessThanInput**? | string | __*Optional*__ +**prefixInput**? | string | __*Optional*__ +**tagInput**? | [s3.S3BucketLifecycleConfigurationRuleFilterTag](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationrulefiltertag) | __*Optional*__ + +### Methods + + +#### putAnd(value) + + + +```ts +putAnd(value: S3BucketLifecycleConfigurationRuleFilterAnd): void +``` + +* **value** ([s3.S3BucketLifecycleConfigurationRuleFilterAnd](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationrulefilterand)) *No description* + * **objectSizeGreaterThan** (number) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#object_size_greater_than S3BucketLifecycleConfiguration#object_size_greater_than}. __*Optional*__ + * **objectSizeLessThan** (number) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#object_size_less_than S3BucketLifecycleConfiguration#object_size_less_than}. __*Optional*__ + * **prefix** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#prefix S3BucketLifecycleConfiguration#prefix}. __*Optional*__ + * **tags** (Map) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#tags S3BucketLifecycleConfiguration#tags}. __*Optional*__ + + + + +#### putTag(value) + + + +```ts +putTag(value: S3BucketLifecycleConfigurationRuleFilterTag): void +``` + +* **value** ([s3.S3BucketLifecycleConfigurationRuleFilterTag](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationrulefiltertag)) *No description* + * **key** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#key S3BucketLifecycleConfiguration#key}. + * **value** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#value S3BucketLifecycleConfiguration#value}. + + + + +#### resetAnd() + + + +```ts +resetAnd(): void +``` + + + + + +#### resetObjectSizeGreaterThan() + + + +```ts +resetObjectSizeGreaterThan(): void +``` + + + + + +#### resetObjectSizeLessThan() + + + +```ts +resetObjectSizeLessThan(): void +``` + + + + + +#### resetPrefix() + + + +```ts +resetPrefix(): void +``` + + + + + +#### resetTag() + + + +```ts +resetTag(): void +``` + + + + + + + +## class S3BucketLifecycleConfigurationRuleFilterTagOutputReference + + + +__Implements__: [IInterpolatingParent](#cdktf-iinterpolatingparent) +__Submodule__: s3 + +__Extends__: [ComplexObject](#cdktf-complexobject) + +### Initializer + + + + +```ts +new s3.S3BucketLifecycleConfigurationRuleFilterTagOutputReference(terraformResource: IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) +``` + +* **terraformResource** ([IInterpolatingParent](#cdktf-iinterpolatingparent)) The parent resource. +* **terraformAttribute** (string) The attribute on the parent resource this class is referencing. +* **isSingleItem** (boolean) True if this is a block, false if it's a list. + + + +### Properties + + +Name | Type | Description +-----|------|------------- +**key** | string | +**value** | string | +**internalValue**? | [s3.S3BucketLifecycleConfigurationRuleFilterTag](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationrulefiltertag) | __*Optional*__ +**keyInput**? | string | __*Optional*__ +**valueInput**? | string | __*Optional*__ + + + +## class S3BucketLifecycleConfigurationRuleNoncurrentVersionExpirationOutputReference + + + +__Implements__: [IInterpolatingParent](#cdktf-iinterpolatingparent) +__Submodule__: s3 + +__Extends__: [ComplexObject](#cdktf-complexobject) + +### Initializer + + + + +```ts +new s3.S3BucketLifecycleConfigurationRuleNoncurrentVersionExpirationOutputReference(terraformResource: IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) +``` + +* **terraformResource** ([IInterpolatingParent](#cdktf-iinterpolatingparent)) The parent resource. +* **terraformAttribute** (string) The attribute on the parent resource this class is referencing. +* **isSingleItem** (boolean) True if this is a block, false if it's a list. + + + +### Properties + + +Name | Type | Description +-----|------|------------- +**newerNoncurrentVersions** | string | +**noncurrentDays** | number | +**internalValue**? | [s3.S3BucketLifecycleConfigurationRuleNoncurrentVersionExpiration](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationrulenoncurrentversionexpiration) | __*Optional*__ +**newerNoncurrentVersionsInput**? | string | __*Optional*__ +**noncurrentDaysInput**? | number | __*Optional*__ + +### Methods + + +#### resetNewerNoncurrentVersions() + + + +```ts +resetNewerNoncurrentVersions(): void +``` + + + + + +#### resetNoncurrentDays() + + + +```ts +resetNoncurrentDays(): void +``` + + + + + + + ## class S3BucketLifecycleRuleExpirationOutputReference @@ -230416,6 +231494,179 @@ resetDays(): void +## class S3BucketLoggingA + +Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_logging aws_s3_bucket_logging}. + +__Implements__: [IConstruct](#constructs-iconstruct), [IDependable](#constructs-idependable), [ITerraformResource](#cdktf-iterraformresource), [ITerraformDependable](#cdktf-iterraformdependable), [ITerraformAddressable](#cdktf-iterraformaddressable), [IInterpolatingParent](#cdktf-iinterpolatingparent) +__Submodule__: s3 + +__Extends__: [TerraformResource](#cdktf-terraformresource) + +### Initializer + + +Create a new {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_logging aws_s3_bucket_logging} Resource. + +```ts +new s3.S3BucketLoggingA(scope: Construct, id: string, config: S3BucketLoggingAConfig) +``` + +* **scope** ([Construct](#constructs-construct)) The scope in which to define this construct. +* **id** (string) The scoped construct ID. +* **config** ([s3.S3BucketLoggingAConfig](#cdktf-aws-cdk-s3-s3bucketloggingaconfig)) *No description* + * **count** (number) *No description* __*Optional*__ + * **dependsOn** (Array<[ITerraformDependable](#cdktf-iterraformdependable)>) *No description* __*Optional*__ + * **lifecycle** ([TerraformResourceLifecycle](#cdktf-terraformresourcelifecycle)) *No description* __*Optional*__ + * **provider** ([TerraformProvider](#cdktf-terraformprovider)) *No description* __*Optional*__ + * **bucket** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_logging#bucket S3BucketLoggingA#bucket}. + * **targetBucket** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_logging#target_bucket S3BucketLoggingA#target_bucket}. + * **targetPrefix** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_logging#target_prefix S3BucketLoggingA#target_prefix}. + * **expectedBucketOwner** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_logging#expected_bucket_owner S3BucketLoggingA#expected_bucket_owner}. __*Optional*__ + * **targetGrant** ([IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketLoggingTargetGrant](#cdktf-aws-cdk-s3-s3bucketloggingtargetgrant)>) target_grant block. __*Optional*__ + + + +### Properties + + +Name | Type | Description +-----|------|------------- +**bucket** | string | +**expectedBucketOwner** | string | +**id** | string | +**targetBucket** | string | +**targetGrant** | [IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketLoggingTargetGrant](#cdktf-aws-cdk-s3-s3bucketloggingtargetgrant)> | +**targetPrefix** | string | +**bucketInput**? | string | __*Optional*__ +**expectedBucketOwnerInput**? | string | __*Optional*__ +**targetBucketInput**? | string | __*Optional*__ +**targetGrantInput**? | [IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketLoggingTargetGrant](#cdktf-aws-cdk-s3-s3bucketloggingtargetgrant)> | __*Optional*__ +**targetPrefixInput**? | string | __*Optional*__ +*static* **tfResourceType** | string | + +### Methods + + +#### resetExpectedBucketOwner() + + + +```ts +resetExpectedBucketOwner(): void +``` + + + + + +#### resetTargetGrant() + + + +```ts +resetTargetGrant(): void +``` + + + + + +#### protected synthesizeAttributes() + + + +```ts +protected synthesizeAttributes(): Map +``` + + +__Returns__: +* Map + + + +## class S3BucketLoggingTargetGrantGranteeOutputReference + + + +__Implements__: [IInterpolatingParent](#cdktf-iinterpolatingparent) +__Submodule__: s3 + +__Extends__: [ComplexObject](#cdktf-complexobject) + +### Initializer + + + + +```ts +new s3.S3BucketLoggingTargetGrantGranteeOutputReference(terraformResource: IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) +``` + +* **terraformResource** ([IInterpolatingParent](#cdktf-iinterpolatingparent)) The parent resource. +* **terraformAttribute** (string) The attribute on the parent resource this class is referencing. +* **isSingleItem** (boolean) True if this is a block, false if it's a list. + + + +### Properties + + +Name | Type | Description +-----|------|------------- +**displayName** | string | +**emailAddress** | string | +**id** | string | +**type** | string | +**uri** | string | +**emailAddressInput**? | string | __*Optional*__ +**idInput**? | string | __*Optional*__ +**internalValue**? | [s3.S3BucketLoggingTargetGrantGrantee](#cdktf-aws-cdk-s3-s3bucketloggingtargetgrantgrantee) | __*Optional*__ +**typeInput**? | string | __*Optional*__ +**uriInput**? | string | __*Optional*__ + +### Methods + + +#### resetEmailAddress() + + + +```ts +resetEmailAddress(): void +``` + + + + + +#### resetId() + + + +```ts +resetId(): void +``` + + + + + +#### resetUri() + + + +```ts +resetUri(): void +``` + + + + + + + ## class S3BucketMetric Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_metric aws_s3_bucket_metric}. @@ -231090,6 +232341,124 @@ __Returns__: +## class S3BucketObjectLockConfigurationA + +Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_object_lock_configuration aws_s3_bucket_object_lock_configuration}. + +__Implements__: [IConstruct](#constructs-iconstruct), [IDependable](#constructs-idependable), [ITerraformResource](#cdktf-iterraformresource), [ITerraformDependable](#cdktf-iterraformdependable), [ITerraformAddressable](#cdktf-iterraformaddressable), [IInterpolatingParent](#cdktf-iinterpolatingparent) +__Submodule__: s3 + +__Extends__: [TerraformResource](#cdktf-terraformresource) + +### Initializer + + +Create a new {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_object_lock_configuration aws_s3_bucket_object_lock_configuration} Resource. + +```ts +new s3.S3BucketObjectLockConfigurationA(scope: Construct, id: string, config: S3BucketObjectLockConfigurationAConfig) +``` + +* **scope** ([Construct](#constructs-construct)) The scope in which to define this construct. +* **id** (string) The scoped construct ID. +* **config** ([s3.S3BucketObjectLockConfigurationAConfig](#cdktf-aws-cdk-s3-s3bucketobjectlockconfigurationaconfig)) *No description* + * **count** (number) *No description* __*Optional*__ + * **dependsOn** (Array<[ITerraformDependable](#cdktf-iterraformdependable)>) *No description* __*Optional*__ + * **lifecycle** ([TerraformResourceLifecycle](#cdktf-terraformresourcelifecycle)) *No description* __*Optional*__ + * **provider** ([TerraformProvider](#cdktf-terraformprovider)) *No description* __*Optional*__ + * **bucket** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_object_lock_configuration#bucket S3BucketObjectLockConfigurationA#bucket}. + * **rule** ([s3.S3BucketObjectLockConfigurationRuleA](#cdktf-aws-cdk-s3-s3bucketobjectlockconfigurationrulea)) rule block. + * **expectedBucketOwner** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_object_lock_configuration#expected_bucket_owner S3BucketObjectLockConfigurationA#expected_bucket_owner}. __*Optional*__ + * **objectLockEnabled** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_object_lock_configuration#object_lock_enabled S3BucketObjectLockConfigurationA#object_lock_enabled}. __*Optional*__ + * **token** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_object_lock_configuration#token S3BucketObjectLockConfigurationA#token}. __*Optional*__ + + + +### Properties + + +Name | Type | Description +-----|------|------------- +**bucket** | string | +**expectedBucketOwner** | string | +**id** | string | +**objectLockEnabled** | string | +**rule** | [s3.S3BucketObjectLockConfigurationRuleAOutputReference](#cdktf-aws-cdk-s3-s3bucketobjectlockconfigurationruleaoutputreference) | +**token** | string | +**bucketInput**? | string | __*Optional*__ +**expectedBucketOwnerInput**? | string | __*Optional*__ +**objectLockEnabledInput**? | string | __*Optional*__ +**ruleInput**? | [s3.S3BucketObjectLockConfigurationRuleA](#cdktf-aws-cdk-s3-s3bucketobjectlockconfigurationrulea) | __*Optional*__ +**tokenInput**? | string | __*Optional*__ +*static* **tfResourceType** | string | + +### Methods + + +#### putRule(value) + + + +```ts +putRule(value: S3BucketObjectLockConfigurationRuleA): void +``` + +* **value** ([s3.S3BucketObjectLockConfigurationRuleA](#cdktf-aws-cdk-s3-s3bucketobjectlockconfigurationrulea)) *No description* + * **defaultRetention** ([s3.S3BucketObjectLockConfigurationRuleDefaultRetentionA](#cdktf-aws-cdk-s3-s3bucketobjectlockconfigurationruledefaultretentiona)) default_retention block. + + + + +#### resetExpectedBucketOwner() + + + +```ts +resetExpectedBucketOwner(): void +``` + + + + + +#### resetObjectLockEnabled() + + + +```ts +resetObjectLockEnabled(): void +``` + + + + + +#### resetToken() + + + +```ts +resetToken(): void +``` + + + + + +#### protected synthesizeAttributes() + + + +```ts +protected synthesizeAttributes(): Map +``` + + +__Returns__: +* Map + + + ## class S3BucketObjectLockConfigurationOutputReference @@ -231142,6 +232511,18 @@ putRule(value: S3BucketObjectLockConfigurationRule): void +#### resetObjectLockEnabled() + + + +```ts +resetObjectLockEnabled(): void +``` + + + + + #### resetRule() @@ -231156,6 +232537,138 @@ resetRule(): void +## class S3BucketObjectLockConfigurationRuleAOutputReference + + + +__Implements__: [IInterpolatingParent](#cdktf-iinterpolatingparent) +__Submodule__: s3 + +__Extends__: [ComplexObject](#cdktf-complexobject) + +### Initializer + + + + +```ts +new s3.S3BucketObjectLockConfigurationRuleAOutputReference(terraformResource: IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) +``` + +* **terraformResource** ([IInterpolatingParent](#cdktf-iinterpolatingparent)) The parent resource. +* **terraformAttribute** (string) The attribute on the parent resource this class is referencing. +* **isSingleItem** (boolean) True if this is a block, false if it's a list. + + + +### Properties + + +Name | Type | Description +-----|------|------------- +**defaultRetention** | [s3.S3BucketObjectLockConfigurationRuleDefaultRetentionAOutputReference](#cdktf-aws-cdk-s3-s3bucketobjectlockconfigurationruledefaultretentionaoutputreference) | +**defaultRetentionInput**? | [s3.S3BucketObjectLockConfigurationRuleDefaultRetentionA](#cdktf-aws-cdk-s3-s3bucketobjectlockconfigurationruledefaultretentiona) | __*Optional*__ +**internalValue**? | [s3.S3BucketObjectLockConfigurationRuleA](#cdktf-aws-cdk-s3-s3bucketobjectlockconfigurationrulea) | __*Optional*__ + +### Methods + + +#### putDefaultRetention(value) + + + +```ts +putDefaultRetention(value: S3BucketObjectLockConfigurationRuleDefaultRetentionA): void +``` + +* **value** ([s3.S3BucketObjectLockConfigurationRuleDefaultRetentionA](#cdktf-aws-cdk-s3-s3bucketobjectlockconfigurationruledefaultretentiona)) *No description* + * **days** (number) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_object_lock_configuration#days S3BucketObjectLockConfigurationA#days}. __*Optional*__ + * **mode** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_object_lock_configuration#mode S3BucketObjectLockConfigurationA#mode}. __*Optional*__ + * **years** (number) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_object_lock_configuration#years S3BucketObjectLockConfigurationA#years}. __*Optional*__ + + + + + + +## class S3BucketObjectLockConfigurationRuleDefaultRetentionAOutputReference + + + +__Implements__: [IInterpolatingParent](#cdktf-iinterpolatingparent) +__Submodule__: s3 + +__Extends__: [ComplexObject](#cdktf-complexobject) + +### Initializer + + + + +```ts +new s3.S3BucketObjectLockConfigurationRuleDefaultRetentionAOutputReference(terraformResource: IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) +``` + +* **terraformResource** ([IInterpolatingParent](#cdktf-iinterpolatingparent)) The parent resource. +* **terraformAttribute** (string) The attribute on the parent resource this class is referencing. +* **isSingleItem** (boolean) True if this is a block, false if it's a list. + + + +### Properties + + +Name | Type | Description +-----|------|------------- +**days** | number | +**mode** | string | +**years** | number | +**daysInput**? | number | __*Optional*__ +**internalValue**? | [s3.S3BucketObjectLockConfigurationRuleDefaultRetentionA](#cdktf-aws-cdk-s3-s3bucketobjectlockconfigurationruledefaultretentiona) | __*Optional*__ +**modeInput**? | string | __*Optional*__ +**yearsInput**? | number | __*Optional*__ + +### Methods + + +#### resetDays() + + + +```ts +resetDays(): void +``` + + + + + +#### resetMode() + + + +```ts +resetMode(): void +``` + + + + + +#### resetYears() + + + +```ts +resetYears(): void +``` + + + + + + + ## class S3BucketObjectLockConfigurationRuleDefaultRetentionOutputReference @@ -231587,6 +233100,7 @@ new s3.S3BucketReplicationConfigurationA(scope: Construct, id: string, config: S * **bucket** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_replication_configuration#bucket S3BucketReplicationConfigurationA#bucket}. * **role** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_replication_configuration#role S3BucketReplicationConfigurationA#role}. * **rule** ([IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketReplicationConfigurationRule](#cdktf-aws-cdk-s3-s3bucketreplicationconfigurationrule)>) rule block. + * **token** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_replication_configuration#token S3BucketReplicationConfigurationA#token}. __*Optional*__ @@ -231599,14 +233113,28 @@ Name | Type | Description **id** | string | **role** | string | **rule** | [IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketReplicationConfigurationRule](#cdktf-aws-cdk-s3-s3bucketreplicationconfigurationrule)> | +**token** | string | **bucketInput**? | string | __*Optional*__ **roleInput**? | string | __*Optional*__ **ruleInput**? | [IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketReplicationConfigurationRule](#cdktf-aws-cdk-s3-s3bucketreplicationconfigurationrule)> | __*Optional*__ +**tokenInput**? | string | __*Optional*__ *static* **tfResourceType** | string | ### Methods +#### resetToken() + + + +```ts +resetToken(): void +``` + + + + + #### protected synthesizeAttributes() @@ -233031,6 +234559,154 @@ Name | Type | Description +## class S3BucketRequestPaymentConfiguration + +Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_request_payment_configuration aws_s3_bucket_request_payment_configuration}. + +__Implements__: [IConstruct](#constructs-iconstruct), [IDependable](#constructs-idependable), [ITerraformResource](#cdktf-iterraformresource), [ITerraformDependable](#cdktf-iterraformdependable), [ITerraformAddressable](#cdktf-iterraformaddressable), [IInterpolatingParent](#cdktf-iinterpolatingparent) +__Submodule__: s3 + +__Extends__: [TerraformResource](#cdktf-terraformresource) + +### Initializer + + +Create a new {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_request_payment_configuration aws_s3_bucket_request_payment_configuration} Resource. + +```ts +new s3.S3BucketRequestPaymentConfiguration(scope: Construct, id: string, config: S3BucketRequestPaymentConfigurationConfig) +``` + +* **scope** ([Construct](#constructs-construct)) The scope in which to define this construct. +* **id** (string) The scoped construct ID. +* **config** ([s3.S3BucketRequestPaymentConfigurationConfig](#cdktf-aws-cdk-s3-s3bucketrequestpaymentconfigurationconfig)) *No description* + * **count** (number) *No description* __*Optional*__ + * **dependsOn** (Array<[ITerraformDependable](#cdktf-iterraformdependable)>) *No description* __*Optional*__ + * **lifecycle** ([TerraformResourceLifecycle](#cdktf-terraformresourcelifecycle)) *No description* __*Optional*__ + * **provider** ([TerraformProvider](#cdktf-terraformprovider)) *No description* __*Optional*__ + * **bucket** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_request_payment_configuration#bucket S3BucketRequestPaymentConfiguration#bucket}. + * **payer** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_request_payment_configuration#payer S3BucketRequestPaymentConfiguration#payer}. + * **expectedBucketOwner** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_request_payment_configuration#expected_bucket_owner S3BucketRequestPaymentConfiguration#expected_bucket_owner}. __*Optional*__ + + + +### Properties + + +Name | Type | Description +-----|------|------------- +**bucket** | string | +**expectedBucketOwner** | string | +**id** | string | +**payer** | string | +**bucketInput**? | string | __*Optional*__ +**expectedBucketOwnerInput**? | string | __*Optional*__ +**payerInput**? | string | __*Optional*__ +*static* **tfResourceType** | string | + +### Methods + + +#### resetExpectedBucketOwner() + + + +```ts +resetExpectedBucketOwner(): void +``` + + + + + +#### protected synthesizeAttributes() + + + +```ts +protected synthesizeAttributes(): Map +``` + + +__Returns__: +* Map + + + +## class S3BucketServerSideEncryptionConfigurationA + +Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_server_side_encryption_configuration aws_s3_bucket_server_side_encryption_configuration}. + +__Implements__: [IConstruct](#constructs-iconstruct), [IDependable](#constructs-idependable), [ITerraformResource](#cdktf-iterraformresource), [ITerraformDependable](#cdktf-iterraformdependable), [ITerraformAddressable](#cdktf-iterraformaddressable), [IInterpolatingParent](#cdktf-iinterpolatingparent) +__Submodule__: s3 + +__Extends__: [TerraformResource](#cdktf-terraformresource) + +### Initializer + + +Create a new {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_server_side_encryption_configuration aws_s3_bucket_server_side_encryption_configuration} Resource. + +```ts +new s3.S3BucketServerSideEncryptionConfigurationA(scope: Construct, id: string, config: S3BucketServerSideEncryptionConfigurationAConfig) +``` + +* **scope** ([Construct](#constructs-construct)) The scope in which to define this construct. +* **id** (string) The scoped construct ID. +* **config** ([s3.S3BucketServerSideEncryptionConfigurationAConfig](#cdktf-aws-cdk-s3-s3bucketserversideencryptionconfigurationaconfig)) *No description* + * **count** (number) *No description* __*Optional*__ + * **dependsOn** (Array<[ITerraformDependable](#cdktf-iterraformdependable)>) *No description* __*Optional*__ + * **lifecycle** ([TerraformResourceLifecycle](#cdktf-terraformresourcelifecycle)) *No description* __*Optional*__ + * **provider** ([TerraformProvider](#cdktf-terraformprovider)) *No description* __*Optional*__ + * **bucket** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_server_side_encryption_configuration#bucket S3BucketServerSideEncryptionConfigurationA#bucket}. + * **rule** ([IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketServerSideEncryptionConfigurationRuleA](#cdktf-aws-cdk-s3-s3bucketserversideencryptionconfigurationrulea)>) rule block. + * **expectedBucketOwner** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_server_side_encryption_configuration#expected_bucket_owner S3BucketServerSideEncryptionConfigurationA#expected_bucket_owner}. __*Optional*__ + + + +### Properties + + +Name | Type | Description +-----|------|------------- +**bucket** | string | +**expectedBucketOwner** | string | +**id** | string | +**rule** | [IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketServerSideEncryptionConfigurationRuleA](#cdktf-aws-cdk-s3-s3bucketserversideencryptionconfigurationrulea)> | +**bucketInput**? | string | __*Optional*__ +**expectedBucketOwnerInput**? | string | __*Optional*__ +**ruleInput**? | [IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketServerSideEncryptionConfigurationRuleA](#cdktf-aws-cdk-s3-s3bucketserversideencryptionconfigurationrulea)> | __*Optional*__ +*static* **tfResourceType** | string | + +### Methods + + +#### resetExpectedBucketOwner() + + + +```ts +resetExpectedBucketOwner(): void +``` + + + + + +#### protected synthesizeAttributes() + + + +```ts +protected synthesizeAttributes(): Map +``` + + +__Returns__: +* Map + + + ## class S3BucketServerSideEncryptionConfigurationOutputReference @@ -233084,6 +234760,58 @@ putRule(value: S3BucketServerSideEncryptionConfigurationRule): void +## class S3BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultAOutputReference + + + +__Implements__: [IInterpolatingParent](#cdktf-iinterpolatingparent) +__Submodule__: s3 + +__Extends__: [ComplexObject](#cdktf-complexobject) + +### Initializer + + + + +```ts +new s3.S3BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultAOutputReference(terraformResource: IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) +``` + +* **terraformResource** ([IInterpolatingParent](#cdktf-iinterpolatingparent)) The parent resource. +* **terraformAttribute** (string) The attribute on the parent resource this class is referencing. +* **isSingleItem** (boolean) True if this is a block, false if it's a list. + + + +### Properties + + +Name | Type | Description +-----|------|------------- +**kmsMasterKeyId** | string | +**sseAlgorithm** | string | +**internalValue**? | [s3.S3BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultA](#cdktf-aws-cdk-s3-s3bucketserversideencryptionconfigurationruleapplyserversideencryptionbydefaulta) | __*Optional*__ +**kmsMasterKeyIdInput**? | string | __*Optional*__ +**sseAlgorithmInput**? | string | __*Optional*__ + +### Methods + + +#### resetKmsMasterKeyId() + + + +```ts +resetKmsMasterKeyId(): void +``` + + + + + + + ## class S3BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutputReference @@ -233203,6 +234931,110 @@ resetBucketKeyEnabled(): void +## class S3BucketVersioningA + +Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_versioning aws_s3_bucket_versioning}. + +__Implements__: [IConstruct](#constructs-iconstruct), [IDependable](#constructs-idependable), [ITerraformResource](#cdktf-iterraformresource), [ITerraformDependable](#cdktf-iterraformdependable), [ITerraformAddressable](#cdktf-iterraformaddressable), [IInterpolatingParent](#cdktf-iinterpolatingparent) +__Submodule__: s3 + +__Extends__: [TerraformResource](#cdktf-terraformresource) + +### Initializer + + +Create a new {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_versioning aws_s3_bucket_versioning} Resource. + +```ts +new s3.S3BucketVersioningA(scope: Construct, id: string, config: S3BucketVersioningAConfig) +``` + +* **scope** ([Construct](#constructs-construct)) The scope in which to define this construct. +* **id** (string) The scoped construct ID. +* **config** ([s3.S3BucketVersioningAConfig](#cdktf-aws-cdk-s3-s3bucketversioningaconfig)) *No description* + * **count** (number) *No description* __*Optional*__ + * **dependsOn** (Array<[ITerraformDependable](#cdktf-iterraformdependable)>) *No description* __*Optional*__ + * **lifecycle** ([TerraformResourceLifecycle](#cdktf-terraformresourcelifecycle)) *No description* __*Optional*__ + * **provider** ([TerraformProvider](#cdktf-terraformprovider)) *No description* __*Optional*__ + * **bucket** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_versioning#bucket S3BucketVersioningA#bucket}. + * **versioningConfiguration** ([s3.S3BucketVersioningVersioningConfiguration](#cdktf-aws-cdk-s3-s3bucketversioningversioningconfiguration)) versioning_configuration block. + * **expectedBucketOwner** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_versioning#expected_bucket_owner S3BucketVersioningA#expected_bucket_owner}. __*Optional*__ + * **mfa** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_versioning#mfa S3BucketVersioningA#mfa}. __*Optional*__ + + + +### Properties + + +Name | Type | Description +-----|------|------------- +**bucket** | string | +**expectedBucketOwner** | string | +**id** | string | +**mfa** | string | +**versioningConfiguration** | [s3.S3BucketVersioningVersioningConfigurationOutputReference](#cdktf-aws-cdk-s3-s3bucketversioningversioningconfigurationoutputreference) | +**bucketInput**? | string | __*Optional*__ +**expectedBucketOwnerInput**? | string | __*Optional*__ +**mfaInput**? | string | __*Optional*__ +**versioningConfigurationInput**? | [s3.S3BucketVersioningVersioningConfiguration](#cdktf-aws-cdk-s3-s3bucketversioningversioningconfiguration) | __*Optional*__ +*static* **tfResourceType** | string | + +### Methods + + +#### putVersioningConfiguration(value) + + + +```ts +putVersioningConfiguration(value: S3BucketVersioningVersioningConfiguration): void +``` + +* **value** ([s3.S3BucketVersioningVersioningConfiguration](#cdktf-aws-cdk-s3-s3bucketversioningversioningconfiguration)) *No description* + * **status** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_versioning#status S3BucketVersioningA#status}. + * **mfaDelete** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_versioning#mfa_delete S3BucketVersioningA#mfa_delete}. __*Optional*__ + + + + +#### resetExpectedBucketOwner() + + + +```ts +resetExpectedBucketOwner(): void +``` + + + + + +#### resetMfa() + + + +```ts +resetMfa(): void +``` + + + + + +#### protected synthesizeAttributes() + + + +```ts +protected synthesizeAttributes(): Map +``` + + +__Returns__: +* Map + + + ## class S3BucketVersioningOutputReference @@ -233267,6 +235099,526 @@ resetMfaDelete(): void +## class S3BucketVersioningVersioningConfigurationOutputReference + + + +__Implements__: [IInterpolatingParent](#cdktf-iinterpolatingparent) +__Submodule__: s3 + +__Extends__: [ComplexObject](#cdktf-complexobject) + +### Initializer + + + + +```ts +new s3.S3BucketVersioningVersioningConfigurationOutputReference(terraformResource: IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) +``` + +* **terraformResource** ([IInterpolatingParent](#cdktf-iinterpolatingparent)) The parent resource. +* **terraformAttribute** (string) The attribute on the parent resource this class is referencing. +* **isSingleItem** (boolean) True if this is a block, false if it's a list. + + + +### Properties + + +Name | Type | Description +-----|------|------------- +**mfaDelete** | string | +**status** | string | +**internalValue**? | [s3.S3BucketVersioningVersioningConfiguration](#cdktf-aws-cdk-s3-s3bucketversioningversioningconfiguration) | __*Optional*__ +**mfaDeleteInput**? | string | __*Optional*__ +**statusInput**? | string | __*Optional*__ + +### Methods + + +#### resetMfaDelete() + + + +```ts +resetMfaDelete(): void +``` + + + + + + + +## class S3BucketWebsiteConfiguration + +Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration aws_s3_bucket_website_configuration}. + +__Implements__: [IConstruct](#constructs-iconstruct), [IDependable](#constructs-idependable), [ITerraformResource](#cdktf-iterraformresource), [ITerraformDependable](#cdktf-iterraformdependable), [ITerraformAddressable](#cdktf-iterraformaddressable), [IInterpolatingParent](#cdktf-iinterpolatingparent) +__Submodule__: s3 + +__Extends__: [TerraformResource](#cdktf-terraformresource) + +### Initializer + + +Create a new {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration aws_s3_bucket_website_configuration} Resource. + +```ts +new s3.S3BucketWebsiteConfiguration(scope: Construct, id: string, config: S3BucketWebsiteConfigurationConfig) +``` + +* **scope** ([Construct](#constructs-construct)) The scope in which to define this construct. +* **id** (string) The scoped construct ID. +* **config** ([s3.S3BucketWebsiteConfigurationConfig](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationconfig)) *No description* + * **count** (number) *No description* __*Optional*__ + * **dependsOn** (Array<[ITerraformDependable](#cdktf-iterraformdependable)>) *No description* __*Optional*__ + * **lifecycle** ([TerraformResourceLifecycle](#cdktf-terraformresourcelifecycle)) *No description* __*Optional*__ + * **provider** ([TerraformProvider](#cdktf-terraformprovider)) *No description* __*Optional*__ + * **bucket** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#bucket S3BucketWebsiteConfiguration#bucket}. + * **errorDocument** ([s3.S3BucketWebsiteConfigurationErrorDocument](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationerrordocument)) error_document block. __*Optional*__ + * **expectedBucketOwner** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#expected_bucket_owner S3BucketWebsiteConfiguration#expected_bucket_owner}. __*Optional*__ + * **indexDocument** ([s3.S3BucketWebsiteConfigurationIndexDocument](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationindexdocument)) index_document block. __*Optional*__ + * **redirectAllRequestsTo** ([s3.S3BucketWebsiteConfigurationRedirectAllRequestsTo](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationredirectallrequeststo)) redirect_all_requests_to block. __*Optional*__ + * **routingRule** ([IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketWebsiteConfigurationRoutingRule](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationroutingrule)>) routing_rule block. __*Optional*__ + + + +### Properties + + +Name | Type | Description +-----|------|------------- +**bucket** | string | +**errorDocument** | [s3.S3BucketWebsiteConfigurationErrorDocumentOutputReference](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationerrordocumentoutputreference) | +**expectedBucketOwner** | string | +**id** | string | +**indexDocument** | [s3.S3BucketWebsiteConfigurationIndexDocumentOutputReference](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationindexdocumentoutputreference) | +**redirectAllRequestsTo** | [s3.S3BucketWebsiteConfigurationRedirectAllRequestsToOutputReference](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationredirectallrequeststooutputreference) | +**routingRule** | [IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketWebsiteConfigurationRoutingRule](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationroutingrule)> | +**websiteDomain** | string | +**websiteEndpoint** | string | +**bucketInput**? | string | __*Optional*__ +**errorDocumentInput**? | [s3.S3BucketWebsiteConfigurationErrorDocument](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationerrordocument) | __*Optional*__ +**expectedBucketOwnerInput**? | string | __*Optional*__ +**indexDocumentInput**? | [s3.S3BucketWebsiteConfigurationIndexDocument](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationindexdocument) | __*Optional*__ +**redirectAllRequestsToInput**? | [s3.S3BucketWebsiteConfigurationRedirectAllRequestsTo](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationredirectallrequeststo) | __*Optional*__ +**routingRuleInput**? | [IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketWebsiteConfigurationRoutingRule](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationroutingrule)> | __*Optional*__ +*static* **tfResourceType** | string | + +### Methods + + +#### putErrorDocument(value) + + + +```ts +putErrorDocument(value: S3BucketWebsiteConfigurationErrorDocument): void +``` + +* **value** ([s3.S3BucketWebsiteConfigurationErrorDocument](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationerrordocument)) *No description* + * **key** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#key S3BucketWebsiteConfiguration#key}. + + + + +#### putIndexDocument(value) + + + +```ts +putIndexDocument(value: S3BucketWebsiteConfigurationIndexDocument): void +``` + +* **value** ([s3.S3BucketWebsiteConfigurationIndexDocument](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationindexdocument)) *No description* + * **suffix** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#suffix S3BucketWebsiteConfiguration#suffix}. + + + + +#### putRedirectAllRequestsTo(value) + + + +```ts +putRedirectAllRequestsTo(value: S3BucketWebsiteConfigurationRedirectAllRequestsTo): void +``` + +* **value** ([s3.S3BucketWebsiteConfigurationRedirectAllRequestsTo](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationredirectallrequeststo)) *No description* + * **hostName** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#host_name S3BucketWebsiteConfiguration#host_name}. + * **protocol** (string) Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#protocol S3BucketWebsiteConfiguration#protocol}. __*Optional*__ + + + + +#### resetErrorDocument() + + + +```ts +resetErrorDocument(): void +``` + + + + + +#### resetExpectedBucketOwner() + + + +```ts +resetExpectedBucketOwner(): void +``` + + + + + +#### resetIndexDocument() + + + +```ts +resetIndexDocument(): void +``` + + + + + +#### resetRedirectAllRequestsTo() + + + +```ts +resetRedirectAllRequestsTo(): void +``` + + + + + +#### resetRoutingRule() + + + +```ts +resetRoutingRule(): void +``` + + + + + +#### protected synthesizeAttributes() + + + +```ts +protected synthesizeAttributes(): Map +``` + + +__Returns__: +* Map + + + +## class S3BucketWebsiteConfigurationErrorDocumentOutputReference + + + +__Implements__: [IInterpolatingParent](#cdktf-iinterpolatingparent) +__Submodule__: s3 + +__Extends__: [ComplexObject](#cdktf-complexobject) + +### Initializer + + + + +```ts +new s3.S3BucketWebsiteConfigurationErrorDocumentOutputReference(terraformResource: IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) +``` + +* **terraformResource** ([IInterpolatingParent](#cdktf-iinterpolatingparent)) The parent resource. +* **terraformAttribute** (string) The attribute on the parent resource this class is referencing. +* **isSingleItem** (boolean) True if this is a block, false if it's a list. + + + +### Properties + + +Name | Type | Description +-----|------|------------- +**key** | string | +**internalValue**? | [s3.S3BucketWebsiteConfigurationErrorDocument](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationerrordocument) | __*Optional*__ +**keyInput**? | string | __*Optional*__ + + + +## class S3BucketWebsiteConfigurationIndexDocumentOutputReference + + + +__Implements__: [IInterpolatingParent](#cdktf-iinterpolatingparent) +__Submodule__: s3 + +__Extends__: [ComplexObject](#cdktf-complexobject) + +### Initializer + + + + +```ts +new s3.S3BucketWebsiteConfigurationIndexDocumentOutputReference(terraformResource: IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) +``` + +* **terraformResource** ([IInterpolatingParent](#cdktf-iinterpolatingparent)) The parent resource. +* **terraformAttribute** (string) The attribute on the parent resource this class is referencing. +* **isSingleItem** (boolean) True if this is a block, false if it's a list. + + + +### Properties + + +Name | Type | Description +-----|------|------------- +**suffix** | string | +**internalValue**? | [s3.S3BucketWebsiteConfigurationIndexDocument](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationindexdocument) | __*Optional*__ +**suffixInput**? | string | __*Optional*__ + + + +## class S3BucketWebsiteConfigurationRedirectAllRequestsToOutputReference + + + +__Implements__: [IInterpolatingParent](#cdktf-iinterpolatingparent) +__Submodule__: s3 + +__Extends__: [ComplexObject](#cdktf-complexobject) + +### Initializer + + + + +```ts +new s3.S3BucketWebsiteConfigurationRedirectAllRequestsToOutputReference(terraformResource: IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) +``` + +* **terraformResource** ([IInterpolatingParent](#cdktf-iinterpolatingparent)) The parent resource. +* **terraformAttribute** (string) The attribute on the parent resource this class is referencing. +* **isSingleItem** (boolean) True if this is a block, false if it's a list. + + + +### Properties + + +Name | Type | Description +-----|------|------------- +**hostName** | string | +**protocol** | string | +**hostNameInput**? | string | __*Optional*__ +**internalValue**? | [s3.S3BucketWebsiteConfigurationRedirectAllRequestsTo](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationredirectallrequeststo) | __*Optional*__ +**protocolInput**? | string | __*Optional*__ + +### Methods + + +#### resetProtocol() + + + +```ts +resetProtocol(): void +``` + + + + + + + +## class S3BucketWebsiteConfigurationRoutingRuleConditionOutputReference + + + +__Implements__: [IInterpolatingParent](#cdktf-iinterpolatingparent) +__Submodule__: s3 + +__Extends__: [ComplexObject](#cdktf-complexobject) + +### Initializer + + + + +```ts +new s3.S3BucketWebsiteConfigurationRoutingRuleConditionOutputReference(terraformResource: IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) +``` + +* **terraformResource** ([IInterpolatingParent](#cdktf-iinterpolatingparent)) The parent resource. +* **terraformAttribute** (string) The attribute on the parent resource this class is referencing. +* **isSingleItem** (boolean) True if this is a block, false if it's a list. + + + +### Properties + + +Name | Type | Description +-----|------|------------- +**httpErrorCodeReturnedEquals** | string | +**keyPrefixEquals** | string | +**httpErrorCodeReturnedEqualsInput**? | string | __*Optional*__ +**internalValue**? | [s3.S3BucketWebsiteConfigurationRoutingRuleCondition](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationroutingrulecondition) | __*Optional*__ +**keyPrefixEqualsInput**? | string | __*Optional*__ + +### Methods + + +#### resetHttpErrorCodeReturnedEquals() + + + +```ts +resetHttpErrorCodeReturnedEquals(): void +``` + + + + + +#### resetKeyPrefixEquals() + + + +```ts +resetKeyPrefixEquals(): void +``` + + + + + + + +## class S3BucketWebsiteConfigurationRoutingRuleRedirectOutputReference + + + +__Implements__: [IInterpolatingParent](#cdktf-iinterpolatingparent) +__Submodule__: s3 + +__Extends__: [ComplexObject](#cdktf-complexobject) + +### Initializer + + + + +```ts +new s3.S3BucketWebsiteConfigurationRoutingRuleRedirectOutputReference(terraformResource: IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) +``` + +* **terraformResource** ([IInterpolatingParent](#cdktf-iinterpolatingparent)) The parent resource. +* **terraformAttribute** (string) The attribute on the parent resource this class is referencing. +* **isSingleItem** (boolean) True if this is a block, false if it's a list. + + + +### Properties + + +Name | Type | Description +-----|------|------------- +**hostName** | string | +**httpRedirectCode** | string | +**protocol** | string | +**replaceKeyPrefixWith** | string | +**replaceKeyWith** | string | +**hostNameInput**? | string | __*Optional*__ +**httpRedirectCodeInput**? | string | __*Optional*__ +**internalValue**? | [s3.S3BucketWebsiteConfigurationRoutingRuleRedirect](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationroutingruleredirect) | __*Optional*__ +**protocolInput**? | string | __*Optional*__ +**replaceKeyPrefixWithInput**? | string | __*Optional*__ +**replaceKeyWithInput**? | string | __*Optional*__ + +### Methods + + +#### resetHostName() + + + +```ts +resetHostName(): void +``` + + + + + +#### resetHttpRedirectCode() + + + +```ts +resetHttpRedirectCode(): void +``` + + + + + +#### resetProtocol() + + + +```ts +resetProtocol(): void +``` + + + + + +#### resetReplaceKeyPrefixWith() + + + +```ts +resetReplaceKeyPrefixWith(): void +``` + + + + + +#### resetReplaceKeyWith() + + + +```ts +resetReplaceKeyWith(): void +``` + + + + + + + ## class S3BucketWebsiteOutputReference @@ -565021,6 +567373,103 @@ Name | Type | Description +## struct S3BucketAccelerateConfigurationConfig + + +AWS Simple Storage Service. + + + +Name | Type | Description +-----|------|------------- +**bucket** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_accelerate_configuration#bucket S3BucketAccelerateConfiguration#bucket}. +**status** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_accelerate_configuration#status S3BucketAccelerateConfiguration#status}. +**count**?🔹 | number | __*Optional*__ +**dependsOn**?🔹 | Array<[ITerraformDependable](#cdktf-iterraformdependable)> | __*Optional*__ +**expectedBucketOwner**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_accelerate_configuration#expected_bucket_owner S3BucketAccelerateConfiguration#expected_bucket_owner}.
__*Optional*__ +**lifecycle**?🔹 | [TerraformResourceLifecycle](#cdktf-terraformresourcelifecycle) | __*Optional*__ +**provider**?🔹 | [TerraformProvider](#cdktf-terraformprovider) | __*Optional*__ + + + +## struct S3BucketAclAccessControlPolicy + + + + + + +Name | Type | Description +-----|------|------------- +**owner** | [s3.S3BucketAclAccessControlPolicyOwner](#cdktf-aws-cdk-s3-s3bucketaclaccesscontrolpolicyowner) | owner block. +**grant**? | [IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketAclAccessControlPolicyGrant](#cdktf-aws-cdk-s3-s3bucketaclaccesscontrolpolicygrant)> | grant block.
__*Optional*__ + + + +## struct S3BucketAclAccessControlPolicyGrant + + + + + + +Name | Type | Description +-----|------|------------- +**permission** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl#permission S3BucketAcl#permission}. +**grantee**? | [s3.S3BucketAclAccessControlPolicyGrantGrantee](#cdktf-aws-cdk-s3-s3bucketaclaccesscontrolpolicygrantgrantee) | grantee block.
__*Optional*__ + + + +## struct S3BucketAclAccessControlPolicyGrantGrantee + + + + + + +Name | Type | Description +-----|------|------------- +**type** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl#type S3BucketAcl#type}. +**emailAddress**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl#email_address S3BucketAcl#email_address}.
__*Optional*__ +**id**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl#id S3BucketAcl#id}.
__*Optional*__ +**uri**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl#uri S3BucketAcl#uri}.
__*Optional*__ + + + +## struct S3BucketAclAccessControlPolicyOwner + + + + + + +Name | Type | Description +-----|------|------------- +**id** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl#id S3BucketAcl#id}. +**displayName**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl#display_name S3BucketAcl#display_name}.
__*Optional*__ + + + +## struct S3BucketAclConfig + + +AWS Simple Storage Service. + + + +Name | Type | Description +-----|------|------------- +**bucket** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl#bucket S3BucketAcl#bucket}. +**accessControlPolicy**? | [s3.S3BucketAclAccessControlPolicy](#cdktf-aws-cdk-s3-s3bucketaclaccesscontrolpolicy) | access_control_policy block.
__*Optional*__ +**acl**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl#acl S3BucketAcl#acl}.
__*Optional*__ +**count**?🔹 | number | __*Optional*__ +**dependsOn**?🔹 | Array<[ITerraformDependable](#cdktf-iterraformdependable)> | __*Optional*__ +**expectedBucketOwner**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl#expected_bucket_owner S3BucketAcl#expected_bucket_owner}.
__*Optional*__ +**lifecycle**?🔹 | [TerraformResourceLifecycle](#cdktf-terraformresourcelifecycle) | __*Optional*__ +**provider**?🔹 | [TerraformProvider](#cdktf-terraformprovider) | __*Optional*__ + + + ## struct S3BucketAnalyticsConfigurationConfig @@ -565134,6 +567583,7 @@ Name | Type | Description **lifecycleRule**? | [IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketLifecycleRule](#cdktf-aws-cdk-s3-s3bucketlifecyclerule)> | lifecycle_rule block.
__*Optional*__ **logging**? | [IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketLogging](#cdktf-aws-cdk-s3-s3bucketlogging)> | logging block.
__*Optional*__ **objectLockConfiguration**? | [s3.S3BucketObjectLockConfiguration](#cdktf-aws-cdk-s3-s3bucketobjectlockconfiguration) | object_lock_configuration block.
__*Optional*__ +**objectLockEnabled**? | boolean | [IResolvable](#cdktf-iresolvable) | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket#object_lock_enabled S3Bucket#object_lock_enabled}.
__*Optional*__ **policy**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket#policy S3Bucket#policy}.
__*Optional*__ **provider**?🔹 | [TerraformProvider](#cdktf-terraformprovider) | __*Optional*__ **replicationConfiguration**? | [s3.S3BucketReplicationConfiguration](#cdktf-aws-cdk-s3-s3bucketreplicationconfiguration) | replication_configuration block.
__*Optional*__ @@ -565148,6 +567598,43 @@ Name | Type | Description +## struct S3BucketCorsConfigurationConfig + + +AWS Simple Storage Service. + + + +Name | Type | Description +-----|------|------------- +**bucket** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_cors_configuration#bucket S3BucketCorsConfiguration#bucket}. +**corsRule** | [IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketCorsConfigurationCorsRule](#cdktf-aws-cdk-s3-s3bucketcorsconfigurationcorsrule)> | cors_rule block. +**count**?🔹 | number | __*Optional*__ +**dependsOn**?🔹 | Array<[ITerraformDependable](#cdktf-iterraformdependable)> | __*Optional*__ +**expectedBucketOwner**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_cors_configuration#expected_bucket_owner S3BucketCorsConfiguration#expected_bucket_owner}.
__*Optional*__ +**lifecycle**?🔹 | [TerraformResourceLifecycle](#cdktf-terraformresourcelifecycle) | __*Optional*__ +**provider**?🔹 | [TerraformProvider](#cdktf-terraformprovider) | __*Optional*__ + + + +## struct S3BucketCorsConfigurationCorsRule + + + + + + +Name | Type | Description +-----|------|------------- +**allowedMethods** | Array | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_cors_configuration#allowed_methods S3BucketCorsConfiguration#allowed_methods}. +**allowedOrigins** | Array | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_cors_configuration#allowed_origins S3BucketCorsConfiguration#allowed_origins}. +**allowedHeaders**? | Array | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_cors_configuration#allowed_headers S3BucketCorsConfiguration#allowed_headers}.
__*Optional*__ +**exposeHeaders**? | Array | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_cors_configuration#expose_headers S3BucketCorsConfiguration#expose_headers}.
__*Optional*__ +**id**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_cors_configuration#id S3BucketCorsConfiguration#id}.
__*Optional*__ +**maxAgeSeconds**? | number | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_cors_configuration#max_age_seconds S3BucketCorsConfiguration#max_age_seconds}.
__*Optional*__ + + + ## struct S3BucketCorsRule @@ -565343,6 +567830,165 @@ Name | Type | Description +## struct S3BucketLifecycleConfigurationConfig + + +AWS Simple Storage Service. + + + +Name | Type | Description +-----|------|------------- +**bucket** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#bucket S3BucketLifecycleConfiguration#bucket}. +**rule** | [IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketLifecycleConfigurationRule](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationrule)> | rule block. +**count**?🔹 | number | __*Optional*__ +**dependsOn**?🔹 | Array<[ITerraformDependable](#cdktf-iterraformdependable)> | __*Optional*__ +**expectedBucketOwner**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#expected_bucket_owner S3BucketLifecycleConfiguration#expected_bucket_owner}.
__*Optional*__ +**lifecycle**?🔹 | [TerraformResourceLifecycle](#cdktf-terraformresourcelifecycle) | __*Optional*__ +**provider**?🔹 | [TerraformProvider](#cdktf-terraformprovider) | __*Optional*__ + + + +## struct S3BucketLifecycleConfigurationRule + + + + + + +Name | Type | Description +-----|------|------------- +**id** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#id S3BucketLifecycleConfiguration#id}. +**status** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#status S3BucketLifecycleConfiguration#status}. +**abortIncompleteMultipartUpload**? | [s3.S3BucketLifecycleConfigurationRuleAbortIncompleteMultipartUpload](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationruleabortincompletemultipartupload) | abort_incomplete_multipart_upload block.
__*Optional*__ +**expiration**? | [s3.S3BucketLifecycleConfigurationRuleExpiration](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationruleexpiration) | expiration block.
__*Optional*__ +**filter**? | [s3.S3BucketLifecycleConfigurationRuleFilter](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationrulefilter) | filter block.
__*Optional*__ +**noncurrentVersionExpiration**? | [s3.S3BucketLifecycleConfigurationRuleNoncurrentVersionExpiration](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationrulenoncurrentversionexpiration) | noncurrent_version_expiration block.
__*Optional*__ +**noncurrentVersionTransition**? | [IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketLifecycleConfigurationRuleNoncurrentVersionTransition](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationrulenoncurrentversiontransition)> | noncurrent_version_transition block.
__*Optional*__ +**prefix**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#prefix S3BucketLifecycleConfiguration#prefix}.
__*Optional*__ +**transition**? | [IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketLifecycleConfigurationRuleTransition](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationruletransition)> | transition block.
__*Optional*__ + + + +## struct S3BucketLifecycleConfigurationRuleAbortIncompleteMultipartUpload + + + + + + +Name | Type | Description +-----|------|------------- +**daysAfterInitiation**? | number | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#days_after_initiation S3BucketLifecycleConfiguration#days_after_initiation}.
__*Optional*__ + + + +## struct S3BucketLifecycleConfigurationRuleExpiration + + + + + + +Name | Type | Description +-----|------|------------- +**date**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#date S3BucketLifecycleConfiguration#date}.
__*Optional*__ +**days**? | number | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#days S3BucketLifecycleConfiguration#days}.
__*Optional*__ +**expiredObjectDeleteMarker**? | boolean | [IResolvable](#cdktf-iresolvable) | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#expired_object_delete_marker S3BucketLifecycleConfiguration#expired_object_delete_marker}.
__*Optional*__ + + + +## struct S3BucketLifecycleConfigurationRuleFilter + + + + + + +Name | Type | Description +-----|------|------------- +**and**? | [s3.S3BucketLifecycleConfigurationRuleFilterAnd](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationrulefilterand) | and block.
__*Optional*__ +**objectSizeGreaterThan**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#object_size_greater_than S3BucketLifecycleConfiguration#object_size_greater_than}.
__*Optional*__ +**objectSizeLessThan**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#object_size_less_than S3BucketLifecycleConfiguration#object_size_less_than}.
__*Optional*__ +**prefix**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#prefix S3BucketLifecycleConfiguration#prefix}.
__*Optional*__ +**tag**? | [s3.S3BucketLifecycleConfigurationRuleFilterTag](#cdktf-aws-cdk-s3-s3bucketlifecycleconfigurationrulefiltertag) | tag block.
__*Optional*__ + + + +## struct S3BucketLifecycleConfigurationRuleFilterAnd + + + + + + +Name | Type | Description +-----|------|------------- +**objectSizeGreaterThan**? | number | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#object_size_greater_than S3BucketLifecycleConfiguration#object_size_greater_than}.
__*Optional*__ +**objectSizeLessThan**? | number | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#object_size_less_than S3BucketLifecycleConfiguration#object_size_less_than}.
__*Optional*__ +**prefix**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#prefix S3BucketLifecycleConfiguration#prefix}.
__*Optional*__ +**tags**? | Map | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#tags S3BucketLifecycleConfiguration#tags}.
__*Optional*__ + + + +## struct S3BucketLifecycleConfigurationRuleFilterTag + + + + + + +Name | Type | Description +-----|------|------------- +**key** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#key S3BucketLifecycleConfiguration#key}. +**value** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#value S3BucketLifecycleConfiguration#value}. + + + +## struct S3BucketLifecycleConfigurationRuleNoncurrentVersionExpiration + + + + + + +Name | Type | Description +-----|------|------------- +**newerNoncurrentVersions**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#newer_noncurrent_versions S3BucketLifecycleConfiguration#newer_noncurrent_versions}.
__*Optional*__ +**noncurrentDays**? | number | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#noncurrent_days S3BucketLifecycleConfiguration#noncurrent_days}.
__*Optional*__ + + + +## struct S3BucketLifecycleConfigurationRuleNoncurrentVersionTransition + + + + + + +Name | Type | Description +-----|------|------------- +**storageClass** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#storage_class S3BucketLifecycleConfiguration#storage_class}. +**newerNoncurrentVersions**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#newer_noncurrent_versions S3BucketLifecycleConfiguration#newer_noncurrent_versions}.
__*Optional*__ +**noncurrentDays**? | number | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#noncurrent_days S3BucketLifecycleConfiguration#noncurrent_days}.
__*Optional*__ + + + +## struct S3BucketLifecycleConfigurationRuleTransition + + + + + + +Name | Type | Description +-----|------|------------- +**storageClass** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#storage_class S3BucketLifecycleConfiguration#storage_class}. +**date**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#date S3BucketLifecycleConfiguration#date}.
__*Optional*__ +**days**? | number | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#days S3BucketLifecycleConfiguration#days}.
__*Optional*__ + + + ## struct S3BucketLifecycleRule @@ -565435,6 +568081,57 @@ Name | Type | Description +## struct S3BucketLoggingAConfig + + +AWS Simple Storage Service. + + + +Name | Type | Description +-----|------|------------- +**bucket** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_logging#bucket S3BucketLoggingA#bucket}. +**targetBucket** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_logging#target_bucket S3BucketLoggingA#target_bucket}. +**targetPrefix** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_logging#target_prefix S3BucketLoggingA#target_prefix}. +**count**?🔹 | number | __*Optional*__ +**dependsOn**?🔹 | Array<[ITerraformDependable](#cdktf-iterraformdependable)> | __*Optional*__ +**expectedBucketOwner**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_logging#expected_bucket_owner S3BucketLoggingA#expected_bucket_owner}.
__*Optional*__ +**lifecycle**?🔹 | [TerraformResourceLifecycle](#cdktf-terraformresourcelifecycle) | __*Optional*__ +**provider**?🔹 | [TerraformProvider](#cdktf-terraformprovider) | __*Optional*__ +**targetGrant**? | [IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketLoggingTargetGrant](#cdktf-aws-cdk-s3-s3bucketloggingtargetgrant)> | target_grant block.
__*Optional*__ + + + +## struct S3BucketLoggingTargetGrant + + + + + + +Name | Type | Description +-----|------|------------- +**grantee** | [s3.S3BucketLoggingTargetGrantGrantee](#cdktf-aws-cdk-s3-s3bucketloggingtargetgrantgrantee) | grantee block. +**permission** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_logging#permission S3BucketLoggingA#permission}. + + + +## struct S3BucketLoggingTargetGrantGrantee + + + + + + +Name | Type | Description +-----|------|------------- +**type** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_logging#type S3BucketLoggingA#type}. +**emailAddress**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_logging#email_address S3BucketLoggingA#email_address}.
__*Optional*__ +**id**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_logging#id S3BucketLoggingA#id}.
__*Optional*__ +**uri**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_logging#uri S3BucketLoggingA#uri}.
__*Optional*__ + + + ## struct S3BucketMetricConfig @@ -565590,11 +568287,32 @@ Name | Type | Description Name | Type | Description -----|------|------------- -**objectLockEnabled** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket#object_lock_enabled S3Bucket#object_lock_enabled}. +**objectLockEnabled**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket#object_lock_enabled S3Bucket#object_lock_enabled}.
__*Optional*__ **rule**? | [s3.S3BucketObjectLockConfigurationRule](#cdktf-aws-cdk-s3-s3bucketobjectlockconfigurationrule) | rule block.
__*Optional*__ +## struct S3BucketObjectLockConfigurationAConfig + + +AWS Simple Storage Service. + + + +Name | Type | Description +-----|------|------------- +**bucket** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_object_lock_configuration#bucket S3BucketObjectLockConfigurationA#bucket}. +**rule** | [s3.S3BucketObjectLockConfigurationRuleA](#cdktf-aws-cdk-s3-s3bucketobjectlockconfigurationrulea) | rule block. +**count**?🔹 | number | __*Optional*__ +**dependsOn**?🔹 | Array<[ITerraformDependable](#cdktf-iterraformdependable)> | __*Optional*__ +**expectedBucketOwner**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_object_lock_configuration#expected_bucket_owner S3BucketObjectLockConfigurationA#expected_bucket_owner}.
__*Optional*__ +**lifecycle**?🔹 | [TerraformResourceLifecycle](#cdktf-terraformresourcelifecycle) | __*Optional*__ +**objectLockEnabled**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_object_lock_configuration#object_lock_enabled S3BucketObjectLockConfigurationA#object_lock_enabled}.
__*Optional*__ +**provider**?🔹 | [TerraformProvider](#cdktf-terraformprovider) | __*Optional*__ +**token**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_object_lock_configuration#token S3BucketObjectLockConfigurationA#token}.
__*Optional*__ + + + ## struct S3BucketObjectLockConfigurationRule @@ -565608,6 +568326,19 @@ Name | Type | Description +## struct S3BucketObjectLockConfigurationRuleA + + + + + + +Name | Type | Description +-----|------|------------- +**defaultRetention** | [s3.S3BucketObjectLockConfigurationRuleDefaultRetentionA](#cdktf-aws-cdk-s3-s3bucketobjectlockconfigurationruledefaultretentiona) | default_retention block. + + + ## struct S3BucketObjectLockConfigurationRuleDefaultRetention @@ -565623,6 +568354,21 @@ Name | Type | Description +## struct S3BucketObjectLockConfigurationRuleDefaultRetentionA + + + + + + +Name | Type | Description +-----|------|------------- +**days**? | number | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_object_lock_configuration#days S3BucketObjectLockConfigurationA#days}.
__*Optional*__ +**mode**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_object_lock_configuration#mode S3BucketObjectLockConfigurationA#mode}.
__*Optional*__ +**years**? | number | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_object_lock_configuration#years S3BucketObjectLockConfigurationA#years}.
__*Optional*__ + + + ## struct S3BucketOwnershipControlsConfig @@ -565723,6 +568469,7 @@ Name | Type | Description **dependsOn**?🔹 | Array<[ITerraformDependable](#cdktf-iterraformdependable)> | __*Optional*__ **lifecycle**?🔹 | [TerraformResourceLifecycle](#cdktf-terraformresourcelifecycle) | __*Optional*__ **provider**?🔹 | [TerraformProvider](#cdktf-terraformprovider) | __*Optional*__ +**token**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_replication_configuration#token S3BucketReplicationConfigurationA#token}.
__*Optional*__ @@ -566075,6 +568822,25 @@ Name | Type | Description +## struct S3BucketRequestPaymentConfigurationConfig + + +AWS Simple Storage Service. + + + +Name | Type | Description +-----|------|------------- +**bucket** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_request_payment_configuration#bucket S3BucketRequestPaymentConfiguration#bucket}. +**payer** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_request_payment_configuration#payer S3BucketRequestPaymentConfiguration#payer}. +**count**?🔹 | number | __*Optional*__ +**dependsOn**?🔹 | Array<[ITerraformDependable](#cdktf-iterraformdependable)> | __*Optional*__ +**expectedBucketOwner**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_request_payment_configuration#expected_bucket_owner S3BucketRequestPaymentConfiguration#expected_bucket_owner}.
__*Optional*__ +**lifecycle**?🔹 | [TerraformResourceLifecycle](#cdktf-terraformresourcelifecycle) | __*Optional*__ +**provider**?🔹 | [TerraformProvider](#cdktf-terraformprovider) | __*Optional*__ + + + ## struct S3BucketServerSideEncryptionConfiguration @@ -566088,6 +568854,25 @@ Name | Type | Description +## struct S3BucketServerSideEncryptionConfigurationAConfig + + +AWS Simple Storage Service. + + + +Name | Type | Description +-----|------|------------- +**bucket** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_server_side_encryption_configuration#bucket S3BucketServerSideEncryptionConfigurationA#bucket}. +**rule** | [IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketServerSideEncryptionConfigurationRuleA](#cdktf-aws-cdk-s3-s3bucketserversideencryptionconfigurationrulea)> | rule block. +**count**?🔹 | number | __*Optional*__ +**dependsOn**?🔹 | Array<[ITerraformDependable](#cdktf-iterraformdependable)> | __*Optional*__ +**expectedBucketOwner**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_server_side_encryption_configuration#expected_bucket_owner S3BucketServerSideEncryptionConfigurationA#expected_bucket_owner}.
__*Optional*__ +**lifecycle**?🔹 | [TerraformResourceLifecycle](#cdktf-terraformresourcelifecycle) | __*Optional*__ +**provider**?🔹 | [TerraformProvider](#cdktf-terraformprovider) | __*Optional*__ + + + ## struct S3BucketServerSideEncryptionConfigurationRule @@ -566102,6 +568887,20 @@ Name | Type | Description +## struct S3BucketServerSideEncryptionConfigurationRuleA + + + + + + +Name | Type | Description +-----|------|------------- +**applyServerSideEncryptionByDefault**? | [s3.S3BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultA](#cdktf-aws-cdk-s3-s3bucketserversideencryptionconfigurationruleapplyserversideencryptionbydefaulta) | apply_server_side_encryption_by_default block.
__*Optional*__ +**bucketKeyEnabled**? | boolean | [IResolvable](#cdktf-iresolvable) | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_server_side_encryption_configuration#bucket_key_enabled S3BucketServerSideEncryptionConfigurationA#bucket_key_enabled}.
__*Optional*__ + + + ## struct S3BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault @@ -566116,6 +568915,20 @@ Name | Type | Description +## struct S3BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultA + + + + + + +Name | Type | Description +-----|------|------------- +**sseAlgorithm** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_server_side_encryption_configuration#sse_algorithm S3BucketServerSideEncryptionConfigurationA#sse_algorithm}. +**kmsMasterKeyId**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_server_side_encryption_configuration#kms_master_key_id S3BucketServerSideEncryptionConfigurationA#kms_master_key_id}.
__*Optional*__ + + + ## struct S3BucketVersioning @@ -566130,6 +568943,40 @@ Name | Type | Description +## struct S3BucketVersioningAConfig + + +AWS Simple Storage Service. + + + +Name | Type | Description +-----|------|------------- +**bucket** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_versioning#bucket S3BucketVersioningA#bucket}. +**versioningConfiguration** | [s3.S3BucketVersioningVersioningConfiguration](#cdktf-aws-cdk-s3-s3bucketversioningversioningconfiguration) | versioning_configuration block. +**count**?🔹 | number | __*Optional*__ +**dependsOn**?🔹 | Array<[ITerraformDependable](#cdktf-iterraformdependable)> | __*Optional*__ +**expectedBucketOwner**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_versioning#expected_bucket_owner S3BucketVersioningA#expected_bucket_owner}.
__*Optional*__ +**lifecycle**?🔹 | [TerraformResourceLifecycle](#cdktf-terraformresourcelifecycle) | __*Optional*__ +**mfa**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_versioning#mfa S3BucketVersioningA#mfa}.
__*Optional*__ +**provider**?🔹 | [TerraformProvider](#cdktf-terraformprovider) | __*Optional*__ + + + +## struct S3BucketVersioningVersioningConfiguration + + + + + + +Name | Type | Description +-----|------|------------- +**status** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_versioning#status S3BucketVersioningA#status}. +**mfaDelete**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_versioning#mfa_delete S3BucketVersioningA#mfa_delete}.
__*Optional*__ + + + ## struct S3BucketWebsite @@ -566146,6 +568993,113 @@ Name | Type | Description +## struct S3BucketWebsiteConfigurationConfig + + +AWS Simple Storage Service. + + + +Name | Type | Description +-----|------|------------- +**bucket** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#bucket S3BucketWebsiteConfiguration#bucket}. +**count**?🔹 | number | __*Optional*__ +**dependsOn**?🔹 | Array<[ITerraformDependable](#cdktf-iterraformdependable)> | __*Optional*__ +**errorDocument**? | [s3.S3BucketWebsiteConfigurationErrorDocument](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationerrordocument) | error_document block.
__*Optional*__ +**expectedBucketOwner**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#expected_bucket_owner S3BucketWebsiteConfiguration#expected_bucket_owner}.
__*Optional*__ +**indexDocument**? | [s3.S3BucketWebsiteConfigurationIndexDocument](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationindexdocument) | index_document block.
__*Optional*__ +**lifecycle**?🔹 | [TerraformResourceLifecycle](#cdktf-terraformresourcelifecycle) | __*Optional*__ +**provider**?🔹 | [TerraformProvider](#cdktf-terraformprovider) | __*Optional*__ +**redirectAllRequestsTo**? | [s3.S3BucketWebsiteConfigurationRedirectAllRequestsTo](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationredirectallrequeststo) | redirect_all_requests_to block.
__*Optional*__ +**routingRule**? | [IResolvable](#cdktf-iresolvable) | Array<[s3.S3BucketWebsiteConfigurationRoutingRule](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationroutingrule)> | routing_rule block.
__*Optional*__ + + + +## struct S3BucketWebsiteConfigurationErrorDocument + + + + + + +Name | Type | Description +-----|------|------------- +**key** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#key S3BucketWebsiteConfiguration#key}. + + + +## struct S3BucketWebsiteConfigurationIndexDocument + + + + + + +Name | Type | Description +-----|------|------------- +**suffix** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#suffix S3BucketWebsiteConfiguration#suffix}. + + + +## struct S3BucketWebsiteConfigurationRedirectAllRequestsTo + + + + + + +Name | Type | Description +-----|------|------------- +**hostName** | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#host_name S3BucketWebsiteConfiguration#host_name}. +**protocol**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#protocol S3BucketWebsiteConfiguration#protocol}.
__*Optional*__ + + + +## struct S3BucketWebsiteConfigurationRoutingRule + + + + + + +Name | Type | Description +-----|------|------------- +**redirect** | [s3.S3BucketWebsiteConfigurationRoutingRuleRedirect](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationroutingruleredirect) | redirect block. +**condition**? | [s3.S3BucketWebsiteConfigurationRoutingRuleCondition](#cdktf-aws-cdk-s3-s3bucketwebsiteconfigurationroutingrulecondition) | condition block.
__*Optional*__ + + + +## struct S3BucketWebsiteConfigurationRoutingRuleCondition + + + + + + +Name | Type | Description +-----|------|------------- +**httpErrorCodeReturnedEquals**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#http_error_code_returned_equals S3BucketWebsiteConfiguration#http_error_code_returned_equals}.
__*Optional*__ +**keyPrefixEquals**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#key_prefix_equals S3BucketWebsiteConfiguration#key_prefix_equals}.
__*Optional*__ + + + +## struct S3BucketWebsiteConfigurationRoutingRuleRedirect + + + + + + +Name | Type | Description +-----|------|------------- +**hostName**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#host_name S3BucketWebsiteConfiguration#host_name}.
__*Optional*__ +**httpRedirectCode**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#http_redirect_code S3BucketWebsiteConfiguration#http_redirect_code}.
__*Optional*__ +**protocol**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#protocol S3BucketWebsiteConfiguration#protocol}.
__*Optional*__ +**replaceKeyPrefixWith**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#replace_key_prefix_with S3BucketWebsiteConfiguration#replace_key_prefix_with}.
__*Optional*__ +**replaceKeyWith**? | string | Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#replace_key_with S3BucketWebsiteConfiguration#replace_key_with}.
__*Optional*__ + + + ## struct S3ControlAccessPointPolicyConfig diff --git a/src/aws/s3/index.ts b/src/aws/s3/index.ts index 9822701c2..676c6777f 100644 --- a/src/aws/s3/index.ts +++ b/src/aws/s3/index.ts @@ -2,16 +2,26 @@ export * from './s3-access-point'; export * from './s3-account-public-access-block'; export * from './s3-bucket'; +export * from './s3-bucket-accelerate-configuration'; +export * from './s3-bucket-acl'; export * from './s3-bucket-analytics-configuration'; +export * from './s3-bucket-cors-configuration'; export * from './s3-bucket-intelligent-tiering-configuration'; export * from './s3-bucket-inventory'; +export * from './s3-bucket-lifecycle-configuration'; +export * from './s3-bucket-logging'; export * from './s3-bucket-metric'; export * from './s3-bucket-notification'; export * from './s3-bucket-object'; +export * from './s3-bucket-object-lock-configuration'; export * from './s3-bucket-ownership-controls'; export * from './s3-bucket-policy'; export * from './s3-bucket-public-access-block'; export * from './s3-bucket-replication-configuration'; +export * from './s3-bucket-request-payment-configuration'; +export * from './s3-bucket-server-side-encryption-configuration'; +export * from './s3-bucket-versioning'; +export * from './s3-bucket-website-configuration'; export * from './s3-object-copy'; export * from './s3control-access-point-policy'; export * from './s3control-bucket'; diff --git a/src/aws/s3/s3-bucket-accelerate-configuration.ts b/src/aws/s3/s3-bucket-accelerate-configuration.ts new file mode 100644 index 000000000..df50114d6 --- /dev/null +++ b/src/aws/s3/s3-bucket-accelerate-configuration.ts @@ -0,0 +1,123 @@ +// generated from terraform resource schema + +import { Construct } from 'constructs'; +import * as cdktf from 'cdktf'; + +/** +* AWS Simple Storage Service +*/ +export interface S3BucketAccelerateConfigurationConfig extends cdktf.TerraformMetaArguments { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_accelerate_configuration#bucket S3BucketAccelerateConfiguration#bucket} + */ + readonly bucket: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_accelerate_configuration#expected_bucket_owner S3BucketAccelerateConfiguration#expected_bucket_owner} + */ + readonly expectedBucketOwner?: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_accelerate_configuration#status S3BucketAccelerateConfiguration#status} + */ + readonly status: string; +} + +/** +* Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_accelerate_configuration aws_s3_bucket_accelerate_configuration} +*/ +export class S3BucketAccelerateConfiguration extends cdktf.TerraformResource { + + // ================= + // STATIC PROPERTIES + // ================= + public static readonly tfResourceType: string = "aws_s3_bucket_accelerate_configuration"; + + // =========== + // INITIALIZER + // =========== + + /** + * Create a new {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_accelerate_configuration aws_s3_bucket_accelerate_configuration} 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 S3BucketAccelerateConfigurationConfig + */ + public constructor(scope: Construct, id: string, config: S3BucketAccelerateConfigurationConfig) { + super(scope, id, { + terraformResourceType: 'aws_s3_bucket_accelerate_configuration', + terraformGeneratorMetadata: { + providerName: 'aws' + }, + provider: config.provider, + dependsOn: config.dependsOn, + count: config.count, + lifecycle: config.lifecycle + }); + this._bucket = config.bucket; + this._expectedBucketOwner = config.expectedBucketOwner; + this._status = config.status; + } + + // ========== + // ATTRIBUTES + // ========== + + // bucket - computed: false, optional: false, required: true + private _bucket?: string; + public get bucket() { + return this.getStringAttribute('bucket'); + } + public set bucket(value: string) { + this._bucket = value; + } + // Temporarily expose input value. Use with caution. + public get bucketInput() { + return this._bucket; + } + + // expected_bucket_owner - computed: false, optional: true, required: false + private _expectedBucketOwner?: string; + public get expectedBucketOwner() { + return this.getStringAttribute('expected_bucket_owner'); + } + public set expectedBucketOwner(value: string) { + this._expectedBucketOwner = value; + } + public resetExpectedBucketOwner() { + this._expectedBucketOwner = undefined; + } + // Temporarily expose input value. Use with caution. + public get expectedBucketOwnerInput() { + return this._expectedBucketOwner; + } + + // id - computed: true, optional: true, required: false + public get id() { + return this.getStringAttribute('id'); + } + + // status - computed: false, optional: false, required: true + private _status?: string; + public get status() { + return this.getStringAttribute('status'); + } + public set status(value: string) { + this._status = value; + } + // Temporarily expose input value. Use with caution. + public get statusInput() { + return this._status; + } + + // ========= + // SYNTHESIS + // ========= + + protected synthesizeAttributes(): { [name: string]: any } { + return { + bucket: cdktf.stringToTerraform(this._bucket), + expected_bucket_owner: cdktf.stringToTerraform(this._expectedBucketOwner), + status: cdktf.stringToTerraform(this._status), + }; + } +} diff --git a/src/aws/s3/s3-bucket-acl.ts b/src/aws/s3/s3-bucket-acl.ts new file mode 100644 index 000000000..0c09f5768 --- /dev/null +++ b/src/aws/s3/s3-bucket-acl.ts @@ -0,0 +1,508 @@ +// generated from terraform resource schema + +import { Construct } from 'constructs'; +import * as cdktf from 'cdktf'; + +/** +* AWS Simple Storage Service +*/ +export interface S3BucketAclConfig extends cdktf.TerraformMetaArguments { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl#acl S3BucketAcl#acl} + */ + readonly acl?: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl#bucket S3BucketAcl#bucket} + */ + readonly bucket: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl#expected_bucket_owner S3BucketAcl#expected_bucket_owner} + */ + readonly expectedBucketOwner?: string; + /** + * access_control_policy block + * + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl#access_control_policy S3BucketAcl#access_control_policy} + */ + readonly accessControlPolicy?: S3BucketAclAccessControlPolicy; +} +export interface S3BucketAclAccessControlPolicyGrantGrantee { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl#email_address S3BucketAcl#email_address} + */ + readonly emailAddress?: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl#id S3BucketAcl#id} + */ + readonly id?: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl#type S3BucketAcl#type} + */ + readonly type: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl#uri S3BucketAcl#uri} + */ + readonly uri?: string; +} + +export function s3BucketAclAccessControlPolicyGrantGranteeToTerraform(struct?: S3BucketAclAccessControlPolicyGrantGranteeOutputReference | S3BucketAclAccessControlPolicyGrantGrantee): any { + 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 { + email_address: cdktf.stringToTerraform(struct!.emailAddress), + id: cdktf.stringToTerraform(struct!.id), + type: cdktf.stringToTerraform(struct!.type), + uri: cdktf.stringToTerraform(struct!.uri), + } +} + +export class S3BucketAclAccessControlPolicyGrantGranteeOutputReference extends cdktf.ComplexObject { + private isEmptyObject = false; + + /** + * @param terraformResource The parent resource + * @param terraformAttribute The attribute on the parent resource this class is referencing + * @param isSingleItem True if this is a block, false if it's a list + */ + public constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) { + super(terraformResource, terraformAttribute, isSingleItem); + } + + public get internalValue(): S3BucketAclAccessControlPolicyGrantGrantee | undefined { + let hasAnyValues = this.isEmptyObject; + const internalValueResult: any = {}; + if (this._emailAddress !== undefined) { + hasAnyValues = true; + internalValueResult.emailAddress = this._emailAddress; + } + if (this._id !== undefined) { + hasAnyValues = true; + internalValueResult.id = this._id; + } + if (this._type !== undefined) { + hasAnyValues = true; + internalValueResult.type = this._type; + } + if (this._uri !== undefined) { + hasAnyValues = true; + internalValueResult.uri = this._uri; + } + return hasAnyValues ? internalValueResult : undefined; + } + + public set internalValue(value: S3BucketAclAccessControlPolicyGrantGrantee | undefined) { + if (value === undefined) { + this.isEmptyObject = false; + this._emailAddress = undefined; + this._id = undefined; + this._type = undefined; + this._uri = undefined; + } + else { + this.isEmptyObject = Object.keys(value).length === 0; + this._emailAddress = value.emailAddress; + this._id = value.id; + this._type = value.type; + this._uri = value.uri; + } + } + + // display_name - computed: true, optional: false, required: false + public get displayName() { + return this.getStringAttribute('display_name'); + } + + // email_address - computed: false, optional: true, required: false + private _emailAddress?: string; + public get emailAddress() { + return this.getStringAttribute('email_address'); + } + public set emailAddress(value: string) { + this._emailAddress = value; + } + public resetEmailAddress() { + this._emailAddress = undefined; + } + // Temporarily expose input value. Use with caution. + public get emailAddressInput() { + return this._emailAddress; + } + + // id - computed: false, optional: true, required: false + private _id?: string; + public get id() { + return this.getStringAttribute('id'); + } + public set id(value: string) { + this._id = value; + } + public resetId() { + this._id = undefined; + } + // Temporarily expose input value. Use with caution. + public get idInput() { + return this._id; + } + + // type - computed: false, optional: false, required: true + private _type?: string; + public get type() { + return this.getStringAttribute('type'); + } + public set type(value: string) { + this._type = value; + } + // Temporarily expose input value. Use with caution. + public get typeInput() { + return this._type; + } + + // uri - computed: false, optional: true, required: false + private _uri?: string; + public get uri() { + return this.getStringAttribute('uri'); + } + public set uri(value: string) { + this._uri = value; + } + public resetUri() { + this._uri = undefined; + } + // Temporarily expose input value. Use with caution. + public get uriInput() { + return this._uri; + } +} +export interface S3BucketAclAccessControlPolicyGrant { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl#permission S3BucketAcl#permission} + */ + readonly permission: string; + /** + * grantee block + * + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl#grantee S3BucketAcl#grantee} + */ + readonly grantee?: S3BucketAclAccessControlPolicyGrantGrantee; +} + +export function s3BucketAclAccessControlPolicyGrantToTerraform(struct?: S3BucketAclAccessControlPolicyGrant | cdktf.IResolvable): any { + 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 { + permission: cdktf.stringToTerraform(struct!.permission), + grantee: s3BucketAclAccessControlPolicyGrantGranteeToTerraform(struct!.grantee), + } +} + +export interface S3BucketAclAccessControlPolicyOwner { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl#display_name S3BucketAcl#display_name} + */ + readonly displayName?: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl#id S3BucketAcl#id} + */ + readonly id: string; +} + +export function s3BucketAclAccessControlPolicyOwnerToTerraform(struct?: S3BucketAclAccessControlPolicyOwnerOutputReference | S3BucketAclAccessControlPolicyOwner): any { + 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 { + display_name: cdktf.stringToTerraform(struct!.displayName), + id: cdktf.stringToTerraform(struct!.id), + } +} + +export class S3BucketAclAccessControlPolicyOwnerOutputReference extends cdktf.ComplexObject { + private isEmptyObject = false; + + /** + * @param terraformResource The parent resource + * @param terraformAttribute The attribute on the parent resource this class is referencing + * @param isSingleItem True if this is a block, false if it's a list + */ + public constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) { + super(terraformResource, terraformAttribute, isSingleItem); + } + + public get internalValue(): S3BucketAclAccessControlPolicyOwner | undefined { + let hasAnyValues = this.isEmptyObject; + const internalValueResult: any = {}; + if (this._displayName !== undefined) { + hasAnyValues = true; + internalValueResult.displayName = this._displayName; + } + if (this._id !== undefined) { + hasAnyValues = true; + internalValueResult.id = this._id; + } + return hasAnyValues ? internalValueResult : undefined; + } + + public set internalValue(value: S3BucketAclAccessControlPolicyOwner | undefined) { + if (value === undefined) { + this.isEmptyObject = false; + this._displayName = undefined; + this._id = undefined; + } + else { + this.isEmptyObject = Object.keys(value).length === 0; + this._displayName = value.displayName; + this._id = value.id; + } + } + + // display_name - computed: true, optional: true, required: false + private _displayName?: string; + public get displayName() { + return this.getStringAttribute('display_name'); + } + public set displayName(value: string) { + this._displayName = value; + } + public resetDisplayName() { + this._displayName = undefined; + } + // Temporarily expose input value. Use with caution. + public get displayNameInput() { + return this._displayName; + } + + // id - computed: false, optional: false, required: true + private _id?: string; + public get id() { + return this.getStringAttribute('id'); + } + public set id(value: string) { + this._id = value; + } + // Temporarily expose input value. Use with caution. + public get idInput() { + return this._id; + } +} +export interface S3BucketAclAccessControlPolicy { + /** + * grant block + * + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl#grant S3BucketAcl#grant} + */ + readonly grant?: S3BucketAclAccessControlPolicyGrant[] | cdktf.IResolvable; + /** + * owner block + * + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl#owner S3BucketAcl#owner} + */ + readonly owner: S3BucketAclAccessControlPolicyOwner; +} + +export function s3BucketAclAccessControlPolicyToTerraform(struct?: S3BucketAclAccessControlPolicyOutputReference | S3BucketAclAccessControlPolicy): any { + 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 { + grant: cdktf.listMapper(s3BucketAclAccessControlPolicyGrantToTerraform)(struct!.grant), + owner: s3BucketAclAccessControlPolicyOwnerToTerraform(struct!.owner), + } +} + +export class S3BucketAclAccessControlPolicyOutputReference extends cdktf.ComplexObject { + private isEmptyObject = false; + + /** + * @param terraformResource The parent resource + * @param terraformAttribute The attribute on the parent resource this class is referencing + * @param isSingleItem True if this is a block, false if it's a list + */ + public constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) { + super(terraformResource, terraformAttribute, isSingleItem); + } + + public get internalValue(): S3BucketAclAccessControlPolicy | undefined { + let hasAnyValues = this.isEmptyObject; + const internalValueResult: any = {}; + if (this._grant !== undefined) { + hasAnyValues = true; + internalValueResult.grant = this._grant; + } + if (this._owner?.internalValue !== undefined) { + hasAnyValues = true; + internalValueResult.owner = this._owner?.internalValue; + } + return hasAnyValues ? internalValueResult : undefined; + } + + public set internalValue(value: S3BucketAclAccessControlPolicy | undefined) { + if (value === undefined) { + this.isEmptyObject = false; + this._grant = undefined; + this._owner.internalValue = undefined; + } + else { + this.isEmptyObject = Object.keys(value).length === 0; + this._grant = value.grant; + this._owner.internalValue = value.owner; + } + } + + // grant - computed: false, optional: true, required: false + private _grant?: S3BucketAclAccessControlPolicyGrant[] | cdktf.IResolvable; + public get grant() { + // Getting the computed value is not yet implemented + return cdktf.Token.asAny(cdktf.Fn.tolist(this.interpolationForAttribute('grant'))); + } + public set grant(value: S3BucketAclAccessControlPolicyGrant[] | cdktf.IResolvable) { + this._grant = value; + } + public resetGrant() { + this._grant = undefined; + } + // Temporarily expose input value. Use with caution. + public get grantInput() { + return this._grant; + } + + // owner - computed: false, optional: false, required: true + private _owner = new S3BucketAclAccessControlPolicyOwnerOutputReference(this, "owner", true); + public get owner() { + return this._owner; + } + public putOwner(value: S3BucketAclAccessControlPolicyOwner) { + this._owner.internalValue = value; + } + // Temporarily expose input value. Use with caution. + public get ownerInput() { + return this._owner.internalValue; + } +} + +/** +* Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl aws_s3_bucket_acl} +*/ +export class S3BucketAcl extends cdktf.TerraformResource { + + // ================= + // STATIC PROPERTIES + // ================= + public static readonly tfResourceType: string = "aws_s3_bucket_acl"; + + // =========== + // INITIALIZER + // =========== + + /** + * Create a new {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_acl aws_s3_bucket_acl} 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 S3BucketAclConfig + */ + public constructor(scope: Construct, id: string, config: S3BucketAclConfig) { + super(scope, id, { + terraformResourceType: 'aws_s3_bucket_acl', + terraformGeneratorMetadata: { + providerName: 'aws' + }, + provider: config.provider, + dependsOn: config.dependsOn, + count: config.count, + lifecycle: config.lifecycle + }); + this._acl = config.acl; + this._bucket = config.bucket; + this._expectedBucketOwner = config.expectedBucketOwner; + this._accessControlPolicy.internalValue = config.accessControlPolicy; + } + + // ========== + // ATTRIBUTES + // ========== + + // acl - computed: false, optional: true, required: false + private _acl?: string; + public get acl() { + return this.getStringAttribute('acl'); + } + public set acl(value: string) { + this._acl = value; + } + public resetAcl() { + this._acl = undefined; + } + // Temporarily expose input value. Use with caution. + public get aclInput() { + return this._acl; + } + + // bucket - computed: false, optional: false, required: true + private _bucket?: string; + public get bucket() { + return this.getStringAttribute('bucket'); + } + public set bucket(value: string) { + this._bucket = value; + } + // Temporarily expose input value. Use with caution. + public get bucketInput() { + return this._bucket; + } + + // expected_bucket_owner - computed: false, optional: true, required: false + private _expectedBucketOwner?: string; + public get expectedBucketOwner() { + return this.getStringAttribute('expected_bucket_owner'); + } + public set expectedBucketOwner(value: string) { + this._expectedBucketOwner = value; + } + public resetExpectedBucketOwner() { + this._expectedBucketOwner = undefined; + } + // Temporarily expose input value. Use with caution. + public get expectedBucketOwnerInput() { + return this._expectedBucketOwner; + } + + // id - computed: true, optional: true, required: false + public get id() { + return this.getStringAttribute('id'); + } + + // access_control_policy - computed: false, optional: true, required: false + private _accessControlPolicy = new S3BucketAclAccessControlPolicyOutputReference(this, "access_control_policy", true); + public get accessControlPolicy() { + return this._accessControlPolicy; + } + public putAccessControlPolicy(value: S3BucketAclAccessControlPolicy) { + this._accessControlPolicy.internalValue = value; + } + public resetAccessControlPolicy() { + this._accessControlPolicy.internalValue = undefined; + } + // Temporarily expose input value. Use with caution. + public get accessControlPolicyInput() { + return this._accessControlPolicy.internalValue; + } + + // ========= + // SYNTHESIS + // ========= + + protected synthesizeAttributes(): { [name: string]: any } { + return { + acl: cdktf.stringToTerraform(this._acl), + bucket: cdktf.stringToTerraform(this._bucket), + expected_bucket_owner: cdktf.stringToTerraform(this._expectedBucketOwner), + access_control_policy: s3BucketAclAccessControlPolicyToTerraform(this._accessControlPolicy.internalValue), + }; + } +} diff --git a/src/aws/s3/s3-bucket-cors-configuration.ts b/src/aws/s3/s3-bucket-cors-configuration.ts new file mode 100644 index 000000000..11dfae58f --- /dev/null +++ b/src/aws/s3/s3-bucket-cors-configuration.ts @@ -0,0 +1,168 @@ +// generated from terraform resource schema + +import { Construct } from 'constructs'; +import * as cdktf from 'cdktf'; + +/** +* AWS Simple Storage Service +*/ +export interface S3BucketCorsConfigurationConfig extends cdktf.TerraformMetaArguments { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_cors_configuration#bucket S3BucketCorsConfiguration#bucket} + */ + readonly bucket: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_cors_configuration#expected_bucket_owner S3BucketCorsConfiguration#expected_bucket_owner} + */ + readonly expectedBucketOwner?: string; + /** + * cors_rule block + * + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_cors_configuration#cors_rule S3BucketCorsConfiguration#cors_rule} + */ + readonly corsRule: S3BucketCorsConfigurationCorsRule[] | cdktf.IResolvable; +} +export interface S3BucketCorsConfigurationCorsRule { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_cors_configuration#allowed_headers S3BucketCorsConfiguration#allowed_headers} + */ + readonly allowedHeaders?: string[]; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_cors_configuration#allowed_methods S3BucketCorsConfiguration#allowed_methods} + */ + readonly allowedMethods: string[]; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_cors_configuration#allowed_origins S3BucketCorsConfiguration#allowed_origins} + */ + readonly allowedOrigins: string[]; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_cors_configuration#expose_headers S3BucketCorsConfiguration#expose_headers} + */ + readonly exposeHeaders?: string[]; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_cors_configuration#id S3BucketCorsConfiguration#id} + */ + readonly id?: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_cors_configuration#max_age_seconds S3BucketCorsConfiguration#max_age_seconds} + */ + readonly maxAgeSeconds?: number; +} + +export function s3BucketCorsConfigurationCorsRuleToTerraform(struct?: S3BucketCorsConfigurationCorsRule | cdktf.IResolvable): any { + 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)(struct!.allowedHeaders), + allowed_methods: cdktf.listMapper(cdktf.stringToTerraform)(struct!.allowedMethods), + allowed_origins: cdktf.listMapper(cdktf.stringToTerraform)(struct!.allowedOrigins), + expose_headers: cdktf.listMapper(cdktf.stringToTerraform)(struct!.exposeHeaders), + id: cdktf.stringToTerraform(struct!.id), + max_age_seconds: cdktf.numberToTerraform(struct!.maxAgeSeconds), + } +} + + +/** +* Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_cors_configuration aws_s3_bucket_cors_configuration} +*/ +export class S3BucketCorsConfiguration extends cdktf.TerraformResource { + + // ================= + // STATIC PROPERTIES + // ================= + public static readonly tfResourceType: string = "aws_s3_bucket_cors_configuration"; + + // =========== + // INITIALIZER + // =========== + + /** + * Create a new {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_cors_configuration aws_s3_bucket_cors_configuration} 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 S3BucketCorsConfigurationConfig + */ + public constructor(scope: Construct, id: string, config: S3BucketCorsConfigurationConfig) { + super(scope, id, { + terraformResourceType: 'aws_s3_bucket_cors_configuration', + terraformGeneratorMetadata: { + providerName: 'aws' + }, + provider: config.provider, + dependsOn: config.dependsOn, + count: config.count, + lifecycle: config.lifecycle + }); + this._bucket = config.bucket; + this._expectedBucketOwner = config.expectedBucketOwner; + this._corsRule = config.corsRule; + } + + // ========== + // ATTRIBUTES + // ========== + + // bucket - computed: false, optional: false, required: true + private _bucket?: string; + public get bucket() { + return this.getStringAttribute('bucket'); + } + public set bucket(value: string) { + this._bucket = value; + } + // Temporarily expose input value. Use with caution. + public get bucketInput() { + return this._bucket; + } + + // expected_bucket_owner - computed: false, optional: true, required: false + private _expectedBucketOwner?: string; + public get expectedBucketOwner() { + return this.getStringAttribute('expected_bucket_owner'); + } + public set expectedBucketOwner(value: string) { + this._expectedBucketOwner = value; + } + public resetExpectedBucketOwner() { + this._expectedBucketOwner = undefined; + } + // Temporarily expose input value. Use with caution. + public get expectedBucketOwnerInput() { + return this._expectedBucketOwner; + } + + // id - computed: true, optional: true, required: false + public get id() { + return this.getStringAttribute('id'); + } + + // cors_rule - computed: false, optional: false, required: true + private _corsRule?: S3BucketCorsConfigurationCorsRule[] | cdktf.IResolvable; + public get corsRule() { + // Getting the computed value is not yet implemented + return cdktf.Token.asAny(cdktf.Fn.tolist(this.interpolationForAttribute('cors_rule'))); + } + public set corsRule(value: S3BucketCorsConfigurationCorsRule[] | cdktf.IResolvable) { + this._corsRule = value; + } + // Temporarily expose input value. Use with caution. + public get corsRuleInput() { + return this._corsRule; + } + + // ========= + // SYNTHESIS + // ========= + + protected synthesizeAttributes(): { [name: string]: any } { + return { + bucket: cdktf.stringToTerraform(this._bucket), + expected_bucket_owner: cdktf.stringToTerraform(this._expectedBucketOwner), + cors_rule: cdktf.listMapper(s3BucketCorsConfigurationCorsRuleToTerraform)(this._corsRule), + }; + } +} diff --git a/src/aws/s3/s3-bucket-lifecycle-configuration.ts b/src/aws/s3/s3-bucket-lifecycle-configuration.ts new file mode 100644 index 000000000..38d27aa62 --- /dev/null +++ b/src/aws/s3/s3-bucket-lifecycle-configuration.ts @@ -0,0 +1,940 @@ +// generated from terraform resource schema + +import { Construct } from 'constructs'; +import * as cdktf from 'cdktf'; + +/** +* AWS Simple Storage Service +*/ +export interface S3BucketLifecycleConfigurationConfig extends cdktf.TerraformMetaArguments { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#bucket S3BucketLifecycleConfiguration#bucket} + */ + readonly bucket: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#expected_bucket_owner S3BucketLifecycleConfiguration#expected_bucket_owner} + */ + readonly expectedBucketOwner?: string; + /** + * rule block + * + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#rule S3BucketLifecycleConfiguration#rule} + */ + readonly rule: S3BucketLifecycleConfigurationRule[] | cdktf.IResolvable; +} +export interface S3BucketLifecycleConfigurationRuleAbortIncompleteMultipartUpload { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#days_after_initiation S3BucketLifecycleConfiguration#days_after_initiation} + */ + readonly daysAfterInitiation?: number; +} + +export function s3BucketLifecycleConfigurationRuleAbortIncompleteMultipartUploadToTerraform(struct?: S3BucketLifecycleConfigurationRuleAbortIncompleteMultipartUploadOutputReference | S3BucketLifecycleConfigurationRuleAbortIncompleteMultipartUpload): any { + 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_after_initiation: cdktf.numberToTerraform(struct!.daysAfterInitiation), + } +} + +export class S3BucketLifecycleConfigurationRuleAbortIncompleteMultipartUploadOutputReference extends cdktf.ComplexObject { + private isEmptyObject = false; + + /** + * @param terraformResource The parent resource + * @param terraformAttribute The attribute on the parent resource this class is referencing + * @param isSingleItem True if this is a block, false if it's a list + */ + public constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) { + super(terraformResource, terraformAttribute, isSingleItem); + } + + public get internalValue(): S3BucketLifecycleConfigurationRuleAbortIncompleteMultipartUpload | undefined { + let hasAnyValues = this.isEmptyObject; + const internalValueResult: any = {}; + if (this._daysAfterInitiation !== undefined) { + hasAnyValues = true; + internalValueResult.daysAfterInitiation = this._daysAfterInitiation; + } + return hasAnyValues ? internalValueResult : undefined; + } + + public set internalValue(value: S3BucketLifecycleConfigurationRuleAbortIncompleteMultipartUpload | undefined) { + if (value === undefined) { + this.isEmptyObject = false; + this._daysAfterInitiation = undefined; + } + else { + this.isEmptyObject = Object.keys(value).length === 0; + this._daysAfterInitiation = value.daysAfterInitiation; + } + } + + // days_after_initiation - computed: false, optional: true, required: false + private _daysAfterInitiation?: number; + public get daysAfterInitiation() { + return this.getNumberAttribute('days_after_initiation'); + } + public set daysAfterInitiation(value: number) { + this._daysAfterInitiation = value; + } + public resetDaysAfterInitiation() { + this._daysAfterInitiation = undefined; + } + // Temporarily expose input value. Use with caution. + public get daysAfterInitiationInput() { + return this._daysAfterInitiation; + } +} +export interface S3BucketLifecycleConfigurationRuleExpiration { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#date S3BucketLifecycleConfiguration#date} + */ + readonly date?: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#days S3BucketLifecycleConfiguration#days} + */ + readonly days?: number; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#expired_object_delete_marker S3BucketLifecycleConfiguration#expired_object_delete_marker} + */ + readonly expiredObjectDeleteMarker?: boolean | cdktf.IResolvable; +} + +export function s3BucketLifecycleConfigurationRuleExpirationToTerraform(struct?: S3BucketLifecycleConfigurationRuleExpirationOutputReference | S3BucketLifecycleConfigurationRuleExpiration): any { + 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), + } +} + +export class S3BucketLifecycleConfigurationRuleExpirationOutputReference extends cdktf.ComplexObject { + private isEmptyObject = false; + + /** + * @param terraformResource The parent resource + * @param terraformAttribute The attribute on the parent resource this class is referencing + * @param isSingleItem True if this is a block, false if it's a list + */ + public constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) { + super(terraformResource, terraformAttribute, isSingleItem); + } + + public get internalValue(): S3BucketLifecycleConfigurationRuleExpiration | undefined { + let hasAnyValues = this.isEmptyObject; + const internalValueResult: any = {}; + 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; + } + + public set internalValue(value: S3BucketLifecycleConfigurationRuleExpiration | undefined) { + 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; + } + } + + // date - computed: false, optional: true, required: false + private _date?: string; + public get date() { + return this.getStringAttribute('date'); + } + public set date(value: string) { + this._date = value; + } + public resetDate() { + this._date = undefined; + } + // Temporarily expose input value. Use with caution. + public get dateInput() { + return this._date; + } + + // days - computed: false, optional: true, required: false + private _days?: number; + public get days() { + return this.getNumberAttribute('days'); + } + public set days(value: number) { + this._days = value; + } + public resetDays() { + this._days = undefined; + } + // Temporarily expose input value. Use with caution. + public get daysInput() { + return this._days; + } + + // expired_object_delete_marker - computed: true, optional: true, required: false + private _expiredObjectDeleteMarker?: boolean | cdktf.IResolvable; + public get expiredObjectDeleteMarker() { + return this.getBooleanAttribute('expired_object_delete_marker'); + } + public set expiredObjectDeleteMarker(value: boolean | cdktf.IResolvable) { + this._expiredObjectDeleteMarker = value; + } + public resetExpiredObjectDeleteMarker() { + this._expiredObjectDeleteMarker = undefined; + } + // Temporarily expose input value. Use with caution. + public get expiredObjectDeleteMarkerInput() { + return this._expiredObjectDeleteMarker; + } +} +export interface S3BucketLifecycleConfigurationRuleFilterAnd { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#object_size_greater_than S3BucketLifecycleConfiguration#object_size_greater_than} + */ + readonly objectSizeGreaterThan?: number; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#object_size_less_than S3BucketLifecycleConfiguration#object_size_less_than} + */ + readonly objectSizeLessThan?: number; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#prefix S3BucketLifecycleConfiguration#prefix} + */ + readonly prefix?: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#tags S3BucketLifecycleConfiguration#tags} + */ + readonly tags?: { [key: string]: string }; +} + +export function s3BucketLifecycleConfigurationRuleFilterAndToTerraform(struct?: S3BucketLifecycleConfigurationRuleFilterAndOutputReference | S3BucketLifecycleConfigurationRuleFilterAnd): any { + 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 { + object_size_greater_than: cdktf.numberToTerraform(struct!.objectSizeGreaterThan), + object_size_less_than: cdktf.numberToTerraform(struct!.objectSizeLessThan), + prefix: cdktf.stringToTerraform(struct!.prefix), + tags: cdktf.hashMapper(cdktf.stringToTerraform)(struct!.tags), + } +} + +export class S3BucketLifecycleConfigurationRuleFilterAndOutputReference extends cdktf.ComplexObject { + private isEmptyObject = false; + + /** + * @param terraformResource The parent resource + * @param terraformAttribute The attribute on the parent resource this class is referencing + * @param isSingleItem True if this is a block, false if it's a list + */ + public constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) { + super(terraformResource, terraformAttribute, isSingleItem); + } + + public get internalValue(): S3BucketLifecycleConfigurationRuleFilterAnd | undefined { + let hasAnyValues = this.isEmptyObject; + const internalValueResult: any = {}; + if (this._objectSizeGreaterThan !== undefined) { + hasAnyValues = true; + internalValueResult.objectSizeGreaterThan = this._objectSizeGreaterThan; + } + if (this._objectSizeLessThan !== undefined) { + hasAnyValues = true; + internalValueResult.objectSizeLessThan = this._objectSizeLessThan; + } + if (this._prefix !== undefined) { + hasAnyValues = true; + internalValueResult.prefix = this._prefix; + } + if (this._tags !== undefined) { + hasAnyValues = true; + internalValueResult.tags = this._tags; + } + return hasAnyValues ? internalValueResult : undefined; + } + + public set internalValue(value: S3BucketLifecycleConfigurationRuleFilterAnd | undefined) { + if (value === undefined) { + this.isEmptyObject = false; + this._objectSizeGreaterThan = undefined; + this._objectSizeLessThan = undefined; + this._prefix = undefined; + this._tags = undefined; + } + else { + this.isEmptyObject = Object.keys(value).length === 0; + this._objectSizeGreaterThan = value.objectSizeGreaterThan; + this._objectSizeLessThan = value.objectSizeLessThan; + this._prefix = value.prefix; + this._tags = value.tags; + } + } + + // object_size_greater_than - computed: false, optional: true, required: false + private _objectSizeGreaterThan?: number; + public get objectSizeGreaterThan() { + return this.getNumberAttribute('object_size_greater_than'); + } + public set objectSizeGreaterThan(value: number) { + this._objectSizeGreaterThan = value; + } + public resetObjectSizeGreaterThan() { + this._objectSizeGreaterThan = undefined; + } + // Temporarily expose input value. Use with caution. + public get objectSizeGreaterThanInput() { + return this._objectSizeGreaterThan; + } + + // object_size_less_than - computed: false, optional: true, required: false + private _objectSizeLessThan?: number; + public get objectSizeLessThan() { + return this.getNumberAttribute('object_size_less_than'); + } + public set objectSizeLessThan(value: number) { + this._objectSizeLessThan = value; + } + public resetObjectSizeLessThan() { + this._objectSizeLessThan = undefined; + } + // Temporarily expose input value. Use with caution. + public get objectSizeLessThanInput() { + return this._objectSizeLessThan; + } + + // prefix - computed: false, optional: true, required: false + private _prefix?: string; + public get prefix() { + return this.getStringAttribute('prefix'); + } + public set prefix(value: string) { + this._prefix = value; + } + public resetPrefix() { + this._prefix = undefined; + } + // Temporarily expose input value. Use with caution. + public get prefixInput() { + return this._prefix; + } + + // tags - computed: false, optional: true, required: false + private _tags?: { [key: string]: string }; + public get tags() { + return this.getStringMapAttribute('tags'); + } + public set tags(value: { [key: string]: string }) { + this._tags = value; + } + public resetTags() { + this._tags = undefined; + } + // Temporarily expose input value. Use with caution. + public get tagsInput() { + return this._tags; + } +} +export interface S3BucketLifecycleConfigurationRuleFilterTag { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#key S3BucketLifecycleConfiguration#key} + */ + readonly key: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#value S3BucketLifecycleConfiguration#value} + */ + readonly value: string; +} + +export function s3BucketLifecycleConfigurationRuleFilterTagToTerraform(struct?: S3BucketLifecycleConfigurationRuleFilterTagOutputReference | S3BucketLifecycleConfigurationRuleFilterTag): any { + 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), + } +} + +export class S3BucketLifecycleConfigurationRuleFilterTagOutputReference extends cdktf.ComplexObject { + private isEmptyObject = false; + + /** + * @param terraformResource The parent resource + * @param terraformAttribute The attribute on the parent resource this class is referencing + * @param isSingleItem True if this is a block, false if it's a list + */ + public constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) { + super(terraformResource, terraformAttribute, isSingleItem); + } + + public get internalValue(): S3BucketLifecycleConfigurationRuleFilterTag | undefined { + let hasAnyValues = this.isEmptyObject; + const internalValueResult: any = {}; + if (this._key !== undefined) { + hasAnyValues = true; + internalValueResult.key = this._key; + } + if (this._value !== undefined) { + hasAnyValues = true; + internalValueResult.value = this._value; + } + return hasAnyValues ? internalValueResult : undefined; + } + + public set internalValue(value: S3BucketLifecycleConfigurationRuleFilterTag | undefined) { + if (value === undefined) { + this.isEmptyObject = false; + this._key = undefined; + this._value = undefined; + } + else { + this.isEmptyObject = Object.keys(value).length === 0; + this._key = value.key; + this._value = value.value; + } + } + + // key - computed: false, optional: false, required: true + private _key?: string; + public get key() { + return this.getStringAttribute('key'); + } + public set key(value: string) { + this._key = value; + } + // Temporarily expose input value. Use with caution. + public get keyInput() { + return this._key; + } + + // value - computed: false, optional: false, required: true + private _value?: string; + public get value() { + return this.getStringAttribute('value'); + } + public set value(value: string) { + this._value = value; + } + // Temporarily expose input value. Use with caution. + public get valueInput() { + return this._value; + } +} +export interface S3BucketLifecycleConfigurationRuleFilter { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#object_size_greater_than S3BucketLifecycleConfiguration#object_size_greater_than} + */ + readonly objectSizeGreaterThan?: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#object_size_less_than S3BucketLifecycleConfiguration#object_size_less_than} + */ + readonly objectSizeLessThan?: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#prefix S3BucketLifecycleConfiguration#prefix} + */ + readonly prefix?: string; + /** + * and block + * + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#and S3BucketLifecycleConfiguration#and} + */ + readonly and?: S3BucketLifecycleConfigurationRuleFilterAnd; + /** + * tag block + * + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#tag S3BucketLifecycleConfiguration#tag} + */ + readonly tag?: S3BucketLifecycleConfigurationRuleFilterTag; +} + +export function s3BucketLifecycleConfigurationRuleFilterToTerraform(struct?: S3BucketLifecycleConfigurationRuleFilterOutputReference | S3BucketLifecycleConfigurationRuleFilter): any { + 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 { + object_size_greater_than: cdktf.stringToTerraform(struct!.objectSizeGreaterThan), + object_size_less_than: cdktf.stringToTerraform(struct!.objectSizeLessThan), + prefix: cdktf.stringToTerraform(struct!.prefix), + and: s3BucketLifecycleConfigurationRuleFilterAndToTerraform(struct!.and), + tag: s3BucketLifecycleConfigurationRuleFilterTagToTerraform(struct!.tag), + } +} + +export class S3BucketLifecycleConfigurationRuleFilterOutputReference extends cdktf.ComplexObject { + private isEmptyObject = false; + + /** + * @param terraformResource The parent resource + * @param terraformAttribute The attribute on the parent resource this class is referencing + * @param isSingleItem True if this is a block, false if it's a list + */ + public constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) { + super(terraformResource, terraformAttribute, isSingleItem); + } + + public get internalValue(): S3BucketLifecycleConfigurationRuleFilter | undefined { + let hasAnyValues = this.isEmptyObject; + const internalValueResult: any = {}; + if (this._objectSizeGreaterThan !== undefined) { + hasAnyValues = true; + internalValueResult.objectSizeGreaterThan = this._objectSizeGreaterThan; + } + if (this._objectSizeLessThan !== undefined) { + hasAnyValues = true; + internalValueResult.objectSizeLessThan = this._objectSizeLessThan; + } + if (this._prefix !== undefined) { + hasAnyValues = true; + internalValueResult.prefix = this._prefix; + } + if (this._and?.internalValue !== undefined) { + hasAnyValues = true; + internalValueResult.and = this._and?.internalValue; + } + if (this._tag?.internalValue !== undefined) { + hasAnyValues = true; + internalValueResult.tag = this._tag?.internalValue; + } + return hasAnyValues ? internalValueResult : undefined; + } + + public set internalValue(value: S3BucketLifecycleConfigurationRuleFilter | undefined) { + if (value === undefined) { + this.isEmptyObject = false; + this._objectSizeGreaterThan = undefined; + this._objectSizeLessThan = undefined; + this._prefix = undefined; + this._and.internalValue = undefined; + this._tag.internalValue = undefined; + } + else { + this.isEmptyObject = Object.keys(value).length === 0; + this._objectSizeGreaterThan = value.objectSizeGreaterThan; + this._objectSizeLessThan = value.objectSizeLessThan; + this._prefix = value.prefix; + this._and.internalValue = value.and; + this._tag.internalValue = value.tag; + } + } + + // object_size_greater_than - computed: false, optional: true, required: false + private _objectSizeGreaterThan?: string; + public get objectSizeGreaterThan() { + return this.getStringAttribute('object_size_greater_than'); + } + public set objectSizeGreaterThan(value: string) { + this._objectSizeGreaterThan = value; + } + public resetObjectSizeGreaterThan() { + this._objectSizeGreaterThan = undefined; + } + // Temporarily expose input value. Use with caution. + public get objectSizeGreaterThanInput() { + return this._objectSizeGreaterThan; + } + + // object_size_less_than - computed: false, optional: true, required: false + private _objectSizeLessThan?: string; + public get objectSizeLessThan() { + return this.getStringAttribute('object_size_less_than'); + } + public set objectSizeLessThan(value: string) { + this._objectSizeLessThan = value; + } + public resetObjectSizeLessThan() { + this._objectSizeLessThan = undefined; + } + // Temporarily expose input value. Use with caution. + public get objectSizeLessThanInput() { + return this._objectSizeLessThan; + } + + // prefix - computed: false, optional: true, required: false + private _prefix?: string; + public get prefix() { + return this.getStringAttribute('prefix'); + } + public set prefix(value: string) { + this._prefix = value; + } + public resetPrefix() { + this._prefix = undefined; + } + // Temporarily expose input value. Use with caution. + public get prefixInput() { + return this._prefix; + } + + // and - computed: false, optional: true, required: false + private _and = new S3BucketLifecycleConfigurationRuleFilterAndOutputReference(this, "and", true); + public get and() { + return this._and; + } + public putAnd(value: S3BucketLifecycleConfigurationRuleFilterAnd) { + this._and.internalValue = value; + } + public resetAnd() { + this._and.internalValue = undefined; + } + // Temporarily expose input value. Use with caution. + public get andInput() { + return this._and.internalValue; + } + + // tag - computed: false, optional: true, required: false + private _tag = new S3BucketLifecycleConfigurationRuleFilterTagOutputReference(this, "tag", true); + public get tag() { + return this._tag; + } + public putTag(value: S3BucketLifecycleConfigurationRuleFilterTag) { + this._tag.internalValue = value; + } + public resetTag() { + this._tag.internalValue = undefined; + } + // Temporarily expose input value. Use with caution. + public get tagInput() { + return this._tag.internalValue; + } +} +export interface S3BucketLifecycleConfigurationRuleNoncurrentVersionExpiration { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#newer_noncurrent_versions S3BucketLifecycleConfiguration#newer_noncurrent_versions} + */ + readonly newerNoncurrentVersions?: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#noncurrent_days S3BucketLifecycleConfiguration#noncurrent_days} + */ + readonly noncurrentDays?: number; +} + +export function s3BucketLifecycleConfigurationRuleNoncurrentVersionExpirationToTerraform(struct?: S3BucketLifecycleConfigurationRuleNoncurrentVersionExpirationOutputReference | S3BucketLifecycleConfigurationRuleNoncurrentVersionExpiration): any { + 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 { + newer_noncurrent_versions: cdktf.stringToTerraform(struct!.newerNoncurrentVersions), + noncurrent_days: cdktf.numberToTerraform(struct!.noncurrentDays), + } +} + +export class S3BucketLifecycleConfigurationRuleNoncurrentVersionExpirationOutputReference extends cdktf.ComplexObject { + private isEmptyObject = false; + + /** + * @param terraformResource The parent resource + * @param terraformAttribute The attribute on the parent resource this class is referencing + * @param isSingleItem True if this is a block, false if it's a list + */ + public constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) { + super(terraformResource, terraformAttribute, isSingleItem); + } + + public get internalValue(): S3BucketLifecycleConfigurationRuleNoncurrentVersionExpiration | undefined { + let hasAnyValues = this.isEmptyObject; + const internalValueResult: any = {}; + if (this._newerNoncurrentVersions !== undefined) { + hasAnyValues = true; + internalValueResult.newerNoncurrentVersions = this._newerNoncurrentVersions; + } + if (this._noncurrentDays !== undefined) { + hasAnyValues = true; + internalValueResult.noncurrentDays = this._noncurrentDays; + } + return hasAnyValues ? internalValueResult : undefined; + } + + public set internalValue(value: S3BucketLifecycleConfigurationRuleNoncurrentVersionExpiration | undefined) { + if (value === undefined) { + this.isEmptyObject = false; + this._newerNoncurrentVersions = undefined; + this._noncurrentDays = undefined; + } + else { + this.isEmptyObject = Object.keys(value).length === 0; + this._newerNoncurrentVersions = value.newerNoncurrentVersions; + this._noncurrentDays = value.noncurrentDays; + } + } + + // newer_noncurrent_versions - computed: false, optional: true, required: false + private _newerNoncurrentVersions?: string; + public get newerNoncurrentVersions() { + return this.getStringAttribute('newer_noncurrent_versions'); + } + public set newerNoncurrentVersions(value: string) { + this._newerNoncurrentVersions = value; + } + public resetNewerNoncurrentVersions() { + this._newerNoncurrentVersions = undefined; + } + // Temporarily expose input value. Use with caution. + public get newerNoncurrentVersionsInput() { + return this._newerNoncurrentVersions; + } + + // noncurrent_days - computed: false, optional: true, required: false + private _noncurrentDays?: number; + public get noncurrentDays() { + return this.getNumberAttribute('noncurrent_days'); + } + public set noncurrentDays(value: number) { + this._noncurrentDays = value; + } + public resetNoncurrentDays() { + this._noncurrentDays = undefined; + } + // Temporarily expose input value. Use with caution. + public get noncurrentDaysInput() { + return this._noncurrentDays; + } +} +export interface S3BucketLifecycleConfigurationRuleNoncurrentVersionTransition { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#newer_noncurrent_versions S3BucketLifecycleConfiguration#newer_noncurrent_versions} + */ + readonly newerNoncurrentVersions?: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#noncurrent_days S3BucketLifecycleConfiguration#noncurrent_days} + */ + readonly noncurrentDays?: number; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#storage_class S3BucketLifecycleConfiguration#storage_class} + */ + readonly storageClass: string; +} + +export function s3BucketLifecycleConfigurationRuleNoncurrentVersionTransitionToTerraform(struct?: S3BucketLifecycleConfigurationRuleNoncurrentVersionTransition | cdktf.IResolvable): any { + 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 { + newer_noncurrent_versions: cdktf.stringToTerraform(struct!.newerNoncurrentVersions), + noncurrent_days: cdktf.numberToTerraform(struct!.noncurrentDays), + storage_class: cdktf.stringToTerraform(struct!.storageClass), + } +} + +export interface S3BucketLifecycleConfigurationRuleTransition { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#date S3BucketLifecycleConfiguration#date} + */ + readonly date?: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#days S3BucketLifecycleConfiguration#days} + */ + readonly days?: number; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#storage_class S3BucketLifecycleConfiguration#storage_class} + */ + readonly storageClass: string; +} + +export function s3BucketLifecycleConfigurationRuleTransitionToTerraform(struct?: S3BucketLifecycleConfigurationRuleTransition | cdktf.IResolvable): any { + 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), + } +} + +export interface S3BucketLifecycleConfigurationRule { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#id S3BucketLifecycleConfiguration#id} + */ + readonly id: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#prefix S3BucketLifecycleConfiguration#prefix} + */ + readonly prefix?: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#status S3BucketLifecycleConfiguration#status} + */ + readonly status: string; + /** + * abort_incomplete_multipart_upload block + * + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#abort_incomplete_multipart_upload S3BucketLifecycleConfiguration#abort_incomplete_multipart_upload} + */ + readonly abortIncompleteMultipartUpload?: S3BucketLifecycleConfigurationRuleAbortIncompleteMultipartUpload; + /** + * expiration block + * + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#expiration S3BucketLifecycleConfiguration#expiration} + */ + readonly expiration?: S3BucketLifecycleConfigurationRuleExpiration; + /** + * filter block + * + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#filter S3BucketLifecycleConfiguration#filter} + */ + readonly filter?: S3BucketLifecycleConfigurationRuleFilter; + /** + * noncurrent_version_expiration block + * + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#noncurrent_version_expiration S3BucketLifecycleConfiguration#noncurrent_version_expiration} + */ + readonly noncurrentVersionExpiration?: S3BucketLifecycleConfigurationRuleNoncurrentVersionExpiration; + /** + * noncurrent_version_transition block + * + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#noncurrent_version_transition S3BucketLifecycleConfiguration#noncurrent_version_transition} + */ + readonly noncurrentVersionTransition?: S3BucketLifecycleConfigurationRuleNoncurrentVersionTransition[] | cdktf.IResolvable; + /** + * transition block + * + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration#transition S3BucketLifecycleConfiguration#transition} + */ + readonly transition?: S3BucketLifecycleConfigurationRuleTransition[] | cdktf.IResolvable; +} + +export function s3BucketLifecycleConfigurationRuleToTerraform(struct?: S3BucketLifecycleConfigurationRule | cdktf.IResolvable): any { + 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), + prefix: cdktf.stringToTerraform(struct!.prefix), + status: cdktf.stringToTerraform(struct!.status), + abort_incomplete_multipart_upload: s3BucketLifecycleConfigurationRuleAbortIncompleteMultipartUploadToTerraform(struct!.abortIncompleteMultipartUpload), + expiration: s3BucketLifecycleConfigurationRuleExpirationToTerraform(struct!.expiration), + filter: s3BucketLifecycleConfigurationRuleFilterToTerraform(struct!.filter), + noncurrent_version_expiration: s3BucketLifecycleConfigurationRuleNoncurrentVersionExpirationToTerraform(struct!.noncurrentVersionExpiration), + noncurrent_version_transition: cdktf.listMapper(s3BucketLifecycleConfigurationRuleNoncurrentVersionTransitionToTerraform)(struct!.noncurrentVersionTransition), + transition: cdktf.listMapper(s3BucketLifecycleConfigurationRuleTransitionToTerraform)(struct!.transition), + } +} + + +/** +* Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration aws_s3_bucket_lifecycle_configuration} +*/ +export class S3BucketLifecycleConfiguration extends cdktf.TerraformResource { + + // ================= + // STATIC PROPERTIES + // ================= + public static readonly tfResourceType: string = "aws_s3_bucket_lifecycle_configuration"; + + // =========== + // INITIALIZER + // =========== + + /** + * Create a new {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_lifecycle_configuration aws_s3_bucket_lifecycle_configuration} 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 S3BucketLifecycleConfigurationConfig + */ + public constructor(scope: Construct, id: string, config: S3BucketLifecycleConfigurationConfig) { + super(scope, id, { + terraformResourceType: 'aws_s3_bucket_lifecycle_configuration', + terraformGeneratorMetadata: { + providerName: 'aws' + }, + provider: config.provider, + dependsOn: config.dependsOn, + count: config.count, + lifecycle: config.lifecycle + }); + this._bucket = config.bucket; + this._expectedBucketOwner = config.expectedBucketOwner; + this._rule = config.rule; + } + + // ========== + // ATTRIBUTES + // ========== + + // bucket - computed: false, optional: false, required: true + private _bucket?: string; + public get bucket() { + return this.getStringAttribute('bucket'); + } + public set bucket(value: string) { + this._bucket = value; + } + // Temporarily expose input value. Use with caution. + public get bucketInput() { + return this._bucket; + } + + // expected_bucket_owner - computed: false, optional: true, required: false + private _expectedBucketOwner?: string; + public get expectedBucketOwner() { + return this.getStringAttribute('expected_bucket_owner'); + } + public set expectedBucketOwner(value: string) { + this._expectedBucketOwner = value; + } + public resetExpectedBucketOwner() { + this._expectedBucketOwner = undefined; + } + // Temporarily expose input value. Use with caution. + public get expectedBucketOwnerInput() { + return this._expectedBucketOwner; + } + + // id - computed: true, optional: true, required: false + public get id() { + return this.getStringAttribute('id'); + } + + // rule - computed: false, optional: false, required: true + private _rule?: S3BucketLifecycleConfigurationRule[] | cdktf.IResolvable; + public get rule() { + // Getting the computed value is not yet implemented + return this.interpolationForAttribute('rule'); + } + public set rule(value: S3BucketLifecycleConfigurationRule[] | cdktf.IResolvable) { + this._rule = value; + } + // Temporarily expose input value. Use with caution. + public get ruleInput() { + return this._rule; + } + + // ========= + // SYNTHESIS + // ========= + + protected synthesizeAttributes(): { [name: string]: any } { + return { + bucket: cdktf.stringToTerraform(this._bucket), + expected_bucket_owner: cdktf.stringToTerraform(this._expectedBucketOwner), + rule: cdktf.listMapper(s3BucketLifecycleConfigurationRuleToTerraform)(this._rule), + }; + } +} diff --git a/src/aws/s3/s3-bucket-logging.ts b/src/aws/s3/s3-bucket-logging.ts new file mode 100644 index 000000000..4d2254b11 --- /dev/null +++ b/src/aws/s3/s3-bucket-logging.ts @@ -0,0 +1,340 @@ +// generated from terraform resource schema + +import { Construct } from 'constructs'; +import * as cdktf from 'cdktf'; + +/** +* AWS Simple Storage Service +*/ +export interface S3BucketLoggingAConfig extends cdktf.TerraformMetaArguments { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_logging#bucket S3BucketLoggingA#bucket} + */ + readonly bucket: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_logging#expected_bucket_owner S3BucketLoggingA#expected_bucket_owner} + */ + readonly expectedBucketOwner?: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_logging#target_bucket S3BucketLoggingA#target_bucket} + */ + readonly targetBucket: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_logging#target_prefix S3BucketLoggingA#target_prefix} + */ + readonly targetPrefix: string; + /** + * target_grant block + * + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_logging#target_grant S3BucketLoggingA#target_grant} + */ + readonly targetGrant?: S3BucketLoggingTargetGrant[] | cdktf.IResolvable; +} +export interface S3BucketLoggingTargetGrantGrantee { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_logging#email_address S3BucketLoggingA#email_address} + */ + readonly emailAddress?: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_logging#id S3BucketLoggingA#id} + */ + readonly id?: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_logging#type S3BucketLoggingA#type} + */ + readonly type: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_logging#uri S3BucketLoggingA#uri} + */ + readonly uri?: string; +} + +export function s3BucketLoggingTargetGrantGranteeToTerraform(struct?: S3BucketLoggingTargetGrantGranteeOutputReference | S3BucketLoggingTargetGrantGrantee): any { + 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 { + email_address: cdktf.stringToTerraform(struct!.emailAddress), + id: cdktf.stringToTerraform(struct!.id), + type: cdktf.stringToTerraform(struct!.type), + uri: cdktf.stringToTerraform(struct!.uri), + } +} + +export class S3BucketLoggingTargetGrantGranteeOutputReference extends cdktf.ComplexObject { + private isEmptyObject = false; + + /** + * @param terraformResource The parent resource + * @param terraformAttribute The attribute on the parent resource this class is referencing + * @param isSingleItem True if this is a block, false if it's a list + */ + public constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) { + super(terraformResource, terraformAttribute, isSingleItem); + } + + public get internalValue(): S3BucketLoggingTargetGrantGrantee | undefined { + let hasAnyValues = this.isEmptyObject; + const internalValueResult: any = {}; + if (this._emailAddress !== undefined) { + hasAnyValues = true; + internalValueResult.emailAddress = this._emailAddress; + } + if (this._id !== undefined) { + hasAnyValues = true; + internalValueResult.id = this._id; + } + if (this._type !== undefined) { + hasAnyValues = true; + internalValueResult.type = this._type; + } + if (this._uri !== undefined) { + hasAnyValues = true; + internalValueResult.uri = this._uri; + } + return hasAnyValues ? internalValueResult : undefined; + } + + public set internalValue(value: S3BucketLoggingTargetGrantGrantee | undefined) { + if (value === undefined) { + this.isEmptyObject = false; + this._emailAddress = undefined; + this._id = undefined; + this._type = undefined; + this._uri = undefined; + } + else { + this.isEmptyObject = Object.keys(value).length === 0; + this._emailAddress = value.emailAddress; + this._id = value.id; + this._type = value.type; + this._uri = value.uri; + } + } + + // display_name - computed: true, optional: false, required: false + public get displayName() { + return this.getStringAttribute('display_name'); + } + + // email_address - computed: false, optional: true, required: false + private _emailAddress?: string; + public get emailAddress() { + return this.getStringAttribute('email_address'); + } + public set emailAddress(value: string) { + this._emailAddress = value; + } + public resetEmailAddress() { + this._emailAddress = undefined; + } + // Temporarily expose input value. Use with caution. + public get emailAddressInput() { + return this._emailAddress; + } + + // id - computed: false, optional: true, required: false + private _id?: string; + public get id() { + return this.getStringAttribute('id'); + } + public set id(value: string) { + this._id = value; + } + public resetId() { + this._id = undefined; + } + // Temporarily expose input value. Use with caution. + public get idInput() { + return this._id; + } + + // type - computed: false, optional: false, required: true + private _type?: string; + public get type() { + return this.getStringAttribute('type'); + } + public set type(value: string) { + this._type = value; + } + // Temporarily expose input value. Use with caution. + public get typeInput() { + return this._type; + } + + // uri - computed: false, optional: true, required: false + private _uri?: string; + public get uri() { + return this.getStringAttribute('uri'); + } + public set uri(value: string) { + this._uri = value; + } + public resetUri() { + this._uri = undefined; + } + // Temporarily expose input value. Use with caution. + public get uriInput() { + return this._uri; + } +} +export interface S3BucketLoggingTargetGrant { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_logging#permission S3BucketLoggingA#permission} + */ + readonly permission: string; + /** + * grantee block + * + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_logging#grantee S3BucketLoggingA#grantee} + */ + readonly grantee: S3BucketLoggingTargetGrantGrantee; +} + +export function s3BucketLoggingTargetGrantToTerraform(struct?: S3BucketLoggingTargetGrant | cdktf.IResolvable): any { + 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 { + permission: cdktf.stringToTerraform(struct!.permission), + grantee: s3BucketLoggingTargetGrantGranteeToTerraform(struct!.grantee), + } +} + + +/** +* Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_logging aws_s3_bucket_logging} +*/ +export class S3BucketLoggingA extends cdktf.TerraformResource { + + // ================= + // STATIC PROPERTIES + // ================= + public static readonly tfResourceType: string = "aws_s3_bucket_logging"; + + // =========== + // INITIALIZER + // =========== + + /** + * Create a new {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_logging aws_s3_bucket_logging} 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 S3BucketLoggingAConfig + */ + public constructor(scope: Construct, id: string, config: S3BucketLoggingAConfig) { + super(scope, id, { + terraformResourceType: 'aws_s3_bucket_logging', + terraformGeneratorMetadata: { + providerName: 'aws' + }, + provider: config.provider, + dependsOn: config.dependsOn, + count: config.count, + lifecycle: config.lifecycle + }); + this._bucket = config.bucket; + this._expectedBucketOwner = config.expectedBucketOwner; + this._targetBucket = config.targetBucket; + this._targetPrefix = config.targetPrefix; + this._targetGrant = config.targetGrant; + } + + // ========== + // ATTRIBUTES + // ========== + + // bucket - computed: false, optional: false, required: true + private _bucket?: string; + public get bucket() { + return this.getStringAttribute('bucket'); + } + public set bucket(value: string) { + this._bucket = value; + } + // Temporarily expose input value. Use with caution. + public get bucketInput() { + return this._bucket; + } + + // expected_bucket_owner - computed: false, optional: true, required: false + private _expectedBucketOwner?: string; + public get expectedBucketOwner() { + return this.getStringAttribute('expected_bucket_owner'); + } + public set expectedBucketOwner(value: string) { + this._expectedBucketOwner = value; + } + public resetExpectedBucketOwner() { + this._expectedBucketOwner = undefined; + } + // Temporarily expose input value. Use with caution. + public get expectedBucketOwnerInput() { + return this._expectedBucketOwner; + } + + // id - computed: true, optional: true, required: false + public get id() { + return this.getStringAttribute('id'); + } + + // target_bucket - computed: false, optional: false, required: true + private _targetBucket?: string; + public get targetBucket() { + return this.getStringAttribute('target_bucket'); + } + public set targetBucket(value: string) { + this._targetBucket = value; + } + // Temporarily expose input value. Use with caution. + public get targetBucketInput() { + return this._targetBucket; + } + + // target_prefix - computed: false, optional: false, required: true + private _targetPrefix?: string; + public get targetPrefix() { + return this.getStringAttribute('target_prefix'); + } + public set targetPrefix(value: string) { + this._targetPrefix = value; + } + // Temporarily expose input value. Use with caution. + public get targetPrefixInput() { + return this._targetPrefix; + } + + // target_grant - computed: false, optional: true, required: false + private _targetGrant?: S3BucketLoggingTargetGrant[] | cdktf.IResolvable; + public get targetGrant() { + // Getting the computed value is not yet implemented + return cdktf.Token.asAny(cdktf.Fn.tolist(this.interpolationForAttribute('target_grant'))); + } + public set targetGrant(value: S3BucketLoggingTargetGrant[] | cdktf.IResolvable) { + this._targetGrant = value; + } + public resetTargetGrant() { + this._targetGrant = undefined; + } + // Temporarily expose input value. Use with caution. + public get targetGrantInput() { + return this._targetGrant; + } + + // ========= + // SYNTHESIS + // ========= + + protected synthesizeAttributes(): { [name: string]: any } { + return { + bucket: cdktf.stringToTerraform(this._bucket), + expected_bucket_owner: cdktf.stringToTerraform(this._expectedBucketOwner), + target_bucket: cdktf.stringToTerraform(this._targetBucket), + target_prefix: cdktf.stringToTerraform(this._targetPrefix), + target_grant: cdktf.listMapper(s3BucketLoggingTargetGrantToTerraform)(this._targetGrant), + }; + } +} diff --git a/src/aws/s3/s3-bucket-object-lock-configuration.ts b/src/aws/s3/s3-bucket-object-lock-configuration.ts new file mode 100644 index 000000000..3c5df3f91 --- /dev/null +++ b/src/aws/s3/s3-bucket-object-lock-configuration.ts @@ -0,0 +1,354 @@ +// generated from terraform resource schema + +import { Construct } from 'constructs'; +import * as cdktf from 'cdktf'; + +/** +* AWS Simple Storage Service +*/ +export interface S3BucketObjectLockConfigurationAConfig extends cdktf.TerraformMetaArguments { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_object_lock_configuration#bucket S3BucketObjectLockConfigurationA#bucket} + */ + readonly bucket: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_object_lock_configuration#expected_bucket_owner S3BucketObjectLockConfigurationA#expected_bucket_owner} + */ + readonly expectedBucketOwner?: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_object_lock_configuration#object_lock_enabled S3BucketObjectLockConfigurationA#object_lock_enabled} + */ + readonly objectLockEnabled?: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_object_lock_configuration#token S3BucketObjectLockConfigurationA#token} + */ + readonly token?: string; + /** + * rule block + * + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_object_lock_configuration#rule S3BucketObjectLockConfigurationA#rule} + */ + readonly rule: S3BucketObjectLockConfigurationRuleA; +} +export interface S3BucketObjectLockConfigurationRuleDefaultRetentionA { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_object_lock_configuration#days S3BucketObjectLockConfigurationA#days} + */ + readonly days?: number; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_object_lock_configuration#mode S3BucketObjectLockConfigurationA#mode} + */ + readonly mode?: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_object_lock_configuration#years S3BucketObjectLockConfigurationA#years} + */ + readonly years?: number; +} + +export function s3BucketObjectLockConfigurationRuleDefaultRetentionAToTerraform(struct?: S3BucketObjectLockConfigurationRuleDefaultRetentionAOutputReference | S3BucketObjectLockConfigurationRuleDefaultRetentionA): any { + 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), + mode: cdktf.stringToTerraform(struct!.mode), + years: cdktf.numberToTerraform(struct!.years), + } +} + +export class S3BucketObjectLockConfigurationRuleDefaultRetentionAOutputReference extends cdktf.ComplexObject { + private isEmptyObject = false; + + /** + * @param terraformResource The parent resource + * @param terraformAttribute The attribute on the parent resource this class is referencing + * @param isSingleItem True if this is a block, false if it's a list + */ + public constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) { + super(terraformResource, terraformAttribute, isSingleItem); + } + + public get internalValue(): S3BucketObjectLockConfigurationRuleDefaultRetentionA | undefined { + let hasAnyValues = this.isEmptyObject; + const internalValueResult: any = {}; + if (this._days !== undefined) { + hasAnyValues = true; + internalValueResult.days = this._days; + } + if (this._mode !== undefined) { + hasAnyValues = true; + internalValueResult.mode = this._mode; + } + if (this._years !== undefined) { + hasAnyValues = true; + internalValueResult.years = this._years; + } + return hasAnyValues ? internalValueResult : undefined; + } + + public set internalValue(value: S3BucketObjectLockConfigurationRuleDefaultRetentionA | undefined) { + if (value === undefined) { + this.isEmptyObject = false; + this._days = undefined; + this._mode = undefined; + this._years = undefined; + } + else { + this.isEmptyObject = Object.keys(value).length === 0; + this._days = value.days; + this._mode = value.mode; + this._years = value.years; + } + } + + // days - computed: false, optional: true, required: false + private _days?: number; + public get days() { + return this.getNumberAttribute('days'); + } + public set days(value: number) { + this._days = value; + } + public resetDays() { + this._days = undefined; + } + // Temporarily expose input value. Use with caution. + public get daysInput() { + return this._days; + } + + // mode - computed: false, optional: true, required: false + private _mode?: string; + public get mode() { + return this.getStringAttribute('mode'); + } + public set mode(value: string) { + this._mode = value; + } + public resetMode() { + this._mode = undefined; + } + // Temporarily expose input value. Use with caution. + public get modeInput() { + return this._mode; + } + + // years - computed: false, optional: true, required: false + private _years?: number; + public get years() { + return this.getNumberAttribute('years'); + } + public set years(value: number) { + this._years = value; + } + public resetYears() { + this._years = undefined; + } + // Temporarily expose input value. Use with caution. + public get yearsInput() { + return this._years; + } +} +export interface S3BucketObjectLockConfigurationRuleA { + /** + * default_retention block + * + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_object_lock_configuration#default_retention S3BucketObjectLockConfigurationA#default_retention} + */ + readonly defaultRetention: S3BucketObjectLockConfigurationRuleDefaultRetentionA; +} + +export function s3BucketObjectLockConfigurationRuleAToTerraform(struct?: S3BucketObjectLockConfigurationRuleAOutputReference | S3BucketObjectLockConfigurationRuleA): any { + 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 { + default_retention: s3BucketObjectLockConfigurationRuleDefaultRetentionAToTerraform(struct!.defaultRetention), + } +} + +export class S3BucketObjectLockConfigurationRuleAOutputReference extends cdktf.ComplexObject { + private isEmptyObject = false; + + /** + * @param terraformResource The parent resource + * @param terraformAttribute The attribute on the parent resource this class is referencing + * @param isSingleItem True if this is a block, false if it's a list + */ + public constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) { + super(terraformResource, terraformAttribute, isSingleItem); + } + + public get internalValue(): S3BucketObjectLockConfigurationRuleA | undefined { + let hasAnyValues = this.isEmptyObject; + const internalValueResult: any = {}; + if (this._defaultRetention?.internalValue !== undefined) { + hasAnyValues = true; + internalValueResult.defaultRetention = this._defaultRetention?.internalValue; + } + return hasAnyValues ? internalValueResult : undefined; + } + + public set internalValue(value: S3BucketObjectLockConfigurationRuleA | undefined) { + if (value === undefined) { + this.isEmptyObject = false; + this._defaultRetention.internalValue = undefined; + } + else { + this.isEmptyObject = Object.keys(value).length === 0; + this._defaultRetention.internalValue = value.defaultRetention; + } + } + + // default_retention - computed: false, optional: false, required: true + private _defaultRetention = new S3BucketObjectLockConfigurationRuleDefaultRetentionAOutputReference(this, "default_retention", true); + public get defaultRetention() { + return this._defaultRetention; + } + public putDefaultRetention(value: S3BucketObjectLockConfigurationRuleDefaultRetentionA) { + this._defaultRetention.internalValue = value; + } + // Temporarily expose input value. Use with caution. + public get defaultRetentionInput() { + return this._defaultRetention.internalValue; + } +} + +/** +* Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_object_lock_configuration aws_s3_bucket_object_lock_configuration} +*/ +export class S3BucketObjectLockConfigurationA extends cdktf.TerraformResource { + + // ================= + // STATIC PROPERTIES + // ================= + public static readonly tfResourceType: string = "aws_s3_bucket_object_lock_configuration"; + + // =========== + // INITIALIZER + // =========== + + /** + * Create a new {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_object_lock_configuration aws_s3_bucket_object_lock_configuration} 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 S3BucketObjectLockConfigurationAConfig + */ + public constructor(scope: Construct, id: string, config: S3BucketObjectLockConfigurationAConfig) { + super(scope, id, { + terraformResourceType: 'aws_s3_bucket_object_lock_configuration', + terraformGeneratorMetadata: { + providerName: 'aws' + }, + provider: config.provider, + dependsOn: config.dependsOn, + count: config.count, + lifecycle: config.lifecycle + }); + this._bucket = config.bucket; + this._expectedBucketOwner = config.expectedBucketOwner; + this._objectLockEnabled = config.objectLockEnabled; + this._token = config.token; + this._rule.internalValue = config.rule; + } + + // ========== + // ATTRIBUTES + // ========== + + // bucket - computed: false, optional: false, required: true + private _bucket?: string; + public get bucket() { + return this.getStringAttribute('bucket'); + } + public set bucket(value: string) { + this._bucket = value; + } + // Temporarily expose input value. Use with caution. + public get bucketInput() { + return this._bucket; + } + + // expected_bucket_owner - computed: false, optional: true, required: false + private _expectedBucketOwner?: string; + public get expectedBucketOwner() { + return this.getStringAttribute('expected_bucket_owner'); + } + public set expectedBucketOwner(value: string) { + this._expectedBucketOwner = value; + } + public resetExpectedBucketOwner() { + this._expectedBucketOwner = undefined; + } + // Temporarily expose input value. Use with caution. + public get expectedBucketOwnerInput() { + return this._expectedBucketOwner; + } + + // id - computed: true, optional: true, required: false + public get id() { + return this.getStringAttribute('id'); + } + + // object_lock_enabled - computed: false, optional: true, required: false + private _objectLockEnabled?: string; + public get objectLockEnabled() { + return this.getStringAttribute('object_lock_enabled'); + } + public set objectLockEnabled(value: string) { + this._objectLockEnabled = value; + } + public resetObjectLockEnabled() { + this._objectLockEnabled = undefined; + } + // Temporarily expose input value. Use with caution. + public get objectLockEnabledInput() { + return this._objectLockEnabled; + } + + // token - computed: false, optional: true, required: false + private _token?: string; + public get token() { + return this.getStringAttribute('token'); + } + public set token(value: string) { + this._token = value; + } + public resetToken() { + this._token = undefined; + } + // Temporarily expose input value. Use with caution. + public get tokenInput() { + return this._token; + } + + // rule - computed: false, optional: false, required: true + private _rule = new S3BucketObjectLockConfigurationRuleAOutputReference(this, "rule", true); + public get rule() { + return this._rule; + } + public putRule(value: S3BucketObjectLockConfigurationRuleA) { + this._rule.internalValue = value; + } + // Temporarily expose input value. Use with caution. + public get ruleInput() { + return this._rule.internalValue; + } + + // ========= + // SYNTHESIS + // ========= + + protected synthesizeAttributes(): { [name: string]: any } { + return { + bucket: cdktf.stringToTerraform(this._bucket), + expected_bucket_owner: cdktf.stringToTerraform(this._expectedBucketOwner), + object_lock_enabled: cdktf.stringToTerraform(this._objectLockEnabled), + token: cdktf.stringToTerraform(this._token), + rule: s3BucketObjectLockConfigurationRuleAToTerraform(this._rule.internalValue), + }; + } +} diff --git a/src/aws/s3/s3-bucket-replication-configuration.ts b/src/aws/s3/s3-bucket-replication-configuration.ts index 44d5467da..7d56bb947 100644 --- a/src/aws/s3/s3-bucket-replication-configuration.ts +++ b/src/aws/s3/s3-bucket-replication-configuration.ts @@ -16,6 +16,10 @@ export interface S3BucketReplicationConfigurationAConfig extends cdktf.Terraform */ readonly role: string; /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_replication_configuration#token S3BucketReplicationConfigurationA#token} + */ + readonly token?: string; + /** * rule block * * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_replication_configuration#rule S3BucketReplicationConfigurationA#rule} @@ -1396,7 +1400,6 @@ export function s3BucketReplicationConfigurationRuleToTerraform(struct?: S3Bucke 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), prefix: cdktf.stringToTerraform(struct!.prefix), priority: cdktf.numberToTerraform(struct!.priority), status: cdktf.stringToTerraform(struct!.status), @@ -1443,6 +1446,7 @@ export class S3BucketReplicationConfigurationA extends cdktf.TerraformResource { }); this._bucket = config.bucket; this._role = config.role; + this._token = config.token; this._rule = config.rule; } @@ -1481,11 +1485,27 @@ export class S3BucketReplicationConfigurationA extends cdktf.TerraformResource { return this._role; } + // token - computed: false, optional: true, required: false + private _token?: string; + public get token() { + return this.getStringAttribute('token'); + } + public set token(value: string) { + this._token = value; + } + public resetToken() { + this._token = undefined; + } + // Temporarily expose input value. Use with caution. + public get tokenInput() { + return this._token; + } + // rule - computed: false, optional: false, required: true private _rule?: S3BucketReplicationConfigurationRule[] | cdktf.IResolvable; public get rule() { // Getting the computed value is not yet implemented - return cdktf.Token.asAny(cdktf.Fn.tolist(this.interpolationForAttribute('rule'))); + return this.interpolationForAttribute('rule'); } public set rule(value: S3BucketReplicationConfigurationRule[] | cdktf.IResolvable) { this._rule = value; @@ -1503,6 +1523,7 @@ export class S3BucketReplicationConfigurationA extends cdktf.TerraformResource { return { bucket: cdktf.stringToTerraform(this._bucket), role: cdktf.stringToTerraform(this._role), + token: cdktf.stringToTerraform(this._token), rule: cdktf.listMapper(s3BucketReplicationConfigurationRuleToTerraform)(this._rule), }; } diff --git a/src/aws/s3/s3-bucket-request-payment-configuration.ts b/src/aws/s3/s3-bucket-request-payment-configuration.ts new file mode 100644 index 000000000..d74bf377a --- /dev/null +++ b/src/aws/s3/s3-bucket-request-payment-configuration.ts @@ -0,0 +1,123 @@ +// generated from terraform resource schema + +import { Construct } from 'constructs'; +import * as cdktf from 'cdktf'; + +/** +* AWS Simple Storage Service +*/ +export interface S3BucketRequestPaymentConfigurationConfig extends cdktf.TerraformMetaArguments { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_request_payment_configuration#bucket S3BucketRequestPaymentConfiguration#bucket} + */ + readonly bucket: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_request_payment_configuration#expected_bucket_owner S3BucketRequestPaymentConfiguration#expected_bucket_owner} + */ + readonly expectedBucketOwner?: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_request_payment_configuration#payer S3BucketRequestPaymentConfiguration#payer} + */ + readonly payer: string; +} + +/** +* Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_request_payment_configuration aws_s3_bucket_request_payment_configuration} +*/ +export class S3BucketRequestPaymentConfiguration extends cdktf.TerraformResource { + + // ================= + // STATIC PROPERTIES + // ================= + public static readonly tfResourceType: string = "aws_s3_bucket_request_payment_configuration"; + + // =========== + // INITIALIZER + // =========== + + /** + * Create a new {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_request_payment_configuration aws_s3_bucket_request_payment_configuration} 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 S3BucketRequestPaymentConfigurationConfig + */ + public constructor(scope: Construct, id: string, config: S3BucketRequestPaymentConfigurationConfig) { + super(scope, id, { + terraformResourceType: 'aws_s3_bucket_request_payment_configuration', + terraformGeneratorMetadata: { + providerName: 'aws' + }, + provider: config.provider, + dependsOn: config.dependsOn, + count: config.count, + lifecycle: config.lifecycle + }); + this._bucket = config.bucket; + this._expectedBucketOwner = config.expectedBucketOwner; + this._payer = config.payer; + } + + // ========== + // ATTRIBUTES + // ========== + + // bucket - computed: false, optional: false, required: true + private _bucket?: string; + public get bucket() { + return this.getStringAttribute('bucket'); + } + public set bucket(value: string) { + this._bucket = value; + } + // Temporarily expose input value. Use with caution. + public get bucketInput() { + return this._bucket; + } + + // expected_bucket_owner - computed: false, optional: true, required: false + private _expectedBucketOwner?: string; + public get expectedBucketOwner() { + return this.getStringAttribute('expected_bucket_owner'); + } + public set expectedBucketOwner(value: string) { + this._expectedBucketOwner = value; + } + public resetExpectedBucketOwner() { + this._expectedBucketOwner = undefined; + } + // Temporarily expose input value. Use with caution. + public get expectedBucketOwnerInput() { + return this._expectedBucketOwner; + } + + // id - computed: true, optional: true, required: false + public get id() { + return this.getStringAttribute('id'); + } + + // payer - computed: false, optional: false, required: true + private _payer?: string; + public get payer() { + return this.getStringAttribute('payer'); + } + public set payer(value: string) { + this._payer = value; + } + // Temporarily expose input value. Use with caution. + public get payerInput() { + return this._payer; + } + + // ========= + // SYNTHESIS + // ========= + + protected synthesizeAttributes(): { [name: string]: any } { + return { + bucket: cdktf.stringToTerraform(this._bucket), + expected_bucket_owner: cdktf.stringToTerraform(this._expectedBucketOwner), + payer: cdktf.stringToTerraform(this._payer), + }; + } +} diff --git a/src/aws/s3/s3-bucket-server-side-encryption-configuration.ts b/src/aws/s3/s3-bucket-server-side-encryption-configuration.ts new file mode 100644 index 000000000..2530cfcf5 --- /dev/null +++ b/src/aws/s3/s3-bucket-server-side-encryption-configuration.ts @@ -0,0 +1,240 @@ +// generated from terraform resource schema + +import { Construct } from 'constructs'; +import * as cdktf from 'cdktf'; + +/** +* AWS Simple Storage Service +*/ +export interface S3BucketServerSideEncryptionConfigurationAConfig extends cdktf.TerraformMetaArguments { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_server_side_encryption_configuration#bucket S3BucketServerSideEncryptionConfigurationA#bucket} + */ + readonly bucket: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_server_side_encryption_configuration#expected_bucket_owner S3BucketServerSideEncryptionConfigurationA#expected_bucket_owner} + */ + readonly expectedBucketOwner?: string; + /** + * rule block + * + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_server_side_encryption_configuration#rule S3BucketServerSideEncryptionConfigurationA#rule} + */ + readonly rule: S3BucketServerSideEncryptionConfigurationRuleA[] | cdktf.IResolvable; +} +export interface S3BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultA { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_server_side_encryption_configuration#kms_master_key_id S3BucketServerSideEncryptionConfigurationA#kms_master_key_id} + */ + readonly kmsMasterKeyId?: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_server_side_encryption_configuration#sse_algorithm S3BucketServerSideEncryptionConfigurationA#sse_algorithm} + */ + readonly sseAlgorithm: string; +} + +export function s3BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultAToTerraform(struct?: S3BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultAOutputReference | S3BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultA): any { + 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 { + kms_master_key_id: cdktf.stringToTerraform(struct!.kmsMasterKeyId), + sse_algorithm: cdktf.stringToTerraform(struct!.sseAlgorithm), + } +} + +export class S3BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultAOutputReference extends cdktf.ComplexObject { + private isEmptyObject = false; + + /** + * @param terraformResource The parent resource + * @param terraformAttribute The attribute on the parent resource this class is referencing + * @param isSingleItem True if this is a block, false if it's a list + */ + public constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) { + super(terraformResource, terraformAttribute, isSingleItem); + } + + public get internalValue(): S3BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultA | undefined { + let hasAnyValues = this.isEmptyObject; + const internalValueResult: any = {}; + if (this._kmsMasterKeyId !== undefined) { + hasAnyValues = true; + internalValueResult.kmsMasterKeyId = this._kmsMasterKeyId; + } + if (this._sseAlgorithm !== undefined) { + hasAnyValues = true; + internalValueResult.sseAlgorithm = this._sseAlgorithm; + } + return hasAnyValues ? internalValueResult : undefined; + } + + public set internalValue(value: S3BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultA | undefined) { + if (value === undefined) { + this.isEmptyObject = false; + this._kmsMasterKeyId = undefined; + this._sseAlgorithm = undefined; + } + else { + this.isEmptyObject = Object.keys(value).length === 0; + this._kmsMasterKeyId = value.kmsMasterKeyId; + this._sseAlgorithm = value.sseAlgorithm; + } + } + + // kms_master_key_id - computed: false, optional: true, required: false + private _kmsMasterKeyId?: string; + public get kmsMasterKeyId() { + return this.getStringAttribute('kms_master_key_id'); + } + public set kmsMasterKeyId(value: string) { + this._kmsMasterKeyId = value; + } + public resetKmsMasterKeyId() { + this._kmsMasterKeyId = undefined; + } + // Temporarily expose input value. Use with caution. + public get kmsMasterKeyIdInput() { + return this._kmsMasterKeyId; + } + + // sse_algorithm - computed: false, optional: false, required: true + private _sseAlgorithm?: string; + public get sseAlgorithm() { + return this.getStringAttribute('sse_algorithm'); + } + public set sseAlgorithm(value: string) { + this._sseAlgorithm = value; + } + // Temporarily expose input value. Use with caution. + public get sseAlgorithmInput() { + return this._sseAlgorithm; + } +} +export interface S3BucketServerSideEncryptionConfigurationRuleA { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_server_side_encryption_configuration#bucket_key_enabled S3BucketServerSideEncryptionConfigurationA#bucket_key_enabled} + */ + readonly bucketKeyEnabled?: boolean | cdktf.IResolvable; + /** + * apply_server_side_encryption_by_default block + * + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_server_side_encryption_configuration#apply_server_side_encryption_by_default S3BucketServerSideEncryptionConfigurationA#apply_server_side_encryption_by_default} + */ + readonly applyServerSideEncryptionByDefault?: S3BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultA; +} + +export function s3BucketServerSideEncryptionConfigurationRuleAToTerraform(struct?: S3BucketServerSideEncryptionConfigurationRuleA | cdktf.IResolvable): any { + if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } + if (cdktf.isComplexElement(struct)) { + throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); + } + return { + bucket_key_enabled: cdktf.booleanToTerraform(struct!.bucketKeyEnabled), + apply_server_side_encryption_by_default: s3BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultAToTerraform(struct!.applyServerSideEncryptionByDefault), + } +} + + +/** +* Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_server_side_encryption_configuration aws_s3_bucket_server_side_encryption_configuration} +*/ +export class S3BucketServerSideEncryptionConfigurationA extends cdktf.TerraformResource { + + // ================= + // STATIC PROPERTIES + // ================= + public static readonly tfResourceType: string = "aws_s3_bucket_server_side_encryption_configuration"; + + // =========== + // INITIALIZER + // =========== + + /** + * Create a new {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_server_side_encryption_configuration aws_s3_bucket_server_side_encryption_configuration} 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 S3BucketServerSideEncryptionConfigurationAConfig + */ + public constructor(scope: Construct, id: string, config: S3BucketServerSideEncryptionConfigurationAConfig) { + super(scope, id, { + terraformResourceType: 'aws_s3_bucket_server_side_encryption_configuration', + terraformGeneratorMetadata: { + providerName: 'aws' + }, + provider: config.provider, + dependsOn: config.dependsOn, + count: config.count, + lifecycle: config.lifecycle + }); + this._bucket = config.bucket; + this._expectedBucketOwner = config.expectedBucketOwner; + this._rule = config.rule; + } + + // ========== + // ATTRIBUTES + // ========== + + // bucket - computed: false, optional: false, required: true + private _bucket?: string; + public get bucket() { + return this.getStringAttribute('bucket'); + } + public set bucket(value: string) { + this._bucket = value; + } + // Temporarily expose input value. Use with caution. + public get bucketInput() { + return this._bucket; + } + + // expected_bucket_owner - computed: false, optional: true, required: false + private _expectedBucketOwner?: string; + public get expectedBucketOwner() { + return this.getStringAttribute('expected_bucket_owner'); + } + public set expectedBucketOwner(value: string) { + this._expectedBucketOwner = value; + } + public resetExpectedBucketOwner() { + this._expectedBucketOwner = undefined; + } + // Temporarily expose input value. Use with caution. + public get expectedBucketOwnerInput() { + return this._expectedBucketOwner; + } + + // id - computed: true, optional: true, required: false + public get id() { + return this.getStringAttribute('id'); + } + + // rule - computed: false, optional: false, required: true + private _rule?: S3BucketServerSideEncryptionConfigurationRuleA[] | cdktf.IResolvable; + public get rule() { + // Getting the computed value is not yet implemented + return cdktf.Token.asAny(cdktf.Fn.tolist(this.interpolationForAttribute('rule'))); + } + public set rule(value: S3BucketServerSideEncryptionConfigurationRuleA[] | cdktf.IResolvable) { + this._rule = value; + } + // Temporarily expose input value. Use with caution. + public get ruleInput() { + return this._rule; + } + + // ========= + // SYNTHESIS + // ========= + + protected synthesizeAttributes(): { [name: string]: any } { + return { + bucket: cdktf.stringToTerraform(this._bucket), + expected_bucket_owner: cdktf.stringToTerraform(this._expectedBucketOwner), + rule: cdktf.listMapper(s3BucketServerSideEncryptionConfigurationRuleAToTerraform)(this._rule), + }; + } +} diff --git a/src/aws/s3/s3-bucket-versioning.ts b/src/aws/s3/s3-bucket-versioning.ts new file mode 100644 index 000000000..b1a2026c8 --- /dev/null +++ b/src/aws/s3/s3-bucket-versioning.ts @@ -0,0 +1,237 @@ +// generated from terraform resource schema + +import { Construct } from 'constructs'; +import * as cdktf from 'cdktf'; + +/** +* AWS Simple Storage Service +*/ +export interface S3BucketVersioningAConfig extends cdktf.TerraformMetaArguments { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_versioning#bucket S3BucketVersioningA#bucket} + */ + readonly bucket: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_versioning#expected_bucket_owner S3BucketVersioningA#expected_bucket_owner} + */ + readonly expectedBucketOwner?: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_versioning#mfa S3BucketVersioningA#mfa} + */ + readonly mfa?: string; + /** + * versioning_configuration block + * + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_versioning#versioning_configuration S3BucketVersioningA#versioning_configuration} + */ + readonly versioningConfiguration: S3BucketVersioningVersioningConfiguration; +} +export interface S3BucketVersioningVersioningConfiguration { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_versioning#mfa_delete S3BucketVersioningA#mfa_delete} + */ + readonly mfaDelete?: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_versioning#status S3BucketVersioningA#status} + */ + readonly status: string; +} + +export function s3BucketVersioningVersioningConfigurationToTerraform(struct?: S3BucketVersioningVersioningConfigurationOutputReference | S3BucketVersioningVersioningConfiguration): any { + 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 { + mfa_delete: cdktf.stringToTerraform(struct!.mfaDelete), + status: cdktf.stringToTerraform(struct!.status), + } +} + +export class S3BucketVersioningVersioningConfigurationOutputReference extends cdktf.ComplexObject { + private isEmptyObject = false; + + /** + * @param terraformResource The parent resource + * @param terraformAttribute The attribute on the parent resource this class is referencing + * @param isSingleItem True if this is a block, false if it's a list + */ + public constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) { + super(terraformResource, terraformAttribute, isSingleItem); + } + + public get internalValue(): S3BucketVersioningVersioningConfiguration | undefined { + let hasAnyValues = this.isEmptyObject; + const internalValueResult: any = {}; + if (this._mfaDelete !== undefined) { + hasAnyValues = true; + internalValueResult.mfaDelete = this._mfaDelete; + } + if (this._status !== undefined) { + hasAnyValues = true; + internalValueResult.status = this._status; + } + return hasAnyValues ? internalValueResult : undefined; + } + + public set internalValue(value: S3BucketVersioningVersioningConfiguration | undefined) { + if (value === undefined) { + this.isEmptyObject = false; + this._mfaDelete = undefined; + this._status = undefined; + } + else { + this.isEmptyObject = Object.keys(value).length === 0; + this._mfaDelete = value.mfaDelete; + this._status = value.status; + } + } + + // mfa_delete - computed: true, optional: true, required: false + private _mfaDelete?: string; + public get mfaDelete() { + return this.getStringAttribute('mfa_delete'); + } + public set mfaDelete(value: string) { + this._mfaDelete = value; + } + public resetMfaDelete() { + this._mfaDelete = undefined; + } + // Temporarily expose input value. Use with caution. + public get mfaDeleteInput() { + return this._mfaDelete; + } + + // status - computed: false, optional: false, required: true + private _status?: string; + public get status() { + return this.getStringAttribute('status'); + } + public set status(value: string) { + this._status = value; + } + // Temporarily expose input value. Use with caution. + public get statusInput() { + return this._status; + } +} + +/** +* Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_versioning aws_s3_bucket_versioning} +*/ +export class S3BucketVersioningA extends cdktf.TerraformResource { + + // ================= + // STATIC PROPERTIES + // ================= + public static readonly tfResourceType: string = "aws_s3_bucket_versioning"; + + // =========== + // INITIALIZER + // =========== + + /** + * Create a new {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_versioning aws_s3_bucket_versioning} 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 S3BucketVersioningAConfig + */ + public constructor(scope: Construct, id: string, config: S3BucketVersioningAConfig) { + super(scope, id, { + terraformResourceType: 'aws_s3_bucket_versioning', + terraformGeneratorMetadata: { + providerName: 'aws' + }, + provider: config.provider, + dependsOn: config.dependsOn, + count: config.count, + lifecycle: config.lifecycle + }); + this._bucket = config.bucket; + this._expectedBucketOwner = config.expectedBucketOwner; + this._mfa = config.mfa; + this._versioningConfiguration.internalValue = config.versioningConfiguration; + } + + // ========== + // ATTRIBUTES + // ========== + + // bucket - computed: false, optional: false, required: true + private _bucket?: string; + public get bucket() { + return this.getStringAttribute('bucket'); + } + public set bucket(value: string) { + this._bucket = value; + } + // Temporarily expose input value. Use with caution. + public get bucketInput() { + return this._bucket; + } + + // expected_bucket_owner - computed: false, optional: true, required: false + private _expectedBucketOwner?: string; + public get expectedBucketOwner() { + return this.getStringAttribute('expected_bucket_owner'); + } + public set expectedBucketOwner(value: string) { + this._expectedBucketOwner = value; + } + public resetExpectedBucketOwner() { + this._expectedBucketOwner = undefined; + } + // Temporarily expose input value. Use with caution. + public get expectedBucketOwnerInput() { + return this._expectedBucketOwner; + } + + // id - computed: true, optional: true, required: false + public get id() { + return this.getStringAttribute('id'); + } + + // mfa - computed: false, optional: true, required: false + private _mfa?: string; + public get mfa() { + return this.getStringAttribute('mfa'); + } + public set mfa(value: string) { + this._mfa = value; + } + public resetMfa() { + this._mfa = undefined; + } + // Temporarily expose input value. Use with caution. + public get mfaInput() { + return this._mfa; + } + + // versioning_configuration - computed: false, optional: false, required: true + private _versioningConfiguration = new S3BucketVersioningVersioningConfigurationOutputReference(this, "versioning_configuration", true); + public get versioningConfiguration() { + return this._versioningConfiguration; + } + public putVersioningConfiguration(value: S3BucketVersioningVersioningConfiguration) { + this._versioningConfiguration.internalValue = value; + } + // Temporarily expose input value. Use with caution. + public get versioningConfigurationInput() { + return this._versioningConfiguration.internalValue; + } + + // ========= + // SYNTHESIS + // ========= + + protected synthesizeAttributes(): { [name: string]: any } { + return { + bucket: cdktf.stringToTerraform(this._bucket), + expected_bucket_owner: cdktf.stringToTerraform(this._expectedBucketOwner), + mfa: cdktf.stringToTerraform(this._mfa), + versioning_configuration: s3BucketVersioningVersioningConfigurationToTerraform(this._versioningConfiguration.internalValue), + }; + } +} diff --git a/src/aws/s3/s3-bucket-website-configuration.ts b/src/aws/s3/s3-bucket-website-configuration.ts new file mode 100644 index 000000000..4f1567b8c --- /dev/null +++ b/src/aws/s3/s3-bucket-website-configuration.ts @@ -0,0 +1,720 @@ +// generated from terraform resource schema + +import { Construct } from 'constructs'; +import * as cdktf from 'cdktf'; + +/** +* AWS Simple Storage Service +*/ +export interface S3BucketWebsiteConfigurationConfig extends cdktf.TerraformMetaArguments { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#bucket S3BucketWebsiteConfiguration#bucket} + */ + readonly bucket: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#expected_bucket_owner S3BucketWebsiteConfiguration#expected_bucket_owner} + */ + readonly expectedBucketOwner?: string; + /** + * error_document block + * + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#error_document S3BucketWebsiteConfiguration#error_document} + */ + readonly errorDocument?: S3BucketWebsiteConfigurationErrorDocument; + /** + * index_document block + * + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#index_document S3BucketWebsiteConfiguration#index_document} + */ + readonly indexDocument?: S3BucketWebsiteConfigurationIndexDocument; + /** + * redirect_all_requests_to block + * + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#redirect_all_requests_to S3BucketWebsiteConfiguration#redirect_all_requests_to} + */ + readonly redirectAllRequestsTo?: S3BucketWebsiteConfigurationRedirectAllRequestsTo; + /** + * routing_rule block + * + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#routing_rule S3BucketWebsiteConfiguration#routing_rule} + */ + readonly routingRule?: S3BucketWebsiteConfigurationRoutingRule[] | cdktf.IResolvable; +} +export interface S3BucketWebsiteConfigurationErrorDocument { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#key S3BucketWebsiteConfiguration#key} + */ + readonly key: string; +} + +export function s3BucketWebsiteConfigurationErrorDocumentToTerraform(struct?: S3BucketWebsiteConfigurationErrorDocumentOutputReference | S3BucketWebsiteConfigurationErrorDocument): any { + 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), + } +} + +export class S3BucketWebsiteConfigurationErrorDocumentOutputReference extends cdktf.ComplexObject { + private isEmptyObject = false; + + /** + * @param terraformResource The parent resource + * @param terraformAttribute The attribute on the parent resource this class is referencing + * @param isSingleItem True if this is a block, false if it's a list + */ + public constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) { + super(terraformResource, terraformAttribute, isSingleItem); + } + + public get internalValue(): S3BucketWebsiteConfigurationErrorDocument | undefined { + let hasAnyValues = this.isEmptyObject; + const internalValueResult: any = {}; + if (this._key !== undefined) { + hasAnyValues = true; + internalValueResult.key = this._key; + } + return hasAnyValues ? internalValueResult : undefined; + } + + public set internalValue(value: S3BucketWebsiteConfigurationErrorDocument | undefined) { + if (value === undefined) { + this.isEmptyObject = false; + this._key = undefined; + } + else { + this.isEmptyObject = Object.keys(value).length === 0; + this._key = value.key; + } + } + + // key - computed: false, optional: false, required: true + private _key?: string; + public get key() { + return this.getStringAttribute('key'); + } + public set key(value: string) { + this._key = value; + } + // Temporarily expose input value. Use with caution. + public get keyInput() { + return this._key; + } +} +export interface S3BucketWebsiteConfigurationIndexDocument { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#suffix S3BucketWebsiteConfiguration#suffix} + */ + readonly suffix: string; +} + +export function s3BucketWebsiteConfigurationIndexDocumentToTerraform(struct?: S3BucketWebsiteConfigurationIndexDocumentOutputReference | S3BucketWebsiteConfigurationIndexDocument): any { + 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 { + suffix: cdktf.stringToTerraform(struct!.suffix), + } +} + +export class S3BucketWebsiteConfigurationIndexDocumentOutputReference extends cdktf.ComplexObject { + private isEmptyObject = false; + + /** + * @param terraformResource The parent resource + * @param terraformAttribute The attribute on the parent resource this class is referencing + * @param isSingleItem True if this is a block, false if it's a list + */ + public constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) { + super(terraformResource, terraformAttribute, isSingleItem); + } + + public get internalValue(): S3BucketWebsiteConfigurationIndexDocument | undefined { + let hasAnyValues = this.isEmptyObject; + const internalValueResult: any = {}; + if (this._suffix !== undefined) { + hasAnyValues = true; + internalValueResult.suffix = this._suffix; + } + return hasAnyValues ? internalValueResult : undefined; + } + + public set internalValue(value: S3BucketWebsiteConfigurationIndexDocument | undefined) { + if (value === undefined) { + this.isEmptyObject = false; + this._suffix = undefined; + } + else { + this.isEmptyObject = Object.keys(value).length === 0; + this._suffix = value.suffix; + } + } + + // suffix - computed: false, optional: false, required: true + private _suffix?: string; + public get suffix() { + return this.getStringAttribute('suffix'); + } + public set suffix(value: string) { + this._suffix = value; + } + // Temporarily expose input value. Use with caution. + public get suffixInput() { + return this._suffix; + } +} +export interface S3BucketWebsiteConfigurationRedirectAllRequestsTo { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#host_name S3BucketWebsiteConfiguration#host_name} + */ + readonly hostName: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#protocol S3BucketWebsiteConfiguration#protocol} + */ + readonly protocol?: string; +} + +export function s3BucketWebsiteConfigurationRedirectAllRequestsToToTerraform(struct?: S3BucketWebsiteConfigurationRedirectAllRequestsToOutputReference | S3BucketWebsiteConfigurationRedirectAllRequestsTo): any { + 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 { + host_name: cdktf.stringToTerraform(struct!.hostName), + protocol: cdktf.stringToTerraform(struct!.protocol), + } +} + +export class S3BucketWebsiteConfigurationRedirectAllRequestsToOutputReference extends cdktf.ComplexObject { + private isEmptyObject = false; + + /** + * @param terraformResource The parent resource + * @param terraformAttribute The attribute on the parent resource this class is referencing + * @param isSingleItem True if this is a block, false if it's a list + */ + public constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) { + super(terraformResource, terraformAttribute, isSingleItem); + } + + public get internalValue(): S3BucketWebsiteConfigurationRedirectAllRequestsTo | undefined { + let hasAnyValues = this.isEmptyObject; + const internalValueResult: any = {}; + if (this._hostName !== undefined) { + hasAnyValues = true; + internalValueResult.hostName = this._hostName; + } + if (this._protocol !== undefined) { + hasAnyValues = true; + internalValueResult.protocol = this._protocol; + } + return hasAnyValues ? internalValueResult : undefined; + } + + public set internalValue(value: S3BucketWebsiteConfigurationRedirectAllRequestsTo | undefined) { + if (value === undefined) { + this.isEmptyObject = false; + this._hostName = undefined; + this._protocol = undefined; + } + else { + this.isEmptyObject = Object.keys(value).length === 0; + this._hostName = value.hostName; + this._protocol = value.protocol; + } + } + + // host_name - computed: false, optional: false, required: true + private _hostName?: string; + public get hostName() { + return this.getStringAttribute('host_name'); + } + public set hostName(value: string) { + this._hostName = value; + } + // Temporarily expose input value. Use with caution. + public get hostNameInput() { + return this._hostName; + } + + // protocol - computed: false, optional: true, required: false + private _protocol?: string; + public get protocol() { + return this.getStringAttribute('protocol'); + } + public set protocol(value: string) { + this._protocol = value; + } + public resetProtocol() { + this._protocol = undefined; + } + // Temporarily expose input value. Use with caution. + public get protocolInput() { + return this._protocol; + } +} +export interface S3BucketWebsiteConfigurationRoutingRuleCondition { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#http_error_code_returned_equals S3BucketWebsiteConfiguration#http_error_code_returned_equals} + */ + readonly httpErrorCodeReturnedEquals?: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#key_prefix_equals S3BucketWebsiteConfiguration#key_prefix_equals} + */ + readonly keyPrefixEquals?: string; +} + +export function s3BucketWebsiteConfigurationRoutingRuleConditionToTerraform(struct?: S3BucketWebsiteConfigurationRoutingRuleConditionOutputReference | S3BucketWebsiteConfigurationRoutingRuleCondition): any { + 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 { + http_error_code_returned_equals: cdktf.stringToTerraform(struct!.httpErrorCodeReturnedEquals), + key_prefix_equals: cdktf.stringToTerraform(struct!.keyPrefixEquals), + } +} + +export class S3BucketWebsiteConfigurationRoutingRuleConditionOutputReference extends cdktf.ComplexObject { + private isEmptyObject = false; + + /** + * @param terraformResource The parent resource + * @param terraformAttribute The attribute on the parent resource this class is referencing + * @param isSingleItem True if this is a block, false if it's a list + */ + public constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) { + super(terraformResource, terraformAttribute, isSingleItem); + } + + public get internalValue(): S3BucketWebsiteConfigurationRoutingRuleCondition | undefined { + let hasAnyValues = this.isEmptyObject; + const internalValueResult: any = {}; + if (this._httpErrorCodeReturnedEquals !== undefined) { + hasAnyValues = true; + internalValueResult.httpErrorCodeReturnedEquals = this._httpErrorCodeReturnedEquals; + } + if (this._keyPrefixEquals !== undefined) { + hasAnyValues = true; + internalValueResult.keyPrefixEquals = this._keyPrefixEquals; + } + return hasAnyValues ? internalValueResult : undefined; + } + + public set internalValue(value: S3BucketWebsiteConfigurationRoutingRuleCondition | undefined) { + if (value === undefined) { + this.isEmptyObject = false; + this._httpErrorCodeReturnedEquals = undefined; + this._keyPrefixEquals = undefined; + } + else { + this.isEmptyObject = Object.keys(value).length === 0; + this._httpErrorCodeReturnedEquals = value.httpErrorCodeReturnedEquals; + this._keyPrefixEquals = value.keyPrefixEquals; + } + } + + // http_error_code_returned_equals - computed: false, optional: true, required: false + private _httpErrorCodeReturnedEquals?: string; + public get httpErrorCodeReturnedEquals() { + return this.getStringAttribute('http_error_code_returned_equals'); + } + public set httpErrorCodeReturnedEquals(value: string) { + this._httpErrorCodeReturnedEquals = value; + } + public resetHttpErrorCodeReturnedEquals() { + this._httpErrorCodeReturnedEquals = undefined; + } + // Temporarily expose input value. Use with caution. + public get httpErrorCodeReturnedEqualsInput() { + return this._httpErrorCodeReturnedEquals; + } + + // key_prefix_equals - computed: false, optional: true, required: false + private _keyPrefixEquals?: string; + public get keyPrefixEquals() { + return this.getStringAttribute('key_prefix_equals'); + } + public set keyPrefixEquals(value: string) { + this._keyPrefixEquals = value; + } + public resetKeyPrefixEquals() { + this._keyPrefixEquals = undefined; + } + // Temporarily expose input value. Use with caution. + public get keyPrefixEqualsInput() { + return this._keyPrefixEquals; + } +} +export interface S3BucketWebsiteConfigurationRoutingRuleRedirect { + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#host_name S3BucketWebsiteConfiguration#host_name} + */ + readonly hostName?: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#http_redirect_code S3BucketWebsiteConfiguration#http_redirect_code} + */ + readonly httpRedirectCode?: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#protocol S3BucketWebsiteConfiguration#protocol} + */ + readonly protocol?: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#replace_key_prefix_with S3BucketWebsiteConfiguration#replace_key_prefix_with} + */ + readonly replaceKeyPrefixWith?: string; + /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#replace_key_with S3BucketWebsiteConfiguration#replace_key_with} + */ + readonly replaceKeyWith?: string; +} + +export function s3BucketWebsiteConfigurationRoutingRuleRedirectToTerraform(struct?: S3BucketWebsiteConfigurationRoutingRuleRedirectOutputReference | S3BucketWebsiteConfigurationRoutingRuleRedirect): any { + 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 { + host_name: cdktf.stringToTerraform(struct!.hostName), + http_redirect_code: cdktf.stringToTerraform(struct!.httpRedirectCode), + protocol: cdktf.stringToTerraform(struct!.protocol), + replace_key_prefix_with: cdktf.stringToTerraform(struct!.replaceKeyPrefixWith), + replace_key_with: cdktf.stringToTerraform(struct!.replaceKeyWith), + } +} + +export class S3BucketWebsiteConfigurationRoutingRuleRedirectOutputReference extends cdktf.ComplexObject { + private isEmptyObject = false; + + /** + * @param terraformResource The parent resource + * @param terraformAttribute The attribute on the parent resource this class is referencing + * @param isSingleItem True if this is a block, false if it's a list + */ + public constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, isSingleItem: boolean) { + super(terraformResource, terraformAttribute, isSingleItem); + } + + public get internalValue(): S3BucketWebsiteConfigurationRoutingRuleRedirect | undefined { + let hasAnyValues = this.isEmptyObject; + const internalValueResult: any = {}; + if (this._hostName !== undefined) { + hasAnyValues = true; + internalValueResult.hostName = this._hostName; + } + if (this._httpRedirectCode !== undefined) { + hasAnyValues = true; + internalValueResult.httpRedirectCode = this._httpRedirectCode; + } + if (this._protocol !== undefined) { + hasAnyValues = true; + internalValueResult.protocol = this._protocol; + } + if (this._replaceKeyPrefixWith !== undefined) { + hasAnyValues = true; + internalValueResult.replaceKeyPrefixWith = this._replaceKeyPrefixWith; + } + if (this._replaceKeyWith !== undefined) { + hasAnyValues = true; + internalValueResult.replaceKeyWith = this._replaceKeyWith; + } + return hasAnyValues ? internalValueResult : undefined; + } + + public set internalValue(value: S3BucketWebsiteConfigurationRoutingRuleRedirect | undefined) { + if (value === undefined) { + this.isEmptyObject = false; + this._hostName = undefined; + this._httpRedirectCode = undefined; + this._protocol = undefined; + this._replaceKeyPrefixWith = undefined; + this._replaceKeyWith = undefined; + } + else { + this.isEmptyObject = Object.keys(value).length === 0; + this._hostName = value.hostName; + this._httpRedirectCode = value.httpRedirectCode; + this._protocol = value.protocol; + this._replaceKeyPrefixWith = value.replaceKeyPrefixWith; + this._replaceKeyWith = value.replaceKeyWith; + } + } + + // host_name - computed: false, optional: true, required: false + private _hostName?: string; + public get hostName() { + return this.getStringAttribute('host_name'); + } + public set hostName(value: string) { + this._hostName = value; + } + public resetHostName() { + this._hostName = undefined; + } + // Temporarily expose input value. Use with caution. + public get hostNameInput() { + return this._hostName; + } + + // http_redirect_code - computed: false, optional: true, required: false + private _httpRedirectCode?: string; + public get httpRedirectCode() { + return this.getStringAttribute('http_redirect_code'); + } + public set httpRedirectCode(value: string) { + this._httpRedirectCode = value; + } + public resetHttpRedirectCode() { + this._httpRedirectCode = undefined; + } + // Temporarily expose input value. Use with caution. + public get httpRedirectCodeInput() { + return this._httpRedirectCode; + } + + // protocol - computed: false, optional: true, required: false + private _protocol?: string; + public get protocol() { + return this.getStringAttribute('protocol'); + } + public set protocol(value: string) { + this._protocol = value; + } + public resetProtocol() { + this._protocol = undefined; + } + // Temporarily expose input value. Use with caution. + public get protocolInput() { + return this._protocol; + } + + // replace_key_prefix_with - computed: false, optional: true, required: false + private _replaceKeyPrefixWith?: string; + public get replaceKeyPrefixWith() { + return this.getStringAttribute('replace_key_prefix_with'); + } + public set replaceKeyPrefixWith(value: string) { + this._replaceKeyPrefixWith = value; + } + public resetReplaceKeyPrefixWith() { + this._replaceKeyPrefixWith = undefined; + } + // Temporarily expose input value. Use with caution. + public get replaceKeyPrefixWithInput() { + return this._replaceKeyPrefixWith; + } + + // replace_key_with - computed: false, optional: true, required: false + private _replaceKeyWith?: string; + public get replaceKeyWith() { + return this.getStringAttribute('replace_key_with'); + } + public set replaceKeyWith(value: string) { + this._replaceKeyWith = value; + } + public resetReplaceKeyWith() { + this._replaceKeyWith = undefined; + } + // Temporarily expose input value. Use with caution. + public get replaceKeyWithInput() { + return this._replaceKeyWith; + } +} +export interface S3BucketWebsiteConfigurationRoutingRule { + /** + * condition block + * + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#condition S3BucketWebsiteConfiguration#condition} + */ + readonly condition?: S3BucketWebsiteConfigurationRoutingRuleCondition; + /** + * redirect block + * + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration#redirect S3BucketWebsiteConfiguration#redirect} + */ + readonly redirect: S3BucketWebsiteConfigurationRoutingRuleRedirect; +} + +export function s3BucketWebsiteConfigurationRoutingRuleToTerraform(struct?: S3BucketWebsiteConfigurationRoutingRule | cdktf.IResolvable): any { + 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 { + condition: s3BucketWebsiteConfigurationRoutingRuleConditionToTerraform(struct!.condition), + redirect: s3BucketWebsiteConfigurationRoutingRuleRedirectToTerraform(struct!.redirect), + } +} + + +/** +* Represents a {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration aws_s3_bucket_website_configuration} +*/ +export class S3BucketWebsiteConfiguration extends cdktf.TerraformResource { + + // ================= + // STATIC PROPERTIES + // ================= + public static readonly tfResourceType: string = "aws_s3_bucket_website_configuration"; + + // =========== + // INITIALIZER + // =========== + + /** + * Create a new {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket_website_configuration aws_s3_bucket_website_configuration} 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 S3BucketWebsiteConfigurationConfig + */ + public constructor(scope: Construct, id: string, config: S3BucketWebsiteConfigurationConfig) { + super(scope, id, { + terraformResourceType: 'aws_s3_bucket_website_configuration', + terraformGeneratorMetadata: { + providerName: 'aws' + }, + provider: config.provider, + dependsOn: config.dependsOn, + count: config.count, + lifecycle: config.lifecycle + }); + this._bucket = config.bucket; + this._expectedBucketOwner = config.expectedBucketOwner; + this._errorDocument.internalValue = config.errorDocument; + this._indexDocument.internalValue = config.indexDocument; + this._redirectAllRequestsTo.internalValue = config.redirectAllRequestsTo; + this._routingRule = config.routingRule; + } + + // ========== + // ATTRIBUTES + // ========== + + // bucket - computed: false, optional: false, required: true + private _bucket?: string; + public get bucket() { + return this.getStringAttribute('bucket'); + } + public set bucket(value: string) { + this._bucket = value; + } + // Temporarily expose input value. Use with caution. + public get bucketInput() { + return this._bucket; + } + + // expected_bucket_owner - computed: false, optional: true, required: false + private _expectedBucketOwner?: string; + public get expectedBucketOwner() { + return this.getStringAttribute('expected_bucket_owner'); + } + public set expectedBucketOwner(value: string) { + this._expectedBucketOwner = value; + } + public resetExpectedBucketOwner() { + this._expectedBucketOwner = undefined; + } + // Temporarily expose input value. Use with caution. + public get expectedBucketOwnerInput() { + return this._expectedBucketOwner; + } + + // id - computed: true, optional: true, required: false + public get id() { + return this.getStringAttribute('id'); + } + + // website_domain - computed: true, optional: false, required: false + public get websiteDomain() { + return this.getStringAttribute('website_domain'); + } + + // website_endpoint - computed: true, optional: false, required: false + public get websiteEndpoint() { + return this.getStringAttribute('website_endpoint'); + } + + // error_document - computed: false, optional: true, required: false + private _errorDocument = new S3BucketWebsiteConfigurationErrorDocumentOutputReference(this, "error_document", true); + public get errorDocument() { + return this._errorDocument; + } + public putErrorDocument(value: S3BucketWebsiteConfigurationErrorDocument) { + this._errorDocument.internalValue = value; + } + public resetErrorDocument() { + this._errorDocument.internalValue = undefined; + } + // Temporarily expose input value. Use with caution. + public get errorDocumentInput() { + return this._errorDocument.internalValue; + } + + // index_document - computed: false, optional: true, required: false + private _indexDocument = new S3BucketWebsiteConfigurationIndexDocumentOutputReference(this, "index_document", true); + public get indexDocument() { + return this._indexDocument; + } + public putIndexDocument(value: S3BucketWebsiteConfigurationIndexDocument) { + this._indexDocument.internalValue = value; + } + public resetIndexDocument() { + this._indexDocument.internalValue = undefined; + } + // Temporarily expose input value. Use with caution. + public get indexDocumentInput() { + return this._indexDocument.internalValue; + } + + // redirect_all_requests_to - computed: false, optional: true, required: false + private _redirectAllRequestsTo = new S3BucketWebsiteConfigurationRedirectAllRequestsToOutputReference(this, "redirect_all_requests_to", true); + public get redirectAllRequestsTo() { + return this._redirectAllRequestsTo; + } + public putRedirectAllRequestsTo(value: S3BucketWebsiteConfigurationRedirectAllRequestsTo) { + this._redirectAllRequestsTo.internalValue = value; + } + public resetRedirectAllRequestsTo() { + this._redirectAllRequestsTo.internalValue = undefined; + } + // Temporarily expose input value. Use with caution. + public get redirectAllRequestsToInput() { + return this._redirectAllRequestsTo.internalValue; + } + + // routing_rule - computed: false, optional: true, required: false + private _routingRule?: S3BucketWebsiteConfigurationRoutingRule[] | cdktf.IResolvable; + public get routingRule() { + // Getting the computed value is not yet implemented + return this.interpolationForAttribute('routing_rule'); + } + public set routingRule(value: S3BucketWebsiteConfigurationRoutingRule[] | cdktf.IResolvable) { + this._routingRule = value; + } + public resetRoutingRule() { + this._routingRule = undefined; + } + // Temporarily expose input value. Use with caution. + public get routingRuleInput() { + return this._routingRule; + } + + // ========= + // SYNTHESIS + // ========= + + protected synthesizeAttributes(): { [name: string]: any } { + return { + bucket: cdktf.stringToTerraform(this._bucket), + expected_bucket_owner: cdktf.stringToTerraform(this._expectedBucketOwner), + error_document: s3BucketWebsiteConfigurationErrorDocumentToTerraform(this._errorDocument.internalValue), + index_document: s3BucketWebsiteConfigurationIndexDocumentToTerraform(this._indexDocument.internalValue), + redirect_all_requests_to: s3BucketWebsiteConfigurationRedirectAllRequestsToToTerraform(this._redirectAllRequestsTo.internalValue), + routing_rule: cdktf.listMapper(s3BucketWebsiteConfigurationRoutingRuleToTerraform)(this._routingRule), + }; + } +} diff --git a/src/aws/s3/s3-bucket.ts b/src/aws/s3/s3-bucket.ts index 237ab51c0..eb0526ec5 100644 --- a/src/aws/s3/s3-bucket.ts +++ b/src/aws/s3/s3-bucket.ts @@ -32,6 +32,10 @@ export interface S3BucketConfig extends cdktf.TerraformMetaArguments { */ readonly hostedZoneId?: string; /** + * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket#object_lock_enabled S3Bucket#object_lock_enabled} + */ + readonly objectLockEnabled?: boolean | cdktf.IResolvable; + /** * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket#policy S3Bucket#policy} */ readonly policy?: string; @@ -686,7 +690,7 @@ export interface S3BucketObjectLockConfiguration { /** * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/aws/r/s3_bucket#object_lock_enabled S3Bucket#object_lock_enabled} */ - readonly objectLockEnabled: string; + readonly objectLockEnabled?: string; /** * rule block * @@ -745,7 +749,7 @@ export class S3BucketObjectLockConfigurationOutputReference extends cdktf.Comple } } - // object_lock_enabled - computed: false, optional: false, required: true + // object_lock_enabled - computed: false, optional: true, required: false private _objectLockEnabled?: string; public get objectLockEnabled() { return this.getStringAttribute('object_lock_enabled'); @@ -753,6 +757,9 @@ export class S3BucketObjectLockConfigurationOutputReference extends cdktf.Comple public set objectLockEnabled(value: string) { this._objectLockEnabled = value; } + public resetObjectLockEnabled() { + this._objectLockEnabled = undefined; + } // Temporarily expose input value. Use with caution. public get objectLockEnabledInput() { return this._objectLockEnabled; @@ -2152,6 +2159,7 @@ export class S3Bucket extends cdktf.TerraformResource { this._bucketPrefix = config.bucketPrefix; this._forceDestroy = config.forceDestroy; this._hostedZoneId = config.hostedZoneId; + this._objectLockEnabled = config.objectLockEnabled; this._policy = config.policy; this._requestPayer = config.requestPayer; this._tags = config.tags; @@ -2289,6 +2297,22 @@ export class S3Bucket extends cdktf.TerraformResource { return this.getStringAttribute('id'); } + // object_lock_enabled - computed: true, optional: true, required: false + private _objectLockEnabled?: boolean | cdktf.IResolvable; + public get objectLockEnabled() { + return this.getBooleanAttribute('object_lock_enabled'); + } + public set objectLockEnabled(value: boolean | cdktf.IResolvable) { + this._objectLockEnabled = value; + } + public resetObjectLockEnabled() { + this._objectLockEnabled = undefined; + } + // Temporarily expose input value. Use with caution. + public get objectLockEnabledInput() { + return this._objectLockEnabled; + } + // policy - computed: false, optional: true, required: false private _policy?: string; public get policy() { @@ -2550,6 +2574,7 @@ export class S3Bucket extends cdktf.TerraformResource { bucket_prefix: cdktf.stringToTerraform(this._bucketPrefix), force_destroy: cdktf.booleanToTerraform(this._forceDestroy), hosted_zone_id: cdktf.stringToTerraform(this._hostedZoneId), + object_lock_enabled: cdktf.booleanToTerraform(this._objectLockEnabled), policy: cdktf.stringToTerraform(this._policy), request_payer: cdktf.stringToTerraform(this._requestPayer), tags: cdktf.hashMapper(cdktf.stringToTerraform)(this._tags),