io.cloudshiftdev.awscdk.services.s3.CfnBucketProps.kt Maven / Gradle / Ivy
The newest version!
@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION")
package io.cloudshiftdev.awscdk.services.s3
import io.cloudshiftdev.awscdk.CfnTag
import io.cloudshiftdev.awscdk.IResolvable
import io.cloudshiftdev.awscdk.common.CdkDslMarker
import io.cloudshiftdev.awscdk.common.CdkObject
import io.cloudshiftdev.awscdk.common.CdkObjectWrappers
import kotlin.Any
import kotlin.Boolean
import kotlin.String
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName
/**
* Properties for defining a `CfnBucket`.
*
* Example:
*
* ```
* CfnBucket rawBucket = CfnBucket.Builder.create(this, "Bucket").build();
* // -or-
* CfnBucket rawBucketAlt = (CfnBucket)myBucket.getNode().getDefaultChild();
* // then
* rawBucket.getCfnOptions().getCondition() = CfnCondition.Builder.create(this,
* "EnableBucket").build();
* rawBucket.getCfnOptions().getMetadata() = Map.of(
* "metadataKey", "MetadataValue");
* ```
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html)
*/
public interface CfnBucketProps {
/**
* Configures the transfer acceleration state for an Amazon S3 bucket.
*
* For more information, see [Amazon S3 Transfer
* Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) in the
* *Amazon S3 User Guide* .
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-accelerateconfiguration)
*/
public fun accelerateConfiguration(): Any? = unwrap(this).getAccelerateConfiguration()
/**
* This is a legacy property, and it is not recommended for most use cases.
*
* A majority of modern use cases in Amazon S3 no longer require the use of ACLs, and we recommend
* that you keep ACLs disabled. For more information, see [Controlling object
* ownership](https://docs.aws.amazon.com//AmazonS3/latest/userguide/about-object-ownership.html) in
* the *Amazon S3 User Guide* .
*
* A canned access control list (ACL) that grants predefined permissions to the bucket. For more
* information about canned ACLs, see [Canned
* ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) in the *Amazon
* S3 User Guide* .
*
* S3 buckets are created with ACLs disabled by default. Therefore, unless you explicitly set the
* [AWS::S3::OwnershipControls](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrols.html)
* property to enable ACLs, your resource will fail to deploy with any value other than Private. Use
* cases requiring ACLs are uncommon.
*
* The majority of access control configurations can be successfully and more easily achieved with
* bucket policies. For more information, see
* [AWS::S3::BucketPolicy](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html)
* . For examples of common policy configurations, including S3 Server Access Logs buckets and more,
* see [Bucket policy
* examples](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) in
* the *Amazon S3 User Guide* .
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-accesscontrol)
*/
public fun accessControl(): String? = unwrap(this).getAccessControl()
/**
* Specifies the configuration and any analyses for the analytics filter of an Amazon S3 bucket.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-analyticsconfigurations)
*/
public fun analyticsConfigurations(): Any? = unwrap(this).getAnalyticsConfigurations()
/**
* Specifies default encryption for a bucket using server-side encryption with Amazon S3-managed
* keys (SSE-S3), AWS KMS-managed keys (SSE-KMS), or dual-layer server-side encryption with
* KMS-managed keys (DSSE-KMS).
*
* For information about the Amazon S3 default encryption feature, see [Amazon S3 Default
* Encryption for S3 Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html)
* in the *Amazon S3 User Guide* .
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-bucketencryption)
*/
public fun bucketEncryption(): Any? = unwrap(this).getBucketEncryption()
/**
* A name for the bucket.
*
* If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the
* bucket name. The bucket name must contain only lowercase letters, numbers, periods (.), and dashes
* (-) and must follow [Amazon S3 bucket restrictions and
* limitations](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html) . For more
* information, see [Rules for naming Amazon S3
* buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html#bucketnamingrules)
* in the *Amazon S3 User Guide* .
*
*
* If you specify a name, you can't perform updates that require replacement of this resource. You
* can perform updates that require no or some interruption. If you need to replace the resource,
* specify a new name.
*
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-bucketname)
*/
public fun bucketName(): String? = unwrap(this).getBucketName()
/**
* Describes the cross-origin access configuration for objects in an Amazon S3 bucket.
*
* For more information, see [Enabling Cross-Origin Resource
* Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the *Amazon S3 User Guide*
* .
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-corsconfiguration)
*/
public fun corsConfiguration(): Any? = unwrap(this).getCorsConfiguration()
/**
* Defines how Amazon S3 handles Intelligent-Tiering storage.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-intelligenttieringconfigurations)
*/
public fun intelligentTieringConfigurations(): Any? =
unwrap(this).getIntelligentTieringConfigurations()
/**
* Specifies the inventory configuration for an Amazon S3 bucket.
*
* For more information, see [GET Bucket
* inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in
* the *Amazon S3 API Reference* .
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-inventoryconfigurations)
*/
public fun inventoryConfigurations(): Any? = unwrap(this).getInventoryConfigurations()
/**
* Specifies the lifecycle configuration for objects in an Amazon S3 bucket.
*
* For more information, see [Object Lifecycle
* Management](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) in the
* *Amazon S3 User Guide* .
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-lifecycleconfiguration)
*/
public fun lifecycleConfiguration(): Any? = unwrap(this).getLifecycleConfiguration()
/**
* Settings that define where logs are stored.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-loggingconfiguration)
*/
public fun loggingConfiguration(): Any? = unwrap(this).getLoggingConfiguration()
/**
* Specifies a metrics configuration for the CloudWatch request metrics (specified by the metrics
* configuration ID) from an Amazon S3 bucket.
*
* If you're updating an existing metrics configuration, note that this is a full replacement of
* the existing metrics configuration. If you don't include the elements you want to keep, they are
* erased. For more information, see
* [PutBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html)
* .
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-metricsconfigurations)
*/
public fun metricsConfigurations(): Any? = unwrap(this).getMetricsConfigurations()
/**
* Configuration that defines how Amazon S3 handles bucket notifications.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-notificationconfiguration)
*/
public fun notificationConfiguration(): Any? = unwrap(this).getNotificationConfiguration()
/**
* This operation is not supported by directory buckets.
*
* Places an Object Lock configuration on the specified bucket. The rule specified in the Object
* Lock configuration will be applied by default to every new object placed in the specified bucket.
* For more information, see [Locking
* Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) .
*
*
* * The `DefaultRetention` settings require both a mode and a period.
* * The `DefaultRetention` period can be either `Days` or `Years` but you must select one. You
* cannot specify `Days` and `Years` at the same time.
* * You can enable Object Lock for new or existing buckets. For more information, see
* [Configuring Object
* Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html) .
*
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-objectlockconfiguration)
*/
public fun objectLockConfiguration(): Any? = unwrap(this).getObjectLockConfiguration()
/**
* Indicates whether this bucket has an Object Lock configuration enabled.
*
* Enable `ObjectLockEnabled` when you apply `ObjectLockConfiguration` to a bucket.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-objectlockenabled)
*/
public fun objectLockEnabled(): Any? = unwrap(this).getObjectLockEnabled()
/**
* Configuration that defines how Amazon S3 handles Object Ownership rules.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-ownershipcontrols)
*/
public fun ownershipControls(): Any? = unwrap(this).getOwnershipControls()
/**
* Configuration that defines how Amazon S3 handles public access.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-publicaccessblockconfiguration)
*/
public fun publicAccessBlockConfiguration(): Any? =
unwrap(this).getPublicAccessBlockConfiguration()
/**
* Configuration for replicating objects in an S3 bucket.
*
* To enable replication, you must also enable versioning by using the `VersioningConfiguration`
* property.
*
* Amazon S3 can store replicated objects in a single destination bucket or multiple destination
* buckets. The destination bucket or buckets must already exist.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-replicationconfiguration)
*/
public fun replicationConfiguration(): Any? = unwrap(this).getReplicationConfiguration()
/**
* An arbitrary set of tags (key-value pairs) for this S3 bucket.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-tags)
*/
public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList()
/**
* Enables multiple versions of all objects in this bucket.
*
* You might enable versioning to prevent objects from being deleted or overwritten by mistake or
* to archive objects so that you can retrieve previous versions of them.
*
*
* When you enable versioning on a bucket for the first time, it might take a short amount of time
* for the change to be fully propagated. We recommend that you wait for 15 minutes after enabling
* versioning before issuing write operations ( `PUT` or `DELETE` ) on objects in the bucket.
*
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-versioningconfiguration)
*/
public fun versioningConfiguration(): Any? = unwrap(this).getVersioningConfiguration()
/**
* Information used to configure the bucket as a static website.
*
* For more information, see [Hosting Websites on Amazon
* S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html) .
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-websiteconfiguration)
*/
public fun websiteConfiguration(): Any? = unwrap(this).getWebsiteConfiguration()
/**
* A builder for [CfnBucketProps]
*/
@CdkDslMarker
public interface Builder {
/**
* @param accelerateConfiguration Configures the transfer acceleration state for an Amazon S3
* bucket.
* For more information, see [Amazon S3 Transfer
* Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) in the
* *Amazon S3 User Guide* .
*/
public fun accelerateConfiguration(accelerateConfiguration: IResolvable)
/**
* @param accelerateConfiguration Configures the transfer acceleration state for an Amazon S3
* bucket.
* For more information, see [Amazon S3 Transfer
* Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) in the
* *Amazon S3 User Guide* .
*/
public
fun accelerateConfiguration(accelerateConfiguration: CfnBucket.AccelerateConfigurationProperty)
/**
* @param accelerateConfiguration Configures the transfer acceleration state for an Amazon S3
* bucket.
* For more information, see [Amazon S3 Transfer
* Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) in the
* *Amazon S3 User Guide* .
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("d879dedc2e18f20de3b43a7753712f95b8da71d85f9f1f794c1f9e59d1eec47b")
public
fun accelerateConfiguration(accelerateConfiguration: CfnBucket.AccelerateConfigurationProperty.Builder.() -> Unit)
/**
* @param accessControl This is a legacy property, and it is not recommended for most use cases.
* A majority of modern use cases in Amazon S3 no longer require the use of ACLs, and we
* recommend that you keep ACLs disabled. For more information, see [Controlling object
* ownership](https://docs.aws.amazon.com//AmazonS3/latest/userguide/about-object-ownership.html)
* in the *Amazon S3 User Guide* .
*
* A canned access control list (ACL) that grants predefined permissions to the bucket. For more
* information about canned ACLs, see [Canned
* ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) in the
* *Amazon S3 User Guide* .
*
* S3 buckets are created with ACLs disabled by default. Therefore, unless you explicitly set
* the
* [AWS::S3::OwnershipControls](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrols.html)
* property to enable ACLs, your resource will fail to deploy with any value other than Private.
* Use cases requiring ACLs are uncommon.
*
* The majority of access control configurations can be successfully and more easily achieved
* with bucket policies. For more information, see
* [AWS::S3::BucketPolicy](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html)
* . For examples of common policy configurations, including S3 Server Access Logs buckets and
* more, see [Bucket policy
* examples](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) in
* the *Amazon S3 User Guide* .
*/
public fun accessControl(accessControl: String)
/**
* @param analyticsConfigurations Specifies the configuration and any analyses for the analytics
* filter of an Amazon S3 bucket.
*/
public fun analyticsConfigurations(analyticsConfigurations: IResolvable)
/**
* @param analyticsConfigurations Specifies the configuration and any analyses for the analytics
* filter of an Amazon S3 bucket.
*/
public fun analyticsConfigurations(analyticsConfigurations: List)
/**
* @param analyticsConfigurations Specifies the configuration and any analyses for the analytics
* filter of an Amazon S3 bucket.
*/
public fun analyticsConfigurations(vararg analyticsConfigurations: Any)
/**
* @param bucketEncryption Specifies default encryption for a bucket using server-side
* encryption with Amazon S3-managed keys (SSE-S3), AWS KMS-managed keys (SSE-KMS), or dual-layer
* server-side encryption with KMS-managed keys (DSSE-KMS).
* For information about the Amazon S3 default encryption feature, see [Amazon S3 Default
* Encryption for S3
* Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) in the *Amazon
* S3 User Guide* .
*/
public fun bucketEncryption(bucketEncryption: IResolvable)
/**
* @param bucketEncryption Specifies default encryption for a bucket using server-side
* encryption with Amazon S3-managed keys (SSE-S3), AWS KMS-managed keys (SSE-KMS), or dual-layer
* server-side encryption with KMS-managed keys (DSSE-KMS).
* For information about the Amazon S3 default encryption feature, see [Amazon S3 Default
* Encryption for S3
* Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) in the *Amazon
* S3 User Guide* .
*/
public fun bucketEncryption(bucketEncryption: CfnBucket.BucketEncryptionProperty)
/**
* @param bucketEncryption Specifies default encryption for a bucket using server-side
* encryption with Amazon S3-managed keys (SSE-S3), AWS KMS-managed keys (SSE-KMS), or dual-layer
* server-side encryption with KMS-managed keys (DSSE-KMS).
* For information about the Amazon S3 default encryption feature, see [Amazon S3 Default
* Encryption for S3
* Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) in the *Amazon
* S3 User Guide* .
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("3d7dda973024ffcd542628035f7d8fe73113f61e1c754f147db01bd9c31e40fc")
public
fun bucketEncryption(bucketEncryption: CfnBucket.BucketEncryptionProperty.Builder.() -> Unit)
/**
* @param bucketName A name for the bucket.
* If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for
* the bucket name. The bucket name must contain only lowercase letters, numbers, periods (.), and
* dashes (-) and must follow [Amazon S3 bucket restrictions and
* limitations](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html) . For more
* information, see [Rules for naming Amazon S3
* buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html#bucketnamingrules)
* in the *Amazon S3 User Guide* .
*
*
* If you specify a name, you can't perform updates that require replacement of this resource.
* You can perform updates that require no or some interruption. If you need to replace the
* resource, specify a new name.
*/
public fun bucketName(bucketName: String)
/**
* @param corsConfiguration Describes the cross-origin access configuration for objects in an
* Amazon S3 bucket.
* For more information, see [Enabling Cross-Origin Resource
* Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the *Amazon S3 User
* Guide* .
*/
public fun corsConfiguration(corsConfiguration: IResolvable)
/**
* @param corsConfiguration Describes the cross-origin access configuration for objects in an
* Amazon S3 bucket.
* For more information, see [Enabling Cross-Origin Resource
* Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the *Amazon S3 User
* Guide* .
*/
public fun corsConfiguration(corsConfiguration: CfnBucket.CorsConfigurationProperty)
/**
* @param corsConfiguration Describes the cross-origin access configuration for objects in an
* Amazon S3 bucket.
* For more information, see [Enabling Cross-Origin Resource
* Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the *Amazon S3 User
* Guide* .
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("3609d8c61d992239f891f6019c95c2dabaf9d9e78038b46ff1c2fcb9564ed465")
public
fun corsConfiguration(corsConfiguration: CfnBucket.CorsConfigurationProperty.Builder.() -> Unit)
/**
* @param intelligentTieringConfigurations Defines how Amazon S3 handles Intelligent-Tiering
* storage.
*/
public fun intelligentTieringConfigurations(intelligentTieringConfigurations: IResolvable)
/**
* @param intelligentTieringConfigurations Defines how Amazon S3 handles Intelligent-Tiering
* storage.
*/
public fun intelligentTieringConfigurations(intelligentTieringConfigurations: List)
/**
* @param intelligentTieringConfigurations Defines how Amazon S3 handles Intelligent-Tiering
* storage.
*/
public fun intelligentTieringConfigurations(vararg intelligentTieringConfigurations: Any)
/**
* @param inventoryConfigurations Specifies the inventory configuration for an Amazon S3 bucket.
* For more information, see [GET Bucket
* inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in
* the *Amazon S3 API Reference* .
*/
public fun inventoryConfigurations(inventoryConfigurations: IResolvable)
/**
* @param inventoryConfigurations Specifies the inventory configuration for an Amazon S3 bucket.
* For more information, see [GET Bucket
* inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in
* the *Amazon S3 API Reference* .
*/
public fun inventoryConfigurations(inventoryConfigurations: List)
/**
* @param inventoryConfigurations Specifies the inventory configuration for an Amazon S3 bucket.
* For more information, see [GET Bucket
* inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in
* the *Amazon S3 API Reference* .
*/
public fun inventoryConfigurations(vararg inventoryConfigurations: Any)
/**
* @param lifecycleConfiguration Specifies the lifecycle configuration for objects in an Amazon
* S3 bucket.
* For more information, see [Object Lifecycle
* Management](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) in the
* *Amazon S3 User Guide* .
*/
public fun lifecycleConfiguration(lifecycleConfiguration: IResolvable)
/**
* @param lifecycleConfiguration Specifies the lifecycle configuration for objects in an Amazon
* S3 bucket.
* For more information, see [Object Lifecycle
* Management](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) in the
* *Amazon S3 User Guide* .
*/
public
fun lifecycleConfiguration(lifecycleConfiguration: CfnBucket.LifecycleConfigurationProperty)
/**
* @param lifecycleConfiguration Specifies the lifecycle configuration for objects in an Amazon
* S3 bucket.
* For more information, see [Object Lifecycle
* Management](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) in the
* *Amazon S3 User Guide* .
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("ce4cf2859f8177e4c539ee4b2105397e3ec997d92154f1e97156c36a044a06c5")
public
fun lifecycleConfiguration(lifecycleConfiguration: CfnBucket.LifecycleConfigurationProperty.Builder.() -> Unit)
/**
* @param loggingConfiguration Settings that define where logs are stored.
*/
public fun loggingConfiguration(loggingConfiguration: IResolvable)
/**
* @param loggingConfiguration Settings that define where logs are stored.
*/
public fun loggingConfiguration(loggingConfiguration: CfnBucket.LoggingConfigurationProperty)
/**
* @param loggingConfiguration Settings that define where logs are stored.
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("40da739fe76f56ffb817546c21a42c6694444a7ba3ad5b2248e09c9dadea0727")
public
fun loggingConfiguration(loggingConfiguration: CfnBucket.LoggingConfigurationProperty.Builder.() -> Unit)
/**
* @param metricsConfigurations Specifies a metrics configuration for the CloudWatch request
* metrics (specified by the metrics configuration ID) from an Amazon S3 bucket.
* If you're updating an existing metrics configuration, note that this is a full replacement of
* the existing metrics configuration. If you don't include the elements you want to keep, they are
* erased. For more information, see
* [PutBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html)
* .
*/
public fun metricsConfigurations(metricsConfigurations: IResolvable)
/**
* @param metricsConfigurations Specifies a metrics configuration for the CloudWatch request
* metrics (specified by the metrics configuration ID) from an Amazon S3 bucket.
* If you're updating an existing metrics configuration, note that this is a full replacement of
* the existing metrics configuration. If you don't include the elements you want to keep, they are
* erased. For more information, see
* [PutBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html)
* .
*/
public fun metricsConfigurations(metricsConfigurations: List)
/**
* @param metricsConfigurations Specifies a metrics configuration for the CloudWatch request
* metrics (specified by the metrics configuration ID) from an Amazon S3 bucket.
* If you're updating an existing metrics configuration, note that this is a full replacement of
* the existing metrics configuration. If you don't include the elements you want to keep, they are
* erased. For more information, see
* [PutBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html)
* .
*/
public fun metricsConfigurations(vararg metricsConfigurations: Any)
/**
* @param notificationConfiguration Configuration that defines how Amazon S3 handles bucket
* notifications.
*/
public fun notificationConfiguration(notificationConfiguration: IResolvable)
/**
* @param notificationConfiguration Configuration that defines how Amazon S3 handles bucket
* notifications.
*/
public
fun notificationConfiguration(notificationConfiguration: CfnBucket.NotificationConfigurationProperty)
/**
* @param notificationConfiguration Configuration that defines how Amazon S3 handles bucket
* notifications.
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("0b0b90f503589c9cb50119ce40919916863fc1c6fc64bf3195ea67c80853e4ad")
public
fun notificationConfiguration(notificationConfiguration: CfnBucket.NotificationConfigurationProperty.Builder.() -> Unit)
/**
* @param objectLockConfiguration This operation is not supported by directory buckets.
* Places an Object Lock configuration on the specified bucket. The rule specified in the Object
* Lock configuration will be applied by default to every new object placed in the specified
* bucket. For more information, see [Locking
* Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) .
*
*
* * The `DefaultRetention` settings require both a mode and a period.
* * The `DefaultRetention` period can be either `Days` or `Years` but you must select one. You
* cannot specify `Days` and `Years` at the same time.
* * You can enable Object Lock for new or existing buckets. For more information, see
* [Configuring Object
* Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html) .
*/
public fun objectLockConfiguration(objectLockConfiguration: IResolvable)
/**
* @param objectLockConfiguration This operation is not supported by directory buckets.
* Places an Object Lock configuration on the specified bucket. The rule specified in the Object
* Lock configuration will be applied by default to every new object placed in the specified
* bucket. For more information, see [Locking
* Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) .
*
*
* * The `DefaultRetention` settings require both a mode and a period.
* * The `DefaultRetention` period can be either `Days` or `Years` but you must select one. You
* cannot specify `Days` and `Years` at the same time.
* * You can enable Object Lock for new or existing buckets. For more information, see
* [Configuring Object
* Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html) .
*/
public
fun objectLockConfiguration(objectLockConfiguration: CfnBucket.ObjectLockConfigurationProperty)
/**
* @param objectLockConfiguration This operation is not supported by directory buckets.
* Places an Object Lock configuration on the specified bucket. The rule specified in the Object
* Lock configuration will be applied by default to every new object placed in the specified
* bucket. For more information, see [Locking
* Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) .
*
*
* * The `DefaultRetention` settings require both a mode and a period.
* * The `DefaultRetention` period can be either `Days` or `Years` but you must select one. You
* cannot specify `Days` and `Years` at the same time.
* * You can enable Object Lock for new or existing buckets. For more information, see
* [Configuring Object
* Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html) .
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("68d56fbddfa842e4ef7764fb09920a64a35a02dd1d0becba20f6a7b056306ad5")
public
fun objectLockConfiguration(objectLockConfiguration: CfnBucket.ObjectLockConfigurationProperty.Builder.() -> Unit)
/**
* @param objectLockEnabled Indicates whether this bucket has an Object Lock configuration
* enabled.
* Enable `ObjectLockEnabled` when you apply `ObjectLockConfiguration` to a bucket.
*/
public fun objectLockEnabled(objectLockEnabled: Boolean)
/**
* @param objectLockEnabled Indicates whether this bucket has an Object Lock configuration
* enabled.
* Enable `ObjectLockEnabled` when you apply `ObjectLockConfiguration` to a bucket.
*/
public fun objectLockEnabled(objectLockEnabled: IResolvable)
/**
* @param ownershipControls Configuration that defines how Amazon S3 handles Object Ownership
* rules.
*/
public fun ownershipControls(ownershipControls: IResolvable)
/**
* @param ownershipControls Configuration that defines how Amazon S3 handles Object Ownership
* rules.
*/
public fun ownershipControls(ownershipControls: CfnBucket.OwnershipControlsProperty)
/**
* @param ownershipControls Configuration that defines how Amazon S3 handles Object Ownership
* rules.
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("2b338c0dbbcbc434c0bc0730771700c79f0387b2db05dda556c540a396cd5868")
public
fun ownershipControls(ownershipControls: CfnBucket.OwnershipControlsProperty.Builder.() -> Unit)
/**
* @param publicAccessBlockConfiguration Configuration that defines how Amazon S3 handles public
* access.
*/
public fun publicAccessBlockConfiguration(publicAccessBlockConfiguration: IResolvable)
/**
* @param publicAccessBlockConfiguration Configuration that defines how Amazon S3 handles public
* access.
*/
public
fun publicAccessBlockConfiguration(publicAccessBlockConfiguration: CfnBucket.PublicAccessBlockConfigurationProperty)
/**
* @param publicAccessBlockConfiguration Configuration that defines how Amazon S3 handles public
* access.
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("c5349d5bd7475de337e9cbd29f750cdaf75c7dab583d264de236450629e82bab")
public
fun publicAccessBlockConfiguration(publicAccessBlockConfiguration: CfnBucket.PublicAccessBlockConfigurationProperty.Builder.() -> Unit)
/**
* @param replicationConfiguration Configuration for replicating objects in an S3 bucket.
* To enable replication, you must also enable versioning by using the `VersioningConfiguration`
* property.
*
* Amazon S3 can store replicated objects in a single destination bucket or multiple destination
* buckets. The destination bucket or buckets must already exist.
*/
public fun replicationConfiguration(replicationConfiguration: IResolvable)
/**
* @param replicationConfiguration Configuration for replicating objects in an S3 bucket.
* To enable replication, you must also enable versioning by using the `VersioningConfiguration`
* property.
*
* Amazon S3 can store replicated objects in a single destination bucket or multiple destination
* buckets. The destination bucket or buckets must already exist.
*/
public
fun replicationConfiguration(replicationConfiguration: CfnBucket.ReplicationConfigurationProperty)
/**
* @param replicationConfiguration Configuration for replicating objects in an S3 bucket.
* To enable replication, you must also enable versioning by using the `VersioningConfiguration`
* property.
*
* Amazon S3 can store replicated objects in a single destination bucket or multiple destination
* buckets. The destination bucket or buckets must already exist.
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("0b857b94a46119b04b3d1b82506a9bc2043f4cd33fe0aba803cfc3774a0f1826")
public
fun replicationConfiguration(replicationConfiguration: CfnBucket.ReplicationConfigurationProperty.Builder.() -> Unit)
/**
* @param tags An arbitrary set of tags (key-value pairs) for this S3 bucket.
*/
public fun tags(tags: List)
/**
* @param tags An arbitrary set of tags (key-value pairs) for this S3 bucket.
*/
public fun tags(vararg tags: CfnTag)
/**
* @param versioningConfiguration Enables multiple versions of all objects in this bucket.
* You might enable versioning to prevent objects from being deleted or overwritten by mistake
* or to archive objects so that you can retrieve previous versions of them.
*
*
* When you enable versioning on a bucket for the first time, it might take a short amount of
* time for the change to be fully propagated. We recommend that you wait for 15 minutes after
* enabling versioning before issuing write operations ( `PUT` or `DELETE` ) on objects in the
* bucket.
*/
public fun versioningConfiguration(versioningConfiguration: IResolvable)
/**
* @param versioningConfiguration Enables multiple versions of all objects in this bucket.
* You might enable versioning to prevent objects from being deleted or overwritten by mistake
* or to archive objects so that you can retrieve previous versions of them.
*
*
* When you enable versioning on a bucket for the first time, it might take a short amount of
* time for the change to be fully propagated. We recommend that you wait for 15 minutes after
* enabling versioning before issuing write operations ( `PUT` or `DELETE` ) on objects in the
* bucket.
*/
public
fun versioningConfiguration(versioningConfiguration: CfnBucket.VersioningConfigurationProperty)
/**
* @param versioningConfiguration Enables multiple versions of all objects in this bucket.
* You might enable versioning to prevent objects from being deleted or overwritten by mistake
* or to archive objects so that you can retrieve previous versions of them.
*
*
* When you enable versioning on a bucket for the first time, it might take a short amount of
* time for the change to be fully propagated. We recommend that you wait for 15 minutes after
* enabling versioning before issuing write operations ( `PUT` or `DELETE` ) on objects in the
* bucket.
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("d3cfae8b56cb451301bf46541164cbe333641bf3807ee6df146c708f3aca7007")
public
fun versioningConfiguration(versioningConfiguration: CfnBucket.VersioningConfigurationProperty.Builder.() -> Unit)
/**
* @param websiteConfiguration Information used to configure the bucket as a static website.
* For more information, see [Hosting Websites on Amazon
* S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html) .
*/
public fun websiteConfiguration(websiteConfiguration: IResolvable)
/**
* @param websiteConfiguration Information used to configure the bucket as a static website.
* For more information, see [Hosting Websites on Amazon
* S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html) .
*/
public fun websiteConfiguration(websiteConfiguration: CfnBucket.WebsiteConfigurationProperty)
/**
* @param websiteConfiguration Information used to configure the bucket as a static website.
* For more information, see [Hosting Websites on Amazon
* S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html) .
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("473e2757bba809ea76afc5b70a68eefe416883e93bf16b872bce3786228df6ef")
public
fun websiteConfiguration(websiteConfiguration: CfnBucket.WebsiteConfigurationProperty.Builder.() -> Unit)
}
private class BuilderImpl : Builder {
private val cdkBuilder: software.amazon.awscdk.services.s3.CfnBucketProps.Builder =
software.amazon.awscdk.services.s3.CfnBucketProps.builder()
/**
* @param accelerateConfiguration Configures the transfer acceleration state for an Amazon S3
* bucket.
* For more information, see [Amazon S3 Transfer
* Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) in the
* *Amazon S3 User Guide* .
*/
override fun accelerateConfiguration(accelerateConfiguration: IResolvable) {
cdkBuilder.accelerateConfiguration(accelerateConfiguration.let(IResolvable.Companion::unwrap))
}
/**
* @param accelerateConfiguration Configures the transfer acceleration state for an Amazon S3
* bucket.
* For more information, see [Amazon S3 Transfer
* Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) in the
* *Amazon S3 User Guide* .
*/
override
fun accelerateConfiguration(accelerateConfiguration: CfnBucket.AccelerateConfigurationProperty) {
cdkBuilder.accelerateConfiguration(accelerateConfiguration.let(CfnBucket.AccelerateConfigurationProperty.Companion::unwrap))
}
/**
* @param accelerateConfiguration Configures the transfer acceleration state for an Amazon S3
* bucket.
* For more information, see [Amazon S3 Transfer
* Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) in the
* *Amazon S3 User Guide* .
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("d879dedc2e18f20de3b43a7753712f95b8da71d85f9f1f794c1f9e59d1eec47b")
override
fun accelerateConfiguration(accelerateConfiguration: CfnBucket.AccelerateConfigurationProperty.Builder.() -> Unit):
Unit =
accelerateConfiguration(CfnBucket.AccelerateConfigurationProperty(accelerateConfiguration))
/**
* @param accessControl This is a legacy property, and it is not recommended for most use cases.
* A majority of modern use cases in Amazon S3 no longer require the use of ACLs, and we
* recommend that you keep ACLs disabled. For more information, see [Controlling object
* ownership](https://docs.aws.amazon.com//AmazonS3/latest/userguide/about-object-ownership.html)
* in the *Amazon S3 User Guide* .
*
* A canned access control list (ACL) that grants predefined permissions to the bucket. For more
* information about canned ACLs, see [Canned
* ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) in the
* *Amazon S3 User Guide* .
*
* S3 buckets are created with ACLs disabled by default. Therefore, unless you explicitly set
* the
* [AWS::S3::OwnershipControls](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrols.html)
* property to enable ACLs, your resource will fail to deploy with any value other than Private.
* Use cases requiring ACLs are uncommon.
*
* The majority of access control configurations can be successfully and more easily achieved
* with bucket policies. For more information, see
* [AWS::S3::BucketPolicy](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html)
* . For examples of common policy configurations, including S3 Server Access Logs buckets and
* more, see [Bucket policy
* examples](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) in
* the *Amazon S3 User Guide* .
*/
override fun accessControl(accessControl: String) {
cdkBuilder.accessControl(accessControl)
}
/**
* @param analyticsConfigurations Specifies the configuration and any analyses for the analytics
* filter of an Amazon S3 bucket.
*/
override fun analyticsConfigurations(analyticsConfigurations: IResolvable) {
cdkBuilder.analyticsConfigurations(analyticsConfigurations.let(IResolvable.Companion::unwrap))
}
/**
* @param analyticsConfigurations Specifies the configuration and any analyses for the analytics
* filter of an Amazon S3 bucket.
*/
override fun analyticsConfigurations(analyticsConfigurations: List) {
cdkBuilder.analyticsConfigurations(analyticsConfigurations.map{CdkObjectWrappers.unwrap(it)})
}
/**
* @param analyticsConfigurations Specifies the configuration and any analyses for the analytics
* filter of an Amazon S3 bucket.
*/
override fun analyticsConfigurations(vararg analyticsConfigurations: Any): Unit =
analyticsConfigurations(analyticsConfigurations.toList())
/**
* @param bucketEncryption Specifies default encryption for a bucket using server-side
* encryption with Amazon S3-managed keys (SSE-S3), AWS KMS-managed keys (SSE-KMS), or dual-layer
* server-side encryption with KMS-managed keys (DSSE-KMS).
* For information about the Amazon S3 default encryption feature, see [Amazon S3 Default
* Encryption for S3
* Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) in the *Amazon
* S3 User Guide* .
*/
override fun bucketEncryption(bucketEncryption: IResolvable) {
cdkBuilder.bucketEncryption(bucketEncryption.let(IResolvable.Companion::unwrap))
}
/**
* @param bucketEncryption Specifies default encryption for a bucket using server-side
* encryption with Amazon S3-managed keys (SSE-S3), AWS KMS-managed keys (SSE-KMS), or dual-layer
* server-side encryption with KMS-managed keys (DSSE-KMS).
* For information about the Amazon S3 default encryption feature, see [Amazon S3 Default
* Encryption for S3
* Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) in the *Amazon
* S3 User Guide* .
*/
override fun bucketEncryption(bucketEncryption: CfnBucket.BucketEncryptionProperty) {
cdkBuilder.bucketEncryption(bucketEncryption.let(CfnBucket.BucketEncryptionProperty.Companion::unwrap))
}
/**
* @param bucketEncryption Specifies default encryption for a bucket using server-side
* encryption with Amazon S3-managed keys (SSE-S3), AWS KMS-managed keys (SSE-KMS), or dual-layer
* server-side encryption with KMS-managed keys (DSSE-KMS).
* For information about the Amazon S3 default encryption feature, see [Amazon S3 Default
* Encryption for S3
* Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) in the *Amazon
* S3 User Guide* .
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("3d7dda973024ffcd542628035f7d8fe73113f61e1c754f147db01bd9c31e40fc")
override
fun bucketEncryption(bucketEncryption: CfnBucket.BucketEncryptionProperty.Builder.() -> Unit):
Unit = bucketEncryption(CfnBucket.BucketEncryptionProperty(bucketEncryption))
/**
* @param bucketName A name for the bucket.
* If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for
* the bucket name. The bucket name must contain only lowercase letters, numbers, periods (.), and
* dashes (-) and must follow [Amazon S3 bucket restrictions and
* limitations](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html) . For more
* information, see [Rules for naming Amazon S3
* buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html#bucketnamingrules)
* in the *Amazon S3 User Guide* .
*
*
* If you specify a name, you can't perform updates that require replacement of this resource.
* You can perform updates that require no or some interruption. If you need to replace the
* resource, specify a new name.
*/
override fun bucketName(bucketName: String) {
cdkBuilder.bucketName(bucketName)
}
/**
* @param corsConfiguration Describes the cross-origin access configuration for objects in an
* Amazon S3 bucket.
* For more information, see [Enabling Cross-Origin Resource
* Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the *Amazon S3 User
* Guide* .
*/
override fun corsConfiguration(corsConfiguration: IResolvable) {
cdkBuilder.corsConfiguration(corsConfiguration.let(IResolvable.Companion::unwrap))
}
/**
* @param corsConfiguration Describes the cross-origin access configuration for objects in an
* Amazon S3 bucket.
* For more information, see [Enabling Cross-Origin Resource
* Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the *Amazon S3 User
* Guide* .
*/
override fun corsConfiguration(corsConfiguration: CfnBucket.CorsConfigurationProperty) {
cdkBuilder.corsConfiguration(corsConfiguration.let(CfnBucket.CorsConfigurationProperty.Companion::unwrap))
}
/**
* @param corsConfiguration Describes the cross-origin access configuration for objects in an
* Amazon S3 bucket.
* For more information, see [Enabling Cross-Origin Resource
* Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the *Amazon S3 User
* Guide* .
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("3609d8c61d992239f891f6019c95c2dabaf9d9e78038b46ff1c2fcb9564ed465")
override
fun corsConfiguration(corsConfiguration: CfnBucket.CorsConfigurationProperty.Builder.() -> Unit):
Unit = corsConfiguration(CfnBucket.CorsConfigurationProperty(corsConfiguration))
/**
* @param intelligentTieringConfigurations Defines how Amazon S3 handles Intelligent-Tiering
* storage.
*/
override fun intelligentTieringConfigurations(intelligentTieringConfigurations: IResolvable) {
cdkBuilder.intelligentTieringConfigurations(intelligentTieringConfigurations.let(IResolvable.Companion::unwrap))
}
/**
* @param intelligentTieringConfigurations Defines how Amazon S3 handles Intelligent-Tiering
* storage.
*/
override fun intelligentTieringConfigurations(intelligentTieringConfigurations: List) {
cdkBuilder.intelligentTieringConfigurations(intelligentTieringConfigurations.map{CdkObjectWrappers.unwrap(it)})
}
/**
* @param intelligentTieringConfigurations Defines how Amazon S3 handles Intelligent-Tiering
* storage.
*/
override fun intelligentTieringConfigurations(vararg intelligentTieringConfigurations: Any):
Unit = intelligentTieringConfigurations(intelligentTieringConfigurations.toList())
/**
* @param inventoryConfigurations Specifies the inventory configuration for an Amazon S3 bucket.
* For more information, see [GET Bucket
* inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in
* the *Amazon S3 API Reference* .
*/
override fun inventoryConfigurations(inventoryConfigurations: IResolvable) {
cdkBuilder.inventoryConfigurations(inventoryConfigurations.let(IResolvable.Companion::unwrap))
}
/**
* @param inventoryConfigurations Specifies the inventory configuration for an Amazon S3 bucket.
* For more information, see [GET Bucket
* inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in
* the *Amazon S3 API Reference* .
*/
override fun inventoryConfigurations(inventoryConfigurations: List) {
cdkBuilder.inventoryConfigurations(inventoryConfigurations.map{CdkObjectWrappers.unwrap(it)})
}
/**
* @param inventoryConfigurations Specifies the inventory configuration for an Amazon S3 bucket.
* For more information, see [GET Bucket
* inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in
* the *Amazon S3 API Reference* .
*/
override fun inventoryConfigurations(vararg inventoryConfigurations: Any): Unit =
inventoryConfigurations(inventoryConfigurations.toList())
/**
* @param lifecycleConfiguration Specifies the lifecycle configuration for objects in an Amazon
* S3 bucket.
* For more information, see [Object Lifecycle
* Management](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) in the
* *Amazon S3 User Guide* .
*/
override fun lifecycleConfiguration(lifecycleConfiguration: IResolvable) {
cdkBuilder.lifecycleConfiguration(lifecycleConfiguration.let(IResolvable.Companion::unwrap))
}
/**
* @param lifecycleConfiguration Specifies the lifecycle configuration for objects in an Amazon
* S3 bucket.
* For more information, see [Object Lifecycle
* Management](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) in the
* *Amazon S3 User Guide* .
*/
override
fun lifecycleConfiguration(lifecycleConfiguration: CfnBucket.LifecycleConfigurationProperty) {
cdkBuilder.lifecycleConfiguration(lifecycleConfiguration.let(CfnBucket.LifecycleConfigurationProperty.Companion::unwrap))
}
/**
* @param lifecycleConfiguration Specifies the lifecycle configuration for objects in an Amazon
* S3 bucket.
* For more information, see [Object Lifecycle
* Management](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) in the
* *Amazon S3 User Guide* .
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("ce4cf2859f8177e4c539ee4b2105397e3ec997d92154f1e97156c36a044a06c5")
override
fun lifecycleConfiguration(lifecycleConfiguration: CfnBucket.LifecycleConfigurationProperty.Builder.() -> Unit):
Unit =
lifecycleConfiguration(CfnBucket.LifecycleConfigurationProperty(lifecycleConfiguration))
/**
* @param loggingConfiguration Settings that define where logs are stored.
*/
override fun loggingConfiguration(loggingConfiguration: IResolvable) {
cdkBuilder.loggingConfiguration(loggingConfiguration.let(IResolvable.Companion::unwrap))
}
/**
* @param loggingConfiguration Settings that define where logs are stored.
*/
override
fun loggingConfiguration(loggingConfiguration: CfnBucket.LoggingConfigurationProperty) {
cdkBuilder.loggingConfiguration(loggingConfiguration.let(CfnBucket.LoggingConfigurationProperty.Companion::unwrap))
}
/**
* @param loggingConfiguration Settings that define where logs are stored.
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("40da739fe76f56ffb817546c21a42c6694444a7ba3ad5b2248e09c9dadea0727")
override
fun loggingConfiguration(loggingConfiguration: CfnBucket.LoggingConfigurationProperty.Builder.() -> Unit):
Unit = loggingConfiguration(CfnBucket.LoggingConfigurationProperty(loggingConfiguration))
/**
* @param metricsConfigurations Specifies a metrics configuration for the CloudWatch request
* metrics (specified by the metrics configuration ID) from an Amazon S3 bucket.
* If you're updating an existing metrics configuration, note that this is a full replacement of
* the existing metrics configuration. If you don't include the elements you want to keep, they are
* erased. For more information, see
* [PutBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html)
* .
*/
override fun metricsConfigurations(metricsConfigurations: IResolvable) {
cdkBuilder.metricsConfigurations(metricsConfigurations.let(IResolvable.Companion::unwrap))
}
/**
* @param metricsConfigurations Specifies a metrics configuration for the CloudWatch request
* metrics (specified by the metrics configuration ID) from an Amazon S3 bucket.
* If you're updating an existing metrics configuration, note that this is a full replacement of
* the existing metrics configuration. If you don't include the elements you want to keep, they are
* erased. For more information, see
* [PutBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html)
* .
*/
override fun metricsConfigurations(metricsConfigurations: List) {
cdkBuilder.metricsConfigurations(metricsConfigurations.map{CdkObjectWrappers.unwrap(it)})
}
/**
* @param metricsConfigurations Specifies a metrics configuration for the CloudWatch request
* metrics (specified by the metrics configuration ID) from an Amazon S3 bucket.
* If you're updating an existing metrics configuration, note that this is a full replacement of
* the existing metrics configuration. If you don't include the elements you want to keep, they are
* erased. For more information, see
* [PutBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html)
* .
*/
override fun metricsConfigurations(vararg metricsConfigurations: Any): Unit =
metricsConfigurations(metricsConfigurations.toList())
/**
* @param notificationConfiguration Configuration that defines how Amazon S3 handles bucket
* notifications.
*/
override fun notificationConfiguration(notificationConfiguration: IResolvable) {
cdkBuilder.notificationConfiguration(notificationConfiguration.let(IResolvable.Companion::unwrap))
}
/**
* @param notificationConfiguration Configuration that defines how Amazon S3 handles bucket
* notifications.
*/
override
fun notificationConfiguration(notificationConfiguration: CfnBucket.NotificationConfigurationProperty) {
cdkBuilder.notificationConfiguration(notificationConfiguration.let(CfnBucket.NotificationConfigurationProperty.Companion::unwrap))
}
/**
* @param notificationConfiguration Configuration that defines how Amazon S3 handles bucket
* notifications.
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("0b0b90f503589c9cb50119ce40919916863fc1c6fc64bf3195ea67c80853e4ad")
override
fun notificationConfiguration(notificationConfiguration: CfnBucket.NotificationConfigurationProperty.Builder.() -> Unit):
Unit =
notificationConfiguration(CfnBucket.NotificationConfigurationProperty(notificationConfiguration))
/**
* @param objectLockConfiguration This operation is not supported by directory buckets.
* Places an Object Lock configuration on the specified bucket. The rule specified in the Object
* Lock configuration will be applied by default to every new object placed in the specified
* bucket. For more information, see [Locking
* Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) .
*
*
* * The `DefaultRetention` settings require both a mode and a period.
* * The `DefaultRetention` period can be either `Days` or `Years` but you must select one. You
* cannot specify `Days` and `Years` at the same time.
* * You can enable Object Lock for new or existing buckets. For more information, see
* [Configuring Object
* Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html) .
*/
override fun objectLockConfiguration(objectLockConfiguration: IResolvable) {
cdkBuilder.objectLockConfiguration(objectLockConfiguration.let(IResolvable.Companion::unwrap))
}
/**
* @param objectLockConfiguration This operation is not supported by directory buckets.
* Places an Object Lock configuration on the specified bucket. The rule specified in the Object
* Lock configuration will be applied by default to every new object placed in the specified
* bucket. For more information, see [Locking
* Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) .
*
*
* * The `DefaultRetention` settings require both a mode and a period.
* * The `DefaultRetention` period can be either `Days` or `Years` but you must select one. You
* cannot specify `Days` and `Years` at the same time.
* * You can enable Object Lock for new or existing buckets. For more information, see
* [Configuring Object
* Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html) .
*/
override
fun objectLockConfiguration(objectLockConfiguration: CfnBucket.ObjectLockConfigurationProperty) {
cdkBuilder.objectLockConfiguration(objectLockConfiguration.let(CfnBucket.ObjectLockConfigurationProperty.Companion::unwrap))
}
/**
* @param objectLockConfiguration This operation is not supported by directory buckets.
* Places an Object Lock configuration on the specified bucket. The rule specified in the Object
* Lock configuration will be applied by default to every new object placed in the specified
* bucket. For more information, see [Locking
* Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) .
*
*
* * The `DefaultRetention` settings require both a mode and a period.
* * The `DefaultRetention` period can be either `Days` or `Years` but you must select one. You
* cannot specify `Days` and `Years` at the same time.
* * You can enable Object Lock for new or existing buckets. For more information, see
* [Configuring Object
* Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html) .
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("68d56fbddfa842e4ef7764fb09920a64a35a02dd1d0becba20f6a7b056306ad5")
override
fun objectLockConfiguration(objectLockConfiguration: CfnBucket.ObjectLockConfigurationProperty.Builder.() -> Unit):
Unit =
objectLockConfiguration(CfnBucket.ObjectLockConfigurationProperty(objectLockConfiguration))
/**
* @param objectLockEnabled Indicates whether this bucket has an Object Lock configuration
* enabled.
* Enable `ObjectLockEnabled` when you apply `ObjectLockConfiguration` to a bucket.
*/
override fun objectLockEnabled(objectLockEnabled: Boolean) {
cdkBuilder.objectLockEnabled(objectLockEnabled)
}
/**
* @param objectLockEnabled Indicates whether this bucket has an Object Lock configuration
* enabled.
* Enable `ObjectLockEnabled` when you apply `ObjectLockConfiguration` to a bucket.
*/
override fun objectLockEnabled(objectLockEnabled: IResolvable) {
cdkBuilder.objectLockEnabled(objectLockEnabled.let(IResolvable.Companion::unwrap))
}
/**
* @param ownershipControls Configuration that defines how Amazon S3 handles Object Ownership
* rules.
*/
override fun ownershipControls(ownershipControls: IResolvable) {
cdkBuilder.ownershipControls(ownershipControls.let(IResolvable.Companion::unwrap))
}
/**
* @param ownershipControls Configuration that defines how Amazon S3 handles Object Ownership
* rules.
*/
override fun ownershipControls(ownershipControls: CfnBucket.OwnershipControlsProperty) {
cdkBuilder.ownershipControls(ownershipControls.let(CfnBucket.OwnershipControlsProperty.Companion::unwrap))
}
/**
* @param ownershipControls Configuration that defines how Amazon S3 handles Object Ownership
* rules.
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("2b338c0dbbcbc434c0bc0730771700c79f0387b2db05dda556c540a396cd5868")
override
fun ownershipControls(ownershipControls: CfnBucket.OwnershipControlsProperty.Builder.() -> Unit):
Unit = ownershipControls(CfnBucket.OwnershipControlsProperty(ownershipControls))
/**
* @param publicAccessBlockConfiguration Configuration that defines how Amazon S3 handles public
* access.
*/
override fun publicAccessBlockConfiguration(publicAccessBlockConfiguration: IResolvable) {
cdkBuilder.publicAccessBlockConfiguration(publicAccessBlockConfiguration.let(IResolvable.Companion::unwrap))
}
/**
* @param publicAccessBlockConfiguration Configuration that defines how Amazon S3 handles public
* access.
*/
override
fun publicAccessBlockConfiguration(publicAccessBlockConfiguration: CfnBucket.PublicAccessBlockConfigurationProperty) {
cdkBuilder.publicAccessBlockConfiguration(publicAccessBlockConfiguration.let(CfnBucket.PublicAccessBlockConfigurationProperty.Companion::unwrap))
}
/**
* @param publicAccessBlockConfiguration Configuration that defines how Amazon S3 handles public
* access.
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("c5349d5bd7475de337e9cbd29f750cdaf75c7dab583d264de236450629e82bab")
override
fun publicAccessBlockConfiguration(publicAccessBlockConfiguration: CfnBucket.PublicAccessBlockConfigurationProperty.Builder.() -> Unit):
Unit =
publicAccessBlockConfiguration(CfnBucket.PublicAccessBlockConfigurationProperty(publicAccessBlockConfiguration))
/**
* @param replicationConfiguration Configuration for replicating objects in an S3 bucket.
* To enable replication, you must also enable versioning by using the `VersioningConfiguration`
* property.
*
* Amazon S3 can store replicated objects in a single destination bucket or multiple destination
* buckets. The destination bucket or buckets must already exist.
*/
override fun replicationConfiguration(replicationConfiguration: IResolvable) {
cdkBuilder.replicationConfiguration(replicationConfiguration.let(IResolvable.Companion::unwrap))
}
/**
* @param replicationConfiguration Configuration for replicating objects in an S3 bucket.
* To enable replication, you must also enable versioning by using the `VersioningConfiguration`
* property.
*
* Amazon S3 can store replicated objects in a single destination bucket or multiple destination
* buckets. The destination bucket or buckets must already exist.
*/
override
fun replicationConfiguration(replicationConfiguration: CfnBucket.ReplicationConfigurationProperty) {
cdkBuilder.replicationConfiguration(replicationConfiguration.let(CfnBucket.ReplicationConfigurationProperty.Companion::unwrap))
}
/**
* @param replicationConfiguration Configuration for replicating objects in an S3 bucket.
* To enable replication, you must also enable versioning by using the `VersioningConfiguration`
* property.
*
* Amazon S3 can store replicated objects in a single destination bucket or multiple destination
* buckets. The destination bucket or buckets must already exist.
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("0b857b94a46119b04b3d1b82506a9bc2043f4cd33fe0aba803cfc3774a0f1826")
override
fun replicationConfiguration(replicationConfiguration: CfnBucket.ReplicationConfigurationProperty.Builder.() -> Unit):
Unit =
replicationConfiguration(CfnBucket.ReplicationConfigurationProperty(replicationConfiguration))
/**
* @param tags An arbitrary set of tags (key-value pairs) for this S3 bucket.
*/
override fun tags(tags: List) {
cdkBuilder.tags(tags.map(CfnTag.Companion::unwrap))
}
/**
* @param tags An arbitrary set of tags (key-value pairs) for this S3 bucket.
*/
override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList())
/**
* @param versioningConfiguration Enables multiple versions of all objects in this bucket.
* You might enable versioning to prevent objects from being deleted or overwritten by mistake
* or to archive objects so that you can retrieve previous versions of them.
*
*
* When you enable versioning on a bucket for the first time, it might take a short amount of
* time for the change to be fully propagated. We recommend that you wait for 15 minutes after
* enabling versioning before issuing write operations ( `PUT` or `DELETE` ) on objects in the
* bucket.
*/
override fun versioningConfiguration(versioningConfiguration: IResolvable) {
cdkBuilder.versioningConfiguration(versioningConfiguration.let(IResolvable.Companion::unwrap))
}
/**
* @param versioningConfiguration Enables multiple versions of all objects in this bucket.
* You might enable versioning to prevent objects from being deleted or overwritten by mistake
* or to archive objects so that you can retrieve previous versions of them.
*
*
* When you enable versioning on a bucket for the first time, it might take a short amount of
* time for the change to be fully propagated. We recommend that you wait for 15 minutes after
* enabling versioning before issuing write operations ( `PUT` or `DELETE` ) on objects in the
* bucket.
*/
override
fun versioningConfiguration(versioningConfiguration: CfnBucket.VersioningConfigurationProperty) {
cdkBuilder.versioningConfiguration(versioningConfiguration.let(CfnBucket.VersioningConfigurationProperty.Companion::unwrap))
}
/**
* @param versioningConfiguration Enables multiple versions of all objects in this bucket.
* You might enable versioning to prevent objects from being deleted or overwritten by mistake
* or to archive objects so that you can retrieve previous versions of them.
*
*
* When you enable versioning on a bucket for the first time, it might take a short amount of
* time for the change to be fully propagated. We recommend that you wait for 15 minutes after
* enabling versioning before issuing write operations ( `PUT` or `DELETE` ) on objects in the
* bucket.
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("d3cfae8b56cb451301bf46541164cbe333641bf3807ee6df146c708f3aca7007")
override
fun versioningConfiguration(versioningConfiguration: CfnBucket.VersioningConfigurationProperty.Builder.() -> Unit):
Unit =
versioningConfiguration(CfnBucket.VersioningConfigurationProperty(versioningConfiguration))
/**
* @param websiteConfiguration Information used to configure the bucket as a static website.
* For more information, see [Hosting Websites on Amazon
* S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html) .
*/
override fun websiteConfiguration(websiteConfiguration: IResolvable) {
cdkBuilder.websiteConfiguration(websiteConfiguration.let(IResolvable.Companion::unwrap))
}
/**
* @param websiteConfiguration Information used to configure the bucket as a static website.
* For more information, see [Hosting Websites on Amazon
* S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html) .
*/
override
fun websiteConfiguration(websiteConfiguration: CfnBucket.WebsiteConfigurationProperty) {
cdkBuilder.websiteConfiguration(websiteConfiguration.let(CfnBucket.WebsiteConfigurationProperty.Companion::unwrap))
}
/**
* @param websiteConfiguration Information used to configure the bucket as a static website.
* For more information, see [Hosting Websites on Amazon
* S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html) .
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("473e2757bba809ea76afc5b70a68eefe416883e93bf16b872bce3786228df6ef")
override
fun websiteConfiguration(websiteConfiguration: CfnBucket.WebsiteConfigurationProperty.Builder.() -> Unit):
Unit = websiteConfiguration(CfnBucket.WebsiteConfigurationProperty(websiteConfiguration))
public fun build(): software.amazon.awscdk.services.s3.CfnBucketProps = cdkBuilder.build()
}
private class Wrapper(
cdkObject: software.amazon.awscdk.services.s3.CfnBucketProps,
) : CdkObject(cdkObject),
CfnBucketProps {
/**
* Configures the transfer acceleration state for an Amazon S3 bucket.
*
* For more information, see [Amazon S3 Transfer
* Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) in the
* *Amazon S3 User Guide* .
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-accelerateconfiguration)
*/
override fun accelerateConfiguration(): Any? = unwrap(this).getAccelerateConfiguration()
/**
* This is a legacy property, and it is not recommended for most use cases.
*
* A majority of modern use cases in Amazon S3 no longer require the use of ACLs, and we
* recommend that you keep ACLs disabled. For more information, see [Controlling object
* ownership](https://docs.aws.amazon.com//AmazonS3/latest/userguide/about-object-ownership.html)
* in the *Amazon S3 User Guide* .
*
* A canned access control list (ACL) that grants predefined permissions to the bucket. For more
* information about canned ACLs, see [Canned
* ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) in the
* *Amazon S3 User Guide* .
*
* S3 buckets are created with ACLs disabled by default. Therefore, unless you explicitly set
* the
* [AWS::S3::OwnershipControls](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrols.html)
* property to enable ACLs, your resource will fail to deploy with any value other than Private.
* Use cases requiring ACLs are uncommon.
*
* The majority of access control configurations can be successfully and more easily achieved
* with bucket policies. For more information, see
* [AWS::S3::BucketPolicy](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html)
* . For examples of common policy configurations, including S3 Server Access Logs buckets and
* more, see [Bucket policy
* examples](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) in
* the *Amazon S3 User Guide* .
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-accesscontrol)
*/
override fun accessControl(): String? = unwrap(this).getAccessControl()
/**
* Specifies the configuration and any analyses for the analytics filter of an Amazon S3 bucket.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-analyticsconfigurations)
*/
override fun analyticsConfigurations(): Any? = unwrap(this).getAnalyticsConfigurations()
/**
* Specifies default encryption for a bucket using server-side encryption with Amazon S3-managed
* keys (SSE-S3), AWS KMS-managed keys (SSE-KMS), or dual-layer server-side encryption with
* KMS-managed keys (DSSE-KMS).
*
* For information about the Amazon S3 default encryption feature, see [Amazon S3 Default
* Encryption for S3
* Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) in the *Amazon
* S3 User Guide* .
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-bucketencryption)
*/
override fun bucketEncryption(): Any? = unwrap(this).getBucketEncryption()
/**
* A name for the bucket.
*
* If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for
* the bucket name. The bucket name must contain only lowercase letters, numbers, periods (.), and
* dashes (-) and must follow [Amazon S3 bucket restrictions and
* limitations](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html) . For more
* information, see [Rules for naming Amazon S3
* buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html#bucketnamingrules)
* in the *Amazon S3 User Guide* .
*
*
* If you specify a name, you can't perform updates that require replacement of this resource.
* You can perform updates that require no or some interruption. If you need to replace the
* resource, specify a new name.
*
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-bucketname)
*/
override fun bucketName(): String? = unwrap(this).getBucketName()
/**
* Describes the cross-origin access configuration for objects in an Amazon S3 bucket.
*
* For more information, see [Enabling Cross-Origin Resource
* Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the *Amazon S3 User
* Guide* .
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-corsconfiguration)
*/
override fun corsConfiguration(): Any? = unwrap(this).getCorsConfiguration()
/**
* Defines how Amazon S3 handles Intelligent-Tiering storage.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-intelligenttieringconfigurations)
*/
override fun intelligentTieringConfigurations(): Any? =
unwrap(this).getIntelligentTieringConfigurations()
/**
* Specifies the inventory configuration for an Amazon S3 bucket.
*
* For more information, see [GET Bucket
* inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in
* the *Amazon S3 API Reference* .
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-inventoryconfigurations)
*/
override fun inventoryConfigurations(): Any? = unwrap(this).getInventoryConfigurations()
/**
* Specifies the lifecycle configuration for objects in an Amazon S3 bucket.
*
* For more information, see [Object Lifecycle
* Management](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) in the
* *Amazon S3 User Guide* .
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-lifecycleconfiguration)
*/
override fun lifecycleConfiguration(): Any? = unwrap(this).getLifecycleConfiguration()
/**
* Settings that define where logs are stored.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-loggingconfiguration)
*/
override fun loggingConfiguration(): Any? = unwrap(this).getLoggingConfiguration()
/**
* Specifies a metrics configuration for the CloudWatch request metrics (specified by the
* metrics configuration ID) from an Amazon S3 bucket.
*
* If you're updating an existing metrics configuration, note that this is a full replacement of
* the existing metrics configuration. If you don't include the elements you want to keep, they are
* erased. For more information, see
* [PutBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html)
* .
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-metricsconfigurations)
*/
override fun metricsConfigurations(): Any? = unwrap(this).getMetricsConfigurations()
/**
* Configuration that defines how Amazon S3 handles bucket notifications.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-notificationconfiguration)
*/
override fun notificationConfiguration(): Any? = unwrap(this).getNotificationConfiguration()
/**
* This operation is not supported by directory buckets.
*
* Places an Object Lock configuration on the specified bucket. The rule specified in the Object
* Lock configuration will be applied by default to every new object placed in the specified
* bucket. For more information, see [Locking
* Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) .
*
*
* * The `DefaultRetention` settings require both a mode and a period.
* * The `DefaultRetention` period can be either `Days` or `Years` but you must select one. You
* cannot specify `Days` and `Years` at the same time.
* * You can enable Object Lock for new or existing buckets. For more information, see
* [Configuring Object
* Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html) .
*
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-objectlockconfiguration)
*/
override fun objectLockConfiguration(): Any? = unwrap(this).getObjectLockConfiguration()
/**
* Indicates whether this bucket has an Object Lock configuration enabled.
*
* Enable `ObjectLockEnabled` when you apply `ObjectLockConfiguration` to a bucket.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-objectlockenabled)
*/
override fun objectLockEnabled(): Any? = unwrap(this).getObjectLockEnabled()
/**
* Configuration that defines how Amazon S3 handles Object Ownership rules.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-ownershipcontrols)
*/
override fun ownershipControls(): Any? = unwrap(this).getOwnershipControls()
/**
* Configuration that defines how Amazon S3 handles public access.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-publicaccessblockconfiguration)
*/
override fun publicAccessBlockConfiguration(): Any? =
unwrap(this).getPublicAccessBlockConfiguration()
/**
* Configuration for replicating objects in an S3 bucket.
*
* To enable replication, you must also enable versioning by using the `VersioningConfiguration`
* property.
*
* Amazon S3 can store replicated objects in a single destination bucket or multiple destination
* buckets. The destination bucket or buckets must already exist.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-replicationconfiguration)
*/
override fun replicationConfiguration(): Any? = unwrap(this).getReplicationConfiguration()
/**
* An arbitrary set of tags (key-value pairs) for this S3 bucket.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-tags)
*/
override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList()
/**
* Enables multiple versions of all objects in this bucket.
*
* You might enable versioning to prevent objects from being deleted or overwritten by mistake
* or to archive objects so that you can retrieve previous versions of them.
*
*
* When you enable versioning on a bucket for the first time, it might take a short amount of
* time for the change to be fully propagated. We recommend that you wait for 15 minutes after
* enabling versioning before issuing write operations ( `PUT` or `DELETE` ) on objects in the
* bucket.
*
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-versioningconfiguration)
*/
override fun versioningConfiguration(): Any? = unwrap(this).getVersioningConfiguration()
/**
* Information used to configure the bucket as a static website.
*
* For more information, see [Hosting Websites on Amazon
* S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html) .
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#cfn-s3-bucket-websiteconfiguration)
*/
override fun websiteConfiguration(): Any? = unwrap(this).getWebsiteConfiguration()
}
public companion object {
public operator fun invoke(block: Builder.() -> Unit = {}): CfnBucketProps {
val builderImpl = BuilderImpl()
return Wrapper(builderImpl.apply(block).build())
}
internal fun wrap(cdkObject: software.amazon.awscdk.services.s3.CfnBucketProps): CfnBucketProps
= CdkObjectWrappers.wrap(cdkObject) as? CfnBucketProps ?: Wrapper(cdkObject)
internal fun unwrap(wrapped: CfnBucketProps): software.amazon.awscdk.services.s3.CfnBucketProps
= (wrapped as CdkObject).cdkObject as software.amazon.awscdk.services.s3.CfnBucketProps
}
}