Skip to content

Commit dd8d615

Browse files
Added support for directory bucket creation with tags and bucket ARN retrieval in CreateBucket, ListDirectoryBuckets, and HeadBucket operations
1 parent 8fb0541 commit dd8d615

16 files changed

+218
-16
lines changed

generator/ServiceModels/s3/s3-2006-03-01.api.json

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1500,7 +1500,8 @@
15001500
"members":{
15011501
"Name":{"shape":"BucketName"},
15021502
"CreationDate":{"shape":"CreationDate"},
1503-
"BucketRegion":{"shape":"BucketRegion"}
1503+
"BucketRegion":{"shape":"BucketRegion"},
1504+
"BucketArn":{"shape":"S3RegionalOrS3ExpressBucketArnString"}
15041505
}
15051506
},
15061507
"BucketAccelerateStatus":{
@@ -2306,7 +2307,8 @@
23062307
"members":{
23072308
"LocationConstraint":{"shape":"BucketLocationConstraint"},
23082309
"Location":{"shape":"LocationInfo"},
2309-
"Bucket":{"shape":"BucketInfo"}
2310+
"Bucket":{"shape":"BucketInfo"},
2311+
"Tags":{"shape":"TagSet"}
23102312
}
23112313
},
23122314
"CreateBucketMetadataTableConfigurationRequest":{
@@ -2352,6 +2354,11 @@
23522354
"shape":"Location",
23532355
"location":"header",
23542356
"locationName":"Location"
2357+
},
2358+
"BucketArn":{
2359+
"shape":"S3RegionalOrS3ExpressBucketArnString",
2360+
"location":"header",
2361+
"locationName":"x-amz-bucket-arn"
23552362
}
23562363
}
23572364
},
@@ -4814,6 +4821,11 @@
48144821
"HeadBucketOutput":{
48154822
"type":"structure",
48164823
"members":{
4824+
"BucketArn":{
4825+
"shape":"S3RegionalOrS3ExpressBucketArnString",
4826+
"location":"header",
4827+
"locationName":"x-amz-bucket-arn"
4828+
},
48174829
"BucketLocationType":{
48184830
"shape":"LocationType",
48194831
"location":"header",
@@ -8716,6 +8728,12 @@
87168728
"StorageClass":{"shape":"StorageClass"}
87178729
}
87188730
},
8731+
"S3RegionalOrS3ExpressBucketArnString":{
8732+
"type":"string",
8733+
"max":128,
8734+
"min":1,
8735+
"pattern":"arn:[^:]+:(s3|s3express):.*"
8736+
},
87198737
"S3TablesArn":{"type":"string"},
87208738
"S3TablesBucketArn":{"type":"string"},
87218739
"S3TablesDestination":{

generator/ServiceModels/s3/s3-2006-03-01.docs.json

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1377,13 +1377,13 @@
13771377
"base": null,
13781378
"refs": {
13791379
"ListMultipartUploadsOutput$Delimiter": "<p>Contains the delimiter you specified in the request. If you don't specify a delimiter in your request, this element is absent from the response.</p> <note> <p> <b>Directory buckets</b> - For directory buckets, <code>/</code> is the only supported delimiter.</p> </note>",
1380-
"ListMultipartUploadsRequest$Delimiter": "<p>Character you use to group keys.</p> <p>All keys that contain the same string between the prefix, if specified, and the first occurrence of the delimiter after the prefix are grouped under a single result element, <code>CommonPrefixes</code>. If you don't specify the prefix parameter, then the substring starts at the beginning of the key. The keys that are grouped under <code>CommonPrefixes</code> result element are not returned elsewhere in the response.</p> <note> <p> <b>Directory buckets</b> - For directory buckets, <code>/</code> is the only supported delimiter.</p> </note>",
1380+
"ListMultipartUploadsRequest$Delimiter": "<p>Character you use to group keys.</p> <p>All keys that contain the same string between the prefix, if specified, and the first occurrence of the delimiter after the prefix are grouped under a single result element, <code>CommonPrefixes</code>. If you don't specify the prefix parameter, then the substring starts at the beginning of the key. The keys that are grouped under <code>CommonPrefixes</code> result element are not returned elsewhere in the response.</p> <p> <code>CommonPrefixes</code> is filtered out from results if it is not lexicographically greater than the key-marker.</p> <note> <p> <b>Directory buckets</b> - For directory buckets, <code>/</code> is the only supported delimiter.</p> </note>",
13811381
"ListObjectVersionsOutput$Delimiter": "<p>The delimiter grouping the included keys. A delimiter is a character that you specify to group keys. All keys that contain the same string between the prefix and the first occurrence of the delimiter are grouped under a single result element in <code>CommonPrefixes</code>. These groups are counted as one result against the <code>max-keys</code> limitation. These keys are not returned elsewhere in the response.</p>",
1382-
"ListObjectVersionsRequest$Delimiter": "<p>A delimiter is a character that you specify to group keys. All keys that contain the same string between the <code>prefix</code> and the first occurrence of the delimiter are grouped under a single result element in <code>CommonPrefixes</code>. These groups are counted as one result against the <code>max-keys</code> limitation. These keys are not returned elsewhere in the response.</p>",
1382+
"ListObjectVersionsRequest$Delimiter": "<p>A delimiter is a character that you specify to group keys. All keys that contain the same string between the <code>prefix</code> and the first occurrence of the delimiter are grouped under a single result element in <code>CommonPrefixes</code>. These groups are counted as one result against the <code>max-keys</code> limitation. These keys are not returned elsewhere in the response.</p> <p> <code>CommonPrefixes</code> is filtered out from results if it is not lexicographically greater than the key-marker.</p>",
13831383
"ListObjectsOutput$Delimiter": "<p>Causes keys that contain the same string between the prefix and the first occurrence of the delimiter to be rolled up into a single result element in the <code>CommonPrefixes</code> collection. These rolled-up keys are not returned elsewhere in the response. Each rolled-up result counts as only one return against the <code>MaxKeys</code> value.</p>",
1384-
"ListObjectsRequest$Delimiter": "<p>A delimiter is a character that you use to group keys.</p>",
1384+
"ListObjectsRequest$Delimiter": "<p>A delimiter is a character that you use to group keys.</p> <p> <code>CommonPrefixes</code> is filtered out from results if it is not lexicographically greater than the key-marker.</p>",
13851385
"ListObjectsV2Output$Delimiter": "<p>Causes keys that contain the same string between the <code>prefix</code> and the first occurrence of the delimiter to be rolled up into a single result element in the <code>CommonPrefixes</code> collection. These rolled-up keys are not returned elsewhere in the response. Each rolled-up result counts as only one return against the <code>MaxKeys</code> value.</p> <note> <p> <b>Directory buckets</b> - For directory buckets, <code>/</code> is the only supported delimiter.</p> </note>",
1386-
"ListObjectsV2Request$Delimiter": "<p>A delimiter is a character that you use to group keys.</p> <note> <ul> <li> <p> <b>Directory buckets</b> - For directory buckets, <code>/</code> is the only supported delimiter.</p> </li> <li> <p> <b>Directory buckets </b> - When you query <code>ListObjectsV2</code> with a delimiter during in-progress multipart uploads, the <code>CommonPrefixes</code> response parameter contains the prefixes that are associated with the in-progress multipart uploads. For more information about multipart uploads, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html\">Multipart Upload Overview</a> in the <i>Amazon S3 User Guide</i>.</p> </li> </ul> </note>"
1386+
"ListObjectsV2Request$Delimiter": "<p>A delimiter is a character that you use to group keys.</p> <p> <code>CommonPrefixes</code> is filtered out from results if it is not lexicographically greater than the <code>StartAfter</code> value.</p> <note> <ul> <li> <p> <b>Directory buckets</b> - For directory buckets, <code>/</code> is the only supported delimiter.</p> </li> <li> <p> <b>Directory buckets </b> - When you query <code>ListObjectsV2</code> with a delimiter during in-progress multipart uploads, the <code>CommonPrefixes</code> response parameter contains the prefixes that are associated with the in-progress multipart uploads. For more information about multipart uploads, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html\">Multipart Upload Overview</a> in the <i>Amazon S3 User Guide</i>.</p> </li> </ul> </note>"
13871387
}
13881388
},
13891389
"Description": {
@@ -3989,6 +3989,14 @@
39893989
"OutputLocation$S3": "<p>Describes an S3 location that will receive the results of the restore request.</p>"
39903990
}
39913991
},
3992+
"S3RegionalOrS3ExpressBucketArnString": {
3993+
"base": null,
3994+
"refs": {
3995+
"Bucket$BucketArn": "<p>The Amazon Resource Name (ARN) of the S3 bucket. ARNs uniquely identify Amazon Web Services resources across all of Amazon Web Services.</p> <note> <p>This parameter is only supported for S3 directory buckets. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html\">Using tags with directory buckets</a>.</p> </note>",
3996+
"CreateBucketOutput$BucketArn": "<p>The Amazon Resource Name (ARN) of the S3 bucket. ARNs uniquely identify Amazon Web Services resources across all of Amazon Web Services.</p> <note> <p>This parameter is only supported for S3 directory buckets. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html\">Using tags with directory buckets</a>.</p> </note>",
3997+
"HeadBucketOutput$BucketArn": "<p>The Amazon Resource Name (ARN) of the S3 bucket. ARNs uniquely identify Amazon Web Services resources across all of Amazon Web Services.</p> <note> <p>This parameter is only supported for S3 directory buckets. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html\">Using tags with directory buckets</a>.</p> </note>"
3998+
}
3999+
},
39924000
"S3TablesArn": {
39934001
"base": null,
39944002
"refs": {
@@ -4315,7 +4323,7 @@
43154323
"refs": {
43164324
"CopyObjectRequest$StorageClass": "<p>If the <code>x-amz-storage-class</code> header is not used, the copied object will be stored in the <code>STANDARD</code> Storage Class by default. The <code>STANDARD</code> storage class provides high durability and high availability. Depending on performance needs, you can specify a different Storage Class. </p> <note> <ul> <li> <p> <b>Directory buckets </b> - Directory buckets only support <code>EXPRESS_ONEZONE</code> (the S3 Express One Zone storage class) in Availability Zones and <code>ONEZONE_IA</code> (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones. Unsupported storage class values won't write a destination object and will respond with the HTTP status code <code>400 Bad Request</code>.</p> </li> <li> <p> <b>Amazon S3 on Outposts </b> - S3 on Outposts only uses the <code>OUTPOSTS</code> Storage Class.</p> </li> </ul> </note> <p>You can use the <code>CopyObject</code> action to change the storage class of an object that is already stored in Amazon S3 by using the <code>x-amz-storage-class</code> header. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html\">Storage Classes</a> in the <i>Amazon S3 User Guide</i>.</p> <p>Before using an object as a source object for the copy operation, you must restore a copy of it if it meets any of the following conditions:</p> <ul> <li> <p>The storage class of the source object is <code>GLACIER</code> or <code>DEEP_ARCHIVE</code>.</p> </li> <li> <p>The storage class of the source object is <code>INTELLIGENT_TIERING</code> and it's <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/intelligent-tiering-overview.html#intel-tiering-tier-definition\">S3 Intelligent-Tiering access tier</a> is <code>Archive Access</code> or <code>Deep Archive Access</code>.</p> </li> </ul> <p>For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html\">RestoreObject</a> and <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjectsExamples.html\">Copying Objects</a> in the <i>Amazon S3 User Guide</i>.</p>",
43174325
"CreateMultipartUploadRequest$StorageClass": "<p>By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The STANDARD storage class provides high durability and high availability. Depending on performance needs, you can specify a different Storage Class. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html\">Storage Classes</a> in the <i>Amazon S3 User Guide</i>.</p> <note> <ul> <li> <p>Directory buckets only support <code>EXPRESS_ONEZONE</code> (the S3 Express One Zone storage class) in Availability Zones and <code>ONEZONE_IA</code> (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.</p> </li> <li> <p>Amazon S3 on Outposts only uses the OUTPOSTS Storage Class.</p> </li> </ul> </note>",
4318-
"Destination$StorageClass": "<p> The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica. </p> <p>For valid values, see the <code>StorageClass</code> element of the <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html\">PUT Bucket replication</a> action in the <i>Amazon S3 API Reference</i>.</p>",
4326+
"Destination$StorageClass": "<p> The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica. </p> <p>For valid values, see the <code>StorageClass</code> element of the <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html\">PUT Bucket replication</a> action in the <i>Amazon S3 API Reference</i>.</p> <p> <code>FSX_OPENZFS</code> is not an accepted value when replicating objects.</p>",
43194327
"GetObjectAttributesOutput$StorageClass": "<p>Provides the storage class information of the object. Amazon S3 returns this header for all objects except for S3 Standard storage class objects.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html\">Storage Classes</a>.</p> <note> <p> <b>Directory buckets</b> - Directory buckets only support <code>EXPRESS_ONEZONE</code> (the S3 Express One Zone storage class) in Availability Zones and <code>ONEZONE_IA</code> (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.</p> </note>",
43204328
"GetObjectOutput$StorageClass": "<p>Provides storage class information of the object. Amazon S3 returns this header for all objects except for S3 Standard storage class objects.</p> <note> <p> <b>Directory buckets </b> - Directory buckets only support <code>EXPRESS_ONEZONE</code> (the S3 Express One Zone storage class) in Availability Zones and <code>ONEZONE_IA</code> (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.</p> </note>",
43214329
"HeadObjectOutput$StorageClass": "<p>Provides storage class information of the object. Amazon S3 returns this header for all objects except for S3 Standard storage class objects.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html\">Storage Classes</a>.</p> <note> <p> <b>Directory buckets </b> - Directory buckets only support <code>EXPRESS_ONEZONE</code> (the S3 Express One Zone storage class) in Availability Zones and <code>ONEZONE_IA</code> (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.</p> </note>",
@@ -4374,6 +4382,7 @@
43744382
"base": null,
43754383
"refs": {
43764384
"AnalyticsAndOperator$Tags": "<p>The list of tags to use when evaluating an AND predicate.</p>",
4385+
"CreateBucketConfiguration$Tags": "<p>An array of tags that you can apply to the bucket that you're creating. Tags are key-value pairs of metadata used to categorize and organize your buckets, track costs, and control access. </p> <note> <p>This parameter is only supported for S3 directory buckets. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html\">Using tags with directory buckets</a>.</p> </note>",
43774386
"GetBucketTaggingOutput$TagSet": "<p>Contains the tag set.</p>",
43784387
"GetObjectTaggingOutput$TagSet": "<p>Contains the tag set.</p>",
43794388
"IntelligentTieringAndOperator$Tags": "<p>All of these tags must exist in the object's tag set in order for the configuration to apply.</p>",

0 commit comments

Comments
 (0)