aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
40 lines (39 loc) • 1.57 kB
TypeScript
import type { IConstruct } from 'constructs';
import { Mixin } from '../../../core/lib/mixins';
import { BlockPublicAccess } from '../bucket';
import { CfnBucket } from '../s3.generated';
/**
* S3-specific Mixin to automatically delete all objects from a bucket
* when the bucket is removed from the stack or when the stack is deleted.
*
* Requires the `removalPolicy` to be set to `RemovalPolicy.DESTROY`.
*
* Apply this mixin to a bucket will add `s3:PutBucketPolicy` to the
* bucket policy. This is because during bucket deletion, the custom resource provider
* needs to update the bucket policy by adding a deny policy for `s3:PutObject` to
* prevent race conditions with external bucket writers.
*/
export declare class BucketAutoDeleteObjects extends Mixin {
private static AUTO_DELETE_OBJECTS_RESOURCE_TYPE;
private static AUTO_DELETE_OBJECTS_TAG;
supports(construct: IConstruct): construct is CfnBucket;
applyTo(construct: IConstruct): void;
}
/**
* S3-specific mixin for enabling versioning.
*/
export declare class BucketVersioning extends Mixin {
private readonly enabled;
constructor(enabled?: boolean);
supports(construct: IConstruct): construct is CfnBucket;
applyTo(construct: IConstruct): void;
}
/**
* S3-specific mixin for blocking public-access.
*/
export declare class BucketBlockPublicAccess extends Mixin {
private readonly configOptions;
constructor(publicAccessConfig?: BlockPublicAccess);
supports(construct: IConstruct): construct is CfnBucket;
applyTo(construct: IConstruct): void;
}