@Internal public static interface IBucket.Jsii$Default extends IBucket, IResource.Jsii$Default
IBucket.IBucket.Jsii$Default, IBucket.Jsii$Proxy| Modifier and Type | Method and Description |
|---|---|
default void |
addEventNotification(EventType event,
IBucketNotificationDestination dest,
NotificationKeyFilter... filters)
Adds a bucket notification event destination.
|
default void |
addObjectCreatedNotification(IBucketNotificationDestination dest,
NotificationKeyFilter... filters)
Subscribes a destination to receive notifications when an object is created in the bucket.
|
default void |
addObjectRemovedNotification(IBucketNotificationDestination dest,
NotificationKeyFilter... filters)
Subscribes a destination to receive notifications when an object is removed from the bucket.
|
default AddToResourcePolicyResult |
addToResourcePolicy(PolicyStatement permission)
Adds a statement to the resource policy for a principal (i.e.
|
default void |
applyRemovalPolicy(RemovalPolicy policy)
Apply the given removal policy to this resource.
|
default String |
arnForObjects(String keyPattern)
Returns an ARN that represents all objects within the bucket that match the key pattern specified.
|
default void |
enableEventBridgeNotification()
Enables event bridge notification, causing all events below to be sent to EventBridge:.
|
default String |
getBucketArn()
The ARN of the bucket.
|
default String |
getBucketDomainName()
The IPv4 DNS name of the specified bucket.
|
default String |
getBucketDualStackDomainName()
The IPv6 DNS name of the specified bucket.
|
default String |
getBucketName()
The name of the bucket.
|
default String |
getBucketRegionalDomainName()
The regional domain name of the specified bucket.
|
default String |
getBucketWebsiteDomainName()
The Domain name of the static website.
|
default String |
getBucketWebsiteUrl()
The URL of the static website.
|
default IKey |
getEncryptionKey()
Optional KMS encryption key associated with this bucket.
|
default ResourceEnvironment |
getEnv()
The environment this resource belongs to.
|
default Boolean |
getIsWebsite()
If this bucket has been configured for static website hosting.
|
default software.constructs.Node |
getNode()
The tree node.
|
default BucketPolicy |
getPolicy()
The resource policy associated with this bucket.
|
default Stack |
getStack()
The stack in which this resource is defined.
|
default Grant |
grantDelete(IGrantable identity,
Object objectsKeyPattern)
Grants s3:DeleteObject* permission to an IAM principal for objects in this bucket.
|
default Grant |
grantPublicAccess(String keyPrefix,
String... allowedActions)
Allows unrestricted access to objects from this bucket.
|
default Grant |
grantPut(IGrantable identity,
Object objectsKeyPattern)
Grants s3:PutObject* and s3:Abort* permissions for this bucket to an IAM principal.
|
default Grant |
grantPutAcl(IGrantable identity,
String objectsKeyPattern)
Grant the given IAM identity permissions to modify the ACLs of objects in the given Bucket.
|
default Grant |
grantRead(IGrantable identity,
Object objectsKeyPattern)
Grant read permissions for this bucket and it's contents to an IAM principal (Role/Group/User).
|
default Grant |
grantReadWrite(IGrantable identity,
Object objectsKeyPattern)
Grants read/write permissions for this bucket and it's contents to an IAM principal (Role/Group/User).
|
default Grant |
grantWrite(IGrantable identity,
Object objectsKeyPattern)
Grant write permissions to this bucket to an IAM principal.
|
default Rule |
onCloudTrailEvent(String id,
OnCloudTrailBucketEventOptions options)
Defines a CloudWatch event that triggers when something happens to this bucket.
|
default Rule |
onCloudTrailPutObject(String id,
OnCloudTrailBucketEventOptions options)
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.
|
default Rule |
onCloudTrailWriteObject(String id,
OnCloudTrailBucketEventOptions options)
Defines an AWS CloudWatch event that triggers when an object at the specified paths (keys) in this bucket are written to.
|
default String |
s3UrlForObject(String key)
The S3 URL of an S3 object.
|
default void |
setPolicy(BucketPolicy value)
The resource policy associated with this bucket.
|
default String |
transferAccelerationUrlForObject(String key,
TransferAccelerationUrlOptions options)
The https Transfer Acceleration URL of an S3 object.
|
default String |
urlForObject(String key)
The https URL of an S3 object.
|
default String |
virtualHostedUrlForObject(String key,
VirtualHostedStyleUrlOptions options)
The virtual hosted-style URL of an S3 object.
|
grantDelete, grantPut, grantPutAcl, grantRead, grantReadWrite, grantWrite, onCloudTrailEvent, onCloudTrailPutObject, onCloudTrailWriteObject, s3UrlForObject, transferAccelerationUrlForObject, transferAccelerationUrlForObject, urlForObject, virtualHostedUrlForObject, virtualHostedUrlForObject@Stability(value=Stable) @NotNull default software.constructs.Node getNode()
getNode in interface software.constructs.IConstructgetNode in interface software.constructs.IConstruct.Jsii$DefaultgetNode in interface IResource.Jsii$Default@Stability(value=Stable) @NotNull default ResourceEnvironment getEnv()
For resources that are created and managed by the CDK (generally, those created by creating new class instances like Role, Bucket, etc.), this is always the same as the environment of the stack they belong to; however, for imported resources (those obtained from static methods like fromRoleArn, fromBucketName, etc.), that might be different than the stack they were imported into.
getEnv in interface IResourcegetEnv in interface IResource.Jsii$Default@Stability(value=Stable) @NotNull default Stack getStack()
getStack in interface IResourcegetStack in interface IResource.Jsii$Default@Stability(value=Stable) @NotNull default String getBucketArn()
getBucketArn in interface IBucket@Stability(value=Stable) @NotNull default String getBucketDomainName()
getBucketDomainName in interface IBucket@Stability(value=Stable) @NotNull default String getBucketDualStackDomainName()
getBucketDualStackDomainName in interface IBucket@Stability(value=Stable) @NotNull default String getBucketName()
getBucketName in interface IBucket@Stability(value=Stable) @NotNull default String getBucketRegionalDomainName()
getBucketRegionalDomainName in interface IBucket@Stability(value=Stable) @NotNull default String getBucketWebsiteDomainName()
getBucketWebsiteDomainName in interface IBucket@Stability(value=Stable) @NotNull default String getBucketWebsiteUrl()
getBucketWebsiteUrl in interface IBucket@Stability(value=Stable) @Nullable default IKey getEncryptionKey()
getEncryptionKey in interface IBucket@Stability(value=Stable) @Nullable default Boolean getIsWebsite()
getIsWebsite in interface IBucket@Stability(value=Stable) @Nullable default BucketPolicy getPolicy()
If autoCreatePolicy is true, a BucketPolicy will be created upon the
first call to addToResourcePolicy(s).
@Stability(value=Stable)
default void setPolicy(@Nullable
BucketPolicy value)
If autoCreatePolicy is true, a BucketPolicy will be created upon the
first call to addToResourcePolicy(s).
@Stability(value=Stable)
default void applyRemovalPolicy(@NotNull
RemovalPolicy policy)
The Removal Policy controls what happens to this resource when it stops being managed by CloudFormation, either because you've removed it from the CDK application or because you've made a change that requires the resource to be replaced.
The resource can be deleted (RemovalPolicy.DESTROY), or left in your AWS
account for data recovery and cleanup later (RemovalPolicy.RETAIN).
applyRemovalPolicy in interface IResourceapplyRemovalPolicy in interface IResource.Jsii$Defaultpolicy - This parameter is required.@Stability(value=Stable)
default void addEventNotification(@NotNull
EventType event,
@NotNull
IBucketNotificationDestination dest,
@NotNull
NotificationKeyFilter... filters)
Example:
// Example automatically generated from non-compiling source. May contain errors.
Function myLambda;
Bucket bucket = new Bucket(this, "MyBucket");
bucket.addEventNotification(EventType.OBJECT_CREATED, new LambdaDestination(myLambda), NotificationKeyFilter.builder().prefix("home/myusername/*").build());
addEventNotification in interface IBucketevent - The event to trigger the notification. This parameter is required.dest - The notification destination (Lambda, SNS Topic or SQS Queue). This parameter is required.filters - S3 object key filter rules to determine which objects trigger this event. This parameter is required.@Stability(value=Stable)
default void addObjectCreatedNotification(@NotNull
IBucketNotificationDestination dest,
@NotNull
NotificationKeyFilter... filters)
This is identical to calling
onEvent(s3.EventType.OBJECT_CREATED).
addObjectCreatedNotification in interface IBucketdest - The notification destination (see onEvent). This parameter is required.filters - Filters (see onEvent). This parameter is required.@Stability(value=Stable)
default void addObjectRemovedNotification(@NotNull
IBucketNotificationDestination dest,
@NotNull
NotificationKeyFilter... filters)
This is identical to calling
onEvent(EventType.OBJECT_REMOVED).
addObjectRemovedNotification in interface IBucketdest - The notification destination (see onEvent). This parameter is required.filters - Filters (see onEvent). This parameter is required.@Stability(value=Stable) @NotNull default AddToResourcePolicyResult addToResourcePolicy(@NotNull PolicyStatement permission)
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.
addToResourcePolicy in interface IBucketpermission - the policy statement to be added to the bucket's policy. This parameter is required.@Stability(value=Stable) @NotNull default String arnForObjects(@NotNull String keyPattern)
To represent all keys, specify "*".
arnForObjects in interface IBucketkeyPattern - This parameter is required.@Stability(value=Stable) default void enableEventBridgeNotification()
enableEventBridgeNotification in interface IBucket@Stability(value=Stable) @NotNull default Grant grantDelete(@NotNull IGrantable identity, @Nullable Object objectsKeyPattern)
grantDelete in interface IBucketidentity - The principal. This parameter is required.objectsKeyPattern - Restrict the permission to a certain key pattern (default '*').@Stability(value=Stable) @NotNull default Grant grantPublicAccess(@Nullable String keyPrefix, @NotNull String... allowedActions)
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” });
grantPublicAccess in interface IBucketkeyPrefix - the prefix of S3 object keys (e.g. `home/*`). Default is "*".allowedActions - the set of S3 actions to allow. This parameter is required.@Stability(value=Stable) @NotNull default Grant grantPut(@NotNull IGrantable identity, @Nullable Object objectsKeyPattern)
If encryption is used, permission to use the key to encrypt the contents of written files will also be granted to the same principal.
@Stability(value=Stable) @NotNull default Grant grantPutAcl(@NotNull IGrantable identity, @Nullable String objectsKeyPattern)
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.
grantPutAcl in interface IBucketidentity - The principal. This parameter is required.objectsKeyPattern - Restrict the permission to a certain key pattern (default '*').@Stability(value=Stable) @NotNull default Grant grantRead(@NotNull IGrantable identity, @Nullable Object objectsKeyPattern)
If encryption is used, permission to use the key to decrypt the contents of the bucket will also be granted to the same principal.
@Stability(value=Stable) @NotNull default Grant grantReadWrite(@NotNull IGrantable identity, @Nullable Object objectsKeyPattern)
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.
grantReadWrite in interface IBucketidentity - The principal. This parameter is required.objectsKeyPattern - Restrict the permission to a certain key pattern (default '*').@Stability(value=Stable) @NotNull default Grant grantWrite(@NotNull IGrantable identity, @Nullable Object objectsKeyPattern)
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.
grantWrite in interface IBucketidentity - The principal. This parameter is required.objectsKeyPattern - Restrict the permission to a certain key pattern (default '*').@Stability(value=Stable) @NotNull default Rule onCloudTrailEvent(@NotNull String id, @Nullable OnCloudTrailBucketEventOptions options)
Requires that there exists at least one CloudTrail Trail in your account that captures the event. This method will not create the Trail.
onCloudTrailEvent in interface IBucketid - The id of the rule. This parameter is required.options - Options for adding the rule.@Stability(value=Stable) @NotNull default Rule onCloudTrailPutObject(@NotNull String id, @Nullable OnCloudTrailBucketEventOptions options)
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.
onCloudTrailPutObject in interface IBucketid - The id of the rule. This parameter is required.options - Options for adding the rule.@Stability(value=Stable) @NotNull default Rule onCloudTrailWriteObject(@NotNull String id, @Nullable OnCloudTrailBucketEventOptions options)
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.
onCloudTrailWriteObject in interface IBucketid - The id of the rule. This parameter is required.options - Options for adding the rule.@Stability(value=Stable) @NotNull default String s3UrlForObject(@Nullable String key)
For example:
s3://onlybuckets3://bucket/keys3UrlForObject in interface IBucketkey - The S3 key of the object.@Stability(value=Stable) @NotNull default String transferAccelerationUrlForObject(@Nullable String key, @Nullable TransferAccelerationUrlOptions options)
Specify dualStack: true at the options
for dual-stack endpoint (connect to the bucket over IPv6). For example:
https://bucket.s3-accelerate.amazonaws.comhttps://bucket.s3-accelerate.amazonaws.com/keytransferAccelerationUrlForObject in interface IBucketkey - The S3 key of the object.options - Options for generating URL.@Stability(value=Stable) @NotNull default String urlForObject(@Nullable String key)
https://s3.us-west-1.amazonaws.com/onlybuckethttps://s3.us-west-1.amazonaws.com/bucket/keyhttps://s3.cn-north-1.amazonaws.com.cn/china-bucket/mykeyurlForObject in interface IBucketkey - The S3 key of the object.@Stability(value=Stable) @NotNull default String virtualHostedUrlForObject(@Nullable String key, @Nullable VirtualHostedStyleUrlOptions options)
https://only-bucket.s3.us-west-1.amazonaws.comhttps://bucket.s3.us-west-1.amazonaws.com/keyhttps://bucket.s3.amazonaws.com/keyhttps://china-bucket.s3.cn-north-1.amazonaws.com.cn/mykeyvirtualHostedUrlForObject in interface IBucketkey - The S3 key of the object.options - Options for generating URL.Copyright © 2022. All rights reserved.