@aws-sdk/client-s3 3.41.0 → 3.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/dist-cjs/endpoints.js +29 -0
  3. package/dist-cjs/models/models_0.js +18 -10
  4. package/dist-cjs/models/models_1.js +7 -1
  5. package/dist-cjs/protocols/Aws_restXml.js +82 -0
  6. package/dist-es/endpoints.js +29 -0
  7. package/dist-es/models/models_0.js +12 -4
  8. package/dist-es/models/models_1.js +4 -0
  9. package/dist-es/protocols/Aws_restXml.js +83 -3
  10. package/dist-types/S3.d.ts +124 -38
  11. package/dist-types/commands/CompleteMultipartUploadCommand.d.ts +4 -0
  12. package/dist-types/commands/CopyObjectCommand.d.ts +11 -1
  13. package/dist-types/commands/CreateBucketCommand.d.ts +39 -11
  14. package/dist-types/commands/DeleteBucketIntelligentTieringConfigurationCommand.d.ts +2 -2
  15. package/dist-types/commands/GetBucketAclCommand.d.ts +7 -0
  16. package/dist-types/commands/GetBucketIntelligentTieringConfigurationCommand.d.ts +2 -2
  17. package/dist-types/commands/GetBucketOwnershipControlsCommand.d.ts +3 -3
  18. package/dist-types/commands/GetObjectAclCommand.d.ts +7 -1
  19. package/dist-types/commands/GetObjectCommand.d.ts +7 -4
  20. package/dist-types/commands/ListBucketIntelligentTieringConfigurationsCommand.d.ts +2 -2
  21. package/dist-types/commands/PutBucketAclCommand.d.ts +7 -1
  22. package/dist-types/commands/PutBucketIntelligentTieringConfigurationCommand.d.ts +2 -2
  23. package/dist-types/commands/PutBucketLoggingCommand.d.ts +8 -3
  24. package/dist-types/commands/PutBucketOwnershipControlsCommand.d.ts +2 -2
  25. package/dist-types/commands/PutObjectAclCommand.d.ts +7 -2
  26. package/dist-types/commands/PutObjectCommand.d.ts +14 -2
  27. package/dist-types/models/models_0.d.ts +110 -25
  28. package/dist-types/models/models_1.d.ts +16 -1
  29. package/dist-types/ts3.4/models/models_0.d.ts +55 -15
  30. package/dist-types/ts3.4/models/models_1.d.ts +10 -1
  31. package/package.json +7 -7
@@ -27,9 +27,20 @@ export interface CreateBucketCommandOutput extends CreateBucketOutput, __Metadat
27
27
  * bucket in a Region other than US East (N. Virginia), your application must be able to
28
28
  * handle 307 redirect. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html">Virtual hosting of buckets</a>.</p>
29
29
  * </note>
30
- * <p>When creating a bucket using this operation, you can optionally specify the accounts or
31
- * groups that should be granted specific permissions on the bucket. There are two ways to
32
- * grant the appropriate permissions using the request headers.</p>
30
+ * <p>
31
+ * <b>Access control lists (ACLs)</b>
32
+ * </p>
33
+ * <p>When creating a bucket using this operation, you can optionally configure the bucket ACL to specify the accounts or
34
+ * groups that should be granted specific permissions on the bucket.</p>
35
+ * <important>
36
+ * <p>If your CreateBucket request includes the <code>BucketOwnerEnforced</code> value for
37
+ * the <code>x-amz-object-ownership</code> header, your request can either not specify
38
+ * an ACL or specify bucket owner full control ACLs, such as the <code>bucket-owner-full-control</code>
39
+ * canned ACL or an equivalent ACL expressed in the XML format. For
40
+ * more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html">Controlling object
41
+ * ownership</a> in the <i>Amazon S3 User Guide</i>.</p>
42
+ * </important>
43
+ * <p>There are two ways to grant the appropriate permissions using the request headers.</p>
33
44
  * <ul>
34
45
  * <li>
35
46
  * <p>Specify a canned ACL using the <code>x-amz-acl</code> request header. Amazon S3
@@ -42,7 +53,7 @@ export interface CreateBucketCommandOutput extends CreateBucketOutput, __Metadat
42
53
  * <code>x-amz-grant-write</code>, <code>x-amz-grant-read-acp</code>,
43
54
  * <code>x-amz-grant-write-acp</code>, and <code>x-amz-grant-full-control</code>
44
55
  * headers. These headers map to the set of permissions Amazon S3 supports in an ACL. For
45
- * more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access control list
56
+ * more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html">Access control list
46
57
  * (ACL) overview</a>.</p>
47
58
  * <p>You specify each grantee as a type=value pair, where the type is one of the
48
59
  * following:</p>
@@ -106,13 +117,30 @@ export interface CreateBucketCommandOutput extends CreateBucketOutput, __Metadat
106
117
  * <p>
107
118
  * <b>Permissions</b>
108
119
  * </p>
109
- * <p>If your <code>CreateBucket</code> request specifies ACL permissions and the ACL is public-read, public-read-write,
110
- * authenticated-read, or if you specify access permissions explicitly through any other ACL, both
111
- * <code>s3:CreateBucket</code> and <code>s3:PutBucketAcl</code> permissions are needed. If the ACL the
112
- * <code>CreateBucket</code> request is private, only <code>s3:CreateBucket</code> permission is needed. </p>
113
- * <p>If <code>ObjectLockEnabledForBucket</code> is set to true in your <code>CreateBucket</code> request,
114
- * <code>s3:PutBucketObjectLockConfiguration</code> and <code>s3:PutBucketVersioning</code> permissions are required.</p>
115
- *
120
+ * <p>In addition to <code>s3:CreateBucket</code>, the following permissions are required when your CreateBucket includes specific headers:</p>
121
+ * <ul>
122
+ * <li>
123
+ * <p>
124
+ * <b>ACLs</b> - If your <code>CreateBucket</code> request specifies ACL permissions and the ACL is public-read, public-read-write,
125
+ * authenticated-read, or if you specify access permissions explicitly through any other ACL, both
126
+ * <code>s3:CreateBucket</code> and <code>s3:PutBucketAcl</code> permissions are needed. If the ACL the
127
+ * <code>CreateBucket</code> request is private or doesn't specify any ACLs, only <code>s3:CreateBucket</code> permission is needed. </p>
128
+ * </li>
129
+ * <li>
130
+ * <p>
131
+ * <b>Object Lock</b> - If
132
+ * <code>ObjectLockEnabledForBucket</code> is set to true in your
133
+ * <code>CreateBucket</code> request,
134
+ * <code>s3:PutBucketObjectLockConfiguration</code> and
135
+ * <code>s3:PutBucketVersioning</code> permissions are required.</p>
136
+ * </li>
137
+ * <li>
138
+ * <p>
139
+ * <b>S3 Object Ownership</b> - If your CreateBucket
140
+ * request includes the the <code>x-amz-object-ownership</code> header,
141
+ * <code>s3:PutBucketOwnershipControls</code> permission is required.</p>
142
+ * </li>
143
+ * </ul>
116
144
  * <p>The following operations are related to <code>CreateBucket</code>:</p>
117
145
  * <ul>
118
146
  * <li>
@@ -8,8 +8,8 @@ export interface DeleteBucketIntelligentTieringConfigurationCommandOutput extend
8
8
  }
9
9
  /**
10
10
  * <p>Deletes the S3 Intelligent-Tiering configuration from the specified bucket.</p>
11
- * <p>The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in two low latency and high throughput access tiers. For data that can be accessed asynchronously, you can choose to activate automatic archiving capabilities within the S3 Intelligent-Tiering storage class.</p>
12
- * <p>The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.</p>
11
+ * <p>The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities.</p>
12
+ * <p>The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.</p>
13
13
  * <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage class for automatically optimizing frequently and infrequently accessed objects</a>.</p>
14
14
  * <p>Operations related to
15
15
  * <code>DeleteBucketIntelligentTieringConfiguration</code> include: </p>
@@ -12,6 +12,13 @@ export interface GetBucketAclCommandOutput extends GetBucketAclOutput, __Metadat
12
12
  * return the ACL of the bucket, you must have <code>READ_ACP</code> access to the bucket. If
13
13
  * <code>READ_ACP</code> permission is granted to the anonymous user, you can return the
14
14
  * ACL of the bucket without using an authorization header.</p>
15
+ * <note>
16
+ * <p>If your bucket uses the bucket owner enforced setting for S3 Object Ownership,
17
+ * requests to read ACLs are still supported and return the <code>bucket-owner-full-control</code>
18
+ * ACL with the owner being the account that created the bucket. For more information, see
19
+ * <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html">
20
+ * Controlling object ownership and disabling ACLs</a> in the <i>Amazon S3 User Guide</i>.</p>
21
+ * </note>
15
22
  *
16
23
  * <p class="title">
17
24
  * <b>Related Resources</b>
@@ -8,8 +8,8 @@ export interface GetBucketIntelligentTieringConfigurationCommandOutput extends G
8
8
  }
9
9
  /**
10
10
  * <p>Gets the S3 Intelligent-Tiering configuration from the specified bucket.</p>
11
- * <p>The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in two low latency and high throughput access tiers. For data that can be accessed asynchronously, you can choose to activate automatic archiving capabilities within the S3 Intelligent-Tiering storage class.</p>
12
- * <p>The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.</p>
11
+ * <p>The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities.</p>
12
+ * <p>The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.</p>
13
13
  * <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage class for automatically optimizing frequently and infrequently accessed objects</a>.</p>
14
14
  * <p>Operations related to
15
15
  * <code>GetBucketIntelligentTieringConfiguration</code> include: </p>
@@ -9,9 +9,9 @@ export interface GetBucketOwnershipControlsCommandOutput extends GetBucketOwners
9
9
  /**
10
10
  * <p>Retrieves <code>OwnershipControls</code> for an Amazon S3 bucket. To use this operation, you
11
11
  * must have the <code>s3:GetBucketOwnershipControls</code> permission. For more information
12
- * about Amazon S3 permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
13
- * Permissions in a Policy</a>. </p>
14
- * <p>For information about Amazon S3 Object Ownership, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html">Using Object Ownership</a>. </p>
12
+ * about Amazon S3 permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html">Specifying
13
+ * permissions in a policy</a>. </p>
14
+ * <p>For information about Amazon S3 Object Ownership, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html">Using Object Ownership</a>. </p>
15
15
  * <p>The following operations are related to <code>GetBucketOwnershipControls</code>:</p>
16
16
  * <ul>
17
17
  * <li>
@@ -15,7 +15,13 @@ export interface GetObjectAclCommandOutput extends GetObjectAclOutput, __Metadat
15
15
  * </p>
16
16
  * <p>By default, GET returns ACL information about the current version of an object. To
17
17
  * return ACL information about a different version, use the versionId subresource.</p>
18
- *
18
+ * <note>
19
+ * <p>If your bucket uses the bucket owner enforced setting for S3 Object Ownership,
20
+ * requests to read ACLs are still supported and return the <code>bucket-owner-full-control</code>
21
+ * ACL with the owner being the account that created the bucket. For more information, see
22
+ * <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html">
23
+ * Controlling object ownership and disabling ACLs</a> in the <i>Amazon S3 User Guide</i>.</p>
24
+ * </note>
19
25
  * <p>The following operations are related to <code>GetObjectAcl</code>:</p>
20
26
  * <ul>
21
27
  * <li>
@@ -91,13 +91,16 @@ export interface GetObjectCommandOutput extends GetObjectOutput, __MetadataBeare
91
91
  * <note>
92
92
  * <ul>
93
93
  * <li>
94
- * <p>You need the <code>s3:GetObjectVersion</code> permission to access a specific version of an object.
95
- * </p>
94
+ * <p>
95
+ * If you supply a <code>versionId</code>, you need the <code>s3:GetObjectVersion</code> permission to
96
+ * access a specific version of an object. If you request a specific version, you do not need to have
97
+ * the <code>s3:GetObject</code> permission.
98
+ * </p>
96
99
  * </li>
97
100
  * <li>
98
101
  * <p>If the current version of the object is a delete marker, Amazon S3 behaves as if the
99
- * object was deleted and includes <code>x-amz-delete-marker: true</code> in the
100
- * response.</p>
102
+ * object was deleted and includes <code>x-amz-delete-marker: true</code> in the
103
+ * response.</p>
101
104
  * </li>
102
105
  * </ul>
103
106
  * </note>
@@ -8,8 +8,8 @@ export interface ListBucketIntelligentTieringConfigurationsCommandOutput extends
8
8
  }
9
9
  /**
10
10
  * <p>Lists the S3 Intelligent-Tiering configuration from the specified bucket.</p>
11
- * <p>The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in two low latency and high throughput access tiers. For data that can be accessed asynchronously, you can choose to activate automatic archiving capabilities within the S3 Intelligent-Tiering storage class.</p>
12
- * <p>The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.</p>
11
+ * <p>The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities.</p>
12
+ * <p>The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.</p>
13
13
  * <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage class for automatically optimizing frequently and infrequently accessed objects</a>.</p>
14
14
  * <p>Operations related to
15
15
  * <code>ListBucketIntelligentTieringConfigurations</code> include: </p>
@@ -31,7 +31,13 @@ export interface PutBucketAclCommandOutput extends __MetadataBearer {
31
31
  * that updates a bucket ACL using the request body, then you can continue to use that
32
32
  * approach.</p>
33
33
  *
34
- *
34
+ * <important>
35
+ * <p>If your bucket uses the bucket owner enforced setting for S3 Object Ownership, ACLs are disabled and no longer affect permissions.
36
+ * You must use policies to grant access to your bucket and the objects in it. Requests to set ACLs or update ACLs fail and
37
+ * return the <code>AccessControlListNotSupported</code> error code. Requests to read ACLs are still supported.
38
+ * For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html">Controlling object ownership</a>
39
+ * in the <i>Amazon S3 User Guide</i>.</p>
40
+ * </important>
35
41
  * <p>
36
42
  * <b>Access Permissions</b>
37
43
  * </p>
@@ -9,8 +9,8 @@ export interface PutBucketIntelligentTieringConfigurationCommandOutput extends _
9
9
  /**
10
10
  * <p>Puts a S3 Intelligent-Tiering configuration to the specified bucket.
11
11
  * You can have up to 1,000 S3 Intelligent-Tiering configurations per bucket.</p>
12
- * <p>The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in two low latency and high throughput access tiers. For data that can be accessed asynchronously, you can choose to activate automatic archiving capabilities within the S3 Intelligent-Tiering storage class.</p>
13
- * <p>The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.</p>
12
+ * <p>The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities.</p>
13
+ * <p>The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.</p>
14
14
  * <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage class for automatically optimizing frequently and infrequently accessed objects</a>.</p>
15
15
  * <p>Operations related to
16
16
  * <code>PutBucketIntelligentTieringConfiguration</code> include: </p>
@@ -11,10 +11,15 @@ export interface PutBucketLoggingCommandOutput extends __MetadataBearer {
11
11
  * modify the logging parameters. All logs are saved to buckets in the same Amazon Web Services Region as the
12
12
  * source bucket. To set the logging status of a bucket, you must be the bucket owner.</p>
13
13
  *
14
- * <p>The bucket owner is automatically granted FULL_CONTROL to all logs. You use the
15
- * <code>Grantee</code> request element to grant access to other people. The
14
+ * <p>The bucket owner is automatically granted FULL_CONTROL to all logs. You use the <code>Grantee</code> request element to grant access to other people. The
16
15
  * <code>Permissions</code> request element specifies the kind of access the grantee has to
17
16
  * the logs.</p>
17
+ * <important>
18
+ * <p>If the target bucket for log delivery uses the bucket owner enforced
19
+ * setting for S3 Object Ownership, you can't use the <code>Grantee</code> request element
20
+ * to grant access to others. Permissions can only be granted using policies. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html#grant-log-delivery-permissions-general">Permissions for server access log delivery</a> in the
21
+ * <i>Amazon S3 User Guide</i>.</p>
22
+ * </important>
18
23
  *
19
24
  * <p>
20
25
  * <b>Grantee Values</b>
@@ -59,7 +64,7 @@ export interface PutBucketLoggingCommandOutput extends __MetadataBearer {
59
64
  * /></code>
60
65
  * </p>
61
66
  *
62
- * <p>For more information about server access logging, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerLogs.html">Server Access Logging</a>. </p>
67
+ * <p>For more information about server access logging, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerLogs.html">Server Access Logging</a> in the <i>Amazon S3 User Guide</i>. </p>
63
68
  *
64
69
  * <p>For more information about creating a bucket, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>. For more
65
70
  * information about returning the logging status of a bucket, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html">GetBucketLogging</a>.</p>
@@ -9,8 +9,8 @@ export interface PutBucketOwnershipControlsCommandOutput extends __MetadataBeare
9
9
  /**
10
10
  * <p>Creates or modifies <code>OwnershipControls</code> for an Amazon S3 bucket. To use this
11
11
  * operation, you must have the <code>s3:PutBucketOwnershipControls</code> permission. For
12
- * more information about Amazon S3 permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying Permissions in a Policy</a>. </p>
13
- * <p>For information about Amazon S3 Object Ownership, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html">Using Object Ownership</a>. </p>
12
+ * more information about Amazon S3 permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/user-guide/using-with-s3-actions.html">Specifying permissions in a policy</a>. </p>
13
+ * <p>For information about Amazon S3 Object Ownership, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/user-guide/about-object-ownership.html">Using object ownership</a>. </p>
14
14
  * <p>The following operations are related to <code>PutBucketOwnershipControls</code>:</p>
15
15
  * <ul>
16
16
  * <li>
@@ -16,8 +16,13 @@ export interface PutObjectAclCommandOutput extends PutObjectAclOutput, __Metadat
16
16
  * the ACL on an object using either the request body or the headers. For example, if you have
17
17
  * an existing application that updates a bucket ACL using the request body, you can continue
18
18
  * to use that approach. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List (ACL) Overview</a> in the <i>Amazon S3 User Guide</i>.</p>
19
- *
20
- *
19
+ * <important>
20
+ * <p>If your bucket uses the bucket owner enforced setting for S3 Object Ownership, ACLs are disabled and no longer affect permissions.
21
+ * You must use policies to grant access to your bucket and the objects in it. Requests to set ACLs or update ACLs fail and
22
+ * return the <code>AccessControlListNotSupported</code> error code. Requests to read ACLs are still supported.
23
+ * For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html">Controlling object ownership</a>
24
+ * in the <i>Amazon S3 User Guide</i>.</p>
25
+ * </important>
21
26
  *
22
27
  * <p>
23
28
  * <b>Access Permissions</b>
@@ -52,7 +52,6 @@ export interface PutObjectCommandOutput extends PutObjectOutput, __MetadataBeare
52
52
  * </li>
53
53
  * </ul>
54
54
  * </note>
55
- *
56
55
  * <p>
57
56
  * <b>Server-side Encryption</b>
58
57
  * </p>
@@ -74,7 +73,20 @@ export interface PutObjectCommandOutput extends PutObjectOutput, __MetadataBeare
74
73
  * permissions are then added to the ACL on the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List
75
74
  * (ACL) Overview</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html">Managing ACLs Using the REST
76
75
  * API</a>. </p>
77
- *
76
+ * <p>If the bucket that you're uploading objects to uses the bucket owner enforced setting
77
+ * for S3 Object Ownership, ACLs are disabled and no longer affect permissions. Buckets that
78
+ * use this setting only accept PUT requests that don't specify an ACL or PUT requests that
79
+ * specify bucket owner full control ACLs, such as the <code>bucket-owner-full-control</code> canned
80
+ * ACL or an equivalent form of this ACL expressed in the XML format. PUT requests that contain other
81
+ * ACLs (for example, custom grants to certain Amazon Web Services accounts) fail and return a
82
+ * <code>400</code> error with the error code
83
+ * <code>AccessControlListNotSupported</code>.</p>
84
+ * <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html"> Controlling ownership of
85
+ * objects and disabling ACLs</a> in the <i>Amazon S3 User Guide</i>.</p>
86
+ * <note>
87
+ * <p>If your bucket uses the bucket owner enforced setting for Object Ownership,
88
+ * all objects written to the bucket by any account will be owned by the bucket owner.</p>
89
+ * </note>
78
90
  * <p>
79
91
  * <b>Storage Class Options</b>
80
92
  * </p>
@@ -326,6 +326,8 @@ export declare namespace CompletedPart {
326
326
  export interface CompletedMultipartUpload {
327
327
  /**
328
328
  * <p>Array of CompletedPart data types.</p>
329
+ * <p>If you do not supply a valid <code>Part</code> with your request, the service sends back an HTTP
330
+ * 400 response.</p>
329
331
  */
330
332
  Parts?: CompletedPart[];
331
333
  }
@@ -457,7 +459,7 @@ export declare type ObjectCannedACL = "authenticated-read" | "aws-exec-read" | "
457
459
  export declare type MetadataDirective = "COPY" | "REPLACE";
458
460
  export declare type ObjectLockLegalHoldStatus = "OFF" | "ON";
459
461
  export declare type ObjectLockMode = "COMPLIANCE" | "GOVERNANCE";
460
- export declare type StorageClass = "DEEP_ARCHIVE" | "GLACIER" | "INTELLIGENT_TIERING" | "ONEZONE_IA" | "OUTPOSTS" | "REDUCED_REDUNDANCY" | "STANDARD" | "STANDARD_IA";
462
+ export declare type StorageClass = "DEEP_ARCHIVE" | "GLACIER" | "GLACIER_IR" | "INTELLIGENT_TIERING" | "ONEZONE_IA" | "OUTPOSTS" | "REDUCED_REDUNDANCY" | "STANDARD" | "STANDARD_IA";
461
463
  export declare type TaggingDirective = "COPY" | "REPLACE";
462
464
  export interface CopyObjectRequest {
463
465
  /**
@@ -774,6 +776,7 @@ export declare namespace CreateBucketConfiguration {
774
776
  */
775
777
  const filterSensitiveLog: (obj: CreateBucketConfiguration) => any;
776
778
  }
779
+ export declare type ObjectOwnership = "BucketOwnerEnforced" | "BucketOwnerPreferred" | "ObjectWriter";
777
780
  export interface CreateBucketRequest {
778
781
  /**
779
782
  * <p>The canned ACL to apply to the bucket.</p>
@@ -813,6 +816,20 @@ export interface CreateBucketRequest {
813
816
  * <p>Specifies whether you want S3 Object Lock to be enabled for the new bucket.</p>
814
817
  */
815
818
  ObjectLockEnabledForBucket?: boolean;
819
+ /**
820
+ * <p>The container element for object ownership for a bucket's ownership controls.</p>
821
+ * <p>BucketOwnerPreferred - Objects uploaded to the bucket change ownership to the bucket
822
+ * owner if the objects are uploaded with the <code>bucket-owner-full-control</code> canned
823
+ * ACL.</p>
824
+ * <p>ObjectWriter - The uploading account will own the object if the object is uploaded with
825
+ * the <code>bucket-owner-full-control</code> canned ACL.</p>
826
+ * <p>BucketOwnerEnforced - Access control lists (ACLs) are disabled and no longer affect permissions.
827
+ * The bucket owner automatically owns and has full control over every object in the bucket. The bucket only
828
+ * accepts PUT requests that don't specify an ACL or bucket owner full control
829
+ * ACLs, such as the <code>bucket-owner-full-control</code> canned
830
+ * ACL or an equivalent form of this ACL expressed in the XML format.</p>
831
+ */
832
+ ObjectOwnership?: ObjectOwnership | string;
816
833
  }
817
834
  export declare namespace CreateBucketRequest {
818
835
  /**
@@ -4362,6 +4379,14 @@ export interface LifecycleRuleAndOperator {
4362
4379
  * apply.</p>
4363
4380
  */
4364
4381
  Tags?: Tag[];
4382
+ /**
4383
+ * <p>Minimum object size to which the rule applies.</p>
4384
+ */
4385
+ ObjectSizeGreaterThan?: number;
4386
+ /**
4387
+ * <p>Maximum object size to which the rule applies.</p>
4388
+ */
4389
+ ObjectSizeLessThan?: number;
4365
4390
  }
4366
4391
  export declare namespace LifecycleRuleAndOperator {
4367
4392
  /**
@@ -4374,7 +4399,7 @@ export declare namespace LifecycleRuleAndOperator {
4374
4399
  * <code>Filter</code> must have exactly one of <code>Prefix</code>, <code>Tag</code>, or
4375
4400
  * <code>And</code> specified.</p>
4376
4401
  */
4377
- export declare type LifecycleRuleFilter = LifecycleRuleFilter.AndMember | LifecycleRuleFilter.PrefixMember | LifecycleRuleFilter.TagMember | LifecycleRuleFilter.$UnknownMember;
4402
+ export declare type LifecycleRuleFilter = LifecycleRuleFilter.AndMember | LifecycleRuleFilter.ObjectSizeGreaterThanMember | LifecycleRuleFilter.ObjectSizeLessThanMember | LifecycleRuleFilter.PrefixMember | LifecycleRuleFilter.TagMember | LifecycleRuleFilter.$UnknownMember;
4378
4403
  export declare namespace LifecycleRuleFilter {
4379
4404
  /**
4380
4405
  * <p>Prefix identifying one or more objects to which the rule applies.</p>
@@ -4387,6 +4412,8 @@ export declare namespace LifecycleRuleFilter {
4387
4412
  interface PrefixMember {
4388
4413
  Prefix: string;
4389
4414
  Tag?: never;
4415
+ ObjectSizeGreaterThan?: never;
4416
+ ObjectSizeLessThan?: never;
4390
4417
  And?: never;
4391
4418
  $unknown?: never;
4392
4419
  }
@@ -4396,6 +4423,30 @@ export declare namespace LifecycleRuleFilter {
4396
4423
  interface TagMember {
4397
4424
  Prefix?: never;
4398
4425
  Tag: Tag;
4426
+ ObjectSizeGreaterThan?: never;
4427
+ ObjectSizeLessThan?: never;
4428
+ And?: never;
4429
+ $unknown?: never;
4430
+ }
4431
+ /**
4432
+ * <p>Minimum object size to which the rule applies.</p>
4433
+ */
4434
+ interface ObjectSizeGreaterThanMember {
4435
+ Prefix?: never;
4436
+ Tag?: never;
4437
+ ObjectSizeGreaterThan: number;
4438
+ ObjectSizeLessThan?: never;
4439
+ And?: never;
4440
+ $unknown?: never;
4441
+ }
4442
+ /**
4443
+ * <p>Maximum object size to which the rule applies.</p>
4444
+ */
4445
+ interface ObjectSizeLessThanMember {
4446
+ Prefix?: never;
4447
+ Tag?: never;
4448
+ ObjectSizeGreaterThan?: never;
4449
+ ObjectSizeLessThan: number;
4399
4450
  And?: never;
4400
4451
  $unknown?: never;
4401
4452
  }
@@ -4407,18 +4458,24 @@ export declare namespace LifecycleRuleFilter {
4407
4458
  interface AndMember {
4408
4459
  Prefix?: never;
4409
4460
  Tag?: never;
4461
+ ObjectSizeGreaterThan?: never;
4462
+ ObjectSizeLessThan?: never;
4410
4463
  And: LifecycleRuleAndOperator;
4411
4464
  $unknown?: never;
4412
4465
  }
4413
4466
  interface $UnknownMember {
4414
4467
  Prefix?: never;
4415
4468
  Tag?: never;
4469
+ ObjectSizeGreaterThan?: never;
4470
+ ObjectSizeLessThan?: never;
4416
4471
  And?: never;
4417
4472
  $unknown: [string, any];
4418
4473
  }
4419
4474
  interface Visitor<T> {
4420
4475
  Prefix: (value: string) => T;
4421
4476
  Tag: (value: Tag) => T;
4477
+ ObjectSizeGreaterThan: (value: number) => T;
4478
+ ObjectSizeLessThan: (value: number) => T;
4422
4479
  And: (value: LifecycleRuleAndOperator) => T;
4423
4480
  _: (name: string, value: any) => T;
4424
4481
  }
@@ -4441,6 +4498,13 @@ export interface NoncurrentVersionExpiration {
4441
4498
  * Amazon S3 Calculates When an Object Became Noncurrent</a> in the <i>Amazon S3 User Guide</i>.</p>
4442
4499
  */
4443
4500
  NoncurrentDays?: number;
4501
+ /**
4502
+ * <p>Specifies how many noncurrent versions Amazon S3 will retain. If there are this many more recent
4503
+ * noncurrent versions, Amazon S3 will take the associated action. For more information about noncurrent
4504
+ * versions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html">Lifecycle configuration elements</a>
4505
+ * in the <i>Amazon S3 User Guide</i>.</p>
4506
+ */
4507
+ NewerNoncurrentVersions?: number;
4444
4508
  }
4445
4509
  export declare namespace NoncurrentVersionExpiration {
4446
4510
  /**
@@ -4448,14 +4512,14 @@ export declare namespace NoncurrentVersionExpiration {
4448
4512
  */
4449
4513
  const filterSensitiveLog: (obj: NoncurrentVersionExpiration) => any;
4450
4514
  }
4451
- export declare type TransitionStorageClass = "DEEP_ARCHIVE" | "GLACIER" | "INTELLIGENT_TIERING" | "ONEZONE_IA" | "STANDARD_IA";
4515
+ export declare type TransitionStorageClass = "DEEP_ARCHIVE" | "GLACIER" | "GLACIER_IR" | "INTELLIGENT_TIERING" | "ONEZONE_IA" | "STANDARD_IA";
4452
4516
  /**
4453
4517
  * <p>Container for the transition rule that describes when noncurrent objects transition to
4454
4518
  * the <code>STANDARD_IA</code>, <code>ONEZONE_IA</code>, <code>INTELLIGENT_TIERING</code>,
4455
- * <code>GLACIER</code>, or <code>DEEP_ARCHIVE</code> storage class. If your bucket is
4519
+ * <code>GLACIER_IR</code>, <code>GLACIER</code>, or <code>DEEP_ARCHIVE</code> storage class. If your bucket is
4456
4520
  * versioning-enabled (or versioning is suspended), you can set this action to request that
4457
4521
  * Amazon S3 transition noncurrent object versions to the <code>STANDARD_IA</code>,
4458
- * <code>ONEZONE_IA</code>, <code>INTELLIGENT_TIERING</code>, <code>GLACIER</code>, or
4522
+ * <code>ONEZONE_IA</code>, <code>INTELLIGENT_TIERING</code>, <code>GLACIER_IR</code>, <code>GLACIER</code>, or
4459
4523
  * <code>DEEP_ARCHIVE</code> storage class at a specific period in the object's
4460
4524
  * lifetime.</p>
4461
4525
  */
@@ -4471,6 +4535,13 @@ export interface NoncurrentVersionTransition {
4471
4535
  * <p>The class of storage used to store the object.</p>
4472
4536
  */
4473
4537
  StorageClass?: TransitionStorageClass | string;
4538
+ /**
4539
+ * <p>Specifies how many noncurrent versions Amazon S3 will retain. If there are this many more recent
4540
+ * noncurrent versions, Amazon S3 will take the associated action. For more information about noncurrent
4541
+ * versions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html">Lifecycle configuration elements</a>
4542
+ * in the <i>Amazon S3 User Guide</i>.</p>
4543
+ */
4544
+ NewerNoncurrentVersions?: number;
4474
4545
  }
4475
4546
  export declare namespace NoncurrentVersionTransition {
4476
4547
  /**
@@ -4642,6 +4713,9 @@ export declare namespace GetBucketLocationRequest {
4642
4713
  export declare type BucketLogsPermission = "FULL_CONTROL" | "READ" | "WRITE";
4643
4714
  /**
4644
4715
  * <p>Container for granting information.</p>
4716
+ * <p>Buckets that use the bucket owner enforced setting for Object
4717
+ * Ownership don't support target grants. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html#grant-log-delivery-permissions-general">Permissions server access log delivery</a> in the
4718
+ * <i>Amazon S3 User Guide</i>.</p>
4645
4719
  */
4646
4720
  export interface TargetGrant {
4647
4721
  /**
@@ -4675,6 +4749,9 @@ export interface LoggingEnabled {
4675
4749
  TargetBucket: string | undefined;
4676
4750
  /**
4677
4751
  * <p>Container for granting information.</p>
4752
+ * <p>Buckets that use the bucket owner enforced setting for Object
4753
+ * Ownership don't support target grants. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html#grant-log-delivery-permissions-general">Permissions for server access log delivery</a> in the
4754
+ * <i>Amazon S3 User Guide</i>.</p>
4678
4755
  */
4679
4756
  TargetGrants?: TargetGrant[];
4680
4757
  /**
@@ -4893,7 +4970,18 @@ export declare namespace GetBucketNotificationConfigurationRequest {
4893
4970
  */
4894
4971
  const filterSensitiveLog: (obj: GetBucketNotificationConfigurationRequest) => any;
4895
4972
  }
4896
- export declare type Event = "s3:ObjectCreated:*" | "s3:ObjectCreated:CompleteMultipartUpload" | "s3:ObjectCreated:Copy" | "s3:ObjectCreated:Post" | "s3:ObjectCreated:Put" | "s3:ObjectRemoved:*" | "s3:ObjectRemoved:Delete" | "s3:ObjectRemoved:DeleteMarkerCreated" | "s3:ObjectRestore:*" | "s3:ObjectRestore:Completed" | "s3:ObjectRestore:Post" | "s3:ReducedRedundancyLostObject" | "s3:Replication:*" | "s3:Replication:OperationFailedReplication" | "s3:Replication:OperationMissedThreshold" | "s3:Replication:OperationNotTracked" | "s3:Replication:OperationReplicatedAfterThreshold";
4973
+ /**
4974
+ * <p>A container for specifying the configuration for Amazon EventBridge.</p>
4975
+ */
4976
+ export interface EventBridgeConfiguration {
4977
+ }
4978
+ export declare namespace EventBridgeConfiguration {
4979
+ /**
4980
+ * @internal
4981
+ */
4982
+ const filterSensitiveLog: (obj: EventBridgeConfiguration) => any;
4983
+ }
4984
+ export declare type Event = "s3:IntelligentTiering" | "s3:LifecycleExpiration:*" | "s3:LifecycleExpiration:Delete" | "s3:LifecycleExpiration:DeleteMarkerCreated" | "s3:LifecycleTransition" | "s3:ObjectAcl:Put" | "s3:ObjectCreated:*" | "s3:ObjectCreated:CompleteMultipartUpload" | "s3:ObjectCreated:Copy" | "s3:ObjectCreated:Post" | "s3:ObjectCreated:Put" | "s3:ObjectRemoved:*" | "s3:ObjectRemoved:Delete" | "s3:ObjectRemoved:DeleteMarkerCreated" | "s3:ObjectRestore:*" | "s3:ObjectRestore:Completed" | "s3:ObjectRestore:Delete" | "s3:ObjectRestore:Post" | "s3:ObjectTagging:*" | "s3:ObjectTagging:Delete" | "s3:ObjectTagging:Put" | "s3:ReducedRedundancyLostObject" | "s3:Replication:*" | "s3:Replication:OperationFailedReplication" | "s3:Replication:OperationMissedThreshold" | "s3:Replication:OperationNotTracked" | "s3:Replication:OperationReplicatedAfterThreshold";
4897
4985
  export declare type FilterRuleName = "prefix" | "suffix";
4898
4986
  /**
4899
4987
  * <p>Specifies the Amazon S3 object key name to filter on and whether to filter on the suffix or
@@ -5070,6 +5158,10 @@ export interface NotificationConfiguration {
5070
5158
  * them.</p>
5071
5159
  */
5072
5160
  LambdaFunctionConfigurations?: LambdaFunctionConfiguration[];
5161
+ /**
5162
+ * <p>Enables delivery of events to Amazon EventBridge.</p>
5163
+ */
5164
+ EventBridgeConfiguration?: EventBridgeConfiguration;
5073
5165
  }
5074
5166
  export declare namespace NotificationConfiguration {
5075
5167
  /**
@@ -5077,7 +5169,6 @@ export declare namespace NotificationConfiguration {
5077
5169
  */
5078
5170
  const filterSensitiveLog: (obj: NotificationConfiguration) => any;
5079
5171
  }
5080
- export declare type ObjectOwnership = "BucketOwnerPreferred" | "ObjectWriter";
5081
5172
  /**
5082
5173
  * <p>The container element for an ownership control rule.</p>
5083
5174
  */
@@ -5089,6 +5180,11 @@ export interface OwnershipControlsRule {
5089
5180
  * ACL.</p>
5090
5181
  * <p>ObjectWriter - The uploading account will own the object if the object is uploaded with
5091
5182
  * the <code>bucket-owner-full-control</code> canned ACL.</p>
5183
+ * <p>BucketOwnerEnforced - Access control lists (ACLs) are disabled and no longer affect permissions.
5184
+ * The bucket owner automatically owns and has full control over every object in the bucket. The bucket only
5185
+ * accepts PUT requests that don't specify an ACL or bucket owner full control
5186
+ * ACLs, such as the <code>bucket-owner-full-control</code> canned
5187
+ * ACL or an equivalent form of this ACL expressed in the XML format.</p>
5092
5188
  */
5093
5189
  ObjectOwnership: ObjectOwnership | string | undefined;
5094
5190
  }
@@ -5115,7 +5211,7 @@ export declare namespace OwnershipControls {
5115
5211
  }
5116
5212
  export interface GetBucketOwnershipControlsOutput {
5117
5213
  /**
5118
- * <p>The <code>OwnershipControls</code> (BucketOwnerPreferred or ObjectWriter) currently in
5214
+ * <p>The <code>OwnershipControls</code> (BucketOwnerEnforced, BucketOwnerPreferred, or ObjectWriter) currently in
5119
5215
  * effect for this Amazon S3 bucket.</p>
5120
5216
  */
5121
5217
  OwnershipControls?: OwnershipControls;
@@ -7620,7 +7716,7 @@ export declare namespace ListMultipartUploadsRequest {
7620
7716
  */
7621
7717
  const filterSensitiveLog: (obj: ListMultipartUploadsRequest) => any;
7622
7718
  }
7623
- export declare type ObjectStorageClass = "DEEP_ARCHIVE" | "GLACIER" | "INTELLIGENT_TIERING" | "ONEZONE_IA" | "OUTPOSTS" | "REDUCED_REDUNDANCY" | "STANDARD" | "STANDARD_IA";
7719
+ export declare type ObjectStorageClass = "DEEP_ARCHIVE" | "GLACIER" | "GLACIER_IR" | "INTELLIGENT_TIERING" | "ONEZONE_IA" | "OUTPOSTS" | "REDUCED_REDUNDANCY" | "STANDARD" | "STANDARD_IA";
7624
7720
  /**
7625
7721
  * <p>An object consists of data and its descriptive metadata.</p>
7626
7722
  */
@@ -8700,6 +8796,10 @@ export interface PutBucketNotificationConfigurationRequest {
8700
8796
  * <p>The account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP <code>403 (Access Denied)</code> error.</p>
8701
8797
  */
8702
8798
  ExpectedBucketOwner?: string;
8799
+ /**
8800
+ * <p>Skips validation of Amazon SQS, Amazon SNS, and Lambda destinations. True or false value.</p>
8801
+ */
8802
+ SkipDestinationValidation?: boolean;
8703
8803
  }
8704
8804
  export declare namespace PutBucketNotificationConfigurationRequest {
8705
8805
  /**
@@ -8724,7 +8824,7 @@ export interface PutBucketOwnershipControlsRequest {
8724
8824
  */
8725
8825
  ExpectedBucketOwner?: string;
8726
8826
  /**
8727
- * <p>The <code>OwnershipControls</code> (BucketOwnerPreferred or ObjectWriter) that you want
8827
+ * <p>The <code>OwnershipControls</code> (BucketOwnerEnforced, BucketOwnerPreferred, or ObjectWriter) that you want
8728
8828
  * to apply to this Amazon S3 bucket.</p>
8729
8829
  */
8730
8830
  OwnershipControls: OwnershipControls | undefined;
@@ -9660,18 +9760,3 @@ export declare namespace RestoreObjectOutput {
9660
9760
  const filterSensitiveLog: (obj: RestoreObjectOutput) => any;
9661
9761
  }
9662
9762
  export declare type Tier = "Bulk" | "Expedited" | "Standard";
9663
- /**
9664
- * <p>Container for S3 Glacier job parameters.</p>
9665
- */
9666
- export interface GlacierJobParameters {
9667
- /**
9668
- * <p>Retrieval tier at which the restore will be processed.</p>
9669
- */
9670
- Tier: Tier | string | undefined;
9671
- }
9672
- export declare namespace GlacierJobParameters {
9673
- /**
9674
- * @internal
9675
- */
9676
- const filterSensitiveLog: (obj: GlacierJobParameters) => any;
9677
- }