@awboost/cfn-resource-types 0.1.21 → 0.1.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/lib/AWS-AppSync-ApiCache.d.ts +1 -0
  2. package/lib/AWS-AppSync-DataSource.d.ts +1 -0
  3. package/lib/AWS-AppSync-GraphQLApi.d.ts +10 -0
  4. package/lib/AWS-AppSync-Resolver.d.ts +1 -0
  5. package/lib/AWS-Batch-JobDefinition.d.ts +8 -0
  6. package/lib/AWS-CodePipeline-Pipeline.d.ts +29 -0
  7. package/lib/AWS-Cognito-UserPoolRiskConfigurationAttachment.d.ts +1 -8
  8. package/lib/AWS-ControlTower-EnabledBaseline.d.ts +80 -0
  9. package/lib/AWS-ControlTower-EnabledBaseline.js +12 -0
  10. package/lib/AWS-DynamoDB-Table.d.ts +9 -0
  11. package/lib/AWS-EC2-InstanceConnectEndpoint.d.ts +1 -1
  12. package/lib/AWS-EC2-NatGateway.d.ts +46 -4
  13. package/lib/AWS-EC2-NatGateway.js +5 -1
  14. package/lib/AWS-EC2-PrefixList.d.ts +1 -1
  15. package/lib/AWS-EC2-Subnet.d.ts +6 -0
  16. package/lib/AWS-EC2-SubnetRouteTableAssociation.d.ts +11 -2
  17. package/lib/AWS-EC2-SubnetRouteTableAssociation.js +2 -1
  18. package/lib/AWS-EC2-VPC.d.ts +30 -31
  19. package/lib/AWS-EC2-VPC.js +4 -1
  20. package/lib/AWS-ECS-TaskDefinition.d.ts +641 -25
  21. package/lib/AWS-ECS-TaskDefinition.js +3 -1
  22. package/lib/AWS-EMR-Cluster.d.ts +1 -0
  23. package/lib/AWS-GuardDuty-Master.d.ts +14 -9
  24. package/lib/AWS-GuardDuty-Master.js +2 -1
  25. package/lib/AWS-IAM-User.d.ts +43 -25
  26. package/lib/AWS-IAM-User.js +3 -1
  27. package/lib/AWS-IoTWireless-WirelessDevice.d.ts +34 -0
  28. package/lib/AWS-KMS-Alias.d.ts +25 -11
  29. package/lib/AWS-KMS-Alias.js +3 -1
  30. package/lib/AWS-KMS-Key.d.ts +62 -28
  31. package/lib/AWS-KMS-Key.js +3 -1
  32. package/lib/AWS-Route53-RecordSet.d.ts +19 -0
  33. package/lib/AWS-Route53-RecordSetGroup.d.ts +19 -0
  34. package/lib/AWS-S3-Bucket.d.ts +381 -139
  35. package/lib/AWS-S3-Bucket.js +3 -1
  36. package/lib/AWS-S3-BucketPolicy.d.ts +15 -3
  37. package/lib/AWS-S3-BucketPolicy.js +7 -1
  38. package/lib/AWS-SageMaker-AppImageConfig.d.ts +1 -1
  39. package/package.json +1 -1
@@ -1,47 +1,53 @@
1
1
  import { Resource as $Resource } from "@awboost/cfn-template-builder/template/resource";
2
2
  import type { ResourceOptions as $ResourceOptions } from "@awboost/cfn-template-builder/template";
3
3
  /**
4
- * Resource Type definition for AWS::S3::Bucket
4
+ * The ``AWS::S3::Bucket`` resource creates an Amazon S3 bucket in the same AWS Region where you create the AWS CloudFormation stack.
5
+ To control how AWS CloudFormation handles the bucket when the stack is deleted, you can set a deletion policy for your bucket. You can choose to *retain* the bucket or to *delete* the bucket. For more information, see [DeletionPolicy Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html).
6
+ You can only delete empty buckets. Deletion fails for buckets that have contents.
5
7
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html}
6
8
  */
7
9
  export type S3BucketProperties = {
8
10
  /**
9
- * Configuration for the transfer acceleration state.
11
+ * 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*.
10
12
  */
11
13
  AccelerateConfiguration?: AccelerateConfiguration;
12
14
  /**
13
- * A canned access control list (ACL) that grants predefined permissions to the bucket.
14
- */
15
+ * 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*.
16
+ 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*.
17
+ 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.
18
+ 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*.
19
+ */
15
20
  AccessControl?: "AuthenticatedRead" | "AwsExecRead" | "BucketOwnerFullControl" | "BucketOwnerRead" | "LogDeliveryWrite" | "Private" | "PublicRead" | "PublicReadWrite";
16
21
  /**
17
- * The configuration and any analyses for the analytics filter of an Amazon S3 bucket.
22
+ * Specifies the configuration and any analyses for the analytics filter of an Amazon S3 bucket.
18
23
  */
19
24
  AnalyticsConfigurations?: AnalyticsConfiguration[];
20
25
  /**
21
- * Specifies default encryption for a bucket using server-side encryption with either Amazon S3-managed keys (SSE-S3) or AWS KMS-managed keys (SSE-KMS).
26
+ * 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*.
22
27
  */
23
28
  BucketEncryption?: BucketEncryption;
24
29
  /**
25
- * A name for the bucket. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name.
26
- * @minLength `3`
27
- * @maxLength `63`
28
- * @pattern `^[a-z0-9][a-z0-9//.//-]*[a-z0-9]$`
29
- */
30
+ * 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*.
31
+ 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.
32
+ * @minLength `3`
33
+ * @maxLength `63`
34
+ * @pattern `^[a-z0-9][a-z0-9//.//-]*[a-z0-9]$`
35
+ */
30
36
  BucketName?: string;
31
37
  /**
32
- * Rules that define cross-origin resource sharing of objects in this bucket.
38
+ * 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*.
33
39
  */
34
40
  CorsConfiguration?: CorsConfiguration;
35
41
  /**
36
- * Specifies the S3 Intelligent-Tiering configuration for an Amazon S3 bucket.
42
+ * Defines how Amazon S3 handles Intelligent-Tiering storage.
37
43
  */
38
44
  IntelligentTieringConfigurations?: IntelligentTieringConfiguration[];
39
45
  /**
40
- * The inventory configuration for an Amazon S3 bucket.
46
+ * 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*.
41
47
  */
42
48
  InventoryConfigurations?: InventoryConfiguration[];
43
49
  /**
44
- * Rules that define how Amazon S3 manages objects during their lifetime.
50
+ * 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*.
45
51
  */
46
52
  LifecycleConfiguration?: LifecycleConfiguration;
47
53
  /**
@@ -49,7 +55,7 @@ export type S3BucketProperties = {
49
55
  */
50
56
  LoggingConfiguration?: LoggingConfiguration;
51
57
  /**
52
- * Settings that define a metrics configuration for the CloudWatch request metrics from the bucket.
58
+ * 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).
53
59
  */
54
60
  MetricsConfigurations?: MetricsConfiguration[];
55
61
  /**
@@ -57,15 +63,19 @@ export type S3BucketProperties = {
57
63
  */
58
64
  NotificationConfiguration?: NotificationConfiguration;
59
65
  /**
60
- * Places an Object Lock configuration on the specified bucket.
61
- */
66
+ * This operation is not supported by directory buckets.
67
+ 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).
68
+ + The ``DefaultRetention`` settings require both a mode and a period.
69
+ + The ``DefaultRetention`` period can be either ``Days`` or ``Years`` but you must select one. You cannot specify ``Days`` and ``Years`` at the same time.
70
+ + 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).
71
+ */
62
72
  ObjectLockConfiguration?: ObjectLockConfiguration;
63
73
  /**
64
- * Indicates whether this bucket has an Object Lock configuration enabled.
74
+ * Indicates whether this bucket has an Object Lock configuration enabled. Enable ``ObjectLockEnabled`` when you apply ``ObjectLockConfiguration`` to a bucket.
65
75
  */
66
76
  ObjectLockEnabled?: boolean;
67
77
  /**
68
- * Specifies the container element for object ownership rules.
78
+ * Configuration that defines how Amazon S3 handles Object Ownership rules.
69
79
  */
70
80
  OwnershipControls?: OwnershipControls;
71
81
  /**
@@ -73,19 +83,20 @@ export type S3BucketProperties = {
73
83
  */
74
84
  PublicAccessBlockConfiguration?: PublicAccessBlockConfiguration;
75
85
  /**
76
- * Configuration for replicating objects in an S3 bucket.
77
- */
86
+ * Configuration for replicating objects in an S3 bucket. To enable replication, you must also enable versioning by using the ``VersioningConfiguration`` property.
87
+ Amazon S3 can store replicated objects in a single destination bucket or multiple destination buckets. The destination bucket or buckets must already exist.
88
+ */
78
89
  ReplicationConfiguration?: ReplicationConfiguration;
79
90
  /**
80
91
  * An arbitrary set of tags (key-value pairs) for this S3 bucket.
81
92
  */
82
93
  Tags?: Tag[];
83
94
  /**
84
- * Describes the versioning state of an Amazon S3 bucket.
95
+ * 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.
85
96
  */
86
97
  VersioningConfiguration?: VersioningConfiguration;
87
98
  /**
88
- * Specifies website configuration parameters for an Amazon S3 bucket.
99
+ * 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).
89
100
  */
90
101
  WebsiteConfiguration?: WebsiteConfiguration;
91
102
  };
@@ -117,32 +128,36 @@ export type S3BucketAttributes = {
117
128
  };
118
129
  /**
119
130
  * Type definition for `AWS::S3::Bucket.AbortIncompleteMultipartUpload`.
120
- * Specifies the days since the initiation of an incomplete multipart upload that Amazon S3 will wait before permanently removing all parts of the upload.
131
+ * Specifies the days since the initiation of an incomplete multipart upload that Amazon S3 will wait before permanently removing all parts of the upload. For more information, see [Stopping Incomplete Multipart Uploads Using a Bucket Lifecycle Policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config) in the *Amazon S3 User Guide*.
121
132
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-abortincompletemultipartupload.html}
122
133
  */
123
134
  export type AbortIncompleteMultipartUpload = {
124
135
  /**
125
- * Specifies the number of days after which Amazon S3 aborts an incomplete multipart upload.
136
+ * Specifies the number of days after which Amazon S3 stops an incomplete multipart upload.
126
137
  * @min `0`
127
138
  */
128
139
  DaysAfterInitiation: number;
129
140
  };
130
141
  /**
131
142
  * Type definition for `AWS::S3::Bucket.AccelerateConfiguration`.
143
+ * 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*.
132
144
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-accelerateconfiguration.html}
133
145
  */
134
146
  export type AccelerateConfiguration = {
135
147
  /**
136
- * Configures the transfer acceleration state for an Amazon S3 bucket.
148
+ * Specifies the transfer acceleration status of the bucket.
137
149
  */
138
150
  AccelerationStatus: "Enabled" | "Suspended";
139
151
  };
140
152
  /**
141
153
  * Type definition for `AWS::S3::Bucket.AccessControlTranslation`.
142
- * Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the AWS account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same AWS account that owns the source object.
154
+ * Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the AWS-account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same AWS-account that owns the source object.
143
155
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-accesscontroltranslation.html}
144
156
  */
145
157
  export type AccessControlTranslation = {
158
+ /**
159
+ * Specifies the replica ownership. For default and valid values, see [PUT bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) in the *Amazon S3 API Reference*.
160
+ */
146
161
  Owner: "Destination";
147
162
  };
148
163
  /**
@@ -160,14 +175,18 @@ export type AnalyticsConfiguration = {
160
175
  */
161
176
  Prefix?: string;
162
177
  /**
163
- * Specifies data related to access patterns to be collected and made available to analyze the tradeoffs between different storage classes for an Amazon S3 bucket.
178
+ * Contains data related to access patterns to be collected and made available to analyze the tradeoffs between different storage classes.
164
179
  */
165
180
  StorageClassAnalysis: StorageClassAnalysis;
181
+ /**
182
+ * The tags to use when evaluating an analytics filter.
183
+ The analytics only includes objects that meet the filter's criteria. If no filter is specified, all of the contents of the bucket are included in the analysis.
184
+ */
166
185
  TagFilters?: TagFilter[];
167
186
  };
168
187
  /**
169
188
  * Type definition for `AWS::S3::Bucket.BucketEncryption`.
170
- * Specifies default encryption for a bucket using server-side encryption with either Amazon S3-managed keys (SSE-S3) or AWS KMS-managed keys (SSE-KMS).
189
+ * 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*.
171
190
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-bucketencryption.html}
172
191
  */
173
192
  export type BucketEncryption = {
@@ -178,23 +197,28 @@ export type BucketEncryption = {
178
197
  };
179
198
  /**
180
199
  * Type definition for `AWS::S3::Bucket.CorsConfiguration`.
200
+ * 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*.
181
201
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-corsconfiguration.html}
182
202
  */
183
203
  export type CorsConfiguration = {
204
+ /**
205
+ * A set of origins and methods (cross-origin access that you want to allow). You can add up to 100 rules to the configuration.
206
+ */
184
207
  CorsRules: CorsRule[];
185
208
  };
186
209
  /**
187
210
  * Type definition for `AWS::S3::Bucket.CorsRule`.
188
- * A set of origins and methods (cross-origin access that you want to allow). You can add up to 100 rules to the configuration.
211
+ * Specifies a cross-origin access rule for an Amazon S3 bucket.
189
212
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-corsrule.html}
190
213
  */
191
214
  export type CorsRule = {
192
215
  /**
193
- * Headers that are specified in the Access-Control-Request-Headers header.
216
+ * Headers that are specified in the ``Access-Control-Request-Headers`` header. These headers are allowed in a preflight OPTIONS request. In response to any preflight OPTIONS request, Amazon S3 returns any requested headers that are allowed.
194
217
  */
195
218
  AllowedHeaders?: string[];
196
219
  /**
197
- * An HTTP method that you allow the origin to execute.
220
+ * An HTTP method that you allow the origin to run.
221
+ *Allowed values*: ``GET`` | ``PUT`` | ``HEAD`` | ``POST`` | ``DELETE``
198
222
  */
199
223
  AllowedMethods: ("GET" | "PUT" | "HEAD" | "POST" | "DELETE")[];
200
224
  /**
@@ -202,11 +226,11 @@ export type CorsRule = {
202
226
  */
203
227
  AllowedOrigins: string[];
204
228
  /**
205
- * One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript XMLHttpRequest object).
229
+ * One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript ``XMLHttpRequest`` object).
206
230
  */
207
231
  ExposedHeaders?: string[];
208
232
  /**
209
- * A unique identifier for this rule.
233
+ * A unique identifier for this rule. The value must be no more than 255 characters.
210
234
  * @maxLength `255`
211
235
  */
212
236
  Id?: string;
@@ -223,40 +247,58 @@ export type CorsRule = {
223
247
  */
224
248
  export type DataExport = {
225
249
  /**
226
- * Specifies information about where to publish analysis or configuration results for an Amazon S3 bucket and S3 Replication Time Control (S3 RTC).
250
+ * The place to store the data for an analysis.
227
251
  */
228
252
  Destination: Destination;
229
253
  /**
230
- * The version of the output schema to use when exporting data.
254
+ * The version of the output schema to use when exporting data. Must be ``V_1``.
231
255
  */
232
256
  OutputSchemaVersion: "V_1";
233
257
  };
234
258
  /**
235
259
  * Type definition for `AWS::S3::Bucket.DefaultRetention`.
236
- * The default retention period that you want to apply to new objects placed in the specified bucket.
260
+ * The container element for specifying the default Object Lock retention settings for new objects placed in the specified bucket.
261
+ + The ``DefaultRetention`` settings require both a mode and a period.
262
+ + The ``DefaultRetention`` period can be either ``Days`` or ``Years`` but you must select one. You cannot specify ``Days`` and ``Years`` at the same time.
237
263
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-defaultretention.html}
238
264
  */
239
265
  export type DefaultRetention = {
266
+ /**
267
+ * The number of days that you want to specify for the default retention period. If Object Lock is turned on, you must specify ``Mode`` and specify either ``Days`` or ``Years``.
268
+ */
240
269
  Days?: number;
270
+ /**
271
+ * The default Object Lock retention mode you want to apply to new objects placed in the specified bucket. If Object Lock is turned on, you must specify ``Mode`` and specify either ``Days`` or ``Years``.
272
+ */
241
273
  Mode?: "COMPLIANCE" | "GOVERNANCE";
274
+ /**
275
+ * The number of years that you want to specify for the default retention period. If Object Lock is turned on, you must specify ``Mode`` and specify either ``Days`` or ``Years``.
276
+ */
242
277
  Years?: number;
243
278
  };
244
279
  /**
245
280
  * Type definition for `AWS::S3::Bucket.DeleteMarkerReplication`.
281
+ * Specifies whether Amazon S3 replicates delete markers. If you specify a ``Filter`` in your replication configuration, you must also include a ``DeleteMarkerReplication`` element. If your ``Filter`` includes a ``Tag`` element, the ``DeleteMarkerReplication`` ``Status`` must be set to Disabled, because Amazon S3 does not support replicating delete markers for tag-based rules. For an example configuration, see [Basic Rule Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config).
282
+ For more information about delete marker replication, see [Basic Rule Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html).
283
+ If you are using an earlier version of the replication configuration, Amazon S3 handles replication of delete markers differently. For more information, see [Backward Compatibility](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations).
246
284
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-deletemarkerreplication.html}
247
285
  */
248
286
  export type DeleteMarkerReplication = {
287
+ /**
288
+ * Indicates whether to replicate delete markers. Disabled by default.
289
+ */
249
290
  Status?: "Disabled" | "Enabled";
250
291
  };
251
292
  /**
252
293
  * Type definition for `AWS::S3::Bucket.Destination`.
253
- * Specifies information about where to publish analysis or configuration results for an Amazon S3 bucket and S3 Replication Time Control (S3 RTC).
294
+ * Specifies information about where to publish analysis or configuration results for an Amazon S3 bucket.
254
295
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-destination.html}
255
296
  */
256
297
  export type Destination = {
257
298
  /**
258
- * The account ID that owns the destination S3 bucket.
259
- */
299
+ * The account ID that owns the destination S3 bucket. If no account ID is provided, the owner is not validated before exporting data.
300
+ Although this value is optional, we strongly recommend that you set it to help prevent problems if the destination bucket ownership changes.
301
+ */
260
302
  BucketAccountId?: string;
261
303
  /**
262
304
  * The Amazon Resource Name (ARN) of the bucket to which data is exported.
@@ -264,6 +306,7 @@ export type Destination = {
264
306
  BucketArn: string;
265
307
  /**
266
308
  * Specifies the file format used when exporting data to Amazon S3.
309
+ *Allowed values*: ``CSV`` | ``ORC`` | ``Parquet``
267
310
  */
268
311
  Format: "CSV" | "ORC" | "Parquet";
269
312
  /**
@@ -278,35 +321,42 @@ export type Destination = {
278
321
  */
279
322
  export type EncryptionConfiguration = {
280
323
  /**
281
- * Specifies the ID (Key ARN or Alias ARN) of the customer managed customer master key (CMK) stored in AWS Key Management Service (KMS) for the destination bucket.
324
+ * Specifies the ID (Key ARN or Alias ARN) of the customer managed AWS KMS key stored in AWS Key Management Service (KMS) for the destination bucket. Amazon S3 uses this key to encrypt replica objects. Amazon S3 only supports symmetric encryption KMS keys. For more information, see [Asymmetric keys in KMS](https://docs.aws.amazon.com//kms/latest/developerguide/symmetric-asymmetric.html) in the *Key Management Service Developer Guide*.
282
325
  */
283
326
  ReplicaKmsKeyID: string;
284
327
  };
285
328
  /**
286
329
  * Type definition for `AWS::S3::Bucket.EventBridgeConfiguration`.
287
- * Describes the Amazon EventBridge notification configuration for an Amazon S3 bucket.
330
+ * Amazon S3 can send events to Amazon EventBridge whenever certain events happen in your bucket, see [Using EventBridge](https://docs.aws.amazon.com/AmazonS3/latest/userguide/EventBridge.html) in the *Amazon S3 User Guide*.
331
+ Unlike other destinations, delivery of events to EventBridge can be either enabled or disabled for a bucket. If enabled, all events will be sent to EventBridge and you can use EventBridge rules to route events to additional targets. For more information, see [What Is Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) in the *Amazon EventBridge User Guide*
288
332
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-eventbridgeconfiguration.html}
289
333
  */
290
334
  export type EventBridgeConfiguration = {
291
335
  /**
292
- * Specifies whether to send notifications to Amazon EventBridge when events occur in an Amazon S3 bucket.
336
+ * Enables delivery of events to Amazon EventBridge.
293
337
  */
294
338
  EventBridgeEnabled: boolean;
295
339
  };
296
340
  /**
297
341
  * Type definition for `AWS::S3::Bucket.FilterRule`.
298
- * Specifies the Amazon S3 object key name to filter on and whether to filter on the suffix or prefix of the key name.
342
+ * Specifies the Amazon S3 object key name to filter on. An object key name is the name assigned to an object in your Amazon S3 bucket. You specify whether to filter on the suffix or prefix of the object key name. A prefix is a specific string of characters at the beginning of an object key name, which you can use to organize objects. For example, you can start the key names of related objects with a prefix, such as ``2023-`` or ``engineering/``. Then, you can use ``FilterRule`` to find objects in a bucket with key names that have the same prefix. A suffix is similar to a prefix, but it is at the end of the object key name instead of at the beginning.
299
343
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-filterrule.html}
300
344
  */
301
345
  export type FilterRule = {
302
346
  /**
347
+ * The object key name prefix or suffix identifying one or more objects to which the filtering rule applies. The maximum length is 1,024 characters. Overlapping prefixes and suffixes are not supported. For more information, see [Configuring Event Notifications](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*.
303
348
  * @maxLength `1024`
304
349
  */
305
350
  Name: string;
351
+ /**
352
+ * The value that the filter searches for in object key names.
353
+ */
306
354
  Value: string;
307
355
  };
308
356
  /**
309
357
  * Type definition for `AWS::S3::Bucket.IntelligentTieringConfiguration`.
358
+ * Specifies the S3 Intelligent-Tiering configuration for an Amazon S3 bucket.
359
+ For information about the S3 Intelligent-Tiering storage class, see [Storage class for automatically optimizing frequently and infrequently accessed objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access).
310
360
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-intelligenttieringconfiguration.html}
311
361
  */
312
362
  export type IntelligentTieringConfiguration = {
@@ -327,21 +377,23 @@ export type IntelligentTieringConfiguration = {
327
377
  */
328
378
  TagFilters?: TagFilter[];
329
379
  /**
330
- * Specifies a list of S3 Intelligent-Tiering storage class tiers in the configuration. At least one tier must be defined in the list. At most, you can specify two tiers in the list, one for each available AccessTier: ARCHIVE_ACCESS and DEEP_ARCHIVE_ACCESS.
331
- */
380
+ * Specifies a list of S3 Intelligent-Tiering storage class tiers in the configuration. At least one tier must be defined in the list. At most, you can specify two tiers in the list, one for each available AccessTier: ``ARCHIVE_ACCESS`` and ``DEEP_ARCHIVE_ACCESS``.
381
+ You only need Intelligent Tiering Configuration enabled on a bucket if you want to automatically move objects stored in the Intelligent-Tiering storage class to Archive Access or Deep Archive Access tiers.
382
+ */
332
383
  Tierings: Tiering[];
333
384
  };
334
385
  /**
335
386
  * Type definition for `AWS::S3::Bucket.InventoryConfiguration`.
387
+ * 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*.
336
388
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventoryconfiguration.html}
337
389
  */
338
390
  export type InventoryConfiguration = {
339
391
  /**
340
- * Specifies information about where to publish analysis or configuration results for an Amazon S3 bucket and S3 Replication Time Control (S3 RTC).
392
+ * Contains information about where to publish the inventory results.
341
393
  */
342
394
  Destination: Destination;
343
395
  /**
344
- * Specifies whether the inventory is enabled or disabled.
396
+ * Specifies whether the inventory is enabled or disabled. If set to ``True``, an inventory list is generated. If set to ``False``, no inventory list is generated.
345
397
  */
346
398
  Enabled: boolean;
347
399
  /**
@@ -349,7 +401,7 @@ export type InventoryConfiguration = {
349
401
  */
350
402
  Id: string;
351
403
  /**
352
- * Object versions to include in the inventory list.
404
+ * Object versions to include in the inventory list. If set to ``All``, the list includes all the object versions, which adds the version-related fields ``VersionId``, ``IsLatest``, and ``DeleteMarker`` to the list. If set to ``Current``, the list does not contain these version-related fields.
353
405
  */
354
406
  IncludedObjectVersions: "All" | "Current";
355
407
  /**
@@ -357,7 +409,7 @@ export type InventoryConfiguration = {
357
409
  */
358
410
  OptionalFields?: ("Size" | "LastModifiedDate" | "StorageClass" | "ETag" | "IsMultipartUploaded" | "ReplicationStatus" | "EncryptionStatus" | "ObjectLockRetainUntilDate" | "ObjectLockMode" | "ObjectLockLegalHoldStatus" | "IntelligentTieringAccessTier" | "BucketKeyStatus" | "ChecksumAlgorithm" | "ObjectAccessControlList" | "ObjectOwner")[];
359
411
  /**
360
- * The prefix that is prepended to all inventory results.
412
+ * Specifies the inventory filter prefix.
361
413
  */
362
414
  Prefix?: string;
363
415
  /**
@@ -367,25 +419,26 @@ export type InventoryConfiguration = {
367
419
  };
368
420
  /**
369
421
  * Type definition for `AWS::S3::Bucket.LambdaConfiguration`.
370
- * Describes the AWS Lambda functions to invoke and the events for which to invoke them.
422
+ * Describes the LAMlong functions to invoke and the events for which to invoke them.
371
423
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lambdaconfiguration.html}
372
424
  */
373
425
  export type LambdaConfiguration = {
374
426
  /**
375
- * The Amazon S3 bucket event for which to invoke the AWS Lambda function.
427
+ * The Amazon S3 bucket event for which to invoke the LAMlong function. For more information, see [Supported Event Types](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*.
376
428
  */
377
429
  Event: string;
378
430
  /**
379
- * The filtering rules that determine which objects invoke the AWS Lambda function.
431
+ * The filtering rules that determine which objects invoke the AWS Lambda function. For example, you can create a filter so that only image files with a ``.jpg`` extension invoke the function when they are added to the Amazon S3 bucket.
380
432
  */
381
433
  Filter?: NotificationFilter;
382
434
  /**
383
- * The Amazon Resource Name (ARN) of the AWS Lambda function that Amazon S3 invokes when the specified event type occurs.
435
+ * The Amazon Resource Name (ARN) of the LAMlong function that Amazon S3 invokes when the specified event type occurs.
384
436
  */
385
437
  Function: string;
386
438
  };
387
439
  /**
388
440
  * Type definition for `AWS::S3::Bucket.LifecycleConfiguration`.
441
+ * 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*.
389
442
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfiguration.html}
390
443
  */
391
444
  export type LifecycleConfiguration = {
@@ -396,60 +449,85 @@ export type LifecycleConfiguration = {
396
449
  };
397
450
  /**
398
451
  * Type definition for `AWS::S3::Bucket.LoggingConfiguration`.
452
+ * Describes where logs are stored and the prefix that Amazon S3 assigns to all log object keys for a bucket. For examples and more information, see [PUT Bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html) in the *Amazon S3 API Reference*.
453
+ To successfully complete the ``AWS::S3::Bucket LoggingConfiguration`` request, you must have ``s3:PutObject`` and ``s3:PutObjectAcl`` in your IAM permissions.
399
454
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-loggingconfiguration.html}
400
455
  */
401
456
  export type LoggingConfiguration = {
402
457
  /**
403
- * The name of an Amazon S3 bucket where Amazon S3 store server access log files. You can store log files in any bucket that you own. By default, logs are stored in the bucket where the LoggingConfiguration property is defined.
458
+ * The name of the bucket where Amazon S3 should store server access log files. You can store log files in any bucket that you own. By default, logs are stored in the bucket where the ``LoggingConfiguration`` property is defined.
404
459
  */
405
460
  DestinationBucketName?: string;
461
+ /**
462
+ * A prefix for all log object keys. If you store log files from multiple Amazon S3 buckets in a single bucket, you can use a prefix to distinguish which log files came from which bucket.
463
+ */
406
464
  LogFilePrefix?: string;
407
465
  /**
408
- * Describes the key format for server access log file in the target bucket. You can choose between SimplePrefix and PartitionedPrefix.
466
+ * Amazon S3 key format for log objects. Only one format, either PartitionedPrefix or SimplePrefix, is allowed.
409
467
  */
410
468
  TargetObjectKeyFormat?: TargetObjectKeyFormat;
411
469
  };
412
470
  /**
413
471
  * Type definition for `AWS::S3::Bucket.Metrics`.
472
+ * A container specifying replication metrics-related settings enabling replication metrics and events.
414
473
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metrics.html}
415
474
  */
416
475
  export type Metrics = {
476
+ /**
477
+ * A container specifying the time threshold for emitting the ``s3:Replication:OperationMissedThreshold`` event.
478
+ */
417
479
  EventThreshold?: ReplicationTimeValue;
480
+ /**
481
+ * Specifies whether the replication metrics are enabled.
482
+ */
418
483
  Status: "Disabled" | "Enabled";
419
484
  };
420
485
  /**
421
486
  * Type definition for `AWS::S3::Bucket.MetricsConfiguration`.
487
+ * 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 examples, see [AWS::S3::Bucket](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#aws-properties-s3-bucket--examples). For more information, see [PUT Bucket metrics](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html) in the *Amazon S3 API Reference*.
422
488
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metricsconfiguration.html}
423
489
  */
424
490
  export type MetricsConfiguration = {
491
+ /**
492
+ * The access point that was used while performing operations on the object. The metrics configuration only includes objects that meet the filter's criteria.
493
+ */
425
494
  AccessPointArn?: string;
495
+ /**
496
+ * The ID used to identify the metrics configuration. This can be any value you choose that helps you identify your metrics configuration.
497
+ */
426
498
  Id: string;
499
+ /**
500
+ * The prefix that an object must have to be included in the metrics results.
501
+ */
427
502
  Prefix?: string;
503
+ /**
504
+ * Specifies a list of tag filters to use as a metrics configuration filter. The metrics configuration includes only objects that meet the filter's criteria.
505
+ */
428
506
  TagFilters?: TagFilter[];
429
507
  };
430
508
  /**
431
509
  * Type definition for `AWS::S3::Bucket.NoncurrentVersionExpiration`.
432
- * Container for the expiration rule that describes when noncurrent objects are expired. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 expire noncurrent object versions at a specific period in the object's lifetime
510
+ * Specifies when noncurrent object versions expire. Upon expiration, S3 permanently deletes the noncurrent object versions. You set this lifecycle configuration action on a bucket that has versioning enabled (or suspended) to request that S3 delete noncurrent object versions at a specific period in the object's lifetime. For more information about setting a lifecycle rule configuration, see [AWS::S3::Bucket Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html).
433
511
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-noncurrentversionexpiration.html}
434
512
  */
435
513
  export type NoncurrentVersionExpiration = {
436
514
  /**
437
- * Specified the number of newer noncurrent and current versions that must exists before performing the associated action
515
+ * Specifies how many noncurrent versions S3 will retain. If there are this many more recent noncurrent versions, S3 will take the associated action. For more information about noncurrent versions, see [Lifecycle configuration elements](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html) in the *Amazon S3 User Guide*.
438
516
  */
439
517
  NewerNoncurrentVersions?: number;
440
518
  /**
441
- * Specified the number of days an object is noncurrent before Amazon S3 can perform the associated action
519
+ * Specifies the number of days an object is noncurrent before S3 can perform the associated action. For information about the noncurrent days calculations, see [How Amazon S3 Calculates When an Object Became Noncurrent](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) in the *Amazon S3 User Guide*.
442
520
  */
443
521
  NoncurrentDays: number;
444
522
  };
445
523
  /**
446
524
  * Type definition for `AWS::S3::Bucket.NoncurrentVersionTransition`.
447
- * Container for the transition rule that describes when noncurrent objects transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER_IR, GLACIER, or DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER_IR, GLACIER, or DEEP_ARCHIVE storage class at a specific period in the object's lifetime.
525
+ * Container for the transition rule that describes when noncurrent objects transition to the ``STANDARD_IA``, ``ONEZONE_IA``, ``INTELLIGENT_TIERING``, ``GLACIER_IR``, ``GLACIER``, or ``DEEP_ARCHIVE`` storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to the ``STANDARD_IA``, ``ONEZONE_IA``, ``INTELLIGENT_TIERING``, ``GLACIER_IR``, ``GLACIER``, or ``DEEP_ARCHIVE`` storage class at a specific period in the object's lifetime. If you specify this property, don't specify the ``NoncurrentVersionTransitions`` property.
448
526
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-noncurrentversiontransition.html}
449
527
  */
450
528
  export type NoncurrentVersionTransition = {
451
529
  /**
452
- * Specified the number of newer noncurrent and current versions that must exists before performing the associated action
530
+ * Specifies how many noncurrent versions S3 will retain. If there are this many more recent noncurrent versions, S3 will take the associated action. For more information about noncurrent versions, see [Lifecycle configuration elements](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html) in the *Amazon S3 User Guide*.
453
531
  */
454
532
  NewerNoncurrentVersions?: number;
455
533
  /**
@@ -457,27 +535,40 @@ export type NoncurrentVersionTransition = {
457
535
  */
458
536
  StorageClass: "DEEP_ARCHIVE" | "GLACIER" | "Glacier" | "GLACIER_IR" | "INTELLIGENT_TIERING" | "ONEZONE_IA" | "STANDARD_IA";
459
537
  /**
460
- * Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action.
538
+ * Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see [How Amazon S3 Calculates How Long an Object Has Been Noncurrent](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) in the *Amazon S3 User Guide*.
461
539
  */
462
540
  TransitionInDays: number;
463
541
  };
464
542
  /**
465
543
  * Type definition for `AWS::S3::Bucket.NotificationConfiguration`.
466
544
  * Describes the notification configuration for an Amazon S3 bucket.
545
+ If you create the target resource and related permissions in the same template, you might have a circular dependency.
546
+ For example, you might use the ``AWS::Lambda::Permission`` resource to grant the bucket permission to invoke an AWS Lambda function. However, AWS CloudFormation can't create the bucket until the bucket has permission to invoke the function (AWS CloudFormation checks whether the bucket can invoke the function). If you're using Refs to pass the bucket name, this leads to a circular dependency.
547
+ To avoid this dependency, you can create all resources without specifying the notification configuration. Then, update the stack with a notification configuration.
548
+ For more information on permissions, see [AWS::Lambda::Permission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html) and [Granting Permissions to Publish Event Notification Messages to a Destination](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html#grant-destinations-permissions-to-s3).
467
549
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration.html}
468
550
  */
469
551
  export type NotificationConfiguration = {
470
552
  /**
471
- * Describes the Amazon EventBridge notification configuration for an Amazon S3 bucket.
553
+ * Enables delivery of events to Amazon EventBridge.
472
554
  */
473
555
  EventBridgeConfiguration?: EventBridgeConfiguration;
556
+ /**
557
+ * Describes the LAMlong functions to invoke and the events for which to invoke them.
558
+ */
474
559
  LambdaConfigurations?: LambdaConfiguration[];
560
+ /**
561
+ * The Amazon Simple Queue Service queues to publish messages to and the events for which to publish messages.
562
+ */
475
563
  QueueConfigurations?: QueueConfiguration[];
564
+ /**
565
+ * The topic to which notifications are sent and the events for which notifications are generated.
566
+ */
476
567
  TopicConfigurations?: TopicConfiguration[];
477
568
  };
478
569
  /**
479
570
  * Type definition for `AWS::S3::Bucket.NotificationFilter`.
480
- * Specifies object key name filtering rules.
571
+ * Specifies object key name filtering rules. For information about key name filtering, see [Configuring event notifications using object key name filtering](https://docs.aws.amazon.com/AmazonS3/latest/userguide/notification-how-to-filtering.html) in the *Amazon S3 User Guide*.
481
572
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationfilter.html}
482
573
  */
483
574
  export type NotificationFilter = {
@@ -488,35 +579,46 @@ export type NotificationFilter = {
488
579
  };
489
580
  /**
490
581
  * Type definition for `AWS::S3::Bucket.ObjectLockConfiguration`.
582
+ * 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).
491
583
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-objectlockconfiguration.html}
492
584
  */
493
585
  export type ObjectLockConfiguration = {
586
+ /**
587
+ * Indicates whether this bucket has an Object Lock configuration enabled. Enable ``ObjectLockEnabled`` when you apply ``ObjectLockConfiguration`` to a bucket.
588
+ */
494
589
  ObjectLockEnabled?: "Enabled";
495
590
  /**
496
- * The Object Lock rule in place for the specified object.
591
+ * Specifies the Object Lock rule for the specified object. Enable this rule when you apply ``ObjectLockConfiguration`` to a bucket. If Object Lock is turned on, bucket settings require both ``Mode`` and a period of either ``Days`` or ``Years``. You cannot specify ``Days`` and ``Years`` at the same time. For more information, see [ObjectLockRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-objectlockrule.html) and [DefaultRetention](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-defaultretention.html).
497
592
  */
498
593
  Rule?: ObjectLockRule;
499
594
  };
500
595
  /**
501
596
  * Type definition for `AWS::S3::Bucket.ObjectLockRule`.
502
- * The Object Lock rule in place for the specified object.
597
+ * Specifies the Object Lock rule for the specified object. Enable the this rule when you apply ``ObjectLockConfiguration`` to a bucket.
503
598
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-objectlockrule.html}
504
599
  */
505
600
  export type ObjectLockRule = {
506
601
  /**
507
- * The default retention period that you want to apply to new objects placed in the specified bucket.
602
+ * The default Object Lock retention mode and period that you want to apply to new objects placed in the specified bucket. If Object Lock is turned on, bucket settings require both ``Mode`` and a period of either ``Days`` or ``Years``. You cannot specify ``Days`` and ``Years`` at the same time. For more information about allowable values for mode and period, see [DefaultRetention](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-defaultretention.html).
508
603
  */
509
604
  DefaultRetention?: DefaultRetention;
510
605
  };
511
606
  /**
512
607
  * Type definition for `AWS::S3::Bucket.OwnershipControls`.
608
+ * Specifies the container element for Object Ownership rules.
609
+ S3 Object Ownership is an Amazon S3 bucket-level setting that you can use to disable access control lists (ACLs) and take ownership of every object in your bucket, simplifying access management for data stored in Amazon S3. For more information, see [Controlling ownership of objects and disabling ACLs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) in the *Amazon S3 User Guide*.
513
610
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrols.html}
514
611
  */
515
612
  export type OwnershipControls = {
613
+ /**
614
+ * Specifies the container element for Object Ownership rules.
615
+ */
516
616
  Rules: OwnershipControlsRule[];
517
617
  };
518
618
  /**
519
619
  * Type definition for `AWS::S3::Bucket.OwnershipControlsRule`.
620
+ * Specifies an Object Ownership rule.
621
+ S3 Object Ownership is an Amazon S3 bucket-level setting that you can use to disable access control lists (ACLs) and take ownership of every object in your bucket, simplifying access management for data stored in Amazon S3. For more information, see [Controlling ownership of objects and disabling ACLs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) in the *Amazon S3 User Guide*.
520
622
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrolsrule.html}
521
623
  */
522
624
  export type OwnershipControlsRule = {
@@ -527,60 +629,64 @@ export type OwnershipControlsRule = {
527
629
  };
528
630
  /**
529
631
  * Type definition for `AWS::S3::Bucket.PartitionedPrefix`.
530
- * This format appends a time based prefix to the given log file prefix for delivering server access log file.
632
+ * Amazon S3 keys for log objects are partitioned in the following format:
633
+ ``[DestinationPrefix][SourceAccountId]/[SourceRegion]/[SourceBucket]/[YYYY]/[MM]/[DD]/[YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]``
634
+ PartitionedPrefix defaults to EventTime delivery when server access logs are delivered.
531
635
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-partitionedprefix.html}
532
636
  */
533
637
  export type PartitionedPrefix = {
534
638
  /**
535
- * Date Source for creating a partitioned prefix. This can be event time or delivery time.
639
+ * Specifies the partition date source for the partitioned prefix. PartitionDateSource can be EventTime or DeliveryTime.
536
640
  */
537
641
  PartitionDateSource?: "EventTime" | "DeliveryTime";
538
642
  };
539
643
  /**
540
644
  * Type definition for `AWS::S3::Bucket.PublicAccessBlockConfiguration`.
541
- * Configuration that defines how Amazon S3 handles public access.
645
+ * The PublicAccessBlock configuration that you want to apply to this Amazon S3 bucket. You can enable the configuration options in any combination. For more information about when Amazon S3 considers a bucket or object public, see [The Meaning of "Public"](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) in the *Amazon S3 User Guide*.
542
646
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-publicaccessblockconfiguration.html}
543
647
  */
544
648
  export type PublicAccessBlockConfiguration = {
545
649
  /**
546
- * Specifies whether Amazon S3 should block public access control lists (ACLs) for this bucket and objects in this bucket. Setting this element to TRUE causes the following behavior:
547
- - PUT Bucket acl and PUT Object acl calls fail if the specified ACL is public.
548
- - PUT Object calls fail if the request includes a public ACL.
549
- Enabling this setting doesn't affect existing policies or ACLs.
650
+ * Specifies whether Amazon S3 should block public access control lists (ACLs) for this bucket and objects in this bucket. Setting this element to ``TRUE`` causes the following behavior:
651
+ + PUT Bucket ACL and PUT Object ACL calls fail if the specified ACL is public.
652
+ + PUT Object calls fail if the request includes a public ACL.
653
+ + PUT Bucket calls fail if the request includes a public ACL.
654
+
655
+ Enabling this setting doesn't affect existing policies or ACLs.
550
656
  */
551
657
  BlockPublicAcls?: boolean;
552
658
  /**
553
- * Specifies whether Amazon S3 should block public bucket policies for this bucket. Setting this element to TRUE causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access.
554
- Enabling this setting doesn't affect existing bucket policies.
659
+ * Specifies whether Amazon S3 should block public bucket policies for this bucket. Setting this element to ``TRUE`` causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access.
660
+ Enabling this setting doesn't affect existing bucket policies.
555
661
  */
556
662
  BlockPublicPolicy?: boolean;
557
663
  /**
558
- * Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket. Setting this element to TRUE causes Amazon S3 to ignore all public ACLs on this bucket and objects in this bucket.
559
- Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set.
664
+ * Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket. Setting this element to ``TRUE`` causes Amazon S3 to ignore all public ACLs on this bucket and objects in this bucket.
665
+ Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set.
560
666
  */
561
667
  IgnorePublicAcls?: boolean;
562
668
  /**
563
- * Specifies whether Amazon S3 should restrict public bucket policies for this bucket. Setting this element to TRUE restricts access to this bucket to only AWS services and authorized users within this account if the bucket has a public policy.
564
- Enabling this setting doesn't affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked.
669
+ * Specifies whether Amazon S3 should restrict public bucket policies for this bucket. Setting this element to ``TRUE`` restricts access to this bucket to only AWS-service principals and authorized users within this account if the bucket has a public policy.
670
+ Enabling this setting doesn't affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked.
565
671
  */
566
672
  RestrictPublicBuckets?: boolean;
567
673
  };
568
674
  /**
569
675
  * Type definition for `AWS::S3::Bucket.QueueConfiguration`.
570
- * The Amazon Simple Queue Service queues to publish messages to and the events for which to publish messages.
676
+ * Specifies the configuration for publishing messages to an Amazon Simple Queue Service (Amazon SQS) queue when Amazon S3 detects specified events.
571
677
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-queueconfiguration.html}
572
678
  */
573
679
  export type QueueConfiguration = {
574
680
  /**
575
- * The Amazon S3 bucket event about which you want to publish messages to Amazon SQS.
681
+ * The Amazon S3 bucket event about which you want to publish messages to Amazon SQS. For more information, see [Supported Event Types](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*.
576
682
  */
577
683
  Event: string;
578
684
  /**
579
- * The filtering rules that determine which objects trigger notifications.
685
+ * The filtering rules that determine which objects trigger notifications. For example, you can create a filter so that Amazon S3 sends notifications only when image files with a ``.jpg`` extension are added to the bucket. For more information, see [Configuring event notifications using object key name filtering](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/notification-how-to-filtering.html) in the *Amazon S3 User Guide*.
580
686
  */
581
687
  Filter?: NotificationFilter;
582
688
  /**
583
- * The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3 publishes a message when it detects events of the specified type.
689
+ * The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3 publishes a message when it detects events of the specified type. FIFO queues are not allowed when enabling an SQS queue as the event notification destination.
584
690
  */
585
691
  Queue: string;
586
692
  };
@@ -618,60 +724,78 @@ export type RedirectRule = {
618
724
  */
619
725
  Protocol?: "http" | "https";
620
726
  /**
621
- * The object key prefix to use in the redirect request.
622
- */
727
+ * The object key prefix to use in the redirect request. For example, to redirect requests for all pages with prefix ``docs/`` (objects in the ``docs/`` folder) to ``documents/``, you can set a condition block with ``KeyPrefixEquals`` set to ``docs/`` and in the Redirect set ``ReplaceKeyPrefixWith`` to ``/documents``. Not required if one of the siblings is present. Can be present only if ``ReplaceKeyWith`` is not provided.
728
+ Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints).
729
+ */
623
730
  ReplaceKeyPrefixWith?: string;
624
731
  /**
625
- * The specific object key to use in the redirect request.d
626
- */
732
+ * The specific object key to use in the redirect request. For example, redirect request to ``error.html``. Not required if one of the siblings is present. Can be present only if ``ReplaceKeyPrefixWith`` is not provided.
733
+ Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints).
734
+ */
627
735
  ReplaceKeyWith?: string;
628
736
  };
629
737
  /**
630
738
  * Type definition for `AWS::S3::Bucket.ReplicaModifications`.
739
+ * A filter that you can specify for selection for modifications on replicas.
631
740
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicamodifications.html}
632
741
  */
633
742
  export type ReplicaModifications = {
634
743
  /**
635
744
  * Specifies whether Amazon S3 replicates modifications on replicas.
745
+ *Allowed values*: ``Enabled`` | ``Disabled``
636
746
  */
637
747
  Status: "Enabled" | "Disabled";
638
748
  };
639
749
  /**
640
750
  * Type definition for `AWS::S3::Bucket.ReplicationConfiguration`.
641
- * A container for replication rules. You can add up to 1,000 rules. The maximum size of a replication configuration is 2 MB.
751
+ * A container for replication rules. You can add up to 1,000 rules. The maximum size of a replication configuration is 2 MB. The latest version of the replication configuration XML is V2. For more information about XML V2 replication configurations, see [Replication configuration](https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication-add-config.html) in the *Amazon S3 User Guide*.
642
752
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration.html}
643
753
  */
644
754
  export type ReplicationConfiguration = {
645
755
  /**
646
- * The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that Amazon S3 assumes when replicating objects.
756
+ * The Amazon Resource Name (ARN) of the IAMlong (IAM) role that Amazon S3 assumes when replicating objects. For more information, see [How to Set Up Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-how-setup.html) in the *Amazon S3 User Guide*.
647
757
  */
648
758
  Role: string;
649
759
  /**
650
- * A container for one or more replication rules.
760
+ * A container for one or more replication rules. A replication configuration must have at least one rule and can contain a maximum of 1,000 rules.
651
761
  */
652
762
  Rules: ReplicationRule[];
653
763
  };
654
764
  /**
655
765
  * Type definition for `AWS::S3::Bucket.ReplicationDestination`.
656
- * Specifies which Amazon S3 bucket to store replicated objects in and their storage class.
766
+ * A container for information about the replication destination and its configurations including enabling the S3 Replication Time Control (S3 RTC).
657
767
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationdestination.html}
658
768
  */
659
769
  export type ReplicationDestination = {
660
770
  /**
661
- * Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the AWS account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same AWS account that owns the source object.
771
+ * Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the AWS-account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same AWS-account that owns the source object.
662
772
  */
663
773
  AccessControlTranslation?: AccessControlTranslation;
774
+ /**
775
+ * Destination bucket owner account ID. In a cross-account scenario, if you direct Amazon S3 to change replica ownership to the AWS-account that owns the destination bucket by specifying the ``AccessControlTranslation`` property, this is the account ID of the destination bucket owner. For more information, see [Cross-Region Replication Additional Configuration: Change Replica Owner](https://docs.aws.amazon.com/AmazonS3/latest/dev/crr-change-owner.html) in the *Amazon S3 User Guide*.
776
+ If you specify the ``AccessControlTranslation`` property, the ``Account`` property is required.
777
+ */
664
778
  Account?: string;
779
+ /**
780
+ * The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to store the results.
781
+ */
665
782
  Bucket: string;
666
783
  /**
667
- * Specifies encryption-related information for an Amazon S3 bucket that is a destination for replicated objects.
784
+ * Specifies encryption-related information.
668
785
  */
669
786
  EncryptionConfiguration?: EncryptionConfiguration;
787
+ /**
788
+ * A container specifying replication metrics-related settings enabling replication metrics and events.
789
+ */
670
790
  Metrics?: Metrics;
671
- ReplicationTime?: ReplicationTime;
672
791
  /**
673
- * The storage class to use when replicating objects, such as S3 Standard or reduced redundancy.
792
+ * A container specifying S3 Replication Time Control (S3 RTC), including whether S3 RTC is enabled and the time when all objects and operations on objects must be replicated. Must be specified together with a ``Metrics`` block.
674
793
  */
794
+ ReplicationTime?: ReplicationTime;
795
+ /**
796
+ * The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica.
797
+ For valid values, see the ``StorageClass`` element of the [PUT Bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) action in the *Amazon S3 API Reference*.
798
+ */
675
799
  StorageClass?: "DEEP_ARCHIVE" | "GLACIER" | "GLACIER_IR" | "INTELLIGENT_TIERING" | "ONEZONE_IA" | "REDUCED_REDUNDANCY" | "STANDARD" | "STANDARD_IA";
676
800
  };
677
801
  /**
@@ -680,25 +804,39 @@ export type ReplicationDestination = {
680
804
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationrule.html}
681
805
  */
682
806
  export type ReplicationRule = {
807
+ /**
808
+ * Specifies whether Amazon S3 replicates delete markers. If you specify a ``Filter`` in your replication configuration, you must also include a ``DeleteMarkerReplication`` element. If your ``Filter`` includes a ``Tag`` element, the ``DeleteMarkerReplication`` ``Status`` must be set to Disabled, because Amazon S3 does not support replicating delete markers for tag-based rules. For an example configuration, see [Basic Rule Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config).
809
+ For more information about delete marker replication, see [Basic Rule Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html).
810
+ If you are using an earlier version of the replication configuration, Amazon S3 handles replication of delete markers differently. For more information, see [Backward Compatibility](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations).
811
+ */
683
812
  DeleteMarkerReplication?: DeleteMarkerReplication;
684
813
  /**
685
- * Specifies which Amazon S3 bucket to store replicated objects in and their storage class.
814
+ * A container for information about the replication destination and its configurations including enabling the S3 Replication Time Control (S3 RTC).
686
815
  */
687
816
  Destination: ReplicationDestination;
817
+ /**
818
+ * A filter that identifies the subset of objects to which the replication rule applies. A ``Filter`` must specify exactly one ``Prefix``, ``TagFilter``, or an ``And`` child element. The use of the filter field indicates that this is a V2 replication configuration. This field isn't supported in a V1 replication configuration.
819
+ V1 replication configuration only supports filtering by key prefix. To filter using a V1 replication configuration, add the ``Prefix`` directly as a child element of the ``Rule`` element.
820
+ */
688
821
  Filter?: ReplicationRuleFilter;
689
822
  /**
690
- * A unique identifier for the rule.
823
+ * A unique identifier for the rule. The maximum value is 255 characters. If you don't specify a value, AWS CloudFormation generates a random ID. When using a V2 replication configuration this property is capitalized as "ID".
691
824
  * @maxLength `255`
692
825
  */
693
826
  Id?: string;
694
827
  /**
695
- * An object key name prefix that identifies the object or objects to which the rule applies.
696
- * @maxLength `1024`
697
- */
828
+ * An object key name prefix that identifies the object or objects to which the rule applies. The maximum prefix length is 1,024 characters. To include all objects in a bucket, specify an empty string. To filter using a V1 replication configuration, add the ``Prefix`` directly as a child element of the ``Rule`` element.
829
+ Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints).
830
+ * @maxLength `1024`
831
+ */
698
832
  Prefix?: string;
833
+ /**
834
+ * The priority indicates which rule has precedence whenever two or more replication rules conflict. Amazon S3 will attempt to replicate objects according to all replication rules. However, if there are two or more rules with the same destination bucket, then objects will be replicated according to the rule with the highest priority. The higher the number, the higher the priority.
835
+ For more information, see [Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) in the *Amazon S3 User Guide*.
836
+ */
699
837
  Priority?: number;
700
838
  /**
701
- * A container that describes additional filters for identifying the source objects that you want to replicate.
839
+ * A container that describes additional filters for identifying the source objects that you want to replicate. You can choose to enable or disable the replication of these objects.
702
840
  */
703
841
  SourceSelectionCriteria?: SourceSelectionCriteria;
704
842
  /**
@@ -708,42 +846,75 @@ export type ReplicationRule = {
708
846
  };
709
847
  /**
710
848
  * Type definition for `AWS::S3::Bucket.ReplicationRuleAndOperator`.
849
+ * A container for specifying rule filters. The filters determine the subset of objects to which the rule applies. This element is required only if you specify more than one filter.
850
+ For example:
851
+ + If you specify both a ``Prefix`` and a ``TagFilter``, wrap these filters in an ``And`` tag.
852
+ + If you specify a filter based on multiple tags, wrap the ``TagFilter`` elements in an ``And`` tag
711
853
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationruleandoperator.html}
712
854
  */
713
855
  export type ReplicationRuleAndOperator = {
856
+ /**
857
+ * An object key name prefix that identifies the subset of objects to which the rule applies.
858
+ */
714
859
  Prefix?: string;
860
+ /**
861
+ * An array of tags containing key and value pairs.
862
+ */
715
863
  TagFilters?: TagFilter[];
716
864
  };
717
865
  /**
718
866
  * Type definition for `AWS::S3::Bucket.ReplicationRuleFilter`.
867
+ * A filter that identifies the subset of objects to which the replication rule applies. A ``Filter`` must specify exactly one ``Prefix``, ``TagFilter``, or an ``And`` child element.
719
868
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationrulefilter.html}
720
869
  */
721
870
  export type ReplicationRuleFilter = {
871
+ /**
872
+ * A container for specifying rule filters. The filters determine the subset of objects to which the rule applies. This element is required only if you specify more than one filter. For example:
873
+ + If you specify both a ``Prefix`` and a ``TagFilter``, wrap these filters in an ``And`` tag.
874
+ + If you specify a filter based on multiple tags, wrap the ``TagFilter`` elements in an ``And`` tag.
875
+ */
722
876
  And?: ReplicationRuleAndOperator;
877
+ /**
878
+ * An object key name prefix that identifies the subset of objects to which the rule applies.
879
+ Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints).
880
+ */
723
881
  Prefix?: string;
724
882
  /**
725
- * Tags to use to identify a subset of objects for an Amazon S3 bucket.
726
- */
883
+ * A container for specifying a tag key and value.
884
+ The rule applies only to objects that have the tag in their tag set.
885
+ */
727
886
  TagFilter?: TagFilter;
728
887
  };
729
888
  /**
730
889
  * Type definition for `AWS::S3::Bucket.ReplicationTime`.
890
+ * A container specifying S3 Replication Time Control (S3 RTC) related information, including whether S3 RTC is enabled and the time when all objects and operations on objects must be replicated. Must be specified together with a ``Metrics`` block.
731
891
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationtime.html}
732
892
  */
733
893
  export type ReplicationTime = {
894
+ /**
895
+ * Specifies whether the replication time is enabled.
896
+ */
734
897
  Status: "Disabled" | "Enabled";
898
+ /**
899
+ * A container specifying the time by which replication should be complete for all objects and operations on objects.
900
+ */
735
901
  Time: ReplicationTimeValue;
736
902
  };
737
903
  /**
738
904
  * Type definition for `AWS::S3::Bucket.ReplicationTimeValue`.
905
+ * A container specifying the time value for S3 Replication Time Control (S3 RTC) and replication metrics ``EventThreshold``.
739
906
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationtimevalue.html}
740
907
  */
741
908
  export type ReplicationTimeValue = {
909
+ /**
910
+ * Contains an integer specifying time in minutes.
911
+ Valid value: 15
912
+ */
742
913
  Minutes: number;
743
914
  };
744
915
  /**
745
916
  * Type definition for `AWS::S3::Bucket.RoutingRule`.
746
- * Specifies the redirect behavior and when a redirect is applied.
917
+ * Specifies the redirect behavior and when a redirect is applied. For more information about routing rules, see [Configuring advanced conditional redirects](https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html#advanced-conditional-redirects) in the *Amazon S3 User Guide*.
747
918
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-routingrule.html}
748
919
  */
749
920
  export type RoutingRule = {
@@ -752,93 +923,139 @@ export type RoutingRule = {
752
923
  */
753
924
  RedirectRule: RedirectRule;
754
925
  /**
755
- * A container for describing a condition that must be met for the specified redirect to apply.You must specify at least one of HttpErrorCodeReturnedEquals and KeyPrefixEquals
926
+ * A container for describing a condition that must be met for the specified redirect to apply. For example, 1. If request is for pages in the ``/docs`` folder, redirect to the ``/documents`` folder. 2. If request results in HTTP error 4xx, redirect request to another host where you might process the error.
756
927
  */
757
928
  RoutingRuleCondition?: RoutingRuleCondition;
758
929
  };
759
930
  /**
760
931
  * Type definition for `AWS::S3::Bucket.RoutingRuleCondition`.
761
- * A container for describing a condition that must be met for the specified redirect to apply.You must specify at least one of HttpErrorCodeReturnedEquals and KeyPrefixEquals
932
+ * A container for describing a condition that must be met for the specified redirect to apply. For example, 1. If request is for pages in the ``/docs`` folder, redirect to the ``/documents`` folder. 2. If request results in HTTP error 4xx, redirect request to another host where you might process the error.
762
933
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-routingrulecondition.html}
763
934
  */
764
935
  export type RoutingRuleCondition = {
765
936
  /**
766
- * The HTTP error code when the redirect is applied.
767
- */
937
+ * The HTTP error code when the redirect is applied. In the event of an error, if the error code equals this value, then the specified redirect is applied.
938
+ Required when parent element ``Condition`` is specified and sibling ``KeyPrefixEquals`` is not specified. If both are specified, then both must be true for the redirect to be applied.
939
+ */
768
940
  HttpErrorCodeReturnedEquals?: string;
769
941
  /**
770
- * The object key name prefix when the redirect is applied.
771
- */
942
+ * The object key name prefix when the redirect is applied. For example, to redirect requests for ``ExamplePage.html``, the key prefix will be ``ExamplePage.html``. To redirect request for all pages with the prefix ``docs/``, the key prefix will be ``/docs``, which identifies all objects in the docs/ folder.
943
+ Required when the parent element ``Condition`` is specified and sibling ``HttpErrorCodeReturnedEquals`` is not specified. If both conditions are specified, both must be true for the redirect to be applied.
944
+ */
772
945
  KeyPrefixEquals?: string;
773
946
  };
774
947
  /**
775
948
  * Type definition for `AWS::S3::Bucket.Rule`.
776
- * You must specify at least one of the following properties: AbortIncompleteMultipartUpload, ExpirationDate, ExpirationInDays, NoncurrentVersionExpirationInDays, NoncurrentVersionTransition, NoncurrentVersionTransitions, Transition, or Transitions.
949
+ * Specifies lifecycle rules for an Amazon S3 bucket. For more information, see [Put Bucket Lifecycle Configuration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlifecycle.html) in the *Amazon S3 API Reference*.
950
+ You must specify at least one of the following properties: ``AbortIncompleteMultipartUpload``, ``ExpirationDate``, ``ExpirationInDays``, ``NoncurrentVersionExpirationInDays``, ``NoncurrentVersionTransition``, ``NoncurrentVersionTransitions``, ``Transition``, or ``Transitions``.
777
951
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-rule.html}
778
952
  */
779
953
  export type Rule = {
780
954
  /**
781
- * Specifies the days since the initiation of an incomplete multipart upload that Amazon S3 will wait before permanently removing all parts of the upload.
955
+ * Specifies a lifecycle rule that stops incomplete multipart uploads to an Amazon S3 bucket.
782
956
  */
783
957
  AbortIncompleteMultipartUpload?: AbortIncompleteMultipartUpload;
784
958
  /**
785
- * The date value in ISO 8601 format. The timezone is always UTC. (YYYY-MM-DDThh:mm:ssZ)
959
+ * Indicates when objects are deleted from Amazon S3 and Amazon S3 Glacier. The date value must be in ISO 8601 format. The time is always midnight UTC. If you specify an expiration and transition time, you must use the same time unit for both properties (either in days or by date). The expiration time must also be later than the transition time.
786
960
  * @pattern `^([0-2]\d{3})-(0[0-9]|1[0-2])-([0-2]\d|3[01])T([01]\d|2[0-4]):([0-5]\d):([0-6]\d)((\.\d{3})?)Z$`
787
961
  */
788
962
  ExpirationDate?: string;
963
+ /**
964
+ * Indicates the number of days after creation when objects are deleted from Amazon S3 and Amazon S3 Glacier. If you specify an expiration and transition time, you must use the same time unit for both properties (either in days or by date). The expiration time must also be later than the transition time.
965
+ */
789
966
  ExpirationInDays?: number;
967
+ /**
968
+ * Indicates whether Amazon S3 will remove a delete marker without any noncurrent versions. If set to true, the delete marker will be removed if there are no noncurrent versions. This cannot be specified with ``ExpirationInDays``, ``ExpirationDate``, or ``TagFilters``.
969
+ */
790
970
  ExpiredObjectDeleteMarker?: boolean;
791
971
  /**
972
+ * Unique identifier for the rule. The value can't be longer than 255 characters.
792
973
  * @maxLength `255`
793
974
  */
794
975
  Id?: string;
795
976
  /**
796
- * Container for the expiration rule that describes when noncurrent objects are expired. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 expire noncurrent object versions at a specific period in the object's lifetime
977
+ * Specifies when noncurrent object versions expire. Upon expiration, S3 permanently deletes the noncurrent object versions. You set this lifecycle configuration action on a bucket that has versioning enabled (or suspended) to request that S3 delete noncurrent object versions at a specific period in the object's lifetime.
797
978
  */
798
979
  NoncurrentVersionExpiration?: NoncurrentVersionExpiration;
980
+ /**
981
+ * (Deprecated.) For buckets with versioning enabled (or suspended), specifies the time, in days, between when a new version of the object is uploaded to the bucket and when old versions of the object expire. When object versions expire, Amazon S3 permanently deletes them. If you specify a transition and expiration time, the expiration time must be later than the transition time.
982
+ */
799
983
  NoncurrentVersionExpirationInDays?: number;
800
984
  /**
801
- * Container for the transition rule that describes when noncurrent objects transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER_IR, GLACIER, or DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER_IR, GLACIER, or DEEP_ARCHIVE storage class at a specific period in the object's lifetime.
985
+ * (Deprecated.) For buckets with versioning enabled (or suspended), specifies when non-current objects transition to a specified storage class. If you specify a transition and expiration time, the expiration time must be later than the transition time. If you specify this property, don't specify the ``NoncurrentVersionTransitions`` property.
802
986
  */
803
987
  NoncurrentVersionTransition?: NoncurrentVersionTransition;
988
+ /**
989
+ * For buckets with versioning enabled (or suspended), one or more transition rules that specify when non-current objects transition to a specified storage class. If you specify a transition and expiration time, the expiration time must be later than the transition time. If you specify this property, don't specify the ``NoncurrentVersionTransition`` property.
990
+ */
804
991
  NoncurrentVersionTransitions?: NoncurrentVersionTransition[];
805
992
  /**
993
+ * Specifies the minimum object size in bytes for this rule to apply to. Objects must be larger than this value in bytes. For more information about size based rules, see [Lifecycle configuration using size-based rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html#lc-size-rules) in the *Amazon S3 User Guide*.
806
994
  * @maxLength `20`
807
995
  * @pattern `[0-9]+`
808
996
  */
809
997
  ObjectSizeGreaterThan?: string;
810
998
  /**
999
+ * Specifies the maximum object size in bytes for this rule to apply to. Objects must be smaller than this value in bytes. For more information about sized based rules, see [Lifecycle configuration using size-based rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html#lc-size-rules) in the *Amazon S3 User Guide*.
811
1000
  * @maxLength `20`
812
1001
  * @pattern `[0-9]+`
813
1002
  */
814
1003
  ObjectSizeLessThan?: string;
1004
+ /**
1005
+ * Object key prefix that identifies one or more objects to which this rule applies.
1006
+ Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints).
1007
+ */
815
1008
  Prefix?: string;
1009
+ /**
1010
+ * If ``Enabled``, the rule is currently being applied. If ``Disabled``, the rule is not currently being applied.
1011
+ */
816
1012
  Status: "Enabled" | "Disabled";
1013
+ /**
1014
+ * Tags to use to identify a subset of objects to which the lifecycle rule applies.
1015
+ */
817
1016
  TagFilters?: TagFilter[];
818
1017
  /**
819
- * You must specify at least one of "TransitionDate" and "TransitionInDays"
1018
+ * (Deprecated.) Specifies when an object transitions to a specified storage class. If you specify an expiration and transition time, you must use the same time unit for both properties (either in days or by date). The expiration time must also be later than the transition time. If you specify this property, don't specify the ``Transitions`` property.
820
1019
  */
821
1020
  Transition?: Transition;
1021
+ /**
1022
+ * One or more transition rules that specify when an object transitions to a specified storage class. If you specify an expiration and transition time, you must use the same time unit for both properties (either in days or by date). The expiration time must also be later than the transition time. If you specify this property, don't specify the ``Transition`` property.
1023
+ */
822
1024
  Transitions?: Transition[];
823
1025
  };
824
1026
  /**
825
1027
  * Type definition for `AWS::S3::Bucket.S3KeyFilter`.
826
- * A container for object key name prefix and suffix filtering rules.
1028
+ * A container for object key name prefix and suffix filtering rules. For more information about object key name filtering, see [Configuring event notifications using object key name filtering](https://docs.aws.amazon.com/AmazonS3/latest/userguide/notification-how-to-filtering.html) in the *Amazon S3 User Guide*.
1029
+ The same type of filter rule cannot be used more than once. For example, you cannot specify two prefix rules.
827
1030
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-s3keyfilter.html}
828
1031
  */
829
1032
  export type S3KeyFilter = {
1033
+ /**
1034
+ * A list of containers for the key-value pair that defines the criteria for the filter rule.
1035
+ */
830
1036
  Rules: FilterRule[];
831
1037
  };
832
1038
  /**
833
1039
  * Type definition for `AWS::S3::Bucket.ServerSideEncryptionByDefault`.
834
- * Specifies the default server-side encryption to apply to new objects in the bucket. If a PUT Object request doesn't specify any server-side encryption, this default encryption will be applied.
1040
+ * Describes the default server-side encryption to apply to new objects in the bucket. If a PUT Object request doesn't specify any server-side encryption, this default encryption will be applied. If you don't specify a customer managed key at configuration, Amazon S3 automatically creates an AWS KMS key in your AWS account the first time that you add an object encrypted with SSE-KMS to a bucket. By default, Amazon S3 uses this KMS key for SSE-KMS. For more information, see [PUT Bucket encryption](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html) in the *Amazon S3 API Reference*.
835
1041
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionbydefault.html}
836
1042
  */
837
1043
  export type ServerSideEncryptionByDefault = {
838
1044
  /**
839
- * "KMSMasterKeyID" can only be used when you set the value of SSEAlgorithm as aws:kms or aws:kms:dsse.
840
- */
1045
+ * AWS Key Management Service (KMS) customer AWS KMS key ID to use for the default encryption. This parameter is allowed if and only if ``SSEAlgorithm`` is set to ``aws:kms`` or ``aws:kms:dsse``.
1046
+ You can specify the key ID, key alias, or the Amazon Resource Name (ARN) of the KMS key.
1047
+ + Key ID: ``1234abcd-12ab-34cd-56ef-1234567890ab``
1048
+ + Key ARN: ``arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab``
1049
+ + Key Alias: ``alias/alias-name``
1050
+
1051
+ If you use a key ID, you can run into a LogDestination undeliverable error when creating a VPC flow log.
1052
+ If you are using encryption with cross-account or AWS service operations you must use a fully qualified KMS key ARN. For more information, see [Using encryption for cross-account operations](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy).
1053
+ Amazon S3 only supports symmetric encryption KMS keys. For more information, see [Asymmetric keys in KMS](https://docs.aws.amazon.com//kms/latest/developerguide/symmetric-asymmetric.html) in the *Key Management Service Developer Guide*.
1054
+ */
841
1055
  KMSMasterKeyID?: string;
1056
+ /**
1057
+ * Server-side encryption algorithm to use for the default encryption.
1058
+ */
842
1059
  SSEAlgorithm: "aws:kms" | "AES256" | "aws:kms:dsse";
843
1060
  };
844
1061
  /**
@@ -848,8 +1065,9 @@ export type ServerSideEncryptionByDefault = {
848
1065
  */
849
1066
  export type ServerSideEncryptionRule = {
850
1067
  /**
851
- * Specifies whether Amazon S3 should use an S3 Bucket Key with server-side encryption using KMS (SSE-KMS) for new objects in the bucket. Existing objects are not affected. Setting the BucketKeyEnabled element to true causes Amazon S3 to use an S3 Bucket Key. By default, S3 Bucket Key is not enabled.
852
- */
1068
+ * Specifies whether Amazon S3 should use an S3 Bucket Key with server-side encryption using KMS (SSE-KMS) for new objects in the bucket. Existing objects are not affected. Setting the ``BucketKeyEnabled`` element to ``true`` causes Amazon S3 to use an S3 Bucket Key. By default, S3 Bucket Key is not enabled.
1069
+ For more information, see [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) in the *Amazon S3 User Guide*.
1070
+ */
853
1071
  BucketKeyEnabled?: boolean;
854
1072
  /**
855
1073
  * Specifies the default server-side encryption to apply to new objects in the bucket. If a PUT Object request doesn't specify any server-side encryption, this default encryption will be applied.
@@ -858,7 +1076,7 @@ export type ServerSideEncryptionRule = {
858
1076
  };
859
1077
  /**
860
1078
  * Type definition for `AWS::S3::Bucket.SourceSelectionCriteria`.
861
- * A container that describes additional filters for identifying the source objects that you want to replicate.
1079
+ * A container that describes additional filters for identifying the source objects that you want to replicate. You can choose to enable or disable the replication of these objects.
862
1080
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-sourceselectioncriteria.html}
863
1081
  */
864
1082
  export type SourceSelectionCriteria = {
@@ -878,7 +1096,7 @@ export type SourceSelectionCriteria = {
878
1096
  */
879
1097
  export type SseKmsEncryptedObjects = {
880
1098
  /**
881
- * Specifies whether Amazon S3 replicates objects created with server-side encryption using a customer master key (CMK) stored in AWS Key Management Service.
1099
+ * Specifies whether Amazon S3 replicates objects created with server-side encryption using an AWS KMS key stored in AWS Key Management Service.
882
1100
  */
883
1101
  Status: "Disabled" | "Enabled";
884
1102
  };
@@ -895,26 +1113,35 @@ export type StorageClassAnalysis = {
895
1113
  };
896
1114
  /**
897
1115
  * Type definition for `AWS::S3::Bucket.Tag`.
1116
+ * A container of a key value name pair.
898
1117
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tag.html}
899
1118
  */
900
1119
  export type Tag = {
901
1120
  /**
1121
+ * Name of the object key.
902
1122
  * @minLength `1`
903
1123
  * @maxLength `128`
904
1124
  */
905
1125
  Key: string;
906
1126
  /**
1127
+ * Value of the tag.
907
1128
  * @maxLength `256`
908
1129
  */
909
1130
  Value: string;
910
1131
  };
911
1132
  /**
912
1133
  * Type definition for `AWS::S3::Bucket.TagFilter`.
913
- * Tags to use to identify a subset of objects for an Amazon S3 bucket.
1134
+ * Specifies tags to use to identify a subset of objects for an Amazon S3 bucket.
914
1135
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html}
915
1136
  */
916
1137
  export type TagFilter = {
1138
+ /**
1139
+ * The tag key.
1140
+ */
917
1141
  Key: string;
1142
+ /**
1143
+ * The tag value.
1144
+ */
918
1145
  Value: string;
919
1146
  };
920
1147
  /**
@@ -929,17 +1156,20 @@ export type TargetObjectKeyFormat = {
929
1156
  SimplePrefix: Record<string, any>;
930
1157
  } | {
931
1158
  /**
932
- * This format appends a time based prefix to the given log file prefix for delivering server access log file.
933
- */
1159
+ * Amazon S3 keys for log objects are partitioned in the following format:
1160
+ ``[DestinationPrefix][SourceAccountId]/[SourceRegion]/[SourceBucket]/[YYYY]/[MM]/[DD]/[YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]``
1161
+ PartitionedPrefix defaults to EventTime delivery when server access logs are delivered.
1162
+ */
934
1163
  PartitionedPrefix: PartitionedPrefix;
935
1164
  };
936
1165
  /**
937
1166
  * Type definition for `AWS::S3::Bucket.Tiering`.
1167
+ * The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without additional operational overhead.
938
1168
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tiering.html}
939
1169
  */
940
1170
  export type Tiering = {
941
1171
  /**
942
- * S3 Intelligent-Tiering access tier. See Storage class for automatically optimizing frequently and infrequently accessed objects for a list of access tiers in the S3 Intelligent-Tiering storage class.
1172
+ * S3 Intelligent-Tiering access tier. See [Storage class for automatically optimizing frequently and infrequently accessed objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access) for a list of access tiers in the S3 Intelligent-Tiering storage class.
943
1173
  */
944
1174
  AccessTier: "ARCHIVE_ACCESS" | "DEEP_ARCHIVE_ACCESS";
945
1175
  /**
@@ -949,16 +1179,16 @@ export type Tiering = {
949
1179
  };
950
1180
  /**
951
1181
  * Type definition for `AWS::S3::Bucket.TopicConfiguration`.
952
- * The topic to which notifications are sent and the events for which notifications are generated.
1182
+ * A container for specifying the configuration for publication of messages to an Amazon Simple Notification Service (Amazon SNS) topic when Amazon S3 detects specified events.
953
1183
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-topicconfiguration.html}
954
1184
  */
955
1185
  export type TopicConfiguration = {
956
1186
  /**
957
- * The Amazon S3 bucket event about which to send notifications.
1187
+ * The Amazon S3 bucket event about which to send notifications. For more information, see [Supported Event Types](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*.
958
1188
  */
959
1189
  Event: string;
960
1190
  /**
961
- * The filtering rules that determine for which objects to send notifications.
1191
+ * The filtering rules that determine for which objects to send notifications. For example, you can create a filter so that Amazon S3 sends notifications only when image files with a ``.jpg`` extension are added to the bucket.
962
1192
  */
963
1193
  Filter?: NotificationFilter;
964
1194
  /**
@@ -968,21 +1198,27 @@ export type TopicConfiguration = {
968
1198
  };
969
1199
  /**
970
1200
  * Type definition for `AWS::S3::Bucket.Transition`.
971
- * You must specify at least one of "TransitionDate" and "TransitionInDays"
1201
+ * Specifies when an object transitions to a specified storage class. For more information about Amazon S3 lifecycle configuration rules, see [Transitioning Objects Using Amazon S3 Lifecycle](https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-transition-general-considerations.html) in the *Amazon S3 User Guide*.
972
1202
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-transition.html}
973
1203
  */
974
1204
  export type Transition = {
1205
+ /**
1206
+ * The storage class to which you want the object to transition.
1207
+ */
975
1208
  StorageClass: "DEEP_ARCHIVE" | "GLACIER" | "Glacier" | "GLACIER_IR" | "INTELLIGENT_TIERING" | "ONEZONE_IA" | "STANDARD_IA";
976
1209
  /**
977
- * The date value in ISO 8601 format. The timezone is always UTC. (YYYY-MM-DDThh:mm:ssZ)
1210
+ * Indicates when objects are transitioned to the specified storage class. The date value must be in ISO 8601 format. The time is always midnight UTC.
978
1211
  * @pattern `^([0-2]\d{3})-(0[0-9]|1[0-2])-([0-2]\d|3[01])T([01]\d|2[0-4]):([0-5]\d):([0-6]\d)((\.\d{3})?)Z$`
979
1212
  */
980
1213
  TransitionDate?: string;
1214
+ /**
1215
+ * Indicates the number of days after creation when objects are transitioned to the specified storage class. The value must be a positive integer.
1216
+ */
981
1217
  TransitionInDays?: number;
982
1218
  };
983
1219
  /**
984
1220
  * Type definition for `AWS::S3::Bucket.VersioningConfiguration`.
985
- * Describes the versioning state of an Amazon S3 bucket.
1221
+ * Describes the versioning state of an Amazon S3 bucket. For more information, see [PUT Bucket versioning](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html) in the *Amazon S3 API Reference*.
986
1222
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-versioningconfiguration.html}
987
1223
  */
988
1224
  export type VersioningConfiguration = {
@@ -1006,13 +1242,19 @@ export type WebsiteConfiguration = {
1006
1242
  */
1007
1243
  IndexDocument?: string;
1008
1244
  /**
1009
- * Specifies the redirect behavior of all requests to a website endpoint of an Amazon S3 bucket.
1010
- */
1245
+ * The redirect behavior for every request to this bucket's website endpoint.
1246
+ If you specify this property, you can't specify any other property.
1247
+ */
1011
1248
  RedirectAllRequestsTo?: RedirectAllRequestsTo;
1249
+ /**
1250
+ * Rules that define when a redirect is applied and the redirect behavior.
1251
+ */
1012
1252
  RoutingRules?: RoutingRule[];
1013
1253
  };
1014
1254
  /**
1015
- * Resource Type definition for AWS::S3::Bucket
1255
+ * The ``AWS::S3::Bucket`` resource creates an Amazon S3 bucket in the same AWS Region where you create the AWS CloudFormation stack.
1256
+ To control how AWS CloudFormation handles the bucket when the stack is deleted, you can set a deletion policy for your bucket. You can choose to *retain* the bucket or to *delete* the bucket. For more information, see [DeletionPolicy Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html).
1257
+ You can only delete empty buckets. Deletion fails for buckets that have contents.
1016
1258
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html}
1017
1259
  */
1018
1260
  export declare class S3Bucket extends $Resource<"AWS::S3::Bucket", S3BucketProperties, S3BucketAttributes> {