UNPKG

185 kBTypeScriptView Raw
1import * as cdk from '@aws-cdk/core';
2import * as cfn_parse from '@aws-cdk/core/lib/helpers-internal';
3/**
4 * Properties for defining a `CfnAccessPoint`
5 *
6 * @struct
7 * @stability external
8 *
9 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html
10 */
11export interface CfnAccessPointProps {
12 /**
13 * The name of the bucket associated with this access point.
14 *
15 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html#cfn-s3-accesspoint-bucket
16 */
17 readonly bucket: string;
18 /**
19 * The name of this access point. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the access point name.
20 *
21 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html#cfn-s3-accesspoint-name
22 */
23 readonly name?: string;
24 /**
25 * The access point policy associated with this access point.
26 *
27 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html#cfn-s3-accesspoint-policy
28 */
29 readonly policy?: any | cdk.IResolvable;
30 /**
31 * The container element for a bucket's policy status.
32 *
33 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html#cfn-s3-accesspoint-policystatus
34 */
35 readonly policyStatus?: any | cdk.IResolvable;
36 /**
37 * 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* .
38 *
39 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html#cfn-s3-accesspoint-publicaccessblockconfiguration
40 */
41 readonly publicAccessBlockConfiguration?: CfnAccessPoint.PublicAccessBlockConfigurationProperty | cdk.IResolvable;
42 /**
43 * The Virtual Private Cloud (VPC) configuration for this access point, if one exists.
44 *
45 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html#cfn-s3-accesspoint-vpcconfiguration
46 */
47 readonly vpcConfiguration?: CfnAccessPoint.VpcConfigurationProperty | cdk.IResolvable;
48}
49/**
50 * A CloudFormation `AWS::S3::AccessPoint`
51 *
52 * The AWS::S3::AccessPoint resource is an Amazon S3 resource type that you can use to access buckets.
53 *
54 * @cloudformationResource AWS::S3::AccessPoint
55 * @stability external
56 *
57 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html
58 */
59export declare class CfnAccessPoint extends cdk.CfnResource implements cdk.IInspectable {
60 /**
61 * The CloudFormation resource type name for this resource class.
62 */
63 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::S3::AccessPoint";
64 /**
65 * A factory method that creates a new instance of this class from an object
66 * containing the CloudFormation properties of this resource.
67 * Used in the @aws-cdk/cloudformation-include module.
68 *
69 * @internal
70 */
71 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnAccessPoint;
72 /**
73 * The alias for this access point.
74 * @cloudformationAttribute Alias
75 */
76 readonly attrAlias: string;
77 /**
78 * This property contains the details of the ARN for the access point.
79 * @cloudformationAttribute Arn
80 */
81 readonly attrArn: string;
82 /**
83 * The name of this access point.
84 * @cloudformationAttribute Name
85 */
86 readonly attrName: string;
87 /**
88 * Indicates whether this access point allows access from the internet. If `VpcConfiguration` is specified for this access point, then `NetworkOrigin` is `VPC` , and the access point doesn't allow access from the internet. Otherwise, `NetworkOrigin` is `Internet` , and the access point allows access from the internet, subject to the access point and bucket access policies.
89 *
90 * *Allowed values* : `VPC` | `Internet`
91 * @cloudformationAttribute NetworkOrigin
92 */
93 readonly attrNetworkOrigin: string;
94 /**
95 * The name of the bucket associated with this access point.
96 *
97 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html#cfn-s3-accesspoint-bucket
98 */
99 bucket: string;
100 /**
101 * The name of this access point. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the access point name.
102 *
103 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html#cfn-s3-accesspoint-name
104 */
105 name: string | undefined;
106 /**
107 * The access point policy associated with this access point.
108 *
109 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html#cfn-s3-accesspoint-policy
110 */
111 policy: any | cdk.IResolvable | undefined;
112 /**
113 * The container element for a bucket's policy status.
114 *
115 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html#cfn-s3-accesspoint-policystatus
116 */
117 policyStatus: any | cdk.IResolvable | undefined;
118 /**
119 * 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* .
120 *
121 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html#cfn-s3-accesspoint-publicaccessblockconfiguration
122 */
123 publicAccessBlockConfiguration: CfnAccessPoint.PublicAccessBlockConfigurationProperty | cdk.IResolvable | undefined;
124 /**
125 * The Virtual Private Cloud (VPC) configuration for this access point, if one exists.
126 *
127 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html#cfn-s3-accesspoint-vpcconfiguration
128 */
129 vpcConfiguration: CfnAccessPoint.VpcConfigurationProperty | cdk.IResolvable | undefined;
130 /**
131 * Create a new `AWS::S3::AccessPoint`.
132 *
133 * @param scope - scope in which this resource is defined
134 * @param id - scoped id of the resource
135 * @param props - resource properties
136 */
137 constructor(scope: cdk.Construct, id: string, props: CfnAccessPointProps);
138 /**
139 * Examines the CloudFormation resource and discloses attributes.
140 *
141 * @param inspector - tree inspector to collect and process attributes
142 *
143 */
144 inspect(inspector: cdk.TreeInspector): void;
145 protected get cfnProperties(): {
146 [key: string]: any;
147 };
148 protected renderProperties(props: {
149 [key: string]: any;
150 }): {
151 [key: string]: any;
152 };
153}
154export declare namespace CfnAccessPoint {
155 /**
156 * 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* .
157 *
158 * @struct
159 * @stability external
160 *
161 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-accesspoint-publicaccessblockconfiguration.html
162 */
163 interface PublicAccessBlockConfigurationProperty {
164 /**
165 * 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:
166 *
167 * - PUT Bucket ACL and PUT Object ACL calls fail if the specified ACL is public.
168 * - PUT Object calls fail if the request includes a public ACL.
169 * - PUT Bucket calls fail if the request includes a public ACL.
170 *
171 * Enabling this setting doesn't affect existing policies or ACLs.
172 *
173 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-accesspoint-publicaccessblockconfiguration.html#cfn-s3-accesspoint-publicaccessblockconfiguration-blockpublicacls
174 */
175 readonly blockPublicAcls?: boolean | cdk.IResolvable;
176 /**
177 * 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.
178 *
179 * Enabling this setting doesn't affect existing bucket policies.
180 *
181 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-accesspoint-publicaccessblockconfiguration.html#cfn-s3-accesspoint-publicaccessblockconfiguration-blockpublicpolicy
182 */
183 readonly blockPublicPolicy?: boolean | cdk.IResolvable;
184 /**
185 * 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.
186 *
187 * Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set.
188 *
189 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-accesspoint-publicaccessblockconfiguration.html#cfn-s3-accesspoint-publicaccessblockconfiguration-ignorepublicacls
190 */
191 readonly ignorePublicAcls?: boolean | cdk.IResolvable;
192 /**
193 * 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.
194 *
195 * 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.
196 *
197 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-accesspoint-publicaccessblockconfiguration.html#cfn-s3-accesspoint-publicaccessblockconfiguration-restrictpublicbuckets
198 */
199 readonly restrictPublicBuckets?: boolean | cdk.IResolvable;
200 }
201}
202export declare namespace CfnAccessPoint {
203 /**
204 * The Virtual Private Cloud (VPC) configuration for this access point.
205 *
206 * @struct
207 * @stability external
208 *
209 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-accesspoint-vpcconfiguration.html
210 */
211 interface VpcConfigurationProperty {
212 /**
213 * If this field is specified, the access point will only allow connections from the specified VPC ID.
214 *
215 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-accesspoint-vpcconfiguration.html#cfn-s3-accesspoint-vpcconfiguration-vpcid
216 */
217 readonly vpcId?: string;
218 }
219}
220/**
221 * Properties for defining a `CfnBucket`
222 *
223 * @struct
224 * @stability external
225 *
226 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html
227 */
228export interface CfnBucketProps {
229 /**
230 * 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* .
231 *
232 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-accelerateconfiguration
233 */
234 readonly accelerateConfiguration?: CfnBucket.AccelerateConfigurationProperty | cdk.IResolvable;
235 /**
236 * 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* .
237 *
238 * Be aware that the syntax for this property differs from the information provided in the *Amazon S3 User Guide* . The AccessControl property is case-sensitive and must be one of the following values: Private, PublicRead, PublicReadWrite, AuthenticatedRead, LogDeliveryWrite, BucketOwnerRead, BucketOwnerFullControl, or AwsExecRead.
239 *
240 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-accesscontrol
241 */
242 readonly accessControl?: string;
243 /**
244 * Specifies the configuration and any analyses for the analytics filter of an Amazon S3 bucket.
245 *
246 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-analyticsconfigurations
247 */
248 readonly analyticsConfigurations?: Array<CfnBucket.AnalyticsConfigurationProperty | cdk.IResolvable> | cdk.IResolvable;
249 /**
250 * Specifies default encryption for a bucket using server-side encryption with Amazon S3-managed keys (SSE-S3) or AWS KMS-managed keys (SSE-KMS) bucket. 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* .
251 *
252 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-bucketencryption
253 */
254 readonly bucketEncryption?: CfnBucket.BucketEncryptionProperty | cdk.IResolvable;
255 /**
256 * 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* .
257 *
258 * > 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.
259 *
260 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-name
261 */
262 readonly bucketName?: string;
263 /**
264 * 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* .
265 *
266 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-crossoriginconfig
267 */
268 readonly corsConfiguration?: CfnBucket.CorsConfigurationProperty | cdk.IResolvable;
269 /**
270 * Defines how Amazon S3 handles Intelligent-Tiering storage.
271 *
272 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-intelligenttieringconfigurations
273 */
274 readonly intelligentTieringConfigurations?: Array<CfnBucket.IntelligentTieringConfigurationProperty | cdk.IResolvable> | cdk.IResolvable;
275 /**
276 * 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* .
277 *
278 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-inventoryconfigurations
279 */
280 readonly inventoryConfigurations?: Array<CfnBucket.InventoryConfigurationProperty | cdk.IResolvable> | cdk.IResolvable;
281 /**
282 * 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* .
283 *
284 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-lifecycleconfig
285 */
286 readonly lifecycleConfiguration?: CfnBucket.LifecycleConfigurationProperty | cdk.IResolvable;
287 /**
288 * Settings that define where logs are stored.
289 *
290 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-loggingconfig
291 */
292 readonly loggingConfiguration?: CfnBucket.LoggingConfigurationProperty | cdk.IResolvable;
293 /**
294 * 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) .
295 *
296 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-metricsconfigurations
297 */
298 readonly metricsConfigurations?: Array<CfnBucket.MetricsConfigurationProperty | cdk.IResolvable> | cdk.IResolvable;
299 /**
300 * Configuration that defines how Amazon S3 handles bucket notifications.
301 *
302 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-notification
303 */
304 readonly notificationConfiguration?: CfnBucket.NotificationConfigurationProperty | cdk.IResolvable;
305 /**
306 * 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) .
307 *
308 * > - The `DefaultRetention` settings require both a mode and a period.
309 * > - The `DefaultRetention` period can be either `Days` or `Years` but you must select one. You cannot specify `Days` and `Years` at the same time.
310 * > - You can only enable Object Lock for new buckets. If you want to turn on Object Lock for an existing bucket, contact AWS Support.
311 *
312 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-objectlockconfiguration
313 */
314 readonly objectLockConfiguration?: CfnBucket.ObjectLockConfigurationProperty | cdk.IResolvable;
315 /**
316 * Indicates whether this bucket has an Object Lock configuration enabled. Enable `ObjectLockEnabled` when you apply `ObjectLockConfiguration` to a bucket.
317 *
318 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-objectlockenabled
319 */
320 readonly objectLockEnabled?: boolean | cdk.IResolvable;
321 /**
322 * Configuration that defines how Amazon S3 handles Object Ownership rules.
323 *
324 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-ownershipcontrols
325 */
326 readonly ownershipControls?: CfnBucket.OwnershipControlsProperty | cdk.IResolvable;
327 /**
328 * Configuration that defines how Amazon S3 handles public access.
329 *
330 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-publicaccessblockconfiguration
331 */
332 readonly publicAccessBlockConfiguration?: CfnBucket.PublicAccessBlockConfigurationProperty | cdk.IResolvable;
333 /**
334 * Configuration for replicating objects in an S3 bucket. To enable replication, you must also enable versioning by using the `VersioningConfiguration` property.
335 *
336 * Amazon S3 can store replicated objects in a single destination bucket or multiple destination buckets. The destination bucket or buckets must already exist.
337 *
338 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-replicationconfiguration
339 */
340 readonly replicationConfiguration?: CfnBucket.ReplicationConfigurationProperty | cdk.IResolvable;
341 /**
342 * An arbitrary set of tags (key-value pairs) for this S3 bucket.
343 *
344 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-tags
345 */
346 readonly tags?: cdk.CfnTag[];
347 /**
348 * 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.
349 *
350 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-versioning
351 */
352 readonly versioningConfiguration?: CfnBucket.VersioningConfigurationProperty | cdk.IResolvable;
353 /**
354 * 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) .
355 *
356 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-websiteconfiguration
357 */
358 readonly websiteConfiguration?: CfnBucket.WebsiteConfigurationProperty | cdk.IResolvable;
359}
360/**
361 * A CloudFormation `AWS::S3::Bucket`
362 *
363 * The `AWS::S3::Bucket` resource creates an Amazon S3 bucket in the same AWS Region where you create the AWS CloudFormation stack.
364 *
365 * 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) .
366 *
367 * > You can only delete empty buckets. Deletion fails for buckets that have contents.
368 *
369 * @cloudformationResource AWS::S3::Bucket
370 * @stability external
371 *
372 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html
373 */
374export declare class CfnBucket extends cdk.CfnResource implements cdk.IInspectable {
375 /**
376 * The CloudFormation resource type name for this resource class.
377 */
378 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::S3::Bucket";
379 /**
380 * A factory method that creates a new instance of this class from an object
381 * containing the CloudFormation properties of this resource.
382 * Used in the @aws-cdk/cloudformation-include module.
383 *
384 * @internal
385 */
386 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnBucket;
387 /**
388 * Returns the Amazon Resource Name (ARN) of the specified bucket.
389 *
390 * Example: `arn:aws:s3:::DOC-EXAMPLE-BUCKET`
391 * @cloudformationAttribute Arn
392 */
393 readonly attrArn: string;
394 /**
395 * Returns the IPv4 DNS name of the specified bucket.
396 *
397 * Example: `DOC-EXAMPLE-BUCKET.s3.amazonaws.com`
398 * @cloudformationAttribute DomainName
399 */
400 readonly attrDomainName: string;
401 /**
402 * Returns the IPv6 DNS name of the specified bucket.
403 *
404 * Example: `DOC-EXAMPLE-BUCKET.s3.dualstack.us-east-2.amazonaws.com`
405 *
406 * For more information about dual-stack endpoints, see [Using Amazon S3 Dual-Stack Endpoints](https://docs.aws.amazon.com/AmazonS3/latest/dev/dual-stack-endpoints.html) .
407 * @cloudformationAttribute DualStackDomainName
408 */
409 readonly attrDualStackDomainName: string;
410 /**
411 * Returns the regional domain name of the specified bucket.
412 *
413 * Example: `DOC-EXAMPLE-BUCKET.s3.us-east-2.amazonaws.com`
414 * @cloudformationAttribute RegionalDomainName
415 */
416 readonly attrRegionalDomainName: string;
417 /**
418 * Returns the Amazon S3 website endpoint for the specified bucket.
419 *
420 * Example (IPv4): `http://DOC-EXAMPLE-BUCKET.s3-website.us-east-2.amazonaws.com`
421 *
422 * Example (IPv6): `http://DOC-EXAMPLE-BUCKET.s3.dualstack.us-east-2.amazonaws.com`
423 * @cloudformationAttribute WebsiteURL
424 */
425 readonly attrWebsiteUrl: string;
426 /**
427 * 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* .
428 *
429 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-accelerateconfiguration
430 */
431 accelerateConfiguration: CfnBucket.AccelerateConfigurationProperty | cdk.IResolvable | undefined;
432 /**
433 * 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* .
434 *
435 * Be aware that the syntax for this property differs from the information provided in the *Amazon S3 User Guide* . The AccessControl property is case-sensitive and must be one of the following values: Private, PublicRead, PublicReadWrite, AuthenticatedRead, LogDeliveryWrite, BucketOwnerRead, BucketOwnerFullControl, or AwsExecRead.
436 *
437 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-accesscontrol
438 */
439 accessControl: string | undefined;
440 /**
441 * Specifies the configuration and any analyses for the analytics filter of an Amazon S3 bucket.
442 *
443 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-analyticsconfigurations
444 */
445 analyticsConfigurations: Array<CfnBucket.AnalyticsConfigurationProperty | cdk.IResolvable> | cdk.IResolvable | undefined;
446 /**
447 * Specifies default encryption for a bucket using server-side encryption with Amazon S3-managed keys (SSE-S3) or AWS KMS-managed keys (SSE-KMS) bucket. 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* .
448 *
449 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-bucketencryption
450 */
451 bucketEncryption: CfnBucket.BucketEncryptionProperty | cdk.IResolvable | undefined;
452 /**
453 * 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* .
454 *
455 * > 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.
456 *
457 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-name
458 */
459 bucketName: string | undefined;
460 /**
461 * 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* .
462 *
463 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-crossoriginconfig
464 */
465 corsConfiguration: CfnBucket.CorsConfigurationProperty | cdk.IResolvable | undefined;
466 /**
467 * Defines how Amazon S3 handles Intelligent-Tiering storage.
468 *
469 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-intelligenttieringconfigurations
470 */
471 intelligentTieringConfigurations: Array<CfnBucket.IntelligentTieringConfigurationProperty | cdk.IResolvable> | cdk.IResolvable | undefined;
472 /**
473 * 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* .
474 *
475 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-inventoryconfigurations
476 */
477 inventoryConfigurations: Array<CfnBucket.InventoryConfigurationProperty | cdk.IResolvable> | cdk.IResolvable | undefined;
478 /**
479 * 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* .
480 *
481 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-lifecycleconfig
482 */
483 lifecycleConfiguration: CfnBucket.LifecycleConfigurationProperty | cdk.IResolvable | undefined;
484 /**
485 * Settings that define where logs are stored.
486 *
487 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-loggingconfig
488 */
489 loggingConfiguration: CfnBucket.LoggingConfigurationProperty | cdk.IResolvable | undefined;
490 /**
491 * 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) .
492 *
493 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-metricsconfigurations
494 */
495 metricsConfigurations: Array<CfnBucket.MetricsConfigurationProperty | cdk.IResolvable> | cdk.IResolvable | undefined;
496 /**
497 * Configuration that defines how Amazon S3 handles bucket notifications.
498 *
499 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-notification
500 */
501 notificationConfiguration: CfnBucket.NotificationConfigurationProperty | cdk.IResolvable | undefined;
502 /**
503 * 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) .
504 *
505 * > - The `DefaultRetention` settings require both a mode and a period.
506 * > - The `DefaultRetention` period can be either `Days` or `Years` but you must select one. You cannot specify `Days` and `Years` at the same time.
507 * > - You can only enable Object Lock for new buckets. If you want to turn on Object Lock for an existing bucket, contact AWS Support.
508 *
509 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-objectlockconfiguration
510 */
511 objectLockConfiguration: CfnBucket.ObjectLockConfigurationProperty | cdk.IResolvable | undefined;
512 /**
513 * Indicates whether this bucket has an Object Lock configuration enabled. Enable `ObjectLockEnabled` when you apply `ObjectLockConfiguration` to a bucket.
514 *
515 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-objectlockenabled
516 */
517 objectLockEnabled: boolean | cdk.IResolvable | undefined;
518 /**
519 * Configuration that defines how Amazon S3 handles Object Ownership rules.
520 *
521 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-ownershipcontrols
522 */
523 ownershipControls: CfnBucket.OwnershipControlsProperty | cdk.IResolvable | undefined;
524 /**
525 * Configuration that defines how Amazon S3 handles public access.
526 *
527 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-publicaccessblockconfiguration
528 */
529 publicAccessBlockConfiguration: CfnBucket.PublicAccessBlockConfigurationProperty | cdk.IResolvable | undefined;
530 /**
531 * Configuration for replicating objects in an S3 bucket. To enable replication, you must also enable versioning by using the `VersioningConfiguration` property.
532 *
533 * Amazon S3 can store replicated objects in a single destination bucket or multiple destination buckets. The destination bucket or buckets must already exist.
534 *
535 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-replicationconfiguration
536 */
537 replicationConfiguration: CfnBucket.ReplicationConfigurationProperty | cdk.IResolvable | undefined;
538 /**
539 * An arbitrary set of tags (key-value pairs) for this S3 bucket.
540 *
541 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-tags
542 */
543 readonly tags: cdk.TagManager;
544 /**
545 * 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.
546 *
547 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-versioning
548 */
549 versioningConfiguration: CfnBucket.VersioningConfigurationProperty | cdk.IResolvable | undefined;
550 /**
551 * 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) .
552 *
553 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-websiteconfiguration
554 */
555 websiteConfiguration: CfnBucket.WebsiteConfigurationProperty | cdk.IResolvable | undefined;
556 /**
557 * Create a new `AWS::S3::Bucket`.
558 *
559 * @param scope - scope in which this resource is defined
560 * @param id - scoped id of the resource
561 * @param props - resource properties
562 */
563 constructor(scope: cdk.Construct, id: string, props?: CfnBucketProps);
564 /**
565 * Examines the CloudFormation resource and discloses attributes.
566 *
567 * @param inspector - tree inspector to collect and process attributes
568 *
569 */
570 inspect(inspector: cdk.TreeInspector): void;
571 protected get cfnProperties(): {
572 [key: string]: any;
573 };
574 protected renderProperties(props: {
575 [key: string]: any;
576 }): {
577 [key: string]: any;
578 };
579}
580export declare namespace CfnBucket {
581 /**
582 * 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* .
583 *
584 * @struct
585 * @stability external
586 *
587 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-abortincompletemultipartupload.html
588 */
589 interface AbortIncompleteMultipartUploadProperty {
590 /**
591 * Specifies the number of days after which Amazon S3 stops an incomplete multipart upload.
592 *
593 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-abortincompletemultipartupload.html#cfn-s3-bucket-abortincompletemultipartupload-daysafterinitiation
594 */
595 readonly daysAfterInitiation: number;
596 }
597}
598export declare namespace CfnBucket {
599 /**
600 * 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* .
601 *
602 * @struct
603 * @stability external
604 *
605 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-accelerateconfiguration.html
606 */
607 interface AccelerateConfigurationProperty {
608 /**
609 * Specifies the transfer acceleration status of the bucket.
610 *
611 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-accelerateconfiguration.html#cfn-s3-bucket-accelerateconfiguration-accelerationstatus
612 */
613 readonly accelerationStatus: string;
614 }
615}
616export declare namespace CfnBucket {
617 /**
618 * 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.
619 *
620 * @struct
621 * @stability external
622 *
623 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-accesscontroltranslation.html
624 */
625 interface AccessControlTranslationProperty {
626 /**
627 * 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* .
628 *
629 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-accesscontroltranslation.html#cfn-s3-bucket-accesscontroltranslation-owner
630 */
631 readonly owner: string;
632 }
633}
634export declare namespace CfnBucket {
635 /**
636 * Specifies the configuration and any analyses for the analytics filter of an Amazon S3 bucket.
637 *
638 * @struct
639 * @stability external
640 *
641 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-analyticsconfiguration.html
642 */
643 interface AnalyticsConfigurationProperty {
644 /**
645 * The ID that identifies the analytics configuration.
646 *
647 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-analyticsconfiguration.html#cfn-s3-bucket-analyticsconfiguration-id
648 */
649 readonly id: string;
650 /**
651 * The prefix that an object must have to be included in the analytics results.
652 *
653 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-analyticsconfiguration.html#cfn-s3-bucket-analyticsconfiguration-prefix
654 */
655 readonly prefix?: string;
656 /**
657 * Contains data related to access patterns to be collected and made available to analyze the tradeoffs between different storage classes.
658 *
659 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-analyticsconfiguration.html#cfn-s3-bucket-analyticsconfiguration-storageclassanalysis
660 */
661 readonly storageClassAnalysis: CfnBucket.StorageClassAnalysisProperty | cdk.IResolvable;
662 /**
663 * The tags to use when evaluating an analytics filter.
664 *
665 * 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.
666 *
667 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-analyticsconfiguration.html#cfn-s3-bucket-analyticsconfiguration-tagfilters
668 */
669 readonly tagFilters?: Array<CfnBucket.TagFilterProperty | cdk.IResolvable> | cdk.IResolvable;
670 }
671}
672export declare namespace CfnBucket {
673 /**
674 * Specifies default encryption for a bucket using server-side encryption with Amazon S3-managed keys (SSE-S3) or AWS KMS-managed keys (SSE-KMS) bucket. 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* .
675 *
676 * @struct
677 * @stability external
678 *
679 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-bucketencryption.html
680 */
681 interface BucketEncryptionProperty {
682 /**
683 * Specifies the default server-side-encryption configuration.
684 *
685 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-bucketencryption.html#cfn-s3-bucket-bucketencryption-serversideencryptionconfiguration
686 */
687 readonly serverSideEncryptionConfiguration: Array<CfnBucket.ServerSideEncryptionRuleProperty | cdk.IResolvable> | cdk.IResolvable;
688 }
689}
690export declare namespace CfnBucket {
691 /**
692 * 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* .
693 *
694 * @struct
695 * @stability external
696 *
697 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-cors.html
698 */
699 interface CorsConfigurationProperty {
700 /**
701 * A set of origins and methods (cross-origin access that you want to allow). You can add up to 100 rules to the configuration.
702 *
703 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-cors.html#cfn-s3-bucket-cors-corsrule
704 */
705 readonly corsRules: Array<CfnBucket.CorsRuleProperty | cdk.IResolvable> | cdk.IResolvable;
706 }
707}
708export declare namespace CfnBucket {
709 /**
710 * Specifies a cross-origin access rule for an Amazon S3 bucket.
711 *
712 * @struct
713 * @stability external
714 *
715 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-cors-corsrule.html
716 */
717 interface CorsRuleProperty {
718 /**
719 * 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.
720 *
721 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-cors-corsrule.html#cfn-s3-bucket-cors-corsrule-allowedheaders
722 */
723 readonly allowedHeaders?: string[];
724 /**
725 * An HTTP method that you allow the origin to run.
726 *
727 * *Allowed values* : `GET` | `PUT` | `HEAD` | `POST` | `DELETE`
728 *
729 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-cors-corsrule.html#cfn-s3-bucket-cors-corsrule-allowedmethods
730 */
731 readonly allowedMethods: string[];
732 /**
733 * One or more origins you want customers to be able to access the bucket from.
734 *
735 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-cors-corsrule.html#cfn-s3-bucket-cors-corsrule-allowedorigins
736 */
737 readonly allowedOrigins: string[];
738 /**
739 * 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).
740 *
741 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-cors-corsrule.html#cfn-s3-bucket-cors-corsrule-exposedheaders
742 */
743 readonly exposedHeaders?: string[];
744 /**
745 * A unique identifier for this rule. The value must be no more than 255 characters.
746 *
747 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-cors-corsrule.html#cfn-s3-bucket-cors-corsrule-id
748 */
749 readonly id?: string;
750 /**
751 * The time in seconds that your browser is to cache the preflight response for the specified resource.
752 *
753 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-cors-corsrule.html#cfn-s3-bucket-cors-corsrule-maxage
754 */
755 readonly maxAge?: number;
756 }
757}
758export declare namespace CfnBucket {
759 /**
760 * Specifies how data related to the storage class analysis for an Amazon S3 bucket should be exported.
761 *
762 * @struct
763 * @stability external
764 *
765 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-dataexport.html
766 */
767 interface DataExportProperty {
768 /**
769 * The place to store the data for an analysis.
770 *
771 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-dataexport.html#cfn-s3-bucket-dataexport-destination
772 */
773 readonly destination: CfnBucket.DestinationProperty | cdk.IResolvable;
774 /**
775 * The version of the output schema to use when exporting data. Must be `V_1` .
776 *
777 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-dataexport.html#cfn-s3-bucket-dataexport-outputschemaversion
778 */
779 readonly outputSchemaVersion: string;
780 }
781}
782export declare namespace CfnBucket {
783 /**
784 * The container element for specifying the default Object Lock retention settings for new objects placed in the specified bucket.
785 *
786 * > - The `DefaultRetention` settings require both a mode and a period.
787 * > - The `DefaultRetention` period can be either `Days` or `Years` but you must select one. You cannot specify `Days` and `Years` at the same time.
788 *
789 * @struct
790 * @stability external
791 *
792 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-defaultretention.html
793 */
794 interface DefaultRetentionProperty {
795 /**
796 * 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` .
797 *
798 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-defaultretention.html#cfn-s3-bucket-defaultretention-days
799 */
800 readonly days?: number;
801 /**
802 * 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` .
803 *
804 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-defaultretention.html#cfn-s3-bucket-defaultretention-mode
805 */
806 readonly mode?: string;
807 /**
808 * 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` .
809 *
810 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-defaultretention.html#cfn-s3-bucket-defaultretention-years
811 */
812 readonly years?: number;
813 }
814}
815export declare namespace CfnBucket {
816 /**
817 * 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) .
818 *
819 * For more information about delete marker replication, see [Basic Rule Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html) .
820 *
821 * > 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) .
822 *
823 * @struct
824 * @stability external
825 *
826 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-deletemarkerreplication.html
827 */
828 interface DeleteMarkerReplicationProperty {
829 /**
830 * Indicates whether to replicate delete markers. Disabled by default.
831 *
832 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-deletemarkerreplication.html#cfn-s3-bucket-deletemarkerreplication-status
833 */
834 readonly status?: string;
835 }
836}
837export declare namespace CfnBucket {
838 /**
839 * Specifies information about where to publish analysis or configuration results for an Amazon S3 bucket.
840 *
841 * @struct
842 * @stability external
843 *
844 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-destination.html
845 */
846 interface DestinationProperty {
847 /**
848 * The account ID that owns the destination S3 bucket. If no account ID is provided, the owner is not validated before exporting data.
849 *
850 * > Although this value is optional, we strongly recommend that you set it to help prevent problems if the destination bucket ownership changes.
851 *
852 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-destination.html#cfn-s3-bucket-destination-bucketaccountid
853 */
854 readonly bucketAccountId?: string;
855 /**
856 * The Amazon Resource Name (ARN) of the bucket to which data is exported.
857 *
858 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-destination.html#cfn-s3-bucket-destination-bucketarn
859 */
860 readonly bucketArn: string;
861 /**
862 * Specifies the file format used when exporting data to Amazon S3.
863 *
864 * *Allowed values* : `CSV` | `ORC` | `Parquet`
865 *
866 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-destination.html#cfn-s3-bucket-destination-format
867 */
868 readonly format: string;
869 /**
870 * The prefix to use when exporting data. The prefix is prepended to all results.
871 *
872 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-destination.html#cfn-s3-bucket-destination-prefix
873 */
874 readonly prefix?: string;
875 }
876}
877export declare namespace CfnBucket {
878 /**
879 * Specifies encryption-related information for an Amazon S3 bucket that is a destination for replicated objects.
880 *
881 * @struct
882 * @stability external
883 *
884 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-encryptionconfiguration.html
885 */
886 interface EncryptionConfigurationProperty {
887 /**
888 * 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, customer managed KMS keys. For more information, see [Using symmetric and asymmetric keys](https://docs.aws.amazon.com//kms/latest/developerguide/symmetric-asymmetric.html) in the *AWS Key Management Service Developer Guide* .
889 *
890 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-encryptionconfiguration.html#cfn-s3-bucket-encryptionconfiguration-replicakmskeyid
891 */
892 readonly replicaKmsKeyId: string;
893 }
894}
895export declare namespace CfnBucket {
896 /**
897 * 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* .
898 *
899 * 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*
900 *
901 * @struct
902 * @stability external
903 *
904 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-eventbridgeconfig.html
905 */
906 interface EventBridgeConfigurationProperty {
907 /**
908 * Enables delivery of events to Amazon EventBridge.
909 *
910 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-eventbridgeconfig.html#cfn-s3-bucket-eventbridgeconfiguration-eventbridgeenabled
911 */
912 readonly eventBridgeEnabled?: boolean | cdk.IResolvable;
913 }
914}
915export declare namespace CfnBucket {
916 /**
917 * Specifies the Amazon S3 object key name to filter on and whether to filter on the suffix or prefix of the key name.
918 *
919 * @struct
920 * @stability external
921 *
922 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter-s3key-rules.html
923 */
924 interface FilterRuleProperty {
925 /**
926 * 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* .
927 *
928 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter-s3key-rules.html#cfn-s3-bucket-notificationconfiguraiton-config-filter-s3key-rules-name
929 */
930 readonly name: string;
931 /**
932 * The value that the filter searches for in object key names.
933 *
934 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter-s3key-rules.html#cfn-s3-bucket-notificationconfiguraiton-config-filter-s3key-rules-value
935 */
936 readonly value: string;
937 }
938}
939export declare namespace CfnBucket {
940 /**
941 * Specifies the S3 Intelligent-Tiering configuration for an Amazon S3 bucket.
942 *
943 * 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) .
944 *
945 * @struct
946 * @stability external
947 *
948 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-intelligenttieringconfiguration.html
949 */
950 interface IntelligentTieringConfigurationProperty {
951 /**
952 * The ID used to identify the S3 Intelligent-Tiering configuration.
953 *
954 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-intelligenttieringconfiguration.html#cfn-s3-bucket-intelligenttieringconfiguration-id
955 */
956 readonly id: string;
957 /**
958 * An object key name prefix that identifies the subset of objects to which the rule applies.
959 *
960 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-intelligenttieringconfiguration.html#cfn-s3-bucket-intelligenttieringconfiguration-prefix
961 */
962 readonly prefix?: string;
963 /**
964 * Specifies the status of the configuration.
965 *
966 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-intelligenttieringconfiguration.html#cfn-s3-bucket-intelligenttieringconfiguration-status
967 */
968 readonly status: string;
969 /**
970 * A container for a key-value pair.
971 *
972 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-intelligenttieringconfiguration.html#cfn-s3-bucket-intelligenttieringconfiguration-tagfilters
973 */
974 readonly tagFilters?: Array<CfnBucket.TagFilterProperty | cdk.IResolvable> | cdk.IResolvable;
975 /**
976 * 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` .
977 *
978 * > 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.
979 *
980 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-intelligenttieringconfiguration.html#cfn-s3-bucket-intelligenttieringconfiguration-tierings
981 */
982 readonly tierings: Array<CfnBucket.TieringProperty | cdk.IResolvable> | cdk.IResolvable;
983 }
984}
985export declare namespace CfnBucket {
986 /**
987 * 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* .
988 *
989 * @struct
990 * @stability external
991 *
992 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventoryconfiguration.html
993 */
994 interface InventoryConfigurationProperty {
995 /**
996 * Contains information about where to publish the inventory results.
997 *
998 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventoryconfiguration.html#cfn-s3-bucket-inventoryconfiguration-destination
999 */
1000 readonly destination: CfnBucket.DestinationProperty | cdk.IResolvable;
1001 /**
1002 * 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.
1003 *
1004 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventoryconfiguration.html#cfn-s3-bucket-inventoryconfiguration-enabled
1005 */
1006 readonly enabled: boolean | cdk.IResolvable;
1007 /**
1008 * The ID used to identify the inventory configuration.
1009 *
1010 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventoryconfiguration.html#cfn-s3-bucket-inventoryconfiguration-id
1011 */
1012 readonly id: string;
1013 /**
1014 * 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.
1015 *
1016 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventoryconfiguration.html#cfn-s3-bucket-inventoryconfiguration-includedobjectversions
1017 */
1018 readonly includedObjectVersions: string;
1019 /**
1020 * Contains the optional fields that are included in the inventory results.
1021 *
1022 * *Valid values* : `Size | LastModifiedDate | StorageClass | ETag | IsMultipartUploaded | ReplicationStatus | EncryptionStatus | ObjectLockRetainUntilDate | ObjectLockMode | ObjectLockLegalHoldStatus | IntelligentTieringAccessTier | BucketKeyStatus`
1023 *
1024 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventoryconfiguration.html#cfn-s3-bucket-inventoryconfiguration-optionalfields
1025 */
1026 readonly optionalFields?: string[];
1027 /**
1028 * Specifies the inventory filter prefix.
1029 *
1030 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventoryconfiguration.html#cfn-s3-bucket-inventoryconfiguration-prefix
1031 */
1032 readonly prefix?: string;
1033 /**
1034 * Specifies the schedule for generating inventory results.
1035 *
1036 * *Allowed values* : `Daily` | `Weekly`
1037 *
1038 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventoryconfiguration.html#cfn-s3-bucket-inventoryconfiguration-schedulefrequency
1039 */
1040 readonly scheduleFrequency: string;
1041 }
1042}
1043export declare namespace CfnBucket {
1044 /**
1045 * Describes the AWS Lambda functions to invoke and the events for which to invoke them.
1046 *
1047 * @struct
1048 * @stability external
1049 *
1050 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-lambdaconfig.html
1051 */
1052 interface LambdaConfigurationProperty {
1053 /**
1054 * The Amazon S3 bucket event for which to invoke the AWS Lambda function. For more information, see [Supported Event Types](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide* .
1055 *
1056 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-lambdaconfig.html#cfn-s3-bucket-notificationconfig-lambdaconfig-event
1057 */
1058 readonly event: string;
1059 /**
1060 * 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.
1061 *
1062 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-lambdaconfig.html#cfn-s3-bucket-notificationconfig-lambdaconfig-filter
1063 */
1064 readonly filter?: CfnBucket.NotificationFilterProperty | cdk.IResolvable;
1065 /**
1066 * The Amazon Resource Name (ARN) of the AWS Lambda function that Amazon S3 invokes when the specified event type occurs.
1067 *
1068 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-lambdaconfig.html#cfn-s3-bucket-notificationconfig-lambdaconfig-function
1069 */
1070 readonly function: string;
1071 }
1072}
1073export declare namespace CfnBucket {
1074 /**
1075 * 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* .
1076 *
1077 * @struct
1078 * @stability external
1079 *
1080 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig.html
1081 */
1082 interface LifecycleConfigurationProperty {
1083 /**
1084 * A lifecycle rule for individual objects in an Amazon S3 bucket.
1085 *
1086 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig.html#cfn-s3-bucket-lifecycleconfig-rules
1087 */
1088 readonly rules: Array<CfnBucket.RuleProperty | cdk.IResolvable> | cdk.IResolvable;
1089 }
1090}
1091export declare namespace CfnBucket {
1092 /**
1093 * 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* .
1094 *
1095 * > To successfully complete the `AWS::S3::Bucket LoggingConfiguration` request, you must have `s3:PutObject` and `s3:PutObjectAcl` in your IAM permissions.
1096 *
1097 * @struct
1098 * @stability external
1099 *
1100 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-loggingconfig.html
1101 */
1102 interface LoggingConfigurationProperty {
1103 /**
1104 * 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.
1105 *
1106 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-loggingconfig.html#cfn-s3-bucket-loggingconfig-destinationbucketname
1107 */
1108 readonly destinationBucketName?: string;
1109 /**
1110 * 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.
1111 *
1112 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-loggingconfig.html#cfn-s3-bucket-loggingconfig-logfileprefix
1113 */
1114 readonly logFilePrefix?: string;
1115 }
1116}
1117export declare namespace CfnBucket {
1118 /**
1119 * A container specifying replication metrics-related settings enabling replication metrics and events.
1120 *
1121 * @struct
1122 * @stability external
1123 *
1124 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metrics.html
1125 */
1126 interface MetricsProperty {
1127 /**
1128 * A container specifying the time threshold for emitting the `s3:Replication:OperationMissedThreshold` event.
1129 *
1130 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metrics.html#cfn-s3-bucket-metrics-eventthreshold
1131 */
1132 readonly eventThreshold?: CfnBucket.ReplicationTimeValueProperty | cdk.IResolvable;
1133 /**
1134 * Specifies whether the replication metrics are enabled.
1135 *
1136 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metrics.html#cfn-s3-bucket-metrics-status
1137 */
1138 readonly status: string;
1139 }
1140}
1141export declare namespace CfnBucket {
1142 /**
1143 * 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* .
1144 *
1145 * @struct
1146 * @stability external
1147 *
1148 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metricsconfiguration.html
1149 */
1150 interface MetricsConfigurationProperty {
1151 /**
1152 * The access point that was used while performing operations on the object. The metrics configuration only includes objects that meet the filter's criteria.
1153 *
1154 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metricsconfiguration.html#cfn-s3-bucket-metricsconfiguration-accesspointarn
1155 */
1156 readonly accessPointArn?: string;
1157 /**
1158 * The ID used to identify the metrics configuration. This can be any value you choose that helps you identify your metrics configuration.
1159 *
1160 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metricsconfiguration.html#cfn-s3-bucket-metricsconfiguration-id
1161 */
1162 readonly id: string;
1163 /**
1164 * The prefix that an object must have to be included in the metrics results.
1165 *
1166 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metricsconfiguration.html#cfn-s3-bucket-metricsconfiguration-prefix
1167 */
1168 readonly prefix?: string;
1169 /**
1170 * 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.
1171 *
1172 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metricsconfiguration.html#cfn-s3-bucket-metricsconfiguration-tagfilters
1173 */
1174 readonly tagFilters?: Array<CfnBucket.TagFilterProperty | cdk.IResolvable> | cdk.IResolvable;
1175 }
1176}
1177export declare namespace CfnBucket {
1178 /**
1179 * Specifies when noncurrent object versions expire. Upon expiration, Amazon 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 Amazon S3 delete noncurrent object versions at a specific period in the object's lifetime.
1180 *
1181 * @struct
1182 * @stability external
1183 *
1184 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-noncurrentversionexpiration.html
1185 */
1186 interface NoncurrentVersionExpirationProperty {
1187 /**
1188 * Specifies how many noncurrent versions Amazon S3 will retain. If there are this many more recent noncurrent versions, Amazon 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* .
1189 *
1190 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-noncurrentversionexpiration.html#cfn-s3-bucket-lifecycleconfig-rule-noncurrentversionexpiration-newernoncurrentversions
1191 */
1192 readonly newerNoncurrentVersions?: number;
1193 /**
1194 * 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 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* .
1195 *
1196 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-noncurrentversionexpiration.html#cfn-s3-bucket-lifecycleconfig-rule-noncurrentversionexpiration-noncurrentdays
1197 */
1198 readonly noncurrentDays: number;
1199 }
1200}
1201export declare namespace CfnBucket {
1202 /**
1203 * 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.
1204 *
1205 * @struct
1206 * @stability external
1207 *
1208 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-noncurrentversiontransition.html
1209 */
1210 interface NoncurrentVersionTransitionProperty {
1211 /**
1212 * Specifies how many noncurrent versions Amazon S3 will retain. If there are this many more recent noncurrent versions, Amazon 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* .
1213 *
1214 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-noncurrentversiontransition.html#cfn-s3-bucket-lifecycleconfig-rule-noncurrentversiontransition-newernoncurrentversions
1215 */
1216 readonly newerNoncurrentVersions?: number;
1217 /**
1218 * The class of storage used to store the object.
1219 *
1220 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-noncurrentversiontransition.html#cfn-s3-bucket-lifecycleconfig-rule-noncurrentversiontransition-storageclass
1221 */
1222 readonly storageClass: string;
1223 /**
1224 * 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* .
1225 *
1226 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-noncurrentversiontransition.html#cfn-s3-bucket-lifecycleconfig-rule-noncurrentversiontransition-transitionindays
1227 */
1228 readonly transitionInDays: number;
1229 }
1230}
1231export declare namespace CfnBucket {
1232 /**
1233 * Describes the notification configuration for an Amazon S3 bucket.
1234 *
1235 * > If you create the target resource and related permissions in the same template, you might have a circular dependency.
1236 * >
1237 * > 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.
1238 * >
1239 * > To avoid this dependency, you can create all resources without specifying the notification configuration. Then, update the stack with a notification configuration.
1240 * >
1241 * > 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) .
1242 *
1243 * @struct
1244 * @stability external
1245 *
1246 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig.html
1247 */
1248 interface NotificationConfigurationProperty {
1249 /**
1250 * Enables delivery of events to Amazon EventBridge.
1251 *
1252 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig.html#cfn-s3-bucket-notificationconfig-eventbridgeconfig
1253 */
1254 readonly eventBridgeConfiguration?: CfnBucket.EventBridgeConfigurationProperty | cdk.IResolvable;
1255 /**
1256 * Describes the AWS Lambda functions to invoke and the events for which to invoke them.
1257 *
1258 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig.html#cfn-s3-bucket-notificationconfig-lambdaconfig
1259 */
1260 readonly lambdaConfigurations?: Array<CfnBucket.LambdaConfigurationProperty | cdk.IResolvable> | cdk.IResolvable;
1261 /**
1262 * The Amazon Simple Queue Service queues to publish messages to and the events for which to publish messages.
1263 *
1264 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig.html#cfn-s3-bucket-notificationconfig-queueconfig
1265 */
1266 readonly queueConfigurations?: Array<CfnBucket.QueueConfigurationProperty | cdk.IResolvable> | cdk.IResolvable;
1267 /**
1268 * The topic to which notifications are sent and the events for which notifications are generated.
1269 *
1270 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig.html#cfn-s3-bucket-notificationconfig-topicconfig
1271 */
1272 readonly topicConfigurations?: Array<CfnBucket.TopicConfigurationProperty | cdk.IResolvable> | cdk.IResolvable;
1273 }
1274}
1275export declare namespace CfnBucket {
1276 /**
1277 * Specifies object key name filtering rules. For information about key name filtering, see [Configuring Event Notifications](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide* .
1278 *
1279 * @struct
1280 * @stability external
1281 *
1282 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html
1283 */
1284 interface NotificationFilterProperty {
1285 /**
1286 * A container for object key name prefix and suffix filtering rules.
1287 *
1288 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html#cfn-s3-bucket-notificationconfiguraiton-config-filter-s3key
1289 */
1290 readonly s3Key: CfnBucket.S3KeyFilterProperty | cdk.IResolvable;
1291 }
1292}
1293export declare namespace CfnBucket {
1294 /**
1295 * 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) .
1296 *
1297 * @struct
1298 * @stability external
1299 *
1300 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-objectlockconfiguration.html
1301 */
1302 interface ObjectLockConfigurationProperty {
1303 /**
1304 * Indicates whether this bucket has an Object Lock configuration enabled. Enable `ObjectLockEnabled` when you apply `ObjectLockConfiguration` to a bucket.
1305 *
1306 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-objectlockconfiguration.html#cfn-s3-bucket-objectlockconfiguration-objectlockenabled
1307 */
1308 readonly objectLockEnabled?: string;
1309 /**
1310 * Specifies the Object Lock rule for the specified object. Enable the 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) .
1311 *
1312 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-objectlockconfiguration.html#cfn-s3-bucket-objectlockconfiguration-rule
1313 */
1314 readonly rule?: CfnBucket.ObjectLockRuleProperty | cdk.IResolvable;
1315 }
1316}
1317export declare namespace CfnBucket {
1318 /**
1319 * Specifies the Object Lock rule for the specified object. Enable the this rule when you apply `ObjectLockConfiguration` to a bucket.
1320 *
1321 * @struct
1322 * @stability external
1323 *
1324 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-objectlockrule.html
1325 */
1326 interface ObjectLockRuleProperty {
1327 /**
1328 * 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) .
1329 *
1330 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-objectlockrule.html#cfn-s3-bucket-objectlockrule-defaultretention
1331 */
1332 readonly defaultRetention?: CfnBucket.DefaultRetentionProperty | cdk.IResolvable;
1333 }
1334}
1335export declare namespace CfnBucket {
1336 /**
1337 * Specifies the container element for Object Ownership rules.
1338 *
1339 * 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* .
1340 *
1341 * @struct
1342 * @stability external
1343 *
1344 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrols.html
1345 */
1346 interface OwnershipControlsProperty {
1347 /**
1348 * Specifies the container element for Object Ownership rules.
1349 *
1350 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrols.html#cfn-s3-bucket-ownershipcontrols-rules
1351 */
1352 readonly rules: Array<CfnBucket.OwnershipControlsRuleProperty | cdk.IResolvable> | cdk.IResolvable;
1353 }
1354}
1355export declare namespace CfnBucket {
1356 /**
1357 * Specifies an Object Ownership rule.
1358 *
1359 * 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* .
1360 *
1361 * @struct
1362 * @stability external
1363 *
1364 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrolsrule.html
1365 */
1366 interface OwnershipControlsRuleProperty {
1367 /**
1368 * Specifies an Object Ownership rule.
1369 *
1370 * *Allowed values* : `BucketOwnerEnforced` | `ObjectWriter` | `BucketOwnerPreferred`
1371 *
1372 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrolsrule.html#cfn-s3-bucket-ownershipcontrolsrule-objectownership
1373 */
1374 readonly objectOwnership?: string;
1375 }
1376}
1377export declare namespace CfnBucket {
1378 /**
1379 * 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* .
1380 *
1381 * @struct
1382 * @stability external
1383 *
1384 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-publicaccessblockconfiguration.html
1385 */
1386 interface PublicAccessBlockConfigurationProperty {
1387 /**
1388 * 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:
1389 *
1390 * - PUT Bucket ACL and PUT Object ACL calls fail if the specified ACL is public.
1391 * - PUT Object calls fail if the request includes a public ACL.
1392 * - PUT Bucket calls fail if the request includes a public ACL.
1393 *
1394 * Enabling this setting doesn't affect existing policies or ACLs.
1395 *
1396 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-publicaccessblockconfiguration.html#cfn-s3-bucket-publicaccessblockconfiguration-blockpublicacls
1397 */
1398 readonly blockPublicAcls?: boolean | cdk.IResolvable;
1399 /**
1400 * 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.
1401 *
1402 * Enabling this setting doesn't affect existing bucket policies.
1403 *
1404 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-publicaccessblockconfiguration.html#cfn-s3-bucket-publicaccessblockconfiguration-blockpublicpolicy
1405 */
1406 readonly blockPublicPolicy?: boolean | cdk.IResolvable;
1407 /**
1408 * 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.
1409 *
1410 * Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set.
1411 *
1412 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-publicaccessblockconfiguration.html#cfn-s3-bucket-publicaccessblockconfiguration-ignorepublicacls
1413 */
1414 readonly ignorePublicAcls?: boolean | cdk.IResolvable;
1415 /**
1416 * 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.
1417 *
1418 * 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.
1419 *
1420 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-publicaccessblockconfiguration.html#cfn-s3-bucket-publicaccessblockconfiguration-restrictpublicbuckets
1421 */
1422 readonly restrictPublicBuckets?: boolean | cdk.IResolvable;
1423 }
1424}
1425export declare namespace CfnBucket {
1426 /**
1427 * Specifies the configuration for publishing messages to an Amazon Simple Queue Service (Amazon SQS) queue when Amazon S3 detects specified events.
1428 *
1429 * @struct
1430 * @stability external
1431 *
1432 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-queueconfig.html
1433 */
1434 interface QueueConfigurationProperty {
1435 /**
1436 * 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* .
1437 *
1438 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-queueconfig.html#cfn-s3-bucket-notificationconfig-queueconfig-event
1439 */
1440 readonly event: string;
1441 /**
1442 * 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* .
1443 *
1444 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-queueconfig.html#cfn-s3-bucket-notificationconfig-queueconfig-filter
1445 */
1446 readonly filter?: CfnBucket.NotificationFilterProperty | cdk.IResolvable;
1447 /**
1448 * 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.
1449 *
1450 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-queueconfig.html#cfn-s3-bucket-notificationconfig-queueconfig-queue
1451 */
1452 readonly queue: string;
1453 }
1454}
1455export declare namespace CfnBucket {
1456 /**
1457 * Specifies the redirect behavior of all requests to a website endpoint of an Amazon S3 bucket.
1458 *
1459 * @struct
1460 * @stability external
1461 *
1462 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-redirectallrequeststo.html
1463 */
1464 interface RedirectAllRequestsToProperty {
1465 /**
1466 * Name of the host where requests are redirected.
1467 *
1468 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-redirectallrequeststo.html#cfn-s3-websiteconfiguration-redirectallrequeststo-hostname
1469 */
1470 readonly hostName: string;
1471 /**
1472 * Protocol to use when redirecting requests. The default is the protocol that is used in the original request.
1473 *
1474 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-redirectallrequeststo.html#cfn-s3-websiteconfiguration-redirectallrequeststo-protocol
1475 */
1476 readonly protocol?: string;
1477 }
1478}
1479export declare namespace CfnBucket {
1480 /**
1481 * Specifies how requests are redirected. In the event of an error, you can specify a different error code to return.
1482 *
1483 * @struct
1484 * @stability external
1485 *
1486 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-redirectrule.html
1487 */
1488 interface RedirectRuleProperty {
1489 /**
1490 * The host name to use in the redirect request.
1491 *
1492 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-redirectrule.html#cfn-s3-websiteconfiguration-redirectrule-hostname
1493 */
1494 readonly hostName?: string;
1495 /**
1496 * The HTTP redirect code to use on the response. Not required if one of the siblings is present.
1497 *
1498 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-redirectrule.html#cfn-s3-websiteconfiguration-redirectrule-httpredirectcode
1499 */
1500 readonly httpRedirectCode?: string;
1501 /**
1502 * Protocol to use when redirecting requests. The default is the protocol that is used in the original request.
1503 *
1504 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-redirectrule.html#cfn-s3-websiteconfiguration-redirectrule-protocol
1505 */
1506 readonly protocol?: string;
1507 /**
1508 * 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.
1509 *
1510 * > 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) .
1511 *
1512 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-redirectrule.html#cfn-s3-websiteconfiguration-redirectrule-replacekeyprefixwith
1513 */
1514 readonly replaceKeyPrefixWith?: string;
1515 /**
1516 * 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.
1517 *
1518 * > 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) .
1519 *
1520 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-redirectrule.html#cfn-s3-websiteconfiguration-redirectrule-replacekeywith
1521 */
1522 readonly replaceKeyWith?: string;
1523 }
1524}
1525export declare namespace CfnBucket {
1526 /**
1527 * A filter that you can specify for selection for modifications on replicas.
1528 *
1529 * @struct
1530 * @stability external
1531 *
1532 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicamodifications.html
1533 */
1534 interface ReplicaModificationsProperty {
1535 /**
1536 * Specifies whether Amazon S3 replicates modifications on replicas.
1537 *
1538 * *Allowed values* : `Enabled` | `Disabled`
1539 *
1540 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicamodifications.html#cfn-s3-bucket-replicamodifications-status
1541 */
1542 readonly status: string;
1543 }
1544}
1545export declare namespace CfnBucket {
1546 /**
1547 * A container for replication rules. You can add up to 1,000 rules. The maximum size of a replication configuration is 2 MB.
1548 *
1549 * @struct
1550 * @stability external
1551 *
1552 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration.html
1553 */
1554 interface ReplicationConfigurationProperty {
1555 /**
1556 * The Amazon Resource Name (ARN) of the AWS Identity and Access Management (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* .
1557 *
1558 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration.html#cfn-s3-bucket-replicationconfiguration-role
1559 */
1560 readonly role: string;
1561 /**
1562 * 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.
1563 *
1564 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration.html#cfn-s3-bucket-replicationconfiguration-rules
1565 */
1566 readonly rules: Array<CfnBucket.ReplicationRuleProperty | cdk.IResolvable> | cdk.IResolvable;
1567 }
1568}
1569export declare namespace CfnBucket {
1570 /**
1571 * A container for information about the replication destination and its configurations including enabling the S3 Replication Time Control (S3 RTC).
1572 *
1573 * @struct
1574 * @stability external
1575 *
1576 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules-destination.html
1577 */
1578 interface ReplicationDestinationProperty {
1579 /**
1580 * 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.
1581 *
1582 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules-destination.html#cfn-s3-bucket-replicationdestination-accesscontroltranslation
1583 */
1584 readonly accessControlTranslation?: CfnBucket.AccessControlTranslationProperty | cdk.IResolvable;
1585 /**
1586 * 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* .
1587 *
1588 * If you specify the `AccessControlTranslation` property, the `Account` property is required.
1589 *
1590 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules-destination.html#cfn-s3-bucket-replicationdestination-account
1591 */
1592 readonly account?: string;
1593 /**
1594 * The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to store the results.
1595 *
1596 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules-destination.html#cfn-s3-bucket-replicationconfiguration-rules-destination-bucket
1597 */
1598 readonly bucket: string;
1599 /**
1600 * Specifies encryption-related information.
1601 *
1602 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules-destination.html#cfn-s3-bucket-replicationdestination-encryptionconfiguration
1603 */
1604 readonly encryptionConfiguration?: CfnBucket.EncryptionConfigurationProperty | cdk.IResolvable;
1605 /**
1606 * A container specifying replication metrics-related settings enabling replication metrics and events.
1607 *
1608 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules-destination.html#cfn-s3-bucket-replicationdestination-metrics
1609 */
1610 readonly metrics?: CfnBucket.MetricsProperty | cdk.IResolvable;
1611 /**
1612 * 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.
1613 *
1614 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules-destination.html#cfn-s3-bucket-replicationdestination-replicationtime
1615 */
1616 readonly replicationTime?: CfnBucket.ReplicationTimeProperty | cdk.IResolvable;
1617 /**
1618 * 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.
1619 *
1620 * 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* .
1621 *
1622 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules-destination.html#cfn-s3-bucket-replicationconfiguration-rules-destination-storageclass
1623 */
1624 readonly storageClass?: string;
1625 }
1626}
1627export declare namespace CfnBucket {
1628 /**
1629 * Specifies which Amazon S3 objects to replicate and where to store the replicas.
1630 *
1631 * @struct
1632 * @stability external
1633 *
1634 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules.html
1635 */
1636 interface ReplicationRuleProperty {
1637 /**
1638 * 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) .
1639 *
1640 * For more information about delete marker replication, see [Basic Rule Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html) .
1641 *
1642 * > 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) .
1643 *
1644 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules.html#cfn-s3-bucket-replicationrule-deletemarkerreplication
1645 */
1646 readonly deleteMarkerReplication?: CfnBucket.DeleteMarkerReplicationProperty | cdk.IResolvable;
1647 /**
1648 * A container for information about the replication destination and its configurations including enabling the S3 Replication Time Control (S3 RTC).
1649 *
1650 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules.html#cfn-s3-bucket-replicationconfiguration-rules-destination
1651 */
1652 readonly destination: CfnBucket.ReplicationDestinationProperty | cdk.IResolvable;
1653 /**
1654 * 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 this is a V2 replication configuration. V1 does not have this field.
1655 *
1656 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules.html#cfn-s3-bucket-replicationrule-filter
1657 */
1658 readonly filter?: CfnBucket.ReplicationRuleFilterProperty | cdk.IResolvable;
1659 /**
1660 * 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".
1661 *
1662 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules.html#cfn-s3-bucket-replicationconfiguration-rules-id
1663 */
1664 readonly id?: string;
1665 /**
1666 * 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.
1667 *
1668 * > 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) .
1669 *
1670 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules.html#cfn-s3-bucket-replicationconfiguration-rules-prefix
1671 */
1672 readonly prefix?: string;
1673 /**
1674 * 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.
1675 *
1676 * For more information, see [Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) in the *Amazon S3 User Guide* .
1677 *
1678 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules.html#cfn-s3-bucket-replicationrule-priority
1679 */
1680 readonly priority?: number;
1681 /**
1682 * 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.
1683 *
1684 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules.html#cfn-s3-bucket-replicationrule-sourceselectioncriteria
1685 */
1686 readonly sourceSelectionCriteria?: CfnBucket.SourceSelectionCriteriaProperty | cdk.IResolvable;
1687 /**
1688 * Specifies whether the rule is enabled.
1689 *
1690 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules.html#cfn-s3-bucket-replicationconfiguration-rules-status
1691 */
1692 readonly status: string;
1693 }
1694}
1695export declare namespace CfnBucket {
1696 /**
1697 * 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.
1698 *
1699 * For example:
1700 *
1701 * - If you specify both a `Prefix` and a `TagFilter` , wrap these filters in an `And` tag.
1702 * - If you specify a filter based on multiple tags, wrap the `TagFilter` elements in an `And` tag
1703 *
1704 * @struct
1705 * @stability external
1706 *
1707 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationruleandoperator.html
1708 */
1709 interface ReplicationRuleAndOperatorProperty {
1710 /**
1711 * An object key name prefix that identifies the subset of objects to which the rule applies.
1712 *
1713 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationruleandoperator.html#cfn-s3-bucket-replicationruleandoperator-prefix
1714 */
1715 readonly prefix?: string;
1716 /**
1717 * An array of tags containing key and value pairs.
1718 *
1719 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationruleandoperator.html#cfn-s3-bucket-replicationruleandoperator-tagfilters
1720 */
1721 readonly tagFilters?: Array<CfnBucket.TagFilterProperty | cdk.IResolvable> | cdk.IResolvable;
1722 }
1723}
1724export declare namespace CfnBucket {
1725 /**
1726 * 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.
1727 *
1728 * @struct
1729 * @stability external
1730 *
1731 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationrulefilter.html
1732 */
1733 interface ReplicationRuleFilterProperty {
1734 /**
1735 * 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:
1736 *
1737 * - If you specify both a `Prefix` and a `TagFilter` , wrap these filters in an `And` tag.
1738 * - If you specify a filter based on multiple tags, wrap the `TagFilter` elements in an `And` tag.
1739 *
1740 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationrulefilter.html#cfn-s3-bucket-replicationrulefilter-and
1741 */
1742 readonly and?: CfnBucket.ReplicationRuleAndOperatorProperty | cdk.IResolvable;
1743 /**
1744 * An object key name prefix that identifies the subset of objects to which the rule applies.
1745 *
1746 * > 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) .
1747 *
1748 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationrulefilter.html#cfn-s3-bucket-replicationrulefilter-prefix
1749 */
1750 readonly prefix?: string;
1751 /**
1752 * A container for specifying a tag key and value.
1753 *
1754 * The rule applies only to objects that have the tag in their tag set.
1755 *
1756 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationrulefilter.html#cfn-s3-bucket-replicationrulefilter-tagfilter
1757 */
1758 readonly tagFilter?: CfnBucket.TagFilterProperty | cdk.IResolvable;
1759 }
1760}
1761export declare namespace CfnBucket {
1762 /**
1763 * 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.
1764 *
1765 * @struct
1766 * @stability external
1767 *
1768 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationtime.html
1769 */
1770 interface ReplicationTimeProperty {
1771 /**
1772 * Specifies whether the replication time is enabled.
1773 *
1774 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationtime.html#cfn-s3-bucket-replicationtime-status
1775 */
1776 readonly status: string;
1777 /**
1778 * A container specifying the time by which replication should be complete for all objects and operations on objects.
1779 *
1780 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationtime.html#cfn-s3-bucket-replicationtime-time
1781 */
1782 readonly time: CfnBucket.ReplicationTimeValueProperty | cdk.IResolvable;
1783 }
1784}
1785export declare namespace CfnBucket {
1786 /**
1787 * A container specifying the time value for S3 Replication Time Control (S3 RTC) and replication metrics `EventThreshold` .
1788 *
1789 * @struct
1790 * @stability external
1791 *
1792 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationtimevalue.html
1793 */
1794 interface ReplicationTimeValueProperty {
1795 /**
1796 * Contains an integer specifying time in minutes.
1797 *
1798 * Valid value: 15
1799 *
1800 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationtimevalue.html#cfn-s3-bucket-replicationtimevalue-minutes
1801 */
1802 readonly minutes: number;
1803 }
1804}
1805export declare namespace CfnBucket {
1806 /**
1807 * 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* .
1808 *
1809 * @struct
1810 * @stability external
1811 *
1812 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules.html
1813 */
1814 interface RoutingRuleProperty {
1815 /**
1816 * Container for redirect information. You can redirect requests to another host, to another page, or with another protocol. In the event of an error, you can specify a different error code to return.
1817 *
1818 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules.html#cfn-s3-websiteconfiguration-routingrules-redirectrule
1819 */
1820 readonly redirectRule: CfnBucket.RedirectRuleProperty | cdk.IResolvable;
1821 /**
1822 * 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.
1823 *
1824 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules.html#cfn-s3-websiteconfiguration-routingrules-routingrulecondition
1825 */
1826 readonly routingRuleCondition?: CfnBucket.RoutingRuleConditionProperty | cdk.IResolvable;
1827 }
1828}
1829export declare namespace CfnBucket {
1830 /**
1831 * 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.
1832 *
1833 * @struct
1834 * @stability external
1835 *
1836 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-routingrulecondition.html
1837 */
1838 interface RoutingRuleConditionProperty {
1839 /**
1840 * 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.
1841 *
1842 * 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.
1843 *
1844 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-routingrulecondition.html#cfn-s3-websiteconfiguration-routingrules-routingrulecondition-httperrorcodereturnedequals
1845 */
1846 readonly httpErrorCodeReturnedEquals?: string;
1847 /**
1848 * 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.
1849 *
1850 * 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.
1851 *
1852 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-routingrulecondition.html#cfn-s3-websiteconfiguration-routingrules-routingrulecondition-keyprefixequals
1853 */
1854 readonly keyPrefixEquals?: string;
1855 }
1856}
1857export declare namespace CfnBucket {
1858 /**
1859 * 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* .
1860 *
1861 * You must specify at least one of the following properties: `AbortIncompleteMultipartUpload` , `ExpirationDate` , `ExpirationInDays` , `NoncurrentVersionExpirationInDays` , `NoncurrentVersionTransition` , `NoncurrentVersionTransitions` , `Transition` , or `Transitions` .
1862 *
1863 * @struct
1864 * @stability external
1865 *
1866 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html
1867 */
1868 interface RuleProperty {
1869 /**
1870 * Specifies a lifecycle rule that stops incomplete multipart uploads to an Amazon S3 bucket.
1871 *
1872 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html#cfn-s3-bucket-rule-abortincompletemultipartupload
1873 */
1874 readonly abortIncompleteMultipartUpload?: CfnBucket.AbortIncompleteMultipartUploadProperty | cdk.IResolvable;
1875 /**
1876 * 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.
1877 *
1878 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html#cfn-s3-bucket-lifecycleconfig-rule-expirationdate
1879 */
1880 readonly expirationDate?: Date | cdk.IResolvable;
1881 /**
1882 * 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.
1883 *
1884 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html#cfn-s3-bucket-lifecycleconfig-rule-expirationindays
1885 */
1886 readonly expirationInDays?: number;
1887 /**
1888 * 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` .
1889 *
1890 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html#cfn-s3-bucket-rule-expiredobjectdeletemarker
1891 */
1892 readonly expiredObjectDeleteMarker?: boolean | cdk.IResolvable;
1893 /**
1894 * Unique identifier for the rule. The value can't be longer than 255 characters.
1895 *
1896 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html#cfn-s3-bucket-lifecycleconfig-rule-id
1897 */
1898 readonly id?: string;
1899 /**
1900 * Specifies when noncurrent object versions expire. Upon expiration, Amazon 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 Amazon S3 delete noncurrent object versions at a specific period in the object's lifetime.
1901 *
1902 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html#cfn-s3-bucket-lifecycleconfig-rule-noncurrentversionexpiration
1903 */
1904 readonly noncurrentVersionExpiration?: CfnBucket.NoncurrentVersionExpirationProperty | cdk.IResolvable;
1905 /**
1906 * (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.
1907 *
1908 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html#cfn-s3-bucket-lifecycleconfig-rule-noncurrentversionexpirationindays
1909 */
1910 readonly noncurrentVersionExpirationInDays?: number;
1911 /**
1912 * (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.
1913 *
1914 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html#cfn-s3-bucket-lifecycleconfig-rule-noncurrentversiontransition
1915 */
1916 readonly noncurrentVersionTransition?: CfnBucket.NoncurrentVersionTransitionProperty | cdk.IResolvable;
1917 /**
1918 * 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.
1919 *
1920 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html#cfn-s3-bucket-lifecycleconfig-rule-noncurrentversiontransitions
1921 */
1922 readonly noncurrentVersionTransitions?: Array<CfnBucket.NoncurrentVersionTransitionProperty | cdk.IResolvable> | cdk.IResolvable;
1923 /**
1924 * Specifies the minimum object size in bytes for this rule to apply to. 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* .
1925 *
1926 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html#cfn-s3-bucket-lifecycleconfig-rule-objectsizegreaterthan
1927 */
1928 readonly objectSizeGreaterThan?: number;
1929 /**
1930 * Specifies the maximum object size in bytes for this rule to apply to. 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* .
1931 *
1932 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html#cfn-s3-bucket-lifecycleconfig-rule-objectsizelessthan
1933 */
1934 readonly objectSizeLessThan?: number;
1935 /**
1936 * Object key prefix that identifies one or more objects to which this rule applies.
1937 *
1938 * > 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) .
1939 *
1940 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html#cfn-s3-bucket-lifecycleconfig-rule-prefix
1941 */
1942 readonly prefix?: string;
1943 /**
1944 * If `Enabled` , the rule is currently being applied. If `Disabled` , the rule is not currently being applied.
1945 *
1946 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html#cfn-s3-bucket-lifecycleconfig-rule-status
1947 */
1948 readonly status: string;
1949 /**
1950 * Tags to use to identify a subset of objects to which the lifecycle rule applies.
1951 *
1952 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html#cfn-s3-bucket-rule-tagfilters
1953 */
1954 readonly tagFilters?: Array<CfnBucket.TagFilterProperty | cdk.IResolvable> | cdk.IResolvable;
1955 /**
1956 * (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.
1957 *
1958 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html#cfn-s3-bucket-lifecycleconfig-rule-transition
1959 */
1960 readonly transition?: CfnBucket.TransitionProperty | cdk.IResolvable;
1961 /**
1962 * 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.
1963 *
1964 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html#cfn-s3-bucket-lifecycleconfig-rule-transitions
1965 */
1966 readonly transitions?: Array<CfnBucket.TransitionProperty | cdk.IResolvable> | cdk.IResolvable;
1967 }
1968}
1969export declare namespace CfnBucket {
1970 /**
1971 * A container for object key name prefix and suffix filtering rules.
1972 *
1973 * > The same type of filter rule cannot be used more than once. For example, you cannot specify two prefix rules.
1974 *
1975 * @struct
1976 * @stability external
1977 *
1978 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter-s3key.html
1979 */
1980 interface S3KeyFilterProperty {
1981 /**
1982 * A list of containers for the key-value pair that defines the criteria for the filter rule.
1983 *
1984 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter-s3key.html#cfn-s3-bucket-notificationconfiguraiton-config-filter-s3key-rules
1985 */
1986 readonly rules: Array<CfnBucket.FilterRuleProperty | cdk.IResolvable> | cdk.IResolvable;
1987 }
1988}
1989export declare namespace CfnBucket {
1990 /**
1991 * 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* .
1992 *
1993 * @struct
1994 * @stability external
1995 *
1996 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionbydefault.html
1997 */
1998 interface ServerSideEncryptionByDefaultProperty {
1999 /**
2000 * KMS key ID to use for the default encryption. This parameter is allowed if SSEAlgorithm is aws:kms.
2001 *
2002 * You can specify the key ID or the Amazon Resource Name (ARN) of the CMK. However, if you are using encryption with cross-account operations, you must use a fully qualified CMK 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) .
2003 *
2004 * For example:
2005 *
2006 * - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`
2007 * - Key ARN: `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
2008 *
2009 * > Amazon S3 only supports symmetric KMS keys and not asymmetric KMS keys. For more information, see [Using Symmetric and Asymmetric Keys](https://docs.aws.amazon.com//kms/latest/developerguide/symmetric-asymmetric.html) in the *AWS Key Management Service Developer Guide* .
2010 *
2011 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionbydefault.html#cfn-s3-bucket-serversideencryptionbydefault-kmsmasterkeyid
2012 */
2013 readonly kmsMasterKeyId?: string;
2014 /**
2015 * Server-side encryption algorithm to use for the default encryption.
2016 *
2017 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionbydefault.html#cfn-s3-bucket-serversideencryptionbydefault-ssealgorithm
2018 */
2019 readonly sseAlgorithm: string;
2020 }
2021}
2022export declare namespace CfnBucket {
2023 /**
2024 * Specifies the default server-side encryption configuration.
2025 *
2026 * @struct
2027 * @stability external
2028 *
2029 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionrule.html
2030 */
2031 interface ServerSideEncryptionRuleProperty {
2032 /**
2033 * 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.
2034 *
2035 * 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* .
2036 *
2037 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionrule.html#cfn-s3-bucket-serversideencryptionrule-bucketkeyenabled
2038 */
2039 readonly bucketKeyEnabled?: boolean | cdk.IResolvable;
2040 /**
2041 * 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.
2042 *
2043 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionrule.html#cfn-s3-bucket-serversideencryptionrule-serversideencryptionbydefault
2044 */
2045 readonly serverSideEncryptionByDefault?: CfnBucket.ServerSideEncryptionByDefaultProperty | cdk.IResolvable;
2046 }
2047}
2048export declare namespace CfnBucket {
2049 /**
2050 * 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.
2051 *
2052 * @struct
2053 * @stability external
2054 *
2055 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-sourceselectioncriteria.html
2056 */
2057 interface SourceSelectionCriteriaProperty {
2058 /**
2059 * A filter that you can specify for selection for modifications on replicas.
2060 *
2061 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-sourceselectioncriteria.html#cfn-s3-bucket-sourceselectioncriteria-replicamodifications
2062 */
2063 readonly replicaModifications?: CfnBucket.ReplicaModificationsProperty | cdk.IResolvable;
2064 /**
2065 * A container for filter information for the selection of Amazon S3 objects encrypted with AWS KMS.
2066 *
2067 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-sourceselectioncriteria.html#cfn-s3-bucket-sourceselectioncriteria-ssekmsencryptedobjects
2068 */
2069 readonly sseKmsEncryptedObjects?: CfnBucket.SseKmsEncryptedObjectsProperty | cdk.IResolvable;
2070 }
2071}
2072export declare namespace CfnBucket {
2073 /**
2074 * A container for filter information for the selection of S3 objects encrypted with AWS KMS.
2075 *
2076 * @struct
2077 * @stability external
2078 *
2079 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ssekmsencryptedobjects.html
2080 */
2081 interface SseKmsEncryptedObjectsProperty {
2082 /**
2083 * Specifies whether Amazon S3 replicates objects created with server-side encryption using an AWS KMS key stored in AWS Key Management Service.
2084 *
2085 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ssekmsencryptedobjects.html#cfn-s3-bucket-ssekmsencryptedobjects-status
2086 */
2087 readonly status: string;
2088 }
2089}
2090export declare namespace CfnBucket {
2091 /**
2092 * 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.
2093 *
2094 * @struct
2095 * @stability external
2096 *
2097 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-storageclassanalysis.html
2098 */
2099 interface StorageClassAnalysisProperty {
2100 /**
2101 * Specifies how data related to the storage class analysis for an Amazon S3 bucket should be exported.
2102 *
2103 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-storageclassanalysis.html#cfn-s3-bucket-storageclassanalysis-dataexport
2104 */
2105 readonly dataExport?: CfnBucket.DataExportProperty | cdk.IResolvable;
2106 }
2107}
2108export declare namespace CfnBucket {
2109 /**
2110 * Specifies tags to use to identify a subset of objects for an Amazon S3 bucket.
2111 *
2112 * @struct
2113 * @stability external
2114 *
2115 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html
2116 */
2117 interface TagFilterProperty {
2118 /**
2119 * The tag key.
2120 *
2121 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html#cfn-s3-bucket-tagfilter-key
2122 */
2123 readonly key: string;
2124 /**
2125 * The tag value.
2126 *
2127 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html#cfn-s3-bucket-tagfilter-value
2128 */
2129 readonly value: string;
2130 }
2131}
2132export declare namespace CfnBucket {
2133 /**
2134 * 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.
2135 *
2136 * @struct
2137 * @stability external
2138 *
2139 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tiering.html
2140 */
2141 interface TieringProperty {
2142 /**
2143 * 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.
2144 *
2145 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tiering.html#cfn-s3-bucket-tiering-accesstier
2146 */
2147 readonly accessTier: string;
2148 /**
2149 * The number of consecutive days of no access after which an object will be eligible to be transitioned to the corresponding tier. The minimum number of days specified for Archive Access tier must be at least 90 days and Deep Archive Access tier must be at least 180 days. The maximum can be up to 2 years (730 days).
2150 *
2151 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tiering.html#cfn-s3-bucket-tiering-days
2152 */
2153 readonly days: number;
2154 }
2155}
2156export declare namespace CfnBucket {
2157 /**
2158 * 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.
2159 *
2160 * @struct
2161 * @stability external
2162 *
2163 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-topicconfig.html
2164 */
2165 interface TopicConfigurationProperty {
2166 /**
2167 * 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* .
2168 *
2169 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-topicconfig.html#cfn-s3-bucket-notificationconfig-topicconfig-event
2170 */
2171 readonly event: string;
2172 /**
2173 * 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.
2174 *
2175 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-topicconfig.html#cfn-s3-bucket-notificationconfig-topicconfig-filter
2176 */
2177 readonly filter?: CfnBucket.NotificationFilterProperty | cdk.IResolvable;
2178 /**
2179 * The Amazon Resource Name (ARN) of the Amazon SNS topic to which Amazon S3 publishes a message when it detects events of the specified type.
2180 *
2181 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-topicconfig.html#cfn-s3-bucket-notificationconfig-topicconfig-topic
2182 */
2183 readonly topic: string;
2184 }
2185}
2186export declare namespace CfnBucket {
2187 /**
2188 * 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* .
2189 *
2190 * @struct
2191 * @stability external
2192 *
2193 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-transition.html
2194 */
2195 interface TransitionProperty {
2196 /**
2197 * The storage class to which you want the object to transition.
2198 *
2199 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-transition.html#cfn-s3-bucket-lifecycleconfig-rule-transition-storageclass
2200 */
2201 readonly storageClass: string;
2202 /**
2203 * 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.
2204 *
2205 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-transition.html#cfn-s3-bucket-lifecycleconfig-rule-transition-transitiondate
2206 */
2207 readonly transitionDate?: Date | cdk.IResolvable;
2208 /**
2209 * Indicates the number of days after creation when objects are transitioned to the specified storage class. The value must be a positive integer.
2210 *
2211 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-transition.html#cfn-s3-bucket-lifecycleconfig-rule-transition-transitionindays
2212 */
2213 readonly transitionInDays?: number;
2214 }
2215}
2216export declare namespace CfnBucket {
2217 /**
2218 * 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* .
2219 *
2220 * @struct
2221 * @stability external
2222 *
2223 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-versioningconfig.html
2224 */
2225 interface VersioningConfigurationProperty {
2226 /**
2227 * The versioning state of the bucket.
2228 *
2229 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-versioningconfig.html#cfn-s3-bucket-versioningconfig-status
2230 */
2231 readonly status: string;
2232 }
2233}
2234export declare namespace CfnBucket {
2235 /**
2236 * Specifies website configuration parameters for an Amazon S3 bucket.
2237 *
2238 * @struct
2239 * @stability external
2240 *
2241 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration.html
2242 */
2243 interface WebsiteConfigurationProperty {
2244 /**
2245 * The name of the error document for the website.
2246 *
2247 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration.html#cfn-s3-websiteconfiguration-errordocument
2248 */
2249 readonly errorDocument?: string;
2250 /**
2251 * The name of the index document for the website.
2252 *
2253 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration.html#cfn-s3-websiteconfiguration-indexdocument
2254 */
2255 readonly indexDocument?: string;
2256 /**
2257 * The redirect behavior for every request to this bucket's website endpoint.
2258 *
2259 * > If you specify this property, you can't specify any other property.
2260 *
2261 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration.html#cfn-s3-websiteconfiguration-redirectallrequeststo
2262 */
2263 readonly redirectAllRequestsTo?: CfnBucket.RedirectAllRequestsToProperty | cdk.IResolvable;
2264 /**
2265 * Rules that define when a redirect is applied and the redirect behavior.
2266 *
2267 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration.html#cfn-s3-websiteconfiguration-routingrules
2268 */
2269 readonly routingRules?: Array<CfnBucket.RoutingRuleProperty | cdk.IResolvable> | cdk.IResolvable;
2270 }
2271}
2272/**
2273 * Properties for defining a `CfnBucketPolicy`
2274 *
2275 * @struct
2276 * @stability external
2277 *
2278 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html
2279 */
2280export interface CfnBucketPolicyProps {
2281 /**
2282 * The name of the Amazon S3 bucket to which the policy applies.
2283 *
2284 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html#aws-properties-s3-policy-bucket
2285 */
2286 readonly bucket: string;
2287 /**
2288 * A policy document containing permissions to add to the specified bucket. In IAM, you must provide policy documents in JSON format. However, in CloudFormation you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to IAM. For more information, see the AWS::IAM::Policy [PolicyDocument](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-policydocument) resource description in this guide and [Access Policy Language Overview](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-policy-language-overview.html) in the *Amazon S3 User Guide* .
2289 *
2290 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html#aws-properties-s3-policy-policydocument
2291 */
2292 readonly policyDocument: any | cdk.IResolvable;
2293}
2294/**
2295 * A CloudFormation `AWS::S3::BucketPolicy`
2296 *
2297 * Applies an Amazon S3 bucket policy to an Amazon S3 bucket. If you are using an identity other than the root user of the AWS account that owns the bucket, the calling identity must have the `PutBucketPolicy` permissions on the specified bucket and belong to the bucket owner's account in order to use this operation.
2298 *
2299 * If you don't have `PutBucketPolicy` permissions, Amazon S3 returns a `403 Access Denied` error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a `405 Method Not Allowed` error.
2300 *
2301 * > As a security precaution, the root user of the AWS account that owns a bucket can always use this operation, even if the policy explicitly denies the root user the ability to perform this action.
2302 *
2303 * For more information, see [Bucket policy examples](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) .
2304 *
2305 * The following operations are related to `PutBucketPolicy` :
2306 *
2307 * - [CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)
2308 * - [DeleteBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html)
2309 *
2310 * @cloudformationResource AWS::S3::BucketPolicy
2311 * @stability external
2312 *
2313 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html
2314 */
2315export declare class CfnBucketPolicy extends cdk.CfnResource implements cdk.IInspectable {
2316 /**
2317 * The CloudFormation resource type name for this resource class.
2318 */
2319 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::S3::BucketPolicy";
2320 /**
2321 * A factory method that creates a new instance of this class from an object
2322 * containing the CloudFormation properties of this resource.
2323 * Used in the @aws-cdk/cloudformation-include module.
2324 *
2325 * @internal
2326 */
2327 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnBucketPolicy;
2328 /**
2329 * The name of the Amazon S3 bucket to which the policy applies.
2330 *
2331 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html#aws-properties-s3-policy-bucket
2332 */
2333 bucket: string;
2334 /**
2335 * A policy document containing permissions to add to the specified bucket. In IAM, you must provide policy documents in JSON format. However, in CloudFormation you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to IAM. For more information, see the AWS::IAM::Policy [PolicyDocument](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-policydocument) resource description in this guide and [Access Policy Language Overview](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-policy-language-overview.html) in the *Amazon S3 User Guide* .
2336 *
2337 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html#aws-properties-s3-policy-policydocument
2338 */
2339 policyDocument: any | cdk.IResolvable;
2340 /**
2341 * Create a new `AWS::S3::BucketPolicy`.
2342 *
2343 * @param scope - scope in which this resource is defined
2344 * @param id - scoped id of the resource
2345 * @param props - resource properties
2346 */
2347 constructor(scope: cdk.Construct, id: string, props: CfnBucketPolicyProps);
2348 /**
2349 * Examines the CloudFormation resource and discloses attributes.
2350 *
2351 * @param inspector - tree inspector to collect and process attributes
2352 *
2353 */
2354 inspect(inspector: cdk.TreeInspector): void;
2355 protected get cfnProperties(): {
2356 [key: string]: any;
2357 };
2358 protected renderProperties(props: {
2359 [key: string]: any;
2360 }): {
2361 [key: string]: any;
2362 };
2363}
2364/**
2365 * Properties for defining a `CfnMultiRegionAccessPoint`
2366 *
2367 * @struct
2368 * @stability external
2369 *
2370 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-multiregionaccesspoint.html
2371 */
2372export interface CfnMultiRegionAccessPointProps {
2373 /**
2374 * A collection of the Regions and buckets associated with the Multi-Region Access Point.
2375 *
2376 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-multiregionaccesspoint.html#cfn-s3-multiregionaccesspoint-regions
2377 */
2378 readonly regions: Array<CfnMultiRegionAccessPoint.RegionProperty | cdk.IResolvable> | cdk.IResolvable;
2379 /**
2380 * The name of the Multi-Region Access Point.
2381 *
2382 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-multiregionaccesspoint.html#cfn-s3-multiregionaccesspoint-name
2383 */
2384 readonly name?: string;
2385 /**
2386 * The PublicAccessBlock configuration that you want to apply to this Multi-Region Access Point. You can enable the configuration options in any combination. For more information about when Amazon S3 considers an 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* .
2387 *
2388 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-multiregionaccesspoint.html#cfn-s3-multiregionaccesspoint-publicaccessblockconfiguration
2389 */
2390 readonly publicAccessBlockConfiguration?: CfnMultiRegionAccessPoint.PublicAccessBlockConfigurationProperty | cdk.IResolvable;
2391}
2392/**
2393 * A CloudFormation `AWS::S3::MultiRegionAccessPoint`
2394 *
2395 * The `AWS::S3::MultiRegionAccessPoint` resource creates an Amazon S3 Multi-Region Access Point. To learn more about Multi-Region Access Points, see [Multi-Region Access Points in Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/MultiRegionAccessPoints.html) in the in the *Amazon S3 User Guide* .
2396 *
2397 * @cloudformationResource AWS::S3::MultiRegionAccessPoint
2398 * @stability external
2399 *
2400 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-multiregionaccesspoint.html
2401 */
2402export declare class CfnMultiRegionAccessPoint extends cdk.CfnResource implements cdk.IInspectable {
2403 /**
2404 * The CloudFormation resource type name for this resource class.
2405 */
2406 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::S3::MultiRegionAccessPoint";
2407 /**
2408 * A factory method that creates a new instance of this class from an object
2409 * containing the CloudFormation properties of this resource.
2410 * Used in the @aws-cdk/cloudformation-include module.
2411 *
2412 * @internal
2413 */
2414 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnMultiRegionAccessPoint;
2415 /**
2416 * The alias for the Multi-Region Access Point. For more information about the distinction between the name and the alias of an Multi-Region Access Point, see [Managing Multi-Region Access Points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingMultiRegionAccessPoints.html#multi-region-access-point-naming) in the *Amazon S3 User Guide* .
2417 * @cloudformationAttribute Alias
2418 */
2419 readonly attrAlias: string;
2420 /**
2421 * The timestamp of when the Multi-Region Access Point is created.
2422 * @cloudformationAttribute CreatedAt
2423 */
2424 readonly attrCreatedAt: string;
2425 /**
2426 * A collection of the Regions and buckets associated with the Multi-Region Access Point.
2427 *
2428 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-multiregionaccesspoint.html#cfn-s3-multiregionaccesspoint-regions
2429 */
2430 regions: Array<CfnMultiRegionAccessPoint.RegionProperty | cdk.IResolvable> | cdk.IResolvable;
2431 /**
2432 * The name of the Multi-Region Access Point.
2433 *
2434 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-multiregionaccesspoint.html#cfn-s3-multiregionaccesspoint-name
2435 */
2436 name: string | undefined;
2437 /**
2438 * The PublicAccessBlock configuration that you want to apply to this Multi-Region Access Point. You can enable the configuration options in any combination. For more information about when Amazon S3 considers an 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* .
2439 *
2440 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-multiregionaccesspoint.html#cfn-s3-multiregionaccesspoint-publicaccessblockconfiguration
2441 */
2442 publicAccessBlockConfiguration: CfnMultiRegionAccessPoint.PublicAccessBlockConfigurationProperty | cdk.IResolvable | undefined;
2443 /**
2444 * Create a new `AWS::S3::MultiRegionAccessPoint`.
2445 *
2446 * @param scope - scope in which this resource is defined
2447 * @param id - scoped id of the resource
2448 * @param props - resource properties
2449 */
2450 constructor(scope: cdk.Construct, id: string, props: CfnMultiRegionAccessPointProps);
2451 /**
2452 * Examines the CloudFormation resource and discloses attributes.
2453 *
2454 * @param inspector - tree inspector to collect and process attributes
2455 *
2456 */
2457 inspect(inspector: cdk.TreeInspector): void;
2458 protected get cfnProperties(): {
2459 [key: string]: any;
2460 };
2461 protected renderProperties(props: {
2462 [key: string]: any;
2463 }): {
2464 [key: string]: any;
2465 };
2466}
2467export declare namespace CfnMultiRegionAccessPoint {
2468 /**
2469 * The PublicAccessBlock configuration that you want to apply to this Amazon S3 Multi-Region Access Point. You can enable the configuration options in any combination. For more information about when Amazon S3 considers an 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* .
2470 *
2471 * @struct
2472 * @stability external
2473 *
2474 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-multiregionaccesspoint-publicaccessblockconfiguration.html
2475 */
2476 interface PublicAccessBlockConfigurationProperty {
2477 /**
2478 * 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:
2479 *
2480 * - PUT Bucket ACL and PUT Object ACL calls fail if the specified ACL is public.
2481 * - PUT Object calls fail if the request includes a public ACL.
2482 * - PUT Bucket calls fail if the request includes a public ACL.
2483 *
2484 * Enabling this setting doesn't affect existing policies or ACLs.
2485 *
2486 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-multiregionaccesspoint-publicaccessblockconfiguration.html#cfn-s3-multiregionaccesspoint-publicaccessblockconfiguration-blockpublicacls
2487 */
2488 readonly blockPublicAcls?: boolean | cdk.IResolvable;
2489 /**
2490 * 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.
2491 *
2492 * Enabling this setting doesn't affect existing bucket policies.
2493 *
2494 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-multiregionaccesspoint-publicaccessblockconfiguration.html#cfn-s3-multiregionaccesspoint-publicaccessblockconfiguration-blockpublicpolicy
2495 */
2496 readonly blockPublicPolicy?: boolean | cdk.IResolvable;
2497 /**
2498 * 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.
2499 *
2500 * Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set.
2501 *
2502 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-multiregionaccesspoint-publicaccessblockconfiguration.html#cfn-s3-multiregionaccesspoint-publicaccessblockconfiguration-ignorepublicacls
2503 */
2504 readonly ignorePublicAcls?: boolean | cdk.IResolvable;
2505 /**
2506 * 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.
2507 *
2508 * 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.
2509 *
2510 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-multiregionaccesspoint-publicaccessblockconfiguration.html#cfn-s3-multiregionaccesspoint-publicaccessblockconfiguration-restrictpublicbuckets
2511 */
2512 readonly restrictPublicBuckets?: boolean | cdk.IResolvable;
2513 }
2514}
2515export declare namespace CfnMultiRegionAccessPoint {
2516 /**
2517 * A bucket associated with a specific Region when creating Multi-Region Access Points.
2518 *
2519 * @struct
2520 * @stability external
2521 *
2522 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-multiregionaccesspoint-region.html
2523 */
2524 interface RegionProperty {
2525 /**
2526 * The name of the associated bucket for the Region.
2527 *
2528 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-multiregionaccesspoint-region.html#cfn-s3-multiregionaccesspoint-region-bucket
2529 */
2530 readonly bucket: string;
2531 }
2532}
2533/**
2534 * Properties for defining a `CfnMultiRegionAccessPointPolicy`
2535 *
2536 * @struct
2537 * @stability external
2538 *
2539 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-multiregionaccesspointpolicy.html
2540 */
2541export interface CfnMultiRegionAccessPointPolicyProps {
2542 /**
2543 * The name of the Multi-Region Access Point.
2544 *
2545 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-multiregionaccesspointpolicy.html#cfn-s3-multiregionaccesspointpolicy-mrapname
2546 */
2547 readonly mrapName: string;
2548 /**
2549 * The access policy associated with the Multi-Region Access Point.
2550 *
2551 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-multiregionaccesspointpolicy.html#cfn-s3-multiregionaccesspointpolicy-policy
2552 */
2553 readonly policy: any | cdk.IResolvable;
2554}
2555/**
2556 * A CloudFormation `AWS::S3::MultiRegionAccessPointPolicy`
2557 *
2558 * Applies an Amazon S3 access policy to an Amazon S3 Multi-Region Access Point.
2559 *
2560 * It is not possible to delete an access policy for a Multi-Region Access Point from the CloudFormation template. When you attempt to delete the policy, CloudFormation updates the policy using `DeletionPolicy:Retain` and `UpdateReplacePolicy:Retain` . CloudFormation updates the policy to only allow access to the account that created the bucket.
2561 *
2562 * @cloudformationResource AWS::S3::MultiRegionAccessPointPolicy
2563 * @stability external
2564 *
2565 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-multiregionaccesspointpolicy.html
2566 */
2567export declare class CfnMultiRegionAccessPointPolicy extends cdk.CfnResource implements cdk.IInspectable {
2568 /**
2569 * The CloudFormation resource type name for this resource class.
2570 */
2571 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::S3::MultiRegionAccessPointPolicy";
2572 /**
2573 * A factory method that creates a new instance of this class from an object
2574 * containing the CloudFormation properties of this resource.
2575 * Used in the @aws-cdk/cloudformation-include module.
2576 *
2577 * @internal
2578 */
2579 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnMultiRegionAccessPointPolicy;
2580 /**
2581 * The name of the Multi-Region Access Point.
2582 *
2583 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-multiregionaccesspointpolicy.html#cfn-s3-multiregionaccesspointpolicy-mrapname
2584 */
2585 mrapName: string;
2586 /**
2587 * The access policy associated with the Multi-Region Access Point.
2588 *
2589 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-multiregionaccesspointpolicy.html#cfn-s3-multiregionaccesspointpolicy-policy
2590 */
2591 policy: any | cdk.IResolvable;
2592 /**
2593 * Create a new `AWS::S3::MultiRegionAccessPointPolicy`.
2594 *
2595 * @param scope - scope in which this resource is defined
2596 * @param id - scoped id of the resource
2597 * @param props - resource properties
2598 */
2599 constructor(scope: cdk.Construct, id: string, props: CfnMultiRegionAccessPointPolicyProps);
2600 /**
2601 * Examines the CloudFormation resource and discloses attributes.
2602 *
2603 * @param inspector - tree inspector to collect and process attributes
2604 *
2605 */
2606 inspect(inspector: cdk.TreeInspector): void;
2607 protected get cfnProperties(): {
2608 [key: string]: any;
2609 };
2610 protected renderProperties(props: {
2611 [key: string]: any;
2612 }): {
2613 [key: string]: any;
2614 };
2615}
2616/**
2617 * Properties for defining a `CfnStorageLens`
2618 *
2619 * @struct
2620 * @stability external
2621 *
2622 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-storagelens.html
2623 */
2624export interface CfnStorageLensProps {
2625 /**
2626 * This resource contains the details Amazon S3 Storage Lens configuration.
2627 *
2628 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-storagelens.html#cfn-s3-storagelens-storagelensconfiguration
2629 */
2630 readonly storageLensConfiguration: CfnStorageLens.StorageLensConfigurationProperty | cdk.IResolvable;
2631 /**
2632 * A set of tags (key–value pairs) to associate with the Storage Lens configuration.
2633 *
2634 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-storagelens.html#cfn-s3-storagelens-tags
2635 */
2636 readonly tags?: cdk.CfnTag[];
2637}
2638/**
2639 * A CloudFormation `AWS::S3::StorageLens`
2640 *
2641 * The AWS::S3::StorageLens resource creates an instance of an Amazon S3 Storage Lens configuration.
2642 *
2643 * @cloudformationResource AWS::S3::StorageLens
2644 * @stability external
2645 *
2646 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-storagelens.html
2647 */
2648export declare class CfnStorageLens extends cdk.CfnResource implements cdk.IInspectable {
2649 /**
2650 * The CloudFormation resource type name for this resource class.
2651 */
2652 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::S3::StorageLens";
2653 /**
2654 * A factory method that creates a new instance of this class from an object
2655 * containing the CloudFormation properties of this resource.
2656 * Used in the @aws-cdk/cloudformation-include module.
2657 *
2658 * @internal
2659 */
2660 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnStorageLens;
2661 /**
2662 * This property contains the details of the ARN of the S3 Storage Lens configuration. This property is read-only.
2663 * @cloudformationAttribute StorageLensConfiguration.StorageLensArn
2664 */
2665 readonly attrStorageLensConfigurationStorageLensArn: string;
2666 /**
2667 * This resource contains the details Amazon S3 Storage Lens configuration.
2668 *
2669 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-storagelens.html#cfn-s3-storagelens-storagelensconfiguration
2670 */
2671 storageLensConfiguration: CfnStorageLens.StorageLensConfigurationProperty | cdk.IResolvable;
2672 /**
2673 * A set of tags (key–value pairs) to associate with the Storage Lens configuration.
2674 *
2675 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-storagelens.html#cfn-s3-storagelens-tags
2676 */
2677 readonly tags: cdk.TagManager;
2678 /**
2679 * Create a new `AWS::S3::StorageLens`.
2680 *
2681 * @param scope - scope in which this resource is defined
2682 * @param id - scoped id of the resource
2683 * @param props - resource properties
2684 */
2685 constructor(scope: cdk.Construct, id: string, props: CfnStorageLensProps);
2686 /**
2687 * Examines the CloudFormation resource and discloses attributes.
2688 *
2689 * @param inspector - tree inspector to collect and process attributes
2690 *
2691 */
2692 inspect(inspector: cdk.TreeInspector): void;
2693 protected get cfnProperties(): {
2694 [key: string]: any;
2695 };
2696 protected renderProperties(props: {
2697 [key: string]: any;
2698 }): {
2699 [key: string]: any;
2700 };
2701}
2702export declare namespace CfnStorageLens {
2703 /**
2704 * This resource contains the details of the account-level metrics for Amazon S3 Storage Lens.
2705 *
2706 * @struct
2707 * @stability external
2708 *
2709 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-accountlevel.html
2710 */
2711 interface AccountLevelProperty {
2712 /**
2713 * This property contains the details of the account-level activity metrics for Amazon S3 Storage Lens.
2714 *
2715 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-accountlevel.html#cfn-s3-storagelens-accountlevel-activitymetrics
2716 */
2717 readonly activityMetrics?: CfnStorageLens.ActivityMetricsProperty | cdk.IResolvable;
2718 /**
2719 * This property contains the details of the account-level bucket-level configurations for Amazon S3 Storage Lens.
2720 *
2721 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-accountlevel.html#cfn-s3-storagelens-accountlevel-bucketlevel
2722 */
2723 readonly bucketLevel: CfnStorageLens.BucketLevelProperty | cdk.IResolvable;
2724 }
2725}
2726export declare namespace CfnStorageLens {
2727 /**
2728 * This resource contains the details of the activity metrics for Amazon S3 Storage Lens.
2729 *
2730 * @struct
2731 * @stability external
2732 *
2733 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-activitymetrics.html
2734 */
2735 interface ActivityMetricsProperty {
2736 /**
2737 * A property that indicates whether the activity metrics is enabled.
2738 *
2739 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-activitymetrics.html#cfn-s3-storagelens-activitymetrics-isenabled
2740 */
2741 readonly isEnabled?: boolean | cdk.IResolvable;
2742 }
2743}
2744export declare namespace CfnStorageLens {
2745 /**
2746 * This resource contains the details of the AWS Organization for Amazon S3 Storage Lens.
2747 *
2748 * @struct
2749 * @stability external
2750 *
2751 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-awsorg.html
2752 */
2753 interface AwsOrgProperty {
2754 /**
2755 * This resource contains the ARN of the AWS Organization.
2756 *
2757 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-awsorg.html#cfn-s3-storagelens-awsorg-arn
2758 */
2759 readonly arn: string;
2760 }
2761}
2762export declare namespace CfnStorageLens {
2763 /**
2764 * A property for the bucket-level storage metrics for Amazon S3 Storage Lens.
2765 *
2766 * @struct
2767 * @stability external
2768 *
2769 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-bucketlevel.html
2770 */
2771 interface BucketLevelProperty {
2772 /**
2773 * A property for the bucket-level activity metrics for Amazon S3 Storage Lens.
2774 *
2775 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-bucketlevel.html#cfn-s3-storagelens-bucketlevel-activitymetrics
2776 */
2777 readonly activityMetrics?: CfnStorageLens.ActivityMetricsProperty | cdk.IResolvable;
2778 /**
2779 * A property for the bucket-level prefix-level storage metrics for S3 Storage Lens.
2780 *
2781 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-bucketlevel.html#cfn-s3-storagelens-bucketlevel-prefixlevel
2782 */
2783 readonly prefixLevel?: CfnStorageLens.PrefixLevelProperty | cdk.IResolvable;
2784 }
2785}
2786export declare namespace CfnStorageLens {
2787 /**
2788 * This resource contains the details of the buckets and Regions for the Amazon S3 Storage Lens configuration.
2789 *
2790 * @struct
2791 * @stability external
2792 *
2793 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-bucketsandregions.html
2794 */
2795 interface BucketsAndRegionsProperty {
2796 /**
2797 * This property contains the details of the buckets for the Amazon S3 Storage Lens configuration. This should be the bucket Amazon Resource Name(ARN). For valid values, see [Buckets ARN format here](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_Include.html#API_control_Include_Contents) in the *Amazon S3 API Reference* .
2798 *
2799 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-bucketsandregions.html#cfn-s3-storagelens-bucketsandregions-buckets
2800 */
2801 readonly buckets?: string[];
2802 /**
2803 * This property contains the details of the Regions for the S3 Storage Lens configuration.
2804 *
2805 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-bucketsandregions.html#cfn-s3-storagelens-bucketsandregions-regions
2806 */
2807 readonly regions?: string[];
2808 }
2809}
2810export declare namespace CfnStorageLens {
2811 /**
2812 * This resource enables the Amazon CloudWatch publishing option for S3 Storage Lens metrics.
2813 *
2814 * For more information, see [Monitor S3 Storage Lens metrics in CloudWatch](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_view_metrics_cloudwatch.html) in the *Amazon S3 User Guide* .
2815 *
2816 * @struct
2817 * @stability external
2818 *
2819 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-cloudwatchmetrics.html
2820 */
2821 interface CloudWatchMetricsProperty {
2822 /**
2823 * This property identifies whether the CloudWatch publishing option for S3 Storage Lens is enabled.
2824 *
2825 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-cloudwatchmetrics.html#cfn-s3-storagelens-cloudwatchmetrics-isenabled
2826 */
2827 readonly isEnabled: boolean | cdk.IResolvable;
2828 }
2829}
2830export declare namespace CfnStorageLens {
2831 /**
2832 * This resource contains the details of the Amazon S3 Storage Lens metrics export.
2833 *
2834 * @struct
2835 * @stability external
2836 *
2837 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-dataexport.html
2838 */
2839 interface DataExportProperty {
2840 /**
2841 * This property enables the Amazon CloudWatch publishing option for S3 Storage Lens metrics.
2842 *
2843 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-dataexport.html#cfn-s3-storagelens-dataexport-cloudwatchmetrics
2844 */
2845 readonly cloudWatchMetrics?: CfnStorageLens.CloudWatchMetricsProperty | cdk.IResolvable;
2846 /**
2847 * This property contains the details of the bucket where the S3 Storage Lens metrics export will be placed.
2848 *
2849 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-dataexport.html#cfn-s3-storagelens-dataexport-s3bucketdestination
2850 */
2851 readonly s3BucketDestination?: CfnStorageLens.S3BucketDestinationProperty | cdk.IResolvable;
2852 }
2853}
2854export declare namespace CfnStorageLens {
2855 /**
2856 * This resource contains the details of the prefix-level of the Amazon S3 Storage Lens.
2857 *
2858 * @struct
2859 * @stability external
2860 *
2861 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-prefixlevel.html
2862 */
2863 interface PrefixLevelProperty {
2864 /**
2865 * A property for the prefix-level storage metrics for Amazon S3 Storage Lens.
2866 *
2867 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-prefixlevel.html#cfn-s3-storagelens-prefixlevel-storagemetrics
2868 */
2869 readonly storageMetrics: CfnStorageLens.PrefixLevelStorageMetricsProperty | cdk.IResolvable;
2870 }
2871}
2872export declare namespace CfnStorageLens {
2873 /**
2874 * This resource contains the details of the prefix-level storage metrics for Amazon S3 Storage Lens.
2875 *
2876 * @struct
2877 * @stability external
2878 *
2879 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-prefixlevelstoragemetrics.html
2880 */
2881 interface PrefixLevelStorageMetricsProperty {
2882 /**
2883 * This property identifies whether the details of the prefix-level storage metrics for S3 Storage Lens are enabled.
2884 *
2885 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-prefixlevelstoragemetrics.html#cfn-s3-storagelens-prefixlevelstoragemetrics-isenabled
2886 */
2887 readonly isEnabled?: boolean | cdk.IResolvable;
2888 /**
2889 * This property identifies whether the details of the prefix-level storage metrics for S3 Storage Lens are enabled.
2890 *
2891 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-prefixlevelstoragemetrics.html#cfn-s3-storagelens-prefixlevelstoragemetrics-selectioncriteria
2892 */
2893 readonly selectionCriteria?: CfnStorageLens.SelectionCriteriaProperty | cdk.IResolvable;
2894 }
2895}
2896export declare namespace CfnStorageLens {
2897 /**
2898 * This resource contains the details of the bucket where the Amazon S3 Storage Lens metrics export will be placed.
2899 *
2900 * @struct
2901 * @stability external
2902 *
2903 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-s3bucketdestination.html
2904 */
2905 interface S3BucketDestinationProperty {
2906 /**
2907 * This property contains the details of the AWS account ID of the S3 Storage Lens export bucket destination.
2908 *
2909 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-s3bucketdestination.html#cfn-s3-storagelens-s3bucketdestination-accountid
2910 */
2911 readonly accountId: string;
2912 /**
2913 * This property contains the details of the ARN of the bucket destination of the S3 Storage Lens export.
2914 *
2915 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-s3bucketdestination.html#cfn-s3-storagelens-s3bucketdestination-arn
2916 */
2917 readonly arn: string;
2918 /**
2919 * This property contains the details of the encryption of the bucket destination of the Amazon S3 Storage Lens metrics export.
2920 *
2921 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-s3bucketdestination.html#cfn-s3-storagelens-s3bucketdestination-encryption
2922 */
2923 readonly encryption?: any | cdk.IResolvable | cdk.IResolvable;
2924 /**
2925 * This property contains the details of the format of the S3 Storage Lens export bucket destination.
2926 *
2927 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-s3bucketdestination.html#cfn-s3-storagelens-s3bucketdestination-format
2928 */
2929 readonly format: string;
2930 /**
2931 * This property contains the details of the output schema version of the S3 Storage Lens export bucket destination.
2932 *
2933 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-s3bucketdestination.html#cfn-s3-storagelens-s3bucketdestination-outputschemaversion
2934 */
2935 readonly outputSchemaVersion: string;
2936 /**
2937 * This property contains the details of the prefix of the bucket destination of the S3 Storage Lens export .
2938 *
2939 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-s3bucketdestination.html#cfn-s3-storagelens-s3bucketdestination-prefix
2940 */
2941 readonly prefix?: string;
2942 }
2943}
2944export declare namespace CfnStorageLens {
2945 /**
2946 * This resource contains the details of the Amazon S3 Storage Lens selection criteria.
2947 *
2948 * @struct
2949 * @stability external
2950 *
2951 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-selectioncriteria.html
2952 */
2953 interface SelectionCriteriaProperty {
2954 /**
2955 * This property contains the details of the S3 Storage Lens delimiter being used.
2956 *
2957 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-selectioncriteria.html#cfn-s3-storagelens-selectioncriteria-delimiter
2958 */
2959 readonly delimiter?: string;
2960 /**
2961 * This property contains the details of the max depth that S3 Storage Lens will collect metrics up to.
2962 *
2963 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-selectioncriteria.html#cfn-s3-storagelens-selectioncriteria-maxdepth
2964 */
2965 readonly maxDepth?: number;
2966 /**
2967 * This property contains the details of the minimum storage bytes percentage threshold that S3 Storage Lens will collect metrics up to.
2968 *
2969 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-selectioncriteria.html#cfn-s3-storagelens-selectioncriteria-minstoragebytespercentage
2970 */
2971 readonly minStorageBytesPercentage?: number;
2972 }
2973}
2974export declare namespace CfnStorageLens {
2975 /**
2976 * This is the property of the Amazon S3 Storage Lens configuration.
2977 *
2978 * @struct
2979 * @stability external
2980 *
2981 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-storagelensconfiguration.html
2982 */
2983 interface StorageLensConfigurationProperty {
2984 /**
2985 * This property contains the details of the account-level metrics for Amazon S3 Storage Lens configuration.
2986 *
2987 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-storagelensconfiguration.html#cfn-s3-storagelens-storagelensconfiguration-accountlevel
2988 */
2989 readonly accountLevel: CfnStorageLens.AccountLevelProperty | cdk.IResolvable;
2990 /**
2991 * This property contains the details of the AWS Organization for the S3 Storage Lens configuration.
2992 *
2993 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-storagelensconfiguration.html#cfn-s3-storagelens-storagelensconfiguration-awsorg
2994 */
2995 readonly awsOrg?: CfnStorageLens.AwsOrgProperty | cdk.IResolvable;
2996 /**
2997 * This property contains the details of this S3 Storage Lens configuration's metrics export.
2998 *
2999 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-storagelensconfiguration.html#cfn-s3-storagelens-storagelensconfiguration-dataexport
3000 */
3001 readonly dataExport?: CfnStorageLens.DataExportProperty | cdk.IResolvable;
3002 /**
3003 * This property contains the details of the bucket and or Regions excluded for Amazon S3 Storage Lens configuration.
3004 *
3005 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-storagelensconfiguration.html#cfn-s3-storagelens-storagelensconfiguration-exclude
3006 */
3007 readonly exclude?: CfnStorageLens.BucketsAndRegionsProperty | cdk.IResolvable;
3008 /**
3009 * This property contains the details of the ID of the S3 Storage Lens configuration.
3010 *
3011 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-storagelensconfiguration.html#cfn-s3-storagelens-storagelensconfiguration-id
3012 */
3013 readonly id: string;
3014 /**
3015 * This property contains the details of the bucket and or Regions included for Amazon S3 Storage Lens configuration.
3016 *
3017 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-storagelensconfiguration.html#cfn-s3-storagelens-storagelensconfiguration-include
3018 */
3019 readonly include?: CfnStorageLens.BucketsAndRegionsProperty | cdk.IResolvable;
3020 /**
3021 * This property contains the details of whether the Amazon S3 Storage Lens configuration is enabled.
3022 *
3023 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-storagelensconfiguration.html#cfn-s3-storagelens-storagelensconfiguration-isenabled
3024 */
3025 readonly isEnabled: boolean | cdk.IResolvable;
3026 /**
3027 * This property contains the details of the ARN of the S3 Storage Lens configuration. This property is read-only.
3028 *
3029 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-storagelensconfiguration.html#cfn-s3-storagelens-storagelensconfiguration-storagelensarn
3030 */
3031 readonly storageLensArn?: string;
3032 }
3033}