aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
987 lines • 286 kB
TypeScript
import * as cdk from "../../core/lib";
import * as constructs from "constructs";
import * as cfn_parse from "../../core/lib/helpers-internal";
import { aws_s3 as s3Refs } from "../../interfaces";
import { AccessGrantReference, AccessGrantsInstanceReference, AccessGrantsLocationReference, AccessPointReference, BucketPolicyReference, BucketReference, IAccessGrantRef, IAccessGrantsInstanceRef, IAccessGrantsLocationRef, IAccessPointRef, IBucketPolicyRef, IBucketRef, IMultiRegionAccessPointPolicyRef, IMultiRegionAccessPointRef, IStorageLensGroupRef, IStorageLensRef, MultiRegionAccessPointPolicyReference, MultiRegionAccessPointReference, StorageLensGroupReference, StorageLensReference } from "../../interfaces/generated/aws-s3-interfaces.generated";
/**
* The AWS::S3::AccessPoint resource is an Amazon S3 resource type that you can use to access buckets.
*
* @cloudformationResource AWS::S3::AccessPoint
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html
*/
export declare class CfnAccessPoint extends cdk.CfnResource implements cdk.IInspectable, IAccessPointRef, cdk.ITaggableV2 {
/**
* The CloudFormation resource type name for this resource class.
*/
static readonly CFN_RESOURCE_TYPE_NAME: string;
/**
* Build a CfnAccessPoint from CloudFormation properties
*
* A factory method that creates a new instance of this class from an object
* containing the CloudFormation properties of this resource.
* Used in the @aws-cdk/cloudformation-include module.
*
* @internal
*/
static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnAccessPoint;
/**
* Checks whether the given object is a CfnAccessPoint
*/
static isCfnAccessPoint(x: any): x is CfnAccessPoint;
/**
* Creates a new IAccessPointRef from an ARN
*/
static fromAccessPointArn(scope: constructs.Construct, id: string, arn: string): IAccessPointRef;
/**
* Creates a new IAccessPointRef from a accessPointName
*/
static fromAccessPointName(scope: constructs.Construct, id: string, accessPointName: string): IAccessPointRef;
static arnForAccessPoint(resource: IAccessPointRef): string;
/**
* The name of the bucket associated with this access point.
*/
private _bucket;
/**
* The AWS account ID associated with the S3 bucket associated with this access point.
*/
private _bucketAccountId?;
/**
* Tag Manager which manages the tags for this resource
*/
readonly cdkTagManager: cdk.TagManager;
/**
* The name of this access point.
*/
private _name?;
/**
* The access point policy associated with this access point.
*/
private _policy?;
/**
* The PublicAccessBlock configuration that you want to apply to this Amazon S3 bucket.
*/
private _publicAccessBlockConfiguration?;
/**
* An array of tags that you can apply to access points.
*/
private _tags?;
/**
* The Virtual Private Cloud (VPC) configuration for this access point, if one exists.
*/
private _vpcConfiguration?;
/**
* Create a new `AWS::S3::AccessPoint`.
*
* @param scope Scope in which this resource is defined
* @param id Construct identifier for this resource (unique in its scope)
* @param props Resource properties
*/
constructor(scope: constructs.Construct, id: string, props: CfnAccessPointProps);
get accessPointRef(): AccessPointReference;
/**
* The name of the bucket associated with this access point.
*/
get bucket(): string;
/**
* The name of the bucket associated with this access point.
*/
set bucket(value: string);
/**
* The AWS account ID associated with the S3 bucket associated with this access point.
*/
get bucketAccountId(): string | undefined;
/**
* The AWS account ID associated with the S3 bucket associated with this access point.
*/
set bucketAccountId(value: string | undefined);
/**
* The name of this access point.
*/
get name(): string | undefined;
/**
* The name of this access point.
*/
set name(value: string | undefined);
/**
* The access point policy associated with this access point.
*/
get policy(): any | cdk.IResolvable | undefined;
/**
* The access point policy associated with this access point.
*/
set policy(value: any | cdk.IResolvable | undefined);
/**
* The PublicAccessBlock configuration that you want to apply to this Amazon S3 bucket.
*/
get publicAccessBlockConfiguration(): cdk.IResolvable | CfnAccessPoint.PublicAccessBlockConfigurationProperty | undefined;
/**
* The PublicAccessBlock configuration that you want to apply to this Amazon S3 bucket.
*/
set publicAccessBlockConfiguration(value: cdk.IResolvable | CfnAccessPoint.PublicAccessBlockConfigurationProperty | undefined);
/**
* An array of tags that you can apply to access points.
*/
get tags(): Array<cdk.CfnTag> | undefined;
/**
* An array of tags that you can apply to access points.
*/
set tags(value: Array<cdk.CfnTag> | undefined);
/**
* The Virtual Private Cloud (VPC) configuration for this access point, if one exists.
*/
get vpcConfiguration(): cdk.IResolvable | CfnAccessPoint.VpcConfigurationProperty | undefined;
/**
* The Virtual Private Cloud (VPC) configuration for this access point, if one exists.
*/
set vpcConfiguration(value: cdk.IResolvable | CfnAccessPoint.VpcConfigurationProperty | undefined);
/**
* The alias for this access point.
*
* @cloudformationAttribute Alias
*/
get attrAlias(): string;
/**
* This property contains the details of the ARN for the access point.
*
* @cloudformationAttribute Arn
*/
get attrArn(): string;
/**
* The name of this access point.
*
* @cloudformationAttribute Name
*/
get attrName(): string;
/**
* 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.
*
* *Allowed values* : `VPC` | `Internet`
*
* @cloudformationAttribute NetworkOrigin
*/
get attrNetworkOrigin(): string;
protected get cfnProperties(): Record<string, any>;
/**
* Examines the CloudFormation resource and discloses attributes
*
* @param inspector tree inspector to collect and process attributes
*/
inspect(inspector: cdk.TreeInspector): void;
protected renderProperties(props: Record<string, any>): Record<string, any>;
}
export declare namespace CfnAccessPoint {
/**
* The PublicAccessBlock configuration that you want to apply to this Amazon S3 bucket.
*
* You can enable the configuration options in any combination. Bucket-level settings work alongside account-level settings (which may inherit from organization-level policies). 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* .
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-accesspoint-publicaccessblockconfiguration.html
*/
interface PublicAccessBlockConfigurationProperty {
/**
* 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:
*
* - PUT Bucket ACL and PUT Object ACL calls fail if the specified ACL is public.
* - PUT Object calls fail if the request includes a public ACL.
* - PUT Bucket calls fail if the request includes a public ACL.
*
* Enabling this setting doesn't affect existing policies or ACLs.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-accesspoint-publicaccessblockconfiguration.html#cfn-s3-accesspoint-publicaccessblockconfiguration-blockpublicacls
*/
readonly blockPublicAcls?: boolean | cdk.IResolvable;
/**
* 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.
*
* Enabling this setting doesn't affect existing bucket policies.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-accesspoint-publicaccessblockconfiguration.html#cfn-s3-accesspoint-publicaccessblockconfiguration-blockpublicpolicy
*/
readonly blockPublicPolicy?: boolean | cdk.IResolvable;
/**
* 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.
*
* Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-accesspoint-publicaccessblockconfiguration.html#cfn-s3-accesspoint-publicaccessblockconfiguration-ignorepublicacls
*/
readonly ignorePublicAcls?: boolean | cdk.IResolvable;
/**
* 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.
*
* 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.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-accesspoint-publicaccessblockconfiguration.html#cfn-s3-accesspoint-publicaccessblockconfiguration-restrictpublicbuckets
*/
readonly restrictPublicBuckets?: boolean | cdk.IResolvable;
}
/**
* The Virtual Private Cloud (VPC) configuration for this access point.
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-accesspoint-vpcconfiguration.html
*/
interface VpcConfigurationProperty {
/**
* If this field is specified, the access point will only allow connections from the specified VPC ID.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-accesspoint-vpcconfiguration.html#cfn-s3-accesspoint-vpcconfiguration-vpcid
*/
readonly vpcId?: string;
}
}
/**
* Properties for defining a `CfnAccessPoint`
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html
*/
export interface CfnAccessPointProps {
/**
* The name of the bucket associated with this access point.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html#cfn-s3-accesspoint-bucket
*/
readonly bucket: s3Refs.IBucketRef | string;
/**
* The AWS account ID associated with the S3 bucket associated with this access point.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html#cfn-s3-accesspoint-bucketaccountid
*/
readonly bucketAccountId?: string;
/**
* 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.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html#cfn-s3-accesspoint-name
*/
readonly name?: string;
/**
* The access point policy associated with this access point.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html#cfn-s3-accesspoint-policy
*/
readonly policy?: any | cdk.IResolvable;
/**
* 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* .
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html#cfn-s3-accesspoint-publicaccessblockconfiguration
*/
readonly publicAccessBlockConfiguration?: cdk.IResolvable | CfnAccessPoint.PublicAccessBlockConfigurationProperty;
/**
* An array of tags that you can apply to access points.
*
* Tags are key-value pairs of metadata used to categorize your access points and control access. For more information, see [Using tags for attribute-based access control (ABAC)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/tagging.html#using-tags-for-abac) .
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html#cfn-s3-accesspoint-tags
*/
readonly tags?: Array<cdk.CfnTag>;
/**
* The Virtual Private Cloud (VPC) configuration for this access point, if one exists.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-accesspoint.html#cfn-s3-accesspoint-vpcconfiguration
*/
readonly vpcConfiguration?: cdk.IResolvable | CfnAccessPoint.VpcConfigurationProperty;
}
/**
* The `AWS::S3::Bucket` resource creates an Amazon S3 bucket in the same AWS Region where you create the AWS CloudFormation stack.
*
* 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) .
*
* > You can only delete empty buckets. Deletion fails for buckets that have contents.
*
* @cloudformationResource AWS::S3::Bucket
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html
*/
export declare class CfnBucket extends cdk.CfnResource implements cdk.IInspectable, IBucketRef, cdk.ITaggable {
/**
* The CloudFormation resource type name for this resource class.
*/
static readonly CFN_RESOURCE_TYPE_NAME: string;
/**
* Build a CfnBucket from CloudFormation properties
*
* A factory method that creates a new instance of this class from an object
* containing the CloudFormation properties of this resource.
* Used in the @aws-cdk/cloudformation-include module.
*
* @internal
*/
static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnBucket;
/**
* Checks whether the given object is a CfnBucket
*/
static isCfnBucket(x: any): x is CfnBucket;
/**
* Creates a new IBucketRef from an ARN
*/
static fromBucketArn(scope: constructs.Construct, id: string, arn: string): IBucketRef;
/**
* Creates a new IBucketRef from a bucketName
*/
static fromBucketName(scope: constructs.Construct, id: string, bucketName: string): IBucketRef;
static arnForBucket(resource: IBucketRef): string;
/**
* The ABAC status of the general purpose bucket.
*/
private _abacStatus?;
/**
* Configures the transfer acceleration state for an Amazon S3 bucket.
*/
private _accelerateConfiguration?;
/**
* > This is a legacy property, and it is not recommended for most use cases.
*/
private _accessControl?;
/**
* Specifies the configuration and any analyses for the analytics filter of an Amazon S3 bucket.
*/
private _analyticsConfigurations?;
/**
* Specifies default encryption for a bucket using server-side encryption with Amazon S3-managed keys (SSE-S3), AWS KMS-managed keys (SSE-KMS), or dual-layer server-side encryption with KMS-managed keys (DSSE-KMS).
*/
private _bucketEncryption?;
/**
* A name for the bucket.
*/
private _bucketName?;
private _bucketNamePrefix?;
private _bucketNamespace?;
/**
* Describes the cross-origin access configuration for objects in an Amazon S3 bucket.
*/
private _corsConfiguration?;
/**
* Defines how Amazon S3 handles Intelligent-Tiering storage.
*/
private _intelligentTieringConfigurations?;
/**
* Specifies the S3 Inventory configuration for an Amazon S3 bucket.
*/
private _inventoryConfigurations?;
/**
* Specifies the lifecycle configuration for objects in an Amazon S3 bucket.
*/
private _lifecycleConfiguration?;
/**
* Settings that define where logs are stored.
*/
private _loggingConfiguration?;
/**
* The S3 Metadata configuration for a general purpose bucket.
*/
private _metadataConfiguration?;
/**
* The metadata table configuration of an Amazon S3 general purpose bucket.
*/
private _metadataTableConfiguration?;
/**
* Specifies a metrics configuration for the CloudWatch request metrics (specified by the metrics configuration ID) from an Amazon S3 bucket.
*/
private _metricsConfigurations?;
/**
* Configuration that defines how Amazon S3 handles bucket notifications.
*/
private _notificationConfiguration?;
/**
* > This operation is not supported for directory buckets.
*/
private _objectLockConfiguration?;
/**
* Indicates whether this bucket has an Object Lock configuration enabled.
*/
private _objectLockEnabled?;
/**
* Configuration that defines how Amazon S3 handles Object Ownership rules.
*/
private _ownershipControls?;
/**
* Configuration that defines how Amazon S3 handles public access.
*/
private _publicAccessBlockConfiguration?;
/**
* Configuration for replicating objects in an S3 bucket.
*/
private _replicationConfiguration?;
/**
* Tag Manager which manages the tags for this resource
*/
readonly tags: cdk.TagManager;
/**
* An arbitrary set of tags (key-value pairs) for this S3 bucket.
*/
private _tagsRaw?;
/**
* Enables multiple versions of all objects in this bucket.
*/
private _versioningConfiguration?;
/**
* Information used to configure the bucket as a static website.
*/
private _websiteConfiguration?;
/**
* Create a new `AWS::S3::Bucket`.
*
* @param scope Scope in which this resource is defined
* @param id Construct identifier for this resource (unique in its scope)
* @param props Resource properties
*/
constructor(scope: constructs.Construct, id: string, props?: CfnBucketProps);
get bucketRef(): BucketReference;
/**
* The ABAC status of the general purpose bucket.
*/
get abacStatus(): string | undefined;
/**
* The ABAC status of the general purpose bucket.
*/
set abacStatus(value: string | undefined);
/**
* Configures the transfer acceleration state for an Amazon S3 bucket.
*/
get accelerateConfiguration(): CfnBucket.AccelerateConfigurationProperty | cdk.IResolvable | undefined;
/**
* Configures the transfer acceleration state for an Amazon S3 bucket.
*/
set accelerateConfiguration(value: CfnBucket.AccelerateConfigurationProperty | cdk.IResolvable | undefined);
/**
* > This is a legacy property, and it is not recommended for most use cases.
*/
get accessControl(): string | undefined;
/**
* > This is a legacy property, and it is not recommended for most use cases.
*/
set accessControl(value: string | undefined);
/**
* Specifies the configuration and any analyses for the analytics filter of an Amazon S3 bucket.
*/
get analyticsConfigurations(): Array<CfnBucket.AnalyticsConfigurationProperty | cdk.IResolvable> | cdk.IResolvable | undefined;
/**
* Specifies the configuration and any analyses for the analytics filter of an Amazon S3 bucket.
*/
set analyticsConfigurations(value: Array<CfnBucket.AnalyticsConfigurationProperty | cdk.IResolvable> | cdk.IResolvable | undefined);
/**
* Specifies default encryption for a bucket using server-side encryption with Amazon S3-managed keys (SSE-S3), AWS KMS-managed keys (SSE-KMS), or dual-layer server-side encryption with KMS-managed keys (DSSE-KMS).
*/
get bucketEncryption(): CfnBucket.BucketEncryptionProperty | cdk.IResolvable | undefined;
/**
* Specifies default encryption for a bucket using server-side encryption with Amazon S3-managed keys (SSE-S3), AWS KMS-managed keys (SSE-KMS), or dual-layer server-side encryption with KMS-managed keys (DSSE-KMS).
*/
set bucketEncryption(value: CfnBucket.BucketEncryptionProperty | cdk.IResolvable | undefined);
/**
* A name for the bucket.
*/
get bucketName(): string | undefined;
/**
* A name for the bucket.
*/
set bucketName(value: string | undefined);
get bucketNamePrefix(): string | undefined;
set bucketNamePrefix(value: string | undefined);
get bucketNamespace(): string | undefined;
set bucketNamespace(value: string | undefined);
/**
* Describes the cross-origin access configuration for objects in an Amazon S3 bucket.
*/
get corsConfiguration(): CfnBucket.CorsConfigurationProperty | cdk.IResolvable | undefined;
/**
* Describes the cross-origin access configuration for objects in an Amazon S3 bucket.
*/
set corsConfiguration(value: CfnBucket.CorsConfigurationProperty | cdk.IResolvable | undefined);
/**
* Defines how Amazon S3 handles Intelligent-Tiering storage.
*/
get intelligentTieringConfigurations(): Array<CfnBucket.IntelligentTieringConfigurationProperty | cdk.IResolvable> | cdk.IResolvable | undefined;
/**
* Defines how Amazon S3 handles Intelligent-Tiering storage.
*/
set intelligentTieringConfigurations(value: Array<CfnBucket.IntelligentTieringConfigurationProperty | cdk.IResolvable> | cdk.IResolvable | undefined);
/**
* Specifies the S3 Inventory configuration for an Amazon S3 bucket.
*/
get inventoryConfigurations(): Array<CfnBucket.InventoryConfigurationProperty | cdk.IResolvable> | cdk.IResolvable | undefined;
/**
* Specifies the S3 Inventory configuration for an Amazon S3 bucket.
*/
set inventoryConfigurations(value: Array<CfnBucket.InventoryConfigurationProperty | cdk.IResolvable> | cdk.IResolvable | undefined);
/**
* Specifies the lifecycle configuration for objects in an Amazon S3 bucket.
*/
get lifecycleConfiguration(): cdk.IResolvable | CfnBucket.LifecycleConfigurationProperty | undefined;
/**
* Specifies the lifecycle configuration for objects in an Amazon S3 bucket.
*/
set lifecycleConfiguration(value: cdk.IResolvable | CfnBucket.LifecycleConfigurationProperty | undefined);
/**
* Settings that define where logs are stored.
*/
get loggingConfiguration(): cdk.IResolvable | CfnBucket.LoggingConfigurationProperty | undefined;
/**
* Settings that define where logs are stored.
*/
set loggingConfiguration(value: cdk.IResolvable | CfnBucket.LoggingConfigurationProperty | undefined);
/**
* The S3 Metadata configuration for a general purpose bucket.
*/
get metadataConfiguration(): cdk.IResolvable | CfnBucket.MetadataConfigurationProperty | undefined;
/**
* The S3 Metadata configuration for a general purpose bucket.
*/
set metadataConfiguration(value: cdk.IResolvable | CfnBucket.MetadataConfigurationProperty | undefined);
/**
* The metadata table configuration of an Amazon S3 general purpose bucket.
*/
get metadataTableConfiguration(): cdk.IResolvable | CfnBucket.MetadataTableConfigurationProperty | undefined;
/**
* The metadata table configuration of an Amazon S3 general purpose bucket.
*/
set metadataTableConfiguration(value: cdk.IResolvable | CfnBucket.MetadataTableConfigurationProperty | undefined);
/**
* Specifies a metrics configuration for the CloudWatch request metrics (specified by the metrics configuration ID) from an Amazon S3 bucket.
*/
get metricsConfigurations(): Array<cdk.IResolvable | CfnBucket.MetricsConfigurationProperty> | cdk.IResolvable | undefined;
/**
* Specifies a metrics configuration for the CloudWatch request metrics (specified by the metrics configuration ID) from an Amazon S3 bucket.
*/
set metricsConfigurations(value: Array<cdk.IResolvable | CfnBucket.MetricsConfigurationProperty> | cdk.IResolvable | undefined);
/**
* Configuration that defines how Amazon S3 handles bucket notifications.
*/
get notificationConfiguration(): cdk.IResolvable | CfnBucket.NotificationConfigurationProperty | undefined;
/**
* Configuration that defines how Amazon S3 handles bucket notifications.
*/
set notificationConfiguration(value: cdk.IResolvable | CfnBucket.NotificationConfigurationProperty | undefined);
/**
* > This operation is not supported for directory buckets.
*/
get objectLockConfiguration(): cdk.IResolvable | CfnBucket.ObjectLockConfigurationProperty | undefined;
/**
* > This operation is not supported for directory buckets.
*/
set objectLockConfiguration(value: cdk.IResolvable | CfnBucket.ObjectLockConfigurationProperty | undefined);
/**
* Indicates whether this bucket has an Object Lock configuration enabled.
*/
get objectLockEnabled(): boolean | cdk.IResolvable | undefined;
/**
* Indicates whether this bucket has an Object Lock configuration enabled.
*/
set objectLockEnabled(value: boolean | cdk.IResolvable | undefined);
/**
* Configuration that defines how Amazon S3 handles Object Ownership rules.
*/
get ownershipControls(): cdk.IResolvable | CfnBucket.OwnershipControlsProperty | undefined;
/**
* Configuration that defines how Amazon S3 handles Object Ownership rules.
*/
set ownershipControls(value: cdk.IResolvable | CfnBucket.OwnershipControlsProperty | undefined);
/**
* Configuration that defines how Amazon S3 handles public access.
*/
get publicAccessBlockConfiguration(): cdk.IResolvable | CfnBucket.PublicAccessBlockConfigurationProperty | undefined;
/**
* Configuration that defines how Amazon S3 handles public access.
*/
set publicAccessBlockConfiguration(value: cdk.IResolvable | CfnBucket.PublicAccessBlockConfigurationProperty | undefined);
/**
* Configuration for replicating objects in an S3 bucket.
*/
get replicationConfiguration(): cdk.IResolvable | CfnBucket.ReplicationConfigurationProperty | undefined;
/**
* Configuration for replicating objects in an S3 bucket.
*/
set replicationConfiguration(value: cdk.IResolvable | CfnBucket.ReplicationConfigurationProperty | undefined);
/**
* An arbitrary set of tags (key-value pairs) for this S3 bucket.
*/
get tagsRaw(): Array<cdk.CfnTag> | undefined;
/**
* An arbitrary set of tags (key-value pairs) for this S3 bucket.
*/
set tagsRaw(value: Array<cdk.CfnTag> | undefined);
/**
* Enables multiple versions of all objects in this bucket.
*/
get versioningConfiguration(): cdk.IResolvable | CfnBucket.VersioningConfigurationProperty | undefined;
/**
* Enables multiple versions of all objects in this bucket.
*/
set versioningConfiguration(value: cdk.IResolvable | CfnBucket.VersioningConfigurationProperty | undefined);
/**
* Information used to configure the bucket as a static website.
*/
get websiteConfiguration(): cdk.IResolvable | CfnBucket.WebsiteConfigurationProperty | undefined;
/**
* Information used to configure the bucket as a static website.
*/
set websiteConfiguration(value: cdk.IResolvable | CfnBucket.WebsiteConfigurationProperty | undefined);
/**
* Returns the Amazon Resource Name (ARN) of the specified bucket.
*
* Example: `arn:aws:s3:::DOC-EXAMPLE-BUCKET`
*
* @cloudformationAttribute Arn
*/
get attrArn(): string;
/**
* Returns the IPv4 DNS name of the specified bucket.
*
* Example: `DOC-EXAMPLE-BUCKET.s3.amazonaws.com`
*
* @cloudformationAttribute DomainName
*/
get attrDomainName(): string;
/**
* Returns the IPv6 DNS name of the specified bucket.
*
* Example: `DOC-EXAMPLE-BUCKET.s3.dualstack.us-east-2.amazonaws.com`
*
* 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) .
*
* @cloudformationAttribute DualStackDomainName
*/
get attrDualStackDomainName(): string;
/**
* The destination information for the S3 Metadata configuration.
*
* @cloudformationAttribute MetadataConfiguration.Destination
*/
get attrMetadataConfigurationDestination(): cdk.IResolvable;
/**
* The Amazon Resource Name (ARN) for the inventory table.
*
* @cloudformationAttribute MetadataConfiguration.InventoryTableConfiguration.TableArn
*/
get attrMetadataConfigurationInventoryTableConfigurationTableArn(): string;
/**
* The name of the inventory table.
*
* @cloudformationAttribute MetadataConfiguration.InventoryTableConfiguration.TableName
*/
get attrMetadataConfigurationInventoryTableConfigurationTableName(): string;
/**
* The Amazon Resource Name (ARN) for the journal table.
*
* @cloudformationAttribute MetadataConfiguration.JournalTableConfiguration.TableArn
*/
get attrMetadataConfigurationJournalTableConfigurationTableArn(): string;
/**
* The name of the journal table.
*
* @cloudformationAttribute MetadataConfiguration.JournalTableConfiguration.TableName
*/
get attrMetadataConfigurationJournalTableConfigurationTableName(): string;
/**
* The Amazon Resource Name (ARN) for the metadata table in the metadata table configuration. The specified metadata table name must be unique within the `aws_s3_metadata` namespace in the destination table bucket.
*
* @cloudformationAttribute MetadataTableConfiguration.S3TablesDestination.TableArn
*/
get attrMetadataTableConfigurationS3TablesDestinationTableArn(): string;
/**
* The table bucket namespace for the metadata table in your metadata table configuration. This value is always `aws_s3_metadata` .
*
* @cloudformationAttribute MetadataTableConfiguration.S3TablesDestination.TableNamespace
*/
get attrMetadataTableConfigurationS3TablesDestinationTableNamespace(): string;
/**
* Returns the regional domain name of the specified bucket.
*
* Example: `DOC-EXAMPLE-BUCKET.s3.us-east-2.amazonaws.com`
*
* @cloudformationAttribute RegionalDomainName
*/
get attrRegionalDomainName(): string;
/**
* Returns the Amazon S3 website endpoint for the specified bucket.
*
* Example (IPv4): `http://DOC-EXAMPLE-BUCKET.s3-website.us-east-2.amazonaws.com`
*
* Example (IPv6): `http://DOC-EXAMPLE-BUCKET.s3.dualstack.us-east-2.amazonaws.com`
*
* @cloudformationAttribute WebsiteURL
*/
get attrWebsiteUrl(): string;
protected get cfnProperties(): Record<string, any>;
/**
* Examines the CloudFormation resource and discloses attributes
*
* @param inspector tree inspector to collect and process attributes
*/
inspect(inspector: cdk.TreeInspector): void;
protected renderProperties(props: Record<string, any>): Record<string, any>;
}
export declare namespace CfnBucket {
/**
* 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* .
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-accelerateconfiguration.html
*/
interface AccelerateConfigurationProperty {
/**
* Specifies the transfer acceleration status of the bucket.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-accelerateconfiguration.html#cfn-s3-bucket-accelerateconfiguration-accelerationstatus
*/
readonly accelerationStatus: string;
}
/**
* Specifies the configuration and any analyses for the analytics filter of an Amazon S3 bucket.
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-analyticsconfiguration.html
*/
interface AnalyticsConfigurationProperty {
/**
* The ID that identifies the analytics configuration.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-analyticsconfiguration.html#cfn-s3-bucket-analyticsconfiguration-id
*/
readonly id: string;
/**
* The prefix that an object must have to be included in the analytics results.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-analyticsconfiguration.html#cfn-s3-bucket-analyticsconfiguration-prefix
*/
readonly prefix?: string;
/**
* Contains data related to access patterns to be collected and made available to analyze the tradeoffs between different storage classes.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-analyticsconfiguration.html#cfn-s3-bucket-analyticsconfiguration-storageclassanalysis
*/
readonly storageClassAnalysis: cdk.IResolvable | CfnBucket.StorageClassAnalysisProperty;
/**
* The tags to use when evaluating an analytics filter.
*
* 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.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-analyticsconfiguration.html#cfn-s3-bucket-analyticsconfiguration-tagfilters
*/
readonly tagFilters?: Array<cdk.IResolvable | CfnBucket.TagFilterProperty> | cdk.IResolvable;
}
/**
* 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.
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-storageclassanalysis.html
*/
interface StorageClassAnalysisProperty {
/**
* Specifies how data related to the storage class analysis for an Amazon S3 bucket should be exported.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-storageclassanalysis.html#cfn-s3-bucket-storageclassanalysis-dataexport
*/
readonly dataExport?: CfnBucket.DataExportProperty | cdk.IResolvable;
}
/**
* Specifies how data related to the storage class analysis for an Amazon S3 bucket should be exported.
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-dataexport.html
*/
interface DataExportProperty {
/**
* The place to store the data for an analysis.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-dataexport.html#cfn-s3-bucket-dataexport-destination
*/
readonly destination: CfnBucket.DestinationProperty | cdk.IResolvable;
/**
* The version of the output schema to use when exporting data.
*
* Must be `V_1` .
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-dataexport.html#cfn-s3-bucket-dataexport-outputschemaversion
*/
readonly outputSchemaVersion: string;
}
/**
* Specifies information about where to publish analysis or configuration results for an Amazon S3 bucket.
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-destination.html
*/
interface DestinationProperty {
/**
* The account ID that owns the destination S3 bucket.
*
* If no account ID is provided, the owner is not validated before exporting data.
*
* > Although this value is optional, we strongly recommend that you set it to help prevent problems if the destination bucket ownership changes.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-destination.html#cfn-s3-bucket-destination-bucketaccountid
*/
readonly bucketAccountId?: string;
/**
* The Amazon Resource Name (ARN) of the bucket to which data is exported.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-destination.html#cfn-s3-bucket-destination-bucketarn
*/
readonly bucketArn: string;
/**
* Specifies the file format used when exporting data to Amazon S3.
*
* *Allowed values* : `CSV` | `ORC` | `Parquet`
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-destination.html#cfn-s3-bucket-destination-format
*/
readonly format: string;
/**
* The prefix to use when exporting data.
*
* The prefix is prepended to all results.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-destination.html#cfn-s3-bucket-destination-prefix
*/
readonly prefix?: string;
}
/**
* Specifies tags to use to identify a subset of objects for an Amazon S3 bucket.
*
* For more information, see [Categorizing your storage using tags](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html) in the *Amazon Simple Storage Service User Guide* .
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html
*/
interface TagFilterProperty {
/**
* The tag key.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html#cfn-s3-bucket-tagfilter-key
*/
readonly key: string;
/**
* The tag value.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html#cfn-s3-bucket-tagfilter-value
*/
readonly value: string;
}
/**
* Specifies default encryption for a bucket using server-side encryption with Amazon S3-managed keys (SSE-S3), AWS KMS-managed keys (SSE-KMS), or dual-layer server-side encryption with KMS-managed keys (DSSE-KMS).
*
* For information about the Amazon S3 default encryption feature, see [Amazon S3 Default Encryption for S3 Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) in the *Amazon S3 User Guide* .
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-bucketencryption.html
*/
interface BucketEncryptionProperty {
/**
* Specifies the default server-side-encryption configuration.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-bucketencryption.html#cfn-s3-bucket-bucketencryption-serversideencryptionconfiguration
*/
readonly serverSideEncryptionConfiguration: Array<cdk.IResolvable | CfnBucket.ServerSideEncryptionRuleProperty> | cdk.IResolvable;
}
/**
* Specifies the default server-side encryption configuration.
*
* > - *General purpose buckets* - If you're specifying a customer managed KMS key, we recommend using a fully qualified KMS key ARN. If you use a KMS key alias instead, then AWS resolves the key within the requester’s account. This behavior can result in data that's encrypted with a KMS key that belongs to the requester, and not the bucket owner.
* > - *Directory buckets* - When you specify an [AWS customer managed key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) for encryption in your directory bucket, only use the key ID or key ARN. The key alias format of the KMS key isn't supported.
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionrule.html
*/
interface ServerSideEncryptionRuleProperty {
/**
* A bucket-level setting for Amazon S3 general purpose buckets used to prevent the upload of new objects encrypted with the specified server-side encryption type.
*
* For example, blocking an encryption type will block `PutObject` , `CopyObject` , `PostObject` , multipart upload, and replication requests to the bucket for objects with the specified encryption type. However, you can continue to read and list any pre-existing objects already encrypted with the specified encryption type. For more information, see [Blocking or unblocking SSE-C for a general purpose bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/blocking-unblocking-s3-c-encryption-gpb.html) .
*
* > Currently, this parameter only supports blocking or unblocking server-side encryption with customer-provided keys (SSE-C). For more information about SSE-C, see [Using server-side encryption with customer-provided keys (SSE-C)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html) .
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionrule.html#cfn-s3-bucket-serversideencryptionrule-blockedencryptiontypes
*/
readonly blockedEncryptionTypes?: CfnBucket.BlockedEncryptionTypesProperty | cdk.IResolvable;
/**
* 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.
*
* 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* .
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionrule.html#cfn-s3-bucket-serversideencryptionrule-bucketkeyenabled
*/
readonly bucketKeyEnabled?: boolean | cdk.IResolvable;
/**
* 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.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionrule.html#cfn-s3-bucket-serversideencryptionrule-serversideencryptionbydefault
*/
readonly serverSideEncryptionByDefault?: cdk.IResolvable | CfnBucket.ServerSideEncryptionByDefaultProperty;
}
/**
* 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. For more information, see [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html) .
*
* > - *General purpose buckets* - If you don't specify a customer managed key at configuration, Amazon S3 automatically creates an AWS KMS key ( `aws/s3` ) 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.
* > - *Directory buckets* - Your SSE-KMS configuration can only support 1 [customer managed key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) per directory bucket's lifetime. The [AWS managed key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) ( `aws/s3` ) isn't supported.
* > - *Directory buckets* - For directory buckets, there are only two supported options for server-side encryption: SSE-S3 and SSE-KMS.
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionbydefault.html
*/
interface ServerSideEncryptionByDefaultProperty {
/**
* AWS Key Management Service (KMS) customer managed key ID to use for the default encryption.
*
* > - *General purpose buckets* - This parameter is allowed if and only if `SSEAlgorithm` is set to `aws:kms` or `aws:kms:dsse` .
* > - *Directory buckets* - This parameter is allowed if and only if `SSEAlgorithm` is set to `aws:kms` .
*
* You can specify the key ID, key alias, or the Amazon Resource Name (ARN) of the KMS key.
*
* - Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`
* - Key ARN: `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
* - Key Alias: `alias/alias-name`
*
* If you are using encryption with cross-account or AWS service operations, you must use a fully qualified KMS key ARN. For more information, see [Using encryption for cross-account operations](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy) .
*
* > - *General purpose buckets* - If you're specifying a customer managed KMS key, we recommend using a fully qualified KMS key ARN. If you use a KMS key alias instead, then AWS resolves the key within the requester’s account. This behavior can result in data that's encrypted with a KMS key that belongs to the requester, and not the bucket owner. Also, if you use a key ID, you can run into a LogDestination undeliverable error when creating a VPC flow log.
* > - *Directory buckets* - When you specify an [AWS customer managed key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) for encryption in your directory bucket, only use the key ID or key ARN. The key alias format of the KMS key isn't supported. > Amazon S3 only supports symmetric encryption KMS keys. For more information, see [Asymmetric keys in AWS KMS](https://docs.aws.amazon.com//kms/latest/developerguide/symmetric-asymmetric.html) in the *AWS Key Management Service Developer Guide* .
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionbydefault.html#cfn-s3-bucket-serversideencryptionbydefault-kmsmasterkeyid
*/
readonly kmsMasterKeyId?: string;
/**
* Server-side encryption algorithm to use for the default encryption.
*
* > For directory buckets, there are only two supported values for server-side encryption: `AES256` and `aws:kms` .
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionbydefault.html#cfn-s3-bucket-serversideencryptionbydefault-ssealgorithm
*/
readonly sseAlgorithm: string;
}
/**
*