awss3

package
v2.0.0-rc.21 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 8, 2021 License: Apache-2.0 Imports: 10 Imported by: 99

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BucketBase_IsConstruct

func BucketBase_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func BucketBase_IsResource

func BucketBase_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func BucketPolicy_IsConstruct

func BucketPolicy_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func BucketPolicy_IsResource

func BucketPolicy_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func Bucket_IsConstruct

func Bucket_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func Bucket_IsResource

func Bucket_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func CfnAccessPoint_CFN_RESOURCE_TYPE_NAME

func CfnAccessPoint_CFN_RESOURCE_TYPE_NAME() *string

func CfnAccessPoint_IsCfnElement

func CfnAccessPoint_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnAccessPoint_IsCfnResource

func CfnAccessPoint_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnAccessPoint_IsConstruct

func CfnAccessPoint_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnBucketPolicy_CFN_RESOURCE_TYPE_NAME

func CfnBucketPolicy_CFN_RESOURCE_TYPE_NAME() *string

func CfnBucketPolicy_IsCfnElement

func CfnBucketPolicy_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnBucketPolicy_IsCfnResource

func CfnBucketPolicy_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnBucketPolicy_IsConstruct

func CfnBucketPolicy_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnBucket_CFN_RESOURCE_TYPE_NAME

func CfnBucket_CFN_RESOURCE_TYPE_NAME() *string

func CfnBucket_IsCfnElement

func CfnBucket_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnBucket_IsCfnResource

func CfnBucket_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnBucket_IsConstruct

func CfnBucket_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnStorageLens_CFN_RESOURCE_TYPE_NAME

func CfnStorageLens_CFN_RESOURCE_TYPE_NAME() *string

func CfnStorageLens_IsCfnElement

func CfnStorageLens_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnStorageLens_IsCfnResource

func CfnStorageLens_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnStorageLens_IsConstruct

func CfnStorageLens_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func NewBlockPublicAccess_Override

func NewBlockPublicAccess_Override(b BlockPublicAccess, options *BlockPublicAccessOptions)

Experimental.

func NewBucketBase_Override

func NewBucketBase_Override(b BucketBase, scope constructs.Construct, id *string, props *awscdk.ResourceProps)

Experimental.

func NewBucketPolicy_Override

func NewBucketPolicy_Override(b BucketPolicy, scope constructs.Construct, id *string, props *BucketPolicyProps)

Experimental.

func NewBucket_Override

func NewBucket_Override(b Bucket, scope constructs.Construct, id *string, props *BucketProps)

Experimental.

func NewCfnAccessPoint_Override

func NewCfnAccessPoint_Override(c CfnAccessPoint, scope constructs.Construct, id *string, props *CfnAccessPointProps)

Create a new `AWS::S3::AccessPoint`.

func NewCfnBucketPolicy_Override

func NewCfnBucketPolicy_Override(c CfnBucketPolicy, scope constructs.Construct, id *string, props *CfnBucketPolicyProps)

Create a new `AWS::S3::BucketPolicy`.

func NewCfnBucket_Override

func NewCfnBucket_Override(c CfnBucket, scope constructs.Construct, id *string, props *CfnBucketProps)

Create a new `AWS::S3::Bucket`.

func NewCfnStorageLens_Override

func NewCfnStorageLens_Override(c CfnStorageLens, scope constructs.Construct, id *string, props *CfnStorageLensProps)

Create a new `AWS::S3::StorageLens`.

func NewStorageClass_Override

func NewStorageClass_Override(s StorageClass, value *string)

Experimental.

Types

type BlockPublicAccess

type BlockPublicAccess interface {
	BlockPublicAcls() *bool
	SetBlockPublicAcls(val *bool)
	BlockPublicPolicy() *bool
	SetBlockPublicPolicy(val *bool)
	IgnorePublicAcls() *bool
	SetIgnorePublicAcls(val *bool)
	RestrictPublicBuckets() *bool
	SetRestrictPublicBuckets(val *bool)
}

Experimental.

func BlockPublicAccess_BLOCK_ACLS

func BlockPublicAccess_BLOCK_ACLS() BlockPublicAccess

func BlockPublicAccess_BLOCK_ALL

func BlockPublicAccess_BLOCK_ALL() BlockPublicAccess

func NewBlockPublicAccess

func NewBlockPublicAccess(options *BlockPublicAccessOptions) BlockPublicAccess

Experimental.

type BlockPublicAccessOptions

type BlockPublicAccessOptions struct {
	// Whether to block public ACLs.
	// See: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-options
	//
	// Experimental.
	BlockPublicAcls *bool `json:"blockPublicAcls"`
	// Whether to block public policy.
	// See: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-options
	//
	// Experimental.
	BlockPublicPolicy *bool `json:"blockPublicPolicy"`
	// Whether to ignore public ACLs.
	// See: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-options
	//
	// Experimental.
	IgnorePublicAcls *bool `json:"ignorePublicAcls"`
	// Whether to restrict public access.
	// See: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-options
	//
	// Experimental.
	RestrictPublicBuckets *bool `json:"restrictPublicBuckets"`
}

Experimental.

type Bucket

type Bucket interface {
	BucketBase
	AutoCreatePolicy() *bool
	SetAutoCreatePolicy(val *bool)
	BucketArn() *string
	BucketDomainName() *string
	BucketDualStackDomainName() *string
	BucketName() *string
	BucketRegionalDomainName() *string
	BucketWebsiteDomainName() *string
	BucketWebsiteUrl() *string
	DisallowPublicAccess() *bool
	SetDisallowPublicAccess(val *bool)
	EncryptionKey() awskms.IKey
	Env() *awscdk.ResourceEnvironment
	IsWebsite() *bool
	Node() constructs.Node
	PhysicalName() *string
	Policy() BucketPolicy
	SetPolicy(val BucketPolicy)
	Stack() awscdk.Stack
	AddCorsRule(rule *CorsRule)
	AddEventNotification(event EventType, dest IBucketNotificationDestination, filters ...*NotificationKeyFilter)
	AddInventory(inventory *Inventory)
	AddLifecycleRule(rule *LifecycleRule)
	AddMetric(metric *BucketMetrics)
	AddObjectCreatedNotification(dest IBucketNotificationDestination, filters ...*NotificationKeyFilter)
	AddObjectRemovedNotification(dest IBucketNotificationDestination, filters ...*NotificationKeyFilter)
	AddToResourcePolicy(permission awsiam.PolicyStatement) *awsiam.AddToResourcePolicyResult
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	ArnForObjects(keyPattern *string) *string
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	GrantDelete(identity awsiam.IGrantable, objectsKeyPattern interface{}) awsiam.Grant
	GrantPublicAccess(keyPrefix *string, allowedActions ...*string) awsiam.Grant
	GrantPut(identity awsiam.IGrantable, objectsKeyPattern interface{}) awsiam.Grant
	GrantPutAcl(identity awsiam.IGrantable, objectsKeyPattern *string) awsiam.Grant
	GrantRead(identity awsiam.IGrantable, objectsKeyPattern interface{}) awsiam.Grant
	GrantReadWrite(identity awsiam.IGrantable, objectsKeyPattern interface{}) awsiam.Grant
	GrantWrite(identity awsiam.IGrantable, objectsKeyPattern interface{}) awsiam.Grant
	OnCloudTrailEvent(id *string, options *OnCloudTrailBucketEventOptions) awsevents.Rule
	OnCloudTrailPutObject(id *string, options *OnCloudTrailBucketEventOptions) awsevents.Rule
	OnCloudTrailWriteObject(id *string, options *OnCloudTrailBucketEventOptions) awsevents.Rule
	S3UrlForObject(key *string) *string
	ToString() *string
	UrlForObject(key *string) *string
	VirtualHostedUrlForObject(key *string, options *VirtualHostedStyleUrlOptions) *string
}

An S3 bucket with associated policy objects.

This bucket does not yet have all features that exposed by the underlying BucketResource. Experimental.

func NewBucket

func NewBucket(scope constructs.Construct, id *string, props *BucketProps) Bucket

Experimental.

type BucketAccessControl

type BucketAccessControl string

Default bucket access control types. See: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html

Experimental.

const (
	BucketAccessControl_PRIVATE                   BucketAccessControl = "PRIVATE"
	BucketAccessControl_PUBLIC_READ               BucketAccessControl = "PUBLIC_READ"
	BucketAccessControl_PUBLIC_READ_WRITE         BucketAccessControl = "PUBLIC_READ_WRITE"
	BucketAccessControl_AUTHENTICATED_READ        BucketAccessControl = "AUTHENTICATED_READ"
	BucketAccessControl_LOG_DELIVERY_WRITE        BucketAccessControl = "LOG_DELIVERY_WRITE"
	BucketAccessControl_BUCKET_OWNER_READ         BucketAccessControl = "BUCKET_OWNER_READ"
	BucketAccessControl_BUCKET_OWNER_FULL_CONTROL BucketAccessControl = "BUCKET_OWNER_FULL_CONTROL"
	BucketAccessControl_AWS_EXEC_READ             BucketAccessControl = "AWS_EXEC_READ"
)

type BucketAttributes

type BucketAttributes struct {
	// The account this existing bucket belongs to.
	// Experimental.
	Account *string `json:"account"`
	// The ARN of the bucket.
	//
	// At least one of bucketArn or bucketName must be
	// defined in order to initialize a bucket ref.
	// Experimental.
	BucketArn *string `json:"bucketArn"`
	// The domain name of the bucket.
	// Experimental.
	BucketDomainName *string `json:"bucketDomainName"`
	// The IPv6 DNS name of the specified bucket.
	// Experimental.
	BucketDualStackDomainName *string `json:"bucketDualStackDomainName"`
	// The name of the bucket.
	//
	// If the underlying value of ARN is a string, the
	// name will be parsed from the ARN. Otherwise, the name is optional, but
	// some features that require the bucket name such as auto-creating a bucket
	// policy, won't work.
	// Experimental.
	BucketName *string `json:"bucketName"`
	// The regional domain name of the specified bucket.
	// Experimental.
	BucketRegionalDomainName *string `json:"bucketRegionalDomainName"`
	// The format of the website URL of the bucket.
	//
	// This should be true for
	// regions launched since 2014.
	// Experimental.
	BucketWebsiteNewUrlFormat *bool `json:"bucketWebsiteNewUrlFormat"`
	// The website URL of the bucket (if static web hosting is enabled).
	// Experimental.
	BucketWebsiteUrl *string `json:"bucketWebsiteUrl"`
	// Experimental.
	EncryptionKey awskms.IKey `json:"encryptionKey"`
	// If this bucket has been configured for static website hosting.
	// Experimental.
	IsWebsite *bool `json:"isWebsite"`
	// The region this existing bucket is in.
	// Experimental.
	Region *string `json:"region"`
}

A reference to a bucket.

The easiest way to instantiate is to call `bucket.export()`. Then, the consumer can use `Bucket.import(this, ref)` and get a `Bucket`. Experimental.

type BucketBase

type BucketBase interface {
	awscdk.Resource
	IBucket
	AutoCreatePolicy() *bool
	SetAutoCreatePolicy(val *bool)
	BucketArn() *string
	BucketDomainName() *string
	BucketDualStackDomainName() *string
	BucketName() *string
	BucketRegionalDomainName() *string
	BucketWebsiteDomainName() *string
	BucketWebsiteUrl() *string
	DisallowPublicAccess() *bool
	SetDisallowPublicAccess(val *bool)
	EncryptionKey() awskms.IKey
	Env() *awscdk.ResourceEnvironment
	IsWebsite() *bool
	Node() constructs.Node
	PhysicalName() *string
	Policy() BucketPolicy
	SetPolicy(val BucketPolicy)
	Stack() awscdk.Stack
	AddEventNotification(event EventType, dest IBucketNotificationDestination, filters ...*NotificationKeyFilter)
	AddObjectCreatedNotification(dest IBucketNotificationDestination, filters ...*NotificationKeyFilter)
	AddObjectRemovedNotification(dest IBucketNotificationDestination, filters ...*NotificationKeyFilter)
	AddToResourcePolicy(permission awsiam.PolicyStatement) *awsiam.AddToResourcePolicyResult
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	ArnForObjects(keyPattern *string) *string
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	GrantDelete(identity awsiam.IGrantable, objectsKeyPattern interface{}) awsiam.Grant
	GrantPublicAccess(keyPrefix *string, allowedActions ...*string) awsiam.Grant
	GrantPut(identity awsiam.IGrantable, objectsKeyPattern interface{}) awsiam.Grant
	GrantPutAcl(identity awsiam.IGrantable, objectsKeyPattern *string) awsiam.Grant
	GrantRead(identity awsiam.IGrantable, objectsKeyPattern interface{}) awsiam.Grant
	GrantReadWrite(identity awsiam.IGrantable, objectsKeyPattern interface{}) awsiam.Grant
	GrantWrite(identity awsiam.IGrantable, objectsKeyPattern interface{}) awsiam.Grant
	OnCloudTrailEvent(id *string, options *OnCloudTrailBucketEventOptions) awsevents.Rule
	OnCloudTrailPutObject(id *string, options *OnCloudTrailBucketEventOptions) awsevents.Rule
	OnCloudTrailWriteObject(id *string, options *OnCloudTrailBucketEventOptions) awsevents.Rule
	S3UrlForObject(key *string) *string
	ToString() *string
	UrlForObject(key *string) *string
	VirtualHostedUrlForObject(key *string, options *VirtualHostedStyleUrlOptions) *string
}

Represents an S3 Bucket.

Buckets can be either defined within this stack:

new Bucket(this, 'MyBucket', { props });

Or imported from an existing bucket:

Bucket.import(this, 'MyImportedBucket', { bucketArn: ... });

You can also export a bucket and import it into another stack:

const ref = myBucket.export();
Bucket.import(this, 'MyImportedBucket', ref);

Experimental.

type BucketEncryption

type BucketEncryption string

What kind of server-side encryption to apply to this bucket. Experimental.

const (
	BucketEncryption_UNENCRYPTED BucketEncryption = "UNENCRYPTED"
	BucketEncryption_KMS_MANAGED BucketEncryption = "KMS_MANAGED"
	BucketEncryption_S3_MANAGED  BucketEncryption = "S3_MANAGED"
	BucketEncryption_KMS         BucketEncryption = "KMS"
)

type BucketMetrics

type BucketMetrics struct {
	// The ID used to identify the metrics configuration.
	// Experimental.
	Id *string `json:"id"`
	// The prefix that an object must have to be included in the metrics results.
	// Experimental.
	Prefix *string `json:"prefix"`
	// 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.
	// Experimental.
	TagFilters *map[string]interface{} `json:"tagFilters"`
}

Specifies a metrics configuration for the CloudWatch request metrics from an Amazon S3 bucket. Experimental.

type BucketNotificationDestinationConfig

type BucketNotificationDestinationConfig struct {
	// The ARN of the destination (i.e. Lambda, SNS, SQS).
	// Experimental.
	Arn *string `json:"arn"`
	// The notification type.
	// Experimental.
	Type BucketNotificationDestinationType `json:"type"`
	// Any additional dependencies that should be resolved before the bucket notification can be configured (for example, the SNS Topic Policy resource).
	// Experimental.
	Dependencies *[]constructs.IDependable `json:"dependencies"`
}

Represents the properties of a notification destination. Experimental.

type BucketNotificationDestinationType

type BucketNotificationDestinationType string

Supported types of notification destinations. Experimental.

const (
	BucketNotificationDestinationType_LAMBDA BucketNotificationDestinationType = "LAMBDA"
	BucketNotificationDestinationType_QUEUE  BucketNotificationDestinationType = "QUEUE"
	BucketNotificationDestinationType_TOPIC  BucketNotificationDestinationType = "TOPIC"
)

type BucketPolicy

type BucketPolicy interface {
	awscdk.Resource
	Document() awsiam.PolicyDocument
	Env() *awscdk.ResourceEnvironment
	Node() constructs.Node
	PhysicalName() *string
	Stack() awscdk.Stack
	ApplyRemovalPolicy(removalPolicy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

Applies an Amazon S3 bucket policy to an Amazon S3 bucket. Experimental.

func NewBucketPolicy

func NewBucketPolicy(scope constructs.Construct, id *string, props *BucketPolicyProps) BucketPolicy

Experimental.

type BucketPolicyProps

type BucketPolicyProps struct {
	// The Amazon S3 bucket that the policy applies to.
	// Experimental.
	Bucket IBucket `json:"bucket"`
	// Policy to apply when the policy is removed from this stack.
	// Experimental.
	RemovalPolicy awscdk.RemovalPolicy `json:"removalPolicy"`
}

Experimental.

type BucketProps

type BucketProps struct {
	// Specifies a canned ACL that grants predefined permissions to the bucket.
	// Experimental.
	AccessControl BucketAccessControl `json:"accessControl"`
	// Whether all objects should be automatically deleted when the bucket is removed from the stack or when the stack is deleted.
	//
	// Requires the `removalPolicy` to be set to `RemovalPolicy.DESTROY`.
	// Experimental.
	AutoDeleteObjects *bool `json:"autoDeleteObjects"`
	// The block public access configuration of this bucket.
	// See: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html
	//
	// Experimental.
	BlockPublicAccess BlockPublicAccess `json:"blockPublicAccess"`
	// Specifies whether Amazon S3 should use an S3 Bucket Key with server-side encryption using KMS (SSE-KMS) for new objects in the bucket.
	//
	// Only relevant, when Encryption is set to {@link BucketEncryption.KMS}
	// Experimental.
	BucketKeyEnabled *bool `json:"bucketKeyEnabled"`
	// Physical name of this bucket.
	// Experimental.
	BucketName *string `json:"bucketName"`
	// The CORS configuration of this bucket.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-cors.html
	//
	// Experimental.
	Cors *[]*CorsRule `json:"cors"`
	// The kind of server-side encryption to apply to this bucket.
	//
	// If you choose KMS, you can specify a KMS key via `encryptionKey`. If
	// encryption key is not specified, a key will automatically be created.
	// Experimental.
	Encryption BucketEncryption `json:"encryption"`
	// External KMS key to use for bucket encryption.
	//
	// The 'encryption' property must be either not specified or set to "Kms".
	// An error will be emitted if encryption is set to "Unencrypted" or
	// "Managed".
	// Experimental.
	EncryptionKey awskms.IKey `json:"encryptionKey"`
	// Enforces SSL for requests.
	//
	// S3.5 of the AWS Foundational Security Best Practices Regarding S3.
	// See: https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-ssl-requests-only.html
	//
	// Experimental.
	EnforceSSL *bool `json:"enforceSSL"`
	// The inventory configuration of the bucket.
	// See: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html
	//
	// Experimental.
	Inventories *[]*Inventory `json:"inventories"`
	// Rules that define how Amazon S3 manages objects during their lifetime.
	// Experimental.
	LifecycleRules *[]*LifecycleRule `json:"lifecycleRules"`
	// The metrics configuration of this bucket.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metricsconfiguration.html
	//
	// Experimental.
	Metrics *[]*BucketMetrics `json:"metrics"`
	// The objectOwnership of the bucket.
	// See: https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html
	//
	// Experimental.
	ObjectOwnership ObjectOwnership `json:"objectOwnership"`
	// Grants public read access to all objects in the bucket.
	//
	// Similar to calling `bucket.grantPublicAccess()`
	// Experimental.
	PublicReadAccess *bool `json:"publicReadAccess"`
	// Policy to apply when the bucket is removed from this stack.
	// Experimental.
	RemovalPolicy awscdk.RemovalPolicy `json:"removalPolicy"`
	// Destination bucket for the server access logs.
	// Experimental.
	ServerAccessLogsBucket IBucket `json:"serverAccessLogsBucket"`
	// Optional log file prefix to use for the bucket's access logs.
	//
	// If defined without "serverAccessLogsBucket", enables access logs to current bucket with this prefix.
	// Experimental.
	ServerAccessLogsPrefix *string `json:"serverAccessLogsPrefix"`
	// Whether this bucket should have versioning turned on or not.
	// Experimental.
	Versioned *bool `json:"versioned"`
	// The name of the error document (e.g. "404.html") for the website. `websiteIndexDocument` must also be set if this is set.
	// Experimental.
	WebsiteErrorDocument *string `json:"websiteErrorDocument"`
	// The name of the index document (e.g. "index.html") for the website. Enables static website hosting for this bucket.
	// Experimental.
	WebsiteIndexDocument *string `json:"websiteIndexDocument"`
	// Specifies the redirect behavior of all requests to a website endpoint of a bucket.
	//
	// If you specify this property, you can't specify "websiteIndexDocument", "websiteErrorDocument" nor , "websiteRoutingRules".
	// Experimental.
	WebsiteRedirect *RedirectTarget `json:"websiteRedirect"`
	// Rules that define when a redirect is applied and the redirect behavior.
	// Experimental.
	WebsiteRoutingRules *[]*RoutingRule `json:"websiteRoutingRules"`
}

Experimental.

type CfnAccessPoint

type CfnAccessPoint interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrAlias() *string
	AttrArn() *string
	AttrName() *string
	AttrNetworkOrigin() *string
	Bucket() *string
	SetBucket(val *string)
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Name() *string
	SetName(val *string)
	Node() constructs.Node
	Policy() interface{}
	SetPolicy(val interface{})
	PolicyStatus() interface{}
	SetPolicyStatus(val interface{})
	PublicAccessBlockConfiguration() interface{}
	SetPublicAccessBlockConfiguration(val interface{})
	Ref() *string
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	VpcConfiguration() interface{}
	SetVpcConfiguration(val interface{})
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::S3::AccessPoint`.

func NewCfnAccessPoint

func NewCfnAccessPoint(scope constructs.Construct, id *string, props *CfnAccessPointProps) CfnAccessPoint

Create a new `AWS::S3::AccessPoint`.

type CfnAccessPointProps

type CfnAccessPointProps struct {
	// `AWS::S3::AccessPoint.Bucket`.
	Bucket *string `json:"bucket"`
	// `AWS::S3::AccessPoint.Name`.
	Name *string `json:"name"`
	// `AWS::S3::AccessPoint.Policy`.
	Policy interface{} `json:"policy"`
	// `AWS::S3::AccessPoint.PolicyStatus`.
	PolicyStatus interface{} `json:"policyStatus"`
	// `AWS::S3::AccessPoint.PublicAccessBlockConfiguration`.
	PublicAccessBlockConfiguration interface{} `json:"publicAccessBlockConfiguration"`
	// `AWS::S3::AccessPoint.VpcConfiguration`.
	VpcConfiguration interface{} `json:"vpcConfiguration"`
}

Properties for defining a `AWS::S3::AccessPoint`.

type CfnAccessPoint_PublicAccessBlockConfigurationProperty

type CfnAccessPoint_PublicAccessBlockConfigurationProperty struct {
	// `CfnAccessPoint.PublicAccessBlockConfigurationProperty.BlockPublicAcls`.
	BlockPublicAcls interface{} `json:"blockPublicAcls"`
	// `CfnAccessPoint.PublicAccessBlockConfigurationProperty.BlockPublicPolicy`.
	BlockPublicPolicy interface{} `json:"blockPublicPolicy"`
	// `CfnAccessPoint.PublicAccessBlockConfigurationProperty.IgnorePublicAcls`.
	IgnorePublicAcls interface{} `json:"ignorePublicAcls"`
	// `CfnAccessPoint.PublicAccessBlockConfigurationProperty.RestrictPublicBuckets`.
	RestrictPublicBuckets interface{} `json:"restrictPublicBuckets"`
}

type CfnAccessPoint_VpcConfigurationProperty

type CfnAccessPoint_VpcConfigurationProperty struct {
	// `CfnAccessPoint.VpcConfigurationProperty.VpcId`.
	VpcId *string `json:"vpcId"`
}

type CfnBucket

type CfnBucket interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AccelerateConfiguration() interface{}
	SetAccelerateConfiguration(val interface{})
	AccessControl() *string
	SetAccessControl(val *string)
	AnalyticsConfigurations() interface{}
	SetAnalyticsConfigurations(val interface{})
	AttrArn() *string
	AttrDomainName() *string
	AttrDualStackDomainName() *string
	AttrRegionalDomainName() *string
	AttrWebsiteUrl() *string
	BucketEncryption() interface{}
	SetBucketEncryption(val interface{})
	BucketName() *string
	SetBucketName(val *string)
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CorsConfiguration() interface{}
	SetCorsConfiguration(val interface{})
	CreationStack() *[]*string
	IntelligentTieringConfigurations() interface{}
	SetIntelligentTieringConfigurations(val interface{})
	InventoryConfigurations() interface{}
	SetInventoryConfigurations(val interface{})
	LifecycleConfiguration() interface{}
	SetLifecycleConfiguration(val interface{})
	LoggingConfiguration() interface{}
	SetLoggingConfiguration(val interface{})
	LogicalId() *string
	MetricsConfigurations() interface{}
	SetMetricsConfigurations(val interface{})
	Node() constructs.Node
	NotificationConfiguration() interface{}
	SetNotificationConfiguration(val interface{})
	ObjectLockConfiguration() interface{}
	SetObjectLockConfiguration(val interface{})
	ObjectLockEnabled() interface{}
	SetObjectLockEnabled(val interface{})
	OwnershipControls() interface{}
	SetOwnershipControls(val interface{})
	PublicAccessBlockConfiguration() interface{}
	SetPublicAccessBlockConfiguration(val interface{})
	Ref() *string
	ReplicationConfiguration() interface{}
	SetReplicationConfiguration(val interface{})
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	VersioningConfiguration() interface{}
	SetVersioningConfiguration(val interface{})
	WebsiteConfiguration() interface{}
	SetWebsiteConfiguration(val interface{})
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::S3::Bucket`.

func NewCfnBucket

func NewCfnBucket(scope constructs.Construct, id *string, props *CfnBucketProps) CfnBucket

Create a new `AWS::S3::Bucket`.

type CfnBucketPolicy

type CfnBucketPolicy interface {
	awscdk.CfnResource
	awscdk.IInspectable
	Bucket() *string
	SetBucket(val *string)
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	PolicyDocument() interface{}
	SetPolicyDocument(val interface{})
	Ref() *string
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::S3::BucketPolicy`.

func NewCfnBucketPolicy

func NewCfnBucketPolicy(scope constructs.Construct, id *string, props *CfnBucketPolicyProps) CfnBucketPolicy

Create a new `AWS::S3::BucketPolicy`.

type CfnBucketPolicyProps

type CfnBucketPolicyProps struct {
	// `AWS::S3::BucketPolicy.Bucket`.
	Bucket *string `json:"bucket"`
	// `AWS::S3::BucketPolicy.PolicyDocument`.
	PolicyDocument interface{} `json:"policyDocument"`
}

Properties for defining a `AWS::S3::BucketPolicy`.

type CfnBucketProps

type CfnBucketProps struct {
	// `AWS::S3::Bucket.AccelerateConfiguration`.
	AccelerateConfiguration interface{} `json:"accelerateConfiguration"`
	// `AWS::S3::Bucket.AccessControl`.
	AccessControl *string `json:"accessControl"`
	// `AWS::S3::Bucket.AnalyticsConfigurations`.
	AnalyticsConfigurations interface{} `json:"analyticsConfigurations"`
	// `AWS::S3::Bucket.BucketEncryption`.
	BucketEncryption interface{} `json:"bucketEncryption"`
	// `AWS::S3::Bucket.BucketName`.
	BucketName *string `json:"bucketName"`
	// `AWS::S3::Bucket.CorsConfiguration`.
	CorsConfiguration interface{} `json:"corsConfiguration"`
	// `AWS::S3::Bucket.IntelligentTieringConfigurations`.
	IntelligentTieringConfigurations interface{} `json:"intelligentTieringConfigurations"`
	// `AWS::S3::Bucket.InventoryConfigurations`.
	InventoryConfigurations interface{} `json:"inventoryConfigurations"`
	// `AWS::S3::Bucket.LifecycleConfiguration`.
	LifecycleConfiguration interface{} `json:"lifecycleConfiguration"`
	// `AWS::S3::Bucket.LoggingConfiguration`.
	LoggingConfiguration interface{} `json:"loggingConfiguration"`
	// `AWS::S3::Bucket.MetricsConfigurations`.
	MetricsConfigurations interface{} `json:"metricsConfigurations"`
	// `AWS::S3::Bucket.NotificationConfiguration`.
	NotificationConfiguration interface{} `json:"notificationConfiguration"`
	// `AWS::S3::Bucket.ObjectLockConfiguration`.
	ObjectLockConfiguration interface{} `json:"objectLockConfiguration"`
	// `AWS::S3::Bucket.ObjectLockEnabled`.
	ObjectLockEnabled interface{} `json:"objectLockEnabled"`
	// `AWS::S3::Bucket.OwnershipControls`.
	OwnershipControls interface{} `json:"ownershipControls"`
	// `AWS::S3::Bucket.PublicAccessBlockConfiguration`.
	PublicAccessBlockConfiguration interface{} `json:"publicAccessBlockConfiguration"`
	// `AWS::S3::Bucket.ReplicationConfiguration`.
	ReplicationConfiguration interface{} `json:"replicationConfiguration"`
	// `AWS::S3::Bucket.Tags`.
	Tags *[]*awscdk.CfnTag `json:"tags"`
	// `AWS::S3::Bucket.VersioningConfiguration`.
	VersioningConfiguration interface{} `json:"versioningConfiguration"`
	// `AWS::S3::Bucket.WebsiteConfiguration`.
	WebsiteConfiguration interface{} `json:"websiteConfiguration"`
}

Properties for defining a `AWS::S3::Bucket`.

type CfnBucket_AbortIncompleteMultipartUploadProperty

type CfnBucket_AbortIncompleteMultipartUploadProperty struct {
	// `CfnBucket.AbortIncompleteMultipartUploadProperty.DaysAfterInitiation`.
	DaysAfterInitiation *float64 `json:"daysAfterInitiation"`
}

type CfnBucket_AccelerateConfigurationProperty

type CfnBucket_AccelerateConfigurationProperty struct {
	// `CfnBucket.AccelerateConfigurationProperty.AccelerationStatus`.
	AccelerationStatus *string `json:"accelerationStatus"`
}

type CfnBucket_AccessControlTranslationProperty

type CfnBucket_AccessControlTranslationProperty struct {
	// `CfnBucket.AccessControlTranslationProperty.Owner`.
	Owner *string `json:"owner"`
}

type CfnBucket_AnalyticsConfigurationProperty

type CfnBucket_AnalyticsConfigurationProperty struct {
	// `CfnBucket.AnalyticsConfigurationProperty.Id`.
	Id *string `json:"id"`
	// `CfnBucket.AnalyticsConfigurationProperty.StorageClassAnalysis`.
	StorageClassAnalysis interface{} `json:"storageClassAnalysis"`
	// `CfnBucket.AnalyticsConfigurationProperty.Prefix`.
	Prefix *string `json:"prefix"`
	// `CfnBucket.AnalyticsConfigurationProperty.TagFilters`.
	TagFilters interface{} `json:"tagFilters"`
}

type CfnBucket_BucketEncryptionProperty

type CfnBucket_BucketEncryptionProperty struct {
	// `CfnBucket.BucketEncryptionProperty.ServerSideEncryptionConfiguration`.
	ServerSideEncryptionConfiguration interface{} `json:"serverSideEncryptionConfiguration"`
}

type CfnBucket_CorsConfigurationProperty

type CfnBucket_CorsConfigurationProperty struct {
	// `CfnBucket.CorsConfigurationProperty.CorsRules`.
	CorsRules interface{} `json:"corsRules"`
}

type CfnBucket_CorsRuleProperty

type CfnBucket_CorsRuleProperty struct {
	// `CfnBucket.CorsRuleProperty.AllowedMethods`.
	AllowedMethods *[]*string `json:"allowedMethods"`
	// `CfnBucket.CorsRuleProperty.AllowedOrigins`.
	AllowedOrigins *[]*string `json:"allowedOrigins"`
	// `CfnBucket.CorsRuleProperty.AllowedHeaders`.
	AllowedHeaders *[]*string `json:"allowedHeaders"`
	// `CfnBucket.CorsRuleProperty.ExposedHeaders`.
	ExposedHeaders *[]*string `json:"exposedHeaders"`
	// `CfnBucket.CorsRuleProperty.Id`.
	Id *string `json:"id"`
	// `CfnBucket.CorsRuleProperty.MaxAge`.
	MaxAge *float64 `json:"maxAge"`
}

type CfnBucket_DataExportProperty

type CfnBucket_DataExportProperty struct {
	// `CfnBucket.DataExportProperty.Destination`.
	Destination interface{} `json:"destination"`
	// `CfnBucket.DataExportProperty.OutputSchemaVersion`.
	OutputSchemaVersion *string `json:"outputSchemaVersion"`
}

type CfnBucket_DefaultRetentionProperty

type CfnBucket_DefaultRetentionProperty struct {
	// `CfnBucket.DefaultRetentionProperty.Days`.
	Days *float64 `json:"days"`
	// `CfnBucket.DefaultRetentionProperty.Mode`.
	Mode *string `json:"mode"`
	// `CfnBucket.DefaultRetentionProperty.Years`.
	Years *float64 `json:"years"`
}

type CfnBucket_DeleteMarkerReplicationProperty

type CfnBucket_DeleteMarkerReplicationProperty struct {
	// `CfnBucket.DeleteMarkerReplicationProperty.Status`.
	Status *string `json:"status"`
}

type CfnBucket_DestinationProperty

type CfnBucket_DestinationProperty struct {
	// `CfnBucket.DestinationProperty.BucketArn`.
	BucketArn *string `json:"bucketArn"`
	// `CfnBucket.DestinationProperty.Format`.
	Format *string `json:"format"`
	// `CfnBucket.DestinationProperty.BucketAccountId`.
	BucketAccountId *string `json:"bucketAccountId"`
	// `CfnBucket.DestinationProperty.Prefix`.
	Prefix *string `json:"prefix"`
}

type CfnBucket_EncryptionConfigurationProperty

type CfnBucket_EncryptionConfigurationProperty struct {
	// `CfnBucket.EncryptionConfigurationProperty.ReplicaKmsKeyID`.
	ReplicaKmsKeyId *string `json:"replicaKmsKeyId"`
}

type CfnBucket_FilterRuleProperty

type CfnBucket_FilterRuleProperty struct {
	// `CfnBucket.FilterRuleProperty.Name`.
	Name *string `json:"name"`
	// `CfnBucket.FilterRuleProperty.Value`.
	Value *string `json:"value"`
}

type CfnBucket_IntelligentTieringConfigurationProperty

type CfnBucket_IntelligentTieringConfigurationProperty struct {
	// `CfnBucket.IntelligentTieringConfigurationProperty.Id`.
	Id *string `json:"id"`
	// `CfnBucket.IntelligentTieringConfigurationProperty.Status`.
	Status *string `json:"status"`
	// `CfnBucket.IntelligentTieringConfigurationProperty.Tierings`.
	Tierings interface{} `json:"tierings"`
	// `CfnBucket.IntelligentTieringConfigurationProperty.Prefix`.
	Prefix *string `json:"prefix"`
	// `CfnBucket.IntelligentTieringConfigurationProperty.TagFilters`.
	TagFilters interface{} `json:"tagFilters"`
}

type CfnBucket_InventoryConfigurationProperty

type CfnBucket_InventoryConfigurationProperty struct {
	// `CfnBucket.InventoryConfigurationProperty.Destination`.
	Destination interface{} `json:"destination"`
	// `CfnBucket.InventoryConfigurationProperty.Enabled`.
	Enabled interface{} `json:"enabled"`
	// `CfnBucket.InventoryConfigurationProperty.Id`.
	Id *string `json:"id"`
	// `CfnBucket.InventoryConfigurationProperty.IncludedObjectVersions`.
	IncludedObjectVersions *string `json:"includedObjectVersions"`
	// `CfnBucket.InventoryConfigurationProperty.ScheduleFrequency`.
	ScheduleFrequency *string `json:"scheduleFrequency"`
	// `CfnBucket.InventoryConfigurationProperty.OptionalFields`.
	OptionalFields *[]*string `json:"optionalFields"`
	// `CfnBucket.InventoryConfigurationProperty.Prefix`.
	Prefix *string `json:"prefix"`
}

type CfnBucket_LambdaConfigurationProperty

type CfnBucket_LambdaConfigurationProperty struct {
	// `CfnBucket.LambdaConfigurationProperty.Event`.
	Event *string `json:"event"`
	// `CfnBucket.LambdaConfigurationProperty.Function`.
	Function *string `json:"function"`
	// `CfnBucket.LambdaConfigurationProperty.Filter`.
	Filter interface{} `json:"filter"`
}

type CfnBucket_LifecycleConfigurationProperty

type CfnBucket_LifecycleConfigurationProperty struct {
	// `CfnBucket.LifecycleConfigurationProperty.Rules`.
	Rules interface{} `json:"rules"`
}

type CfnBucket_LoggingConfigurationProperty

type CfnBucket_LoggingConfigurationProperty struct {
	// `CfnBucket.LoggingConfigurationProperty.DestinationBucketName`.
	DestinationBucketName *string `json:"destinationBucketName"`
	// `CfnBucket.LoggingConfigurationProperty.LogFilePrefix`.
	LogFilePrefix *string `json:"logFilePrefix"`
}

type CfnBucket_MetricsConfigurationProperty

type CfnBucket_MetricsConfigurationProperty struct {
	// `CfnBucket.MetricsConfigurationProperty.Id`.
	Id *string `json:"id"`
	// `CfnBucket.MetricsConfigurationProperty.Prefix`.
	Prefix *string `json:"prefix"`
	// `CfnBucket.MetricsConfigurationProperty.TagFilters`.
	TagFilters interface{} `json:"tagFilters"`
}

type CfnBucket_MetricsProperty

type CfnBucket_MetricsProperty struct {
	// `CfnBucket.MetricsProperty.Status`.
	Status *string `json:"status"`
	// `CfnBucket.MetricsProperty.EventThreshold`.
	EventThreshold interface{} `json:"eventThreshold"`
}

type CfnBucket_NoncurrentVersionTransitionProperty

type CfnBucket_NoncurrentVersionTransitionProperty struct {
	// `CfnBucket.NoncurrentVersionTransitionProperty.StorageClass`.
	StorageClass *string `json:"storageClass"`
	// `CfnBucket.NoncurrentVersionTransitionProperty.TransitionInDays`.
	TransitionInDays *float64 `json:"transitionInDays"`
}

type CfnBucket_NotificationConfigurationProperty

type CfnBucket_NotificationConfigurationProperty struct {
	// `CfnBucket.NotificationConfigurationProperty.LambdaConfigurations`.
	LambdaConfigurations interface{} `json:"lambdaConfigurations"`
	// `CfnBucket.NotificationConfigurationProperty.QueueConfigurations`.
	QueueConfigurations interface{} `json:"queueConfigurations"`
	// `CfnBucket.NotificationConfigurationProperty.TopicConfigurations`.
	TopicConfigurations interface{} `json:"topicConfigurations"`
}

type CfnBucket_NotificationFilterProperty

type CfnBucket_NotificationFilterProperty struct {
	// `CfnBucket.NotificationFilterProperty.S3Key`.
	S3Key interface{} `json:"s3Key"`
}

type CfnBucket_ObjectLockConfigurationProperty

type CfnBucket_ObjectLockConfigurationProperty struct {
	// `CfnBucket.ObjectLockConfigurationProperty.ObjectLockEnabled`.
	ObjectLockEnabled *string `json:"objectLockEnabled"`
	// `CfnBucket.ObjectLockConfigurationProperty.Rule`.
	Rule interface{} `json:"rule"`
}

type CfnBucket_ObjectLockRuleProperty

type CfnBucket_ObjectLockRuleProperty struct {
	// `CfnBucket.ObjectLockRuleProperty.DefaultRetention`.
	DefaultRetention interface{} `json:"defaultRetention"`
}

type CfnBucket_OwnershipControlsProperty

type CfnBucket_OwnershipControlsProperty struct {
	// `CfnBucket.OwnershipControlsProperty.Rules`.
	Rules interface{} `json:"rules"`
}

type CfnBucket_OwnershipControlsRuleProperty

type CfnBucket_OwnershipControlsRuleProperty struct {
	// `CfnBucket.OwnershipControlsRuleProperty.ObjectOwnership`.
	ObjectOwnership *string `json:"objectOwnership"`
}

type CfnBucket_PublicAccessBlockConfigurationProperty

type CfnBucket_PublicAccessBlockConfigurationProperty struct {
	// `CfnBucket.PublicAccessBlockConfigurationProperty.BlockPublicAcls`.
	BlockPublicAcls interface{} `json:"blockPublicAcls"`
	// `CfnBucket.PublicAccessBlockConfigurationProperty.BlockPublicPolicy`.
	BlockPublicPolicy interface{} `json:"blockPublicPolicy"`
	// `CfnBucket.PublicAccessBlockConfigurationProperty.IgnorePublicAcls`.
	IgnorePublicAcls interface{} `json:"ignorePublicAcls"`
	// `CfnBucket.PublicAccessBlockConfigurationProperty.RestrictPublicBuckets`.
	RestrictPublicBuckets interface{} `json:"restrictPublicBuckets"`
}

type CfnBucket_QueueConfigurationProperty

type CfnBucket_QueueConfigurationProperty struct {
	// `CfnBucket.QueueConfigurationProperty.Event`.
	Event *string `json:"event"`
	// `CfnBucket.QueueConfigurationProperty.Queue`.
	Queue *string `json:"queue"`
	// `CfnBucket.QueueConfigurationProperty.Filter`.
	Filter interface{} `json:"filter"`
}

type CfnBucket_RedirectAllRequestsToProperty

type CfnBucket_RedirectAllRequestsToProperty struct {
	// `CfnBucket.RedirectAllRequestsToProperty.HostName`.
	HostName *string `json:"hostName"`
	// `CfnBucket.RedirectAllRequestsToProperty.Protocol`.
	Protocol *string `json:"protocol"`
}

type CfnBucket_RedirectRuleProperty

type CfnBucket_RedirectRuleProperty struct {
	// `CfnBucket.RedirectRuleProperty.HostName`.
	HostName *string `json:"hostName"`
	// `CfnBucket.RedirectRuleProperty.HttpRedirectCode`.
	HttpRedirectCode *string `json:"httpRedirectCode"`
	// `CfnBucket.RedirectRuleProperty.Protocol`.
	Protocol *string `json:"protocol"`
	// `CfnBucket.RedirectRuleProperty.ReplaceKeyPrefixWith`.
	ReplaceKeyPrefixWith *string `json:"replaceKeyPrefixWith"`
	// `CfnBucket.RedirectRuleProperty.ReplaceKeyWith`.
	ReplaceKeyWith *string `json:"replaceKeyWith"`
}

type CfnBucket_ReplicaModificationsProperty

type CfnBucket_ReplicaModificationsProperty struct {
	// `CfnBucket.ReplicaModificationsProperty.Status`.
	Status *string `json:"status"`
}

type CfnBucket_ReplicationConfigurationProperty

type CfnBucket_ReplicationConfigurationProperty struct {
	// `CfnBucket.ReplicationConfigurationProperty.Role`.
	Role *string `json:"role"`
	// `CfnBucket.ReplicationConfigurationProperty.Rules`.
	Rules interface{} `json:"rules"`
}

type CfnBucket_ReplicationDestinationProperty

type CfnBucket_ReplicationDestinationProperty struct {
	// `CfnBucket.ReplicationDestinationProperty.Bucket`.
	Bucket *string `json:"bucket"`
	// `CfnBucket.ReplicationDestinationProperty.AccessControlTranslation`.
	AccessControlTranslation interface{} `json:"accessControlTranslation"`
	// `CfnBucket.ReplicationDestinationProperty.Account`.
	Account *string `json:"account"`
	// `CfnBucket.ReplicationDestinationProperty.EncryptionConfiguration`.
	EncryptionConfiguration interface{} `json:"encryptionConfiguration"`
	// `CfnBucket.ReplicationDestinationProperty.Metrics`.
	Metrics interface{} `json:"metrics"`
	// `CfnBucket.ReplicationDestinationProperty.ReplicationTime`.
	ReplicationTime interface{} `json:"replicationTime"`
	// `CfnBucket.ReplicationDestinationProperty.StorageClass`.
	StorageClass *string `json:"storageClass"`
}

type CfnBucket_ReplicationRuleAndOperatorProperty

type CfnBucket_ReplicationRuleAndOperatorProperty struct {
	// `CfnBucket.ReplicationRuleAndOperatorProperty.Prefix`.
	Prefix *string `json:"prefix"`
	// `CfnBucket.ReplicationRuleAndOperatorProperty.TagFilters`.
	TagFilters interface{} `json:"tagFilters"`
}

type CfnBucket_ReplicationRuleFilterProperty

type CfnBucket_ReplicationRuleFilterProperty struct {
	// `CfnBucket.ReplicationRuleFilterProperty.And`.
	And interface{} `json:"and"`
	// `CfnBucket.ReplicationRuleFilterProperty.Prefix`.
	Prefix *string `json:"prefix"`
	// `CfnBucket.ReplicationRuleFilterProperty.TagFilter`.
	TagFilter interface{} `json:"tagFilter"`
}

type CfnBucket_ReplicationRuleProperty

type CfnBucket_ReplicationRuleProperty struct {
	// `CfnBucket.ReplicationRuleProperty.Destination`.
	Destination interface{} `json:"destination"`
	// `CfnBucket.ReplicationRuleProperty.Status`.
	Status *string `json:"status"`
	// `CfnBucket.ReplicationRuleProperty.DeleteMarkerReplication`.
	DeleteMarkerReplication interface{} `json:"deleteMarkerReplication"`
	// `CfnBucket.ReplicationRuleProperty.Filter`.
	Filter interface{} `json:"filter"`
	// `CfnBucket.ReplicationRuleProperty.Id`.
	Id *string `json:"id"`
	// `CfnBucket.ReplicationRuleProperty.Prefix`.
	Prefix *string `json:"prefix"`
	// `CfnBucket.ReplicationRuleProperty.Priority`.
	Priority *float64 `json:"priority"`
	// `CfnBucket.ReplicationRuleProperty.SourceSelectionCriteria`.
	SourceSelectionCriteria interface{} `json:"sourceSelectionCriteria"`
}

type CfnBucket_ReplicationTimeProperty

type CfnBucket_ReplicationTimeProperty struct {
	// `CfnBucket.ReplicationTimeProperty.Status`.
	Status *string `json:"status"`
	// `CfnBucket.ReplicationTimeProperty.Time`.
	Time interface{} `json:"time"`
}

type CfnBucket_ReplicationTimeValueProperty

type CfnBucket_ReplicationTimeValueProperty struct {
	// `CfnBucket.ReplicationTimeValueProperty.Minutes`.
	Minutes *float64 `json:"minutes"`
}

type CfnBucket_RoutingRuleConditionProperty

type CfnBucket_RoutingRuleConditionProperty struct {
	// `CfnBucket.RoutingRuleConditionProperty.HttpErrorCodeReturnedEquals`.
	HttpErrorCodeReturnedEquals *string `json:"httpErrorCodeReturnedEquals"`
	// `CfnBucket.RoutingRuleConditionProperty.KeyPrefixEquals`.
	KeyPrefixEquals *string `json:"keyPrefixEquals"`
}

type CfnBucket_RoutingRuleProperty

type CfnBucket_RoutingRuleProperty struct {
	// `CfnBucket.RoutingRuleProperty.RedirectRule`.
	RedirectRule interface{} `json:"redirectRule"`
	// `CfnBucket.RoutingRuleProperty.RoutingRuleCondition`.
	RoutingRuleCondition interface{} `json:"routingRuleCondition"`
}

type CfnBucket_RuleProperty

type CfnBucket_RuleProperty struct {
	// `CfnBucket.RuleProperty.Status`.
	Status *string `json:"status"`
	// `CfnBucket.RuleProperty.AbortIncompleteMultipartUpload`.
	AbortIncompleteMultipartUpload interface{} `json:"abortIncompleteMultipartUpload"`
	// `CfnBucket.RuleProperty.ExpirationDate`.
	ExpirationDate interface{} `json:"expirationDate"`
	// `CfnBucket.RuleProperty.ExpirationInDays`.
	ExpirationInDays *float64 `json:"expirationInDays"`
	// `CfnBucket.RuleProperty.ExpiredObjectDeleteMarker`.
	ExpiredObjectDeleteMarker interface{} `json:"expiredObjectDeleteMarker"`
	// `CfnBucket.RuleProperty.Id`.
	Id *string `json:"id"`
	// `CfnBucket.RuleProperty.NoncurrentVersionExpirationInDays`.
	NoncurrentVersionExpirationInDays *float64 `json:"noncurrentVersionExpirationInDays"`
	// `CfnBucket.RuleProperty.NoncurrentVersionTransition`.
	NoncurrentVersionTransition interface{} `json:"noncurrentVersionTransition"`
	// `CfnBucket.RuleProperty.NoncurrentVersionTransitions`.
	NoncurrentVersionTransitions interface{} `json:"noncurrentVersionTransitions"`
	// `CfnBucket.RuleProperty.Prefix`.
	Prefix *string `json:"prefix"`
	// `CfnBucket.RuleProperty.TagFilters`.
	TagFilters interface{} `json:"tagFilters"`
	// `CfnBucket.RuleProperty.Transition`.
	Transition interface{} `json:"transition"`
	// `CfnBucket.RuleProperty.Transitions`.
	Transitions interface{} `json:"transitions"`
}

type CfnBucket_S3KeyFilterProperty

type CfnBucket_S3KeyFilterProperty struct {
	// `CfnBucket.S3KeyFilterProperty.Rules`.
	Rules interface{} `json:"rules"`
}

type CfnBucket_ServerSideEncryptionByDefaultProperty

type CfnBucket_ServerSideEncryptionByDefaultProperty struct {
	// `CfnBucket.ServerSideEncryptionByDefaultProperty.SSEAlgorithm`.
	SseAlgorithm *string `json:"sseAlgorithm"`
	// `CfnBucket.ServerSideEncryptionByDefaultProperty.KMSMasterKeyID`.
	KmsMasterKeyId *string `json:"kmsMasterKeyId"`
}

type CfnBucket_ServerSideEncryptionRuleProperty

type CfnBucket_ServerSideEncryptionRuleProperty struct {
	// `CfnBucket.ServerSideEncryptionRuleProperty.BucketKeyEnabled`.
	BucketKeyEnabled interface{} `json:"bucketKeyEnabled"`
	// `CfnBucket.ServerSideEncryptionRuleProperty.ServerSideEncryptionByDefault`.
	ServerSideEncryptionByDefault interface{} `json:"serverSideEncryptionByDefault"`
}

type CfnBucket_SourceSelectionCriteriaProperty

type CfnBucket_SourceSelectionCriteriaProperty struct {
	// `CfnBucket.SourceSelectionCriteriaProperty.ReplicaModifications`.
	ReplicaModifications interface{} `json:"replicaModifications"`
	// `CfnBucket.SourceSelectionCriteriaProperty.SseKmsEncryptedObjects`.
	SseKmsEncryptedObjects interface{} `json:"sseKmsEncryptedObjects"`
}

type CfnBucket_SseKmsEncryptedObjectsProperty

type CfnBucket_SseKmsEncryptedObjectsProperty struct {
	// `CfnBucket.SseKmsEncryptedObjectsProperty.Status`.
	Status *string `json:"status"`
}

type CfnBucket_StorageClassAnalysisProperty

type CfnBucket_StorageClassAnalysisProperty struct {
	// `CfnBucket.StorageClassAnalysisProperty.DataExport`.
	DataExport interface{} `json:"dataExport"`
}

type CfnBucket_TagFilterProperty

type CfnBucket_TagFilterProperty struct {
	// `CfnBucket.TagFilterProperty.Key`.
	Key *string `json:"key"`
	// `CfnBucket.TagFilterProperty.Value`.
	Value *string `json:"value"`
}

type CfnBucket_TieringProperty

type CfnBucket_TieringProperty struct {
	// `CfnBucket.TieringProperty.AccessTier`.
	AccessTier *string `json:"accessTier"`
	// `CfnBucket.TieringProperty.Days`.
	Days *float64 `json:"days"`
}

type CfnBucket_TopicConfigurationProperty

type CfnBucket_TopicConfigurationProperty struct {
	// `CfnBucket.TopicConfigurationProperty.Event`.
	Event *string `json:"event"`
	// `CfnBucket.TopicConfigurationProperty.Topic`.
	Topic *string `json:"topic"`
	// `CfnBucket.TopicConfigurationProperty.Filter`.
	Filter interface{} `json:"filter"`
}

type CfnBucket_TransitionProperty

type CfnBucket_TransitionProperty struct {
	// `CfnBucket.TransitionProperty.StorageClass`.
	StorageClass *string `json:"storageClass"`
	// `CfnBucket.TransitionProperty.TransitionDate`.
	TransitionDate interface{} `json:"transitionDate"`
	// `CfnBucket.TransitionProperty.TransitionInDays`.
	TransitionInDays *float64 `json:"transitionInDays"`
}

type CfnBucket_VersioningConfigurationProperty

type CfnBucket_VersioningConfigurationProperty struct {
	// `CfnBucket.VersioningConfigurationProperty.Status`.
	Status *string `json:"status"`
}

type CfnBucket_WebsiteConfigurationProperty

type CfnBucket_WebsiteConfigurationProperty struct {
	// `CfnBucket.WebsiteConfigurationProperty.ErrorDocument`.
	ErrorDocument *string `json:"errorDocument"`
	// `CfnBucket.WebsiteConfigurationProperty.IndexDocument`.
	IndexDocument *string `json:"indexDocument"`
	// `CfnBucket.WebsiteConfigurationProperty.RedirectAllRequestsTo`.
	RedirectAllRequestsTo interface{} `json:"redirectAllRequestsTo"`
	// `CfnBucket.WebsiteConfigurationProperty.RoutingRules`.
	RoutingRules interface{} `json:"routingRules"`
}

type CfnStorageLens

type CfnStorageLens interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrStorageLensConfigurationStorageLensArn() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	StorageLensConfiguration() interface{}
	SetStorageLensConfiguration(val interface{})
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::S3::StorageLens`.

func NewCfnStorageLens

func NewCfnStorageLens(scope constructs.Construct, id *string, props *CfnStorageLensProps) CfnStorageLens

Create a new `AWS::S3::StorageLens`.

type CfnStorageLensProps

type CfnStorageLensProps struct {
	// `AWS::S3::StorageLens.StorageLensConfiguration`.
	StorageLensConfiguration interface{} `json:"storageLensConfiguration"`
	// `AWS::S3::StorageLens.Tags`.
	Tags *[]*awscdk.CfnTag `json:"tags"`
}

Properties for defining a `AWS::S3::StorageLens`.

type CfnStorageLens_AccountLevelProperty

type CfnStorageLens_AccountLevelProperty struct {
	// `CfnStorageLens.AccountLevelProperty.BucketLevel`.
	BucketLevel interface{} `json:"bucketLevel"`
	// `CfnStorageLens.AccountLevelProperty.ActivityMetrics`.
	ActivityMetrics interface{} `json:"activityMetrics"`
}

type CfnStorageLens_ActivityMetricsProperty

type CfnStorageLens_ActivityMetricsProperty struct {
	// `CfnStorageLens.ActivityMetricsProperty.IsEnabled`.
	IsEnabled interface{} `json:"isEnabled"`
}

type CfnStorageLens_AwsOrgProperty

type CfnStorageLens_AwsOrgProperty struct {
	// `CfnStorageLens.AwsOrgProperty.Arn`.
	Arn *string `json:"arn"`
}

type CfnStorageLens_BucketLevelProperty

type CfnStorageLens_BucketLevelProperty struct {
	// `CfnStorageLens.BucketLevelProperty.ActivityMetrics`.
	ActivityMetrics interface{} `json:"activityMetrics"`
	// `CfnStorageLens.BucketLevelProperty.PrefixLevel`.
	PrefixLevel interface{} `json:"prefixLevel"`
}

type CfnStorageLens_BucketsAndRegionsProperty

type CfnStorageLens_BucketsAndRegionsProperty struct {
	// `CfnStorageLens.BucketsAndRegionsProperty.Buckets`.
	Buckets *[]*string `json:"buckets"`
	// `CfnStorageLens.BucketsAndRegionsProperty.Regions`.
	Regions *[]*string `json:"regions"`
}

type CfnStorageLens_DataExportProperty

type CfnStorageLens_DataExportProperty struct {
	// `CfnStorageLens.DataExportProperty.S3BucketDestination`.
	S3BucketDestination interface{} `json:"s3BucketDestination"`
}

type CfnStorageLens_EncryptionProperty

type CfnStorageLens_EncryptionProperty struct {
}

type CfnStorageLens_PrefixLevelProperty

type CfnStorageLens_PrefixLevelProperty struct {
	// `CfnStorageLens.PrefixLevelProperty.StorageMetrics`.
	StorageMetrics interface{} `json:"storageMetrics"`
}

type CfnStorageLens_PrefixLevelStorageMetricsProperty

type CfnStorageLens_PrefixLevelStorageMetricsProperty struct {
	// `CfnStorageLens.PrefixLevelStorageMetricsProperty.IsEnabled`.
	IsEnabled interface{} `json:"isEnabled"`
	// `CfnStorageLens.PrefixLevelStorageMetricsProperty.SelectionCriteria`.
	SelectionCriteria interface{} `json:"selectionCriteria"`
}

type CfnStorageLens_S3BucketDestinationProperty

type CfnStorageLens_S3BucketDestinationProperty struct {
	// `CfnStorageLens.S3BucketDestinationProperty.AccountId`.
	AccountId *string `json:"accountId"`
	// `CfnStorageLens.S3BucketDestinationProperty.Arn`.
	Arn *string `json:"arn"`
	// `CfnStorageLens.S3BucketDestinationProperty.Format`.
	Format *string `json:"format"`
	// `CfnStorageLens.S3BucketDestinationProperty.OutputSchemaVersion`.
	OutputSchemaVersion *string `json:"outputSchemaVersion"`
	// `CfnStorageLens.S3BucketDestinationProperty.Encryption`.
	Encryption interface{} `json:"encryption"`
	// `CfnStorageLens.S3BucketDestinationProperty.Prefix`.
	Prefix *string `json:"prefix"`
}

type CfnStorageLens_SelectionCriteriaProperty

type CfnStorageLens_SelectionCriteriaProperty struct {
	// `CfnStorageLens.SelectionCriteriaProperty.Delimiter`.
	Delimiter *string `json:"delimiter"`
	// `CfnStorageLens.SelectionCriteriaProperty.MaxDepth`.
	MaxDepth *float64 `json:"maxDepth"`
	// `CfnStorageLens.SelectionCriteriaProperty.MinStorageBytesPercentage`.
	MinStorageBytesPercentage *float64 `json:"minStorageBytesPercentage"`
}

type CfnStorageLens_StorageLensConfigurationProperty

type CfnStorageLens_StorageLensConfigurationProperty struct {
	// `CfnStorageLens.StorageLensConfigurationProperty.AccountLevel`.
	AccountLevel interface{} `json:"accountLevel"`
	// `CfnStorageLens.StorageLensConfigurationProperty.Id`.
	Id *string `json:"id"`
	// `CfnStorageLens.StorageLensConfigurationProperty.IsEnabled`.
	IsEnabled interface{} `json:"isEnabled"`
	// `CfnStorageLens.StorageLensConfigurationProperty.AwsOrg`.
	AwsOrg interface{} `json:"awsOrg"`
	// `CfnStorageLens.StorageLensConfigurationProperty.DataExport`.
	DataExport interface{} `json:"dataExport"`
	// `CfnStorageLens.StorageLensConfigurationProperty.Exclude`.
	Exclude interface{} `json:"exclude"`
	// `CfnStorageLens.StorageLensConfigurationProperty.Include`.
	Include interface{} `json:"include"`
	// `CfnStorageLens.StorageLensConfigurationProperty.StorageLensArn`.
	StorageLensArn *string `json:"storageLensArn"`
}

type CorsRule

type CorsRule struct {
	// An HTTP method that you allow the origin to execute.
	// Experimental.
	AllowedMethods *[]HttpMethods `json:"allowedMethods"`
	// One or more origins you want customers to be able to access the bucket from.
	// Experimental.
	AllowedOrigins *[]*string `json:"allowedOrigins"`
	// Headers that are specified in the Access-Control-Request-Headers header.
	// Experimental.
	AllowedHeaders *[]*string `json:"allowedHeaders"`
	// One or more headers in the response that you want customers to be able to access from their applications.
	// Experimental.
	ExposedHeaders *[]*string `json:"exposedHeaders"`
	// A unique identifier for this rule.
	// Experimental.
	Id *string `json:"id"`
	// The time in seconds that your browser is to cache the preflight response for the specified resource.
	// Experimental.
	MaxAge *float64 `json:"maxAge"`
}

Specifies a cross-origin access rule for an Amazon S3 bucket. Experimental.

type EventType

type EventType string

Notification event types. Experimental.

const (
	EventType_OBJECT_CREATED                                   EventType = "OBJECT_CREATED"
	EventType_OBJECT_CREATED_PUT                               EventType = "OBJECT_CREATED_PUT"
	EventType_OBJECT_CREATED_POST                              EventType = "OBJECT_CREATED_POST"
	EventType_OBJECT_CREATED_COPY                              EventType = "OBJECT_CREATED_COPY"
	EventType_OBJECT_CREATED_COMPLETE_MULTIPART_UPLOAD         EventType = "OBJECT_CREATED_COMPLETE_MULTIPART_UPLOAD"
	EventType_OBJECT_REMOVED                                   EventType = "OBJECT_REMOVED"
	EventType_OBJECT_REMOVED_DELETE                            EventType = "OBJECT_REMOVED_DELETE"
	EventType_OBJECT_REMOVED_DELETE_MARKER_CREATED             EventType = "OBJECT_REMOVED_DELETE_MARKER_CREATED"
	EventType_OBJECT_RESTORE_POST                              EventType = "OBJECT_RESTORE_POST"
	EventType_OBJECT_RESTORE_COMPLETED                         EventType = "OBJECT_RESTORE_COMPLETED"
	EventType_REDUCED_REDUNDANCY_LOST_OBJECT                   EventType = "REDUCED_REDUNDANCY_LOST_OBJECT"
	EventType_REPLICATION_OPERATION_FAILED_REPLICATION         EventType = "REPLICATION_OPERATION_FAILED_REPLICATION"
	EventType_REPLICATION_OPERATION_MISSED_THRESHOLD           EventType = "REPLICATION_OPERATION_MISSED_THRESHOLD"
	EventType_REPLICATION_OPERATION_REPLICATED_AFTER_THRESHOLD EventType = "REPLICATION_OPERATION_REPLICATED_AFTER_THRESHOLD"
	EventType_REPLICATION_OPERATION_NOT_TRACKED                EventType = "REPLICATION_OPERATION_NOT_TRACKED"
)

type HttpMethods

type HttpMethods string

All http request methods. Experimental.

const (
	HttpMethods_GET    HttpMethods = "GET"
	HttpMethods_PUT    HttpMethods = "PUT"
	HttpMethods_HEAD   HttpMethods = "HEAD"
	HttpMethods_POST   HttpMethods = "POST"
	HttpMethods_DELETE HttpMethods = "DELETE"
)

type IBucket

type IBucket interface {
	awscdk.IResource
	// Adds a bucket notification event destination.
	//
	// TODO: EXAMPLE
	//
	// See: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html
	//
	// Experimental.
	AddEventNotification(event EventType, dest IBucketNotificationDestination, filters ...*NotificationKeyFilter)
	// Subscribes a destination to receive notifications when an object is created in the bucket.
	//
	// This is identical to calling
	// `onEvent(EventType.ObjectCreated)`.
	// Experimental.
	AddObjectCreatedNotification(dest IBucketNotificationDestination, filters ...*NotificationKeyFilter)
	// Subscribes a destination to receive notifications when an object is removed from the bucket.
	//
	// This is identical to calling
	// `onEvent(EventType.ObjectRemoved)`.
	// Experimental.
	AddObjectRemovedNotification(dest IBucketNotificationDestination, filters ...*NotificationKeyFilter)
	// Adds a statement to the resource policy for a principal (i.e. account/role/service) to perform actions on this bucket and/or its contents. Use `bucketArn` and `arnForObjects(keys)` to obtain ARNs for this bucket or objects.
	//
	// Note that the policy statement may or may not be added to the policy.
	// For example, when an `IBucket` is created from an existing bucket,
	// it's not possible to tell whether the bucket already has a policy
	// attached, let alone to re-use that policy to add more statements to it.
	// So it's safest to do nothing in these cases.
	//
	// Returns: metadata about the execution of this method. If the policy
	// was not added, the value of `statementAdded` will be `false`. You
	// should always check this value to make sure that the operation was
	// actually carried out. Otherwise, synthesis and deploy will terminate
	// silently, which may be confusing.
	// Experimental.
	AddToResourcePolicy(permission awsiam.PolicyStatement) *awsiam.AddToResourcePolicyResult
	// Returns an ARN that represents all objects within the bucket that match the key pattern specified.
	//
	// To represent all keys, specify “"*"“.
	// Experimental.
	ArnForObjects(keyPattern *string) *string
	// Grants s3:DeleteObject* permission to an IAM principal for objects in this bucket.
	// Experimental.
	GrantDelete(identity awsiam.IGrantable, objectsKeyPattern interface{}) awsiam.Grant
	// Allows unrestricted access to objects from this bucket.
	//
	// IMPORTANT: This permission allows anyone to perform actions on S3 objects
	// in this bucket, which is useful for when you configure your bucket as a
	// website and want everyone to be able to read objects in the bucket without
	// needing to authenticate.
	//
	// Without arguments, this method will grant read ("s3:GetObject") access to
	// all objects ("*") in the bucket.
	//
	// The method returns the `iam.Grant` object, which can then be modified
	// as needed. For example, you can add a condition that will restrict access only
	// to an IPv4 range like this:
	//
	//      const grant = bucket.grantPublicAccess();
	//      grant.resourceStatement!.addCondition(‘IpAddress’, { “aws:SourceIp”: “54.240.143.0/24” });
	//
	// Returns: The `iam.PolicyStatement` object, which can be used to apply e.g. conditions.
	// Experimental.
	GrantPublicAccess(keyPrefix *string, allowedActions ...*string) awsiam.Grant
	// Grants s3:PutObject* and s3:Abort* permissions for this bucket to an IAM principal.
	//
	// If encryption is used, permission to use the key to encrypt the contents
	// of written files will also be granted to the same principal.
	// Experimental.
	GrantPut(identity awsiam.IGrantable, objectsKeyPattern interface{}) awsiam.Grant
	// Grant the given IAM identity permissions to modify the ACLs of objects in the given Bucket.
	//
	// If your application has the '@aws-cdk/aws-s3:grantWriteWithoutAcl' feature flag set,
	// calling {@link grantWrite} or {@link grantReadWrite} no longer grants permissions to modify the ACLs of the objects;
	// in this case, if you need to modify object ACLs, call this method explicitly.
	// Experimental.
	GrantPutAcl(identity awsiam.IGrantable, objectsKeyPattern *string) awsiam.Grant
	// Grant read permissions for this bucket and it's contents to an IAM principal (Role/Group/User).
	//
	// If encryption is used, permission to use the key to decrypt the contents
	// of the bucket will also be granted to the same principal.
	// Experimental.
	GrantRead(identity awsiam.IGrantable, objectsKeyPattern interface{}) awsiam.Grant
	// Grants read/write permissions for this bucket and it's contents to an IAM principal (Role/Group/User).
	//
	// If an encryption key is used, permission to use the key for
	// encrypt/decrypt will also be granted.
	//
	// Before CDK version 1.85.0, this method granted the `s3:PutObject*` permission that included `s3:PutObjectAcl`,
	// which could be used to grant read/write object access to IAM principals in other accounts.
	// If you want to get rid of that behavior, update your CDK version to 1.85.0 or later,
	// and make sure the `@aws-cdk/aws-s3:grantWriteWithoutAcl` feature flag is set to `true`
	// in the `context` key of your cdk.json file.
	// If you've already updated, but still need the principal to have permissions to modify the ACLs,
	// use the {@link grantPutAcl} method.
	// Experimental.
	GrantReadWrite(identity awsiam.IGrantable, objectsKeyPattern interface{}) awsiam.Grant
	// Grant write permissions to this bucket to an IAM principal.
	//
	// If encryption is used, permission to use the key to encrypt the contents
	// of written files will also be granted to the same principal.
	//
	// Before CDK version 1.85.0, this method granted the `s3:PutObject*` permission that included `s3:PutObjectAcl`,
	// which could be used to grant read/write object access to IAM principals in other accounts.
	// If you want to get rid of that behavior, update your CDK version to 1.85.0 or later,
	// and make sure the `@aws-cdk/aws-s3:grantWriteWithoutAcl` feature flag is set to `true`
	// in the `context` key of your cdk.json file.
	// If you've already updated, but still need the principal to have permissions to modify the ACLs,
	// use the {@link grantPutAcl} method.
	// Experimental.
	GrantWrite(identity awsiam.IGrantable, objectsKeyPattern interface{}) awsiam.Grant
	// Defines a CloudWatch event that triggers when something happens to this bucket.
	//
	// Requires that there exists at least one CloudTrail Trail in your account
	// that captures the event. This method will not create the Trail.
	// Experimental.
	OnCloudTrailEvent(id *string, options *OnCloudTrailBucketEventOptions) awsevents.Rule
	// Defines an AWS CloudWatch event that triggers when an object is uploaded to the specified paths (keys) in this bucket using the PutObject API call.
	//
	// Note that some tools like `aws s3 cp` will automatically use either
	// PutObject or the multipart upload API depending on the file size,
	// so using `onCloudTrailWriteObject` may be preferable.
	//
	// Requires that there exists at least one CloudTrail Trail in your account
	// that captures the event. This method will not create the Trail.
	// Experimental.
	OnCloudTrailPutObject(id *string, options *OnCloudTrailBucketEventOptions) awsevents.Rule
	// Defines an AWS CloudWatch event that triggers when an object at the specified paths (keys) in this bucket are written to.
	//
	// This includes
	// the events PutObject, CopyObject, and CompleteMultipartUpload.
	//
	// Note that some tools like `aws s3 cp` will automatically use either
	// PutObject or the multipart upload API depending on the file size,
	// so using this method may be preferable to `onCloudTrailPutObject`.
	//
	// Requires that there exists at least one CloudTrail Trail in your account
	// that captures the event. This method will not create the Trail.
	// Experimental.
	OnCloudTrailWriteObject(id *string, options *OnCloudTrailBucketEventOptions) awsevents.Rule
	// The S3 URL of an S3 object.
	//
	// For example:
	//
	// Returns: an ObjectS3Url token
	//
	// TODO: EXAMPLE
	//
	// Experimental.
	S3UrlForObject(key *string) *string
	// The https URL of an S3 object.
	//
	// For example:
	//
	// Returns: an ObjectS3Url token
	//
	// TODO: EXAMPLE
	//
	// Experimental.
	UrlForObject(key *string) *string
	// The virtual hosted-style URL of an S3 object.
	//
	// Specify `regional: false` at
	// the options for non-regional URL. For example:
	//
	// Returns: an ObjectS3Url token
	//
	// TODO: EXAMPLE
	//
	// Experimental.
	VirtualHostedUrlForObject(key *string, options *VirtualHostedStyleUrlOptions) *string
	// The ARN of the bucket.
	// Experimental.
	BucketArn() *string
	// The IPv4 DNS name of the specified bucket.
	// Experimental.
	BucketDomainName() *string
	// The IPv6 DNS name of the specified bucket.
	// Experimental.
	BucketDualStackDomainName() *string
	// The name of the bucket.
	// Experimental.
	BucketName() *string
	// The regional domain name of the specified bucket.
	// Experimental.
	BucketRegionalDomainName() *string
	// The Domain name of the static website.
	// Experimental.
	BucketWebsiteDomainName() *string
	// The URL of the static website.
	// Experimental.
	BucketWebsiteUrl() *string
	// Optional KMS encryption key associated with this bucket.
	// Experimental.
	EncryptionKey() awskms.IKey
	// If this bucket has been configured for static website hosting.
	// Experimental.
	IsWebsite() *bool
	// The resource policy associated with this bucket.
	//
	// If `autoCreatePolicy` is true, a `BucketPolicy` will be created upon the
	// first call to addToResourcePolicy(s).
	// Experimental.
	Policy() BucketPolicy
	// The resource policy associated with this bucket.
	//
	// If `autoCreatePolicy` is true, a `BucketPolicy` will be created upon the
	// first call to addToResourcePolicy(s).
	// Experimental.
	SetPolicy(p BucketPolicy)
}

Experimental.

func Bucket_FromBucketArn

func Bucket_FromBucketArn(scope constructs.Construct, id *string, bucketArn *string) IBucket

Experimental.

func Bucket_FromBucketAttributes

func Bucket_FromBucketAttributes(scope constructs.Construct, id *string, attrs *BucketAttributes) IBucket

Creates a Bucket construct that represents an external bucket. Experimental.

func Bucket_FromBucketName

func Bucket_FromBucketName(scope constructs.Construct, id *string, bucketName *string) IBucket

Experimental.

type IBucketNotificationDestination

type IBucketNotificationDestination interface {
	// Registers this resource to receive notifications for the specified bucket.
	//
	// This method will only be called once for each destination/bucket
	// pair and the result will be cached, so there is no need to implement
	// idempotency in each destination.
	// Experimental.
	Bind(scope constructs.Construct, bucket IBucket) *BucketNotificationDestinationConfig
}

Implemented by constructs that can be used as bucket notification destinations. Experimental.

type Inventory

type Inventory struct {
	// The destination of the inventory.
	// Experimental.
	Destination *InventoryDestination `json:"destination"`
	// Whether the inventory is enabled or disabled.
	// Experimental.
	Enabled *bool `json:"enabled"`
	// The format of the inventory.
	// Experimental.
	Format InventoryFormat `json:"format"`
	// Frequency at which the inventory should be generated.
	// Experimental.
	Frequency InventoryFrequency `json:"frequency"`
	// If the inventory should contain all the object versions or only the current one.
	// Experimental.
	IncludeObjectVersions InventoryObjectVersion `json:"includeObjectVersions"`
	// The inventory configuration ID.
	// Experimental.
	InventoryId *string `json:"inventoryId"`
	// The inventory will only include objects that meet the prefix filter criteria.
	// Experimental.
	ObjectsPrefix *string `json:"objectsPrefix"`
	// A list of optional fields to be included in the inventory result.
	// Experimental.
	OptionalFields *[]*string `json:"optionalFields"`
}

Specifies the inventory configuration of an S3 Bucket. See: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html

Experimental.

type InventoryDestination

type InventoryDestination struct {
	// Bucket where all inventories will be saved in.
	// Experimental.
	Bucket IBucket `json:"bucket"`
	// The account ID that owns the destination S3 bucket.
	//
	// If no account ID is provided, the owner is not validated before exporting data.
	// It's recommended to set an account ID to prevent problems if the destination bucket ownership changes.
	// Experimental.
	BucketOwner *string `json:"bucketOwner"`
	// The prefix to be used when saving the inventory.
	// Experimental.
	Prefix *string `json:"prefix"`
}

The destination of the inventory. Experimental.

type InventoryFormat

type InventoryFormat string

All supported inventory list formats. Experimental.

const (
	InventoryFormat_CSV     InventoryFormat = "CSV"
	InventoryFormat_PARQUET InventoryFormat = "PARQUET"
	InventoryFormat_ORC     InventoryFormat = "ORC"
)

type InventoryFrequency

type InventoryFrequency string

All supported inventory frequencies. Experimental.

const (
	InventoryFrequency_DAILY  InventoryFrequency = "DAILY"
	InventoryFrequency_WEEKLY InventoryFrequency = "WEEKLY"
)

type InventoryObjectVersion

type InventoryObjectVersion string

Inventory version support. Experimental.

const (
	InventoryObjectVersion_ALL     InventoryObjectVersion = "ALL"
	InventoryObjectVersion_CURRENT InventoryObjectVersion = "CURRENT"
)

type LifecycleRule

type LifecycleRule struct {
	// Specifies a lifecycle rule that aborts incomplete multipart uploads to an Amazon S3 bucket.
	//
	// The AbortIncompleteMultipartUpload property type creates a lifecycle
	// rule that aborts incomplete multipart uploads to an Amazon S3 bucket.
	// When Amazon S3 aborts a multipart upload, it deletes all parts
	// associated with the multipart upload.
	// Experimental.
	AbortIncompleteMultipartUploadAfter awscdk.Duration `json:"abortIncompleteMultipartUploadAfter"`
	// Whether this rule is enabled.
	// Experimental.
	Enabled *bool `json:"enabled"`
	// Indicates the number of days after creation when objects are deleted from Amazon S3 and Amazon 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.
	// Experimental.
	Expiration awscdk.Duration `json:"expiration"`
	// Indicates when objects are deleted from Amazon S3 and Amazon 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.
	// Experimental.
	ExpirationDate *time.Time `json:"expirationDate"`
	// Indicates whether Amazon S3 will remove a delete marker with no noncurrent versions.
	//
	// If set to true, the delete marker will be expired.
	// Experimental.
	ExpiredObjectDeleteMarker *bool `json:"expiredObjectDeleteMarker"`
	// A unique identifier for this rule.
	//
	// The value cannot be more than 255 characters.
	// Experimental.
	Id *string `json:"id"`
	// Time between when a new version of the object is uploaded to the bucket and when old versions of the object expire.
	//
	// 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.
	// Experimental.
	NoncurrentVersionExpiration awscdk.Duration `json:"noncurrentVersionExpiration"`
	// One or more transition rules that specify when non-current objects transition to a specified storage class.
	//
	// Only for for buckets with versioning enabled (or suspended).
	//
	// If you specify a transition and expiration time, the expiration time
	// must be later than the transition time.
	// Experimental.
	NoncurrentVersionTransitions *[]*NoncurrentVersionTransition `json:"noncurrentVersionTransitions"`
	// Object key prefix that identifies one or more objects to which this rule applies.
	// Experimental.
	Prefix *string `json:"prefix"`
	// The TagFilter property type specifies tags to use to identify a subset of objects for an Amazon S3 bucket.
	// Experimental.
	TagFilters *map[string]interface{} `json:"tagFilters"`
	// 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.
	// Experimental.
	Transitions *[]*Transition `json:"transitions"`
}

Declaration of a Life cycle rule. Experimental.

type Location

type Location struct {
	// The name of the S3 Bucket the object is in.
	// Experimental.
	BucketName *string `json:"bucketName"`
	// The path inside the Bucket where the object is located at.
	// Experimental.
	ObjectKey *string `json:"objectKey"`
	// The S3 object version.
	// Experimental.
	ObjectVersion *string `json:"objectVersion"`
}

An interface that represents the location of a specific object in an S3 Bucket. Experimental.

type NoncurrentVersionTransition

type NoncurrentVersionTransition struct {
	// The storage class to which you want the object to transition.
	// Experimental.
	StorageClass StorageClass `json:"storageClass"`
	// Indicates the number of days after creation when objects are transitioned to the specified storage class.
	// Experimental.
	TransitionAfter awscdk.Duration `json:"transitionAfter"`
}

Describes when noncurrent versions transition to a specified storage class. Experimental.

type NotificationKeyFilter

type NotificationKeyFilter struct {
	// S3 keys must have the specified prefix.
	// Experimental.
	Prefix *string `json:"prefix"`
	// S3 keys must have the specified suffix.
	// Experimental.
	Suffix *string `json:"suffix"`
}

Experimental.

type ObjectOwnership

type ObjectOwnership string

The ObjectOwnership of the bucket. See: https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html

Experimental.

const (
	ObjectOwnership_BUCKET_OWNER_PREFERRED ObjectOwnership = "BUCKET_OWNER_PREFERRED"
	ObjectOwnership_OBJECT_WRITER          ObjectOwnership = "OBJECT_WRITER"
)

type OnCloudTrailBucketEventOptions

type OnCloudTrailBucketEventOptions struct {
	// A description of the rule's purpose.
	// Experimental.
	Description *string `json:"description"`
	// Additional restrictions for the event to route to the specified target.
	//
	// The method that generates the rule probably imposes some type of event
	// filtering. The filtering implied by what you pass here is added
	// on top of that filtering.
	// See: https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html
	//
	// Experimental.
	EventPattern *awsevents.EventPattern `json:"eventPattern"`
	// A name for the rule.
	// Experimental.
	RuleName *string `json:"ruleName"`
	// The target to register for the event.
	// Experimental.
	Target awsevents.IRuleTarget `json:"target"`
	// Only watch changes to these object paths.
	// Experimental.
	Paths *[]*string `json:"paths"`
}

Options for the onCloudTrailPutObject method. Experimental.

type RedirectProtocol

type RedirectProtocol string

All http request methods. Experimental.

const (
	RedirectProtocol_HTTP  RedirectProtocol = "HTTP"
	RedirectProtocol_HTTPS RedirectProtocol = "HTTPS"
)

type RedirectTarget

type RedirectTarget struct {
	// Name of the host where requests are redirected.
	// Experimental.
	HostName *string `json:"hostName"`
	// Protocol to use when redirecting requests.
	// Experimental.
	Protocol RedirectProtocol `json:"protocol"`
}

Specifies a redirect behavior of all requests to a website endpoint of a bucket. Experimental.

type ReplaceKey

type ReplaceKey interface {
	PrefixWithKey() *string
	WithKey() *string
}

Experimental.

func ReplaceKey_PrefixWith

func ReplaceKey_PrefixWith(keyReplacement *string) ReplaceKey

The object key prefix to use in the redirect request. Experimental.

func ReplaceKey_With

func ReplaceKey_With(keyReplacement *string) ReplaceKey

The specific object key to use in the redirect request. Experimental.

type RoutingRule

type RoutingRule struct {
	// Specifies a condition that must be met for the specified redirect to apply.
	// Experimental.
	Condition *RoutingRuleCondition `json:"condition"`
	// The host name to use in the redirect request.
	// Experimental.
	HostName *string `json:"hostName"`
	// The HTTP redirect code to use on the response.
	// Experimental.
	HttpRedirectCode *string `json:"httpRedirectCode"`
	// Protocol to use when redirecting requests.
	// Experimental.
	Protocol RedirectProtocol `json:"protocol"`
	// Specifies the object key prefix to use in the redirect request.
	// Experimental.
	ReplaceKey ReplaceKey `json:"replaceKey"`
}

Rule that define when a redirect is applied and the redirect behavior. See: https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html

Experimental.

type RoutingRuleCondition

type RoutingRuleCondition struct {
	// 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.
	//
	// If both condition properties are specified, both must be true for the redirect to be applied.
	// Experimental.
	HttpErrorCodeReturnedEquals *string `json:"httpErrorCodeReturnedEquals"`
	// The object key name prefix when the redirect is applied.
	//
	// If both condition properties are specified, both must be true for the redirect to be applied.
	// Experimental.
	KeyPrefixEquals *string `json:"keyPrefixEquals"`
}

Experimental.

type StorageClass

type StorageClass interface {
	Value() *string
	ToString() *string
}

Storage class to move an object to. Experimental.

func NewStorageClass

func NewStorageClass(value *string) StorageClass

Experimental.

func StorageClass_DEEP_ARCHIVE

func StorageClass_DEEP_ARCHIVE() StorageClass

func StorageClass_GLACIER

func StorageClass_GLACIER() StorageClass

func StorageClass_INFREQUENT_ACCESS

func StorageClass_INFREQUENT_ACCESS() StorageClass

func StorageClass_INTELLIGENT_TIERING

func StorageClass_INTELLIGENT_TIERING() StorageClass

func StorageClass_ONE_ZONE_INFREQUENT_ACCESS

func StorageClass_ONE_ZONE_INFREQUENT_ACCESS() StorageClass

type Transition

type Transition struct {
	// The storage class to which you want the object to transition.
	// Experimental.
	StorageClass StorageClass `json:"storageClass"`
	// Indicates the number of days after creation when objects are transitioned to the specified storage class.
	// Experimental.
	TransitionAfter awscdk.Duration `json:"transitionAfter"`
	// 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.
	// Experimental.
	TransitionDate *time.Time `json:"transitionDate"`
}

Describes when an object transitions to a specified storage class. Experimental.

type VirtualHostedStyleUrlOptions

type VirtualHostedStyleUrlOptions struct {
	// Specifies the URL includes the region.
	// Experimental.
	Regional *bool `json:"regional"`
}

Options for creating Virtual-Hosted style URL. Experimental.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL