Skip to content

Commit 1330dfd

Browse files
committed
update generated code
1 parent adc588a commit 1330dfd

19 files changed

+467
-225
lines changed

manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"variables": {
3-
"${LATEST}": "3.321.13"
3+
"${LATEST}": "3.322.0"
44
},
55
"endpoints": "https://raw.githubusercontent.com/aws/aws-sdk-php/${LATEST}/src/data/endpoints.json",
66
"services": {

src/Service/S3/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
### Changed
1212

1313
- Enable compiler optimization for the `sprintf` function.
14+
- AWS enhancement: Documentation updates.
1415

1516
## 2.3.0
1617

src/Service/S3/src/Input/CopyObjectRequest.php

Lines changed: 67 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -365,31 +365,56 @@ final class CopyObjectRequest extends Input
365365
private $taggingDirective;
366366

367367
/**
368-
* The server-side encryption algorithm used when storing this object in Amazon S3 (for example, `AES256`, `aws:kms`,
369-
* `aws:kms:dsse`). Unrecognized or unsupported values won’t write a destination object and will receive a `400 Bad
370-
* Request` response.
368+
* The server-side encryption algorithm used when storing this object in Amazon S3. Unrecognized or unsupported values
369+
* won’t write a destination object and will receive a `400 Bad Request` response.
371370
*
372371
* Amazon S3 automatically encrypts all new objects that are copied to an S3 bucket. When copying an object, if you
373372
* don't specify encryption information in your copy request, the encryption setting of the target object is set to the
374373
* default encryption configuration of the destination bucket. By default, all buckets have a base level of encryption
375374
* configuration that uses server-side encryption with Amazon S3 managed keys (SSE-S3). If the destination bucket has a
376-
* default encryption configuration that uses server-side encryption with Key Management Service (KMS) keys (SSE-KMS),
377-
* dual-layer server-side encryption with Amazon Web Services KMS keys (DSSE-KMS), or server-side encryption with
378-
* customer-provided encryption keys (SSE-C), Amazon S3 uses the corresponding KMS key, or a customer-provided key to
379-
* encrypt the target object copy.
380-
*
381-
* When you perform a `CopyObject` operation, if you want to use a different type of encryption setting for the target
382-
* object, you can specify appropriate encryption-related headers to encrypt the target object with an Amazon S3 managed
383-
* key, a KMS key, or a customer-provided key. If the encryption setting in your request is different from the default
384-
* encryption configuration of the destination bucket, the encryption setting in your request takes precedence.
375+
* different default encryption configuration, Amazon S3 uses the corresponding encryption key to encrypt the target
376+
* object copy.
385377
*
386378
* With server-side encryption, Amazon S3 encrypts your data as it writes your data to disks in its data centers and
387379
* decrypts the data when you access it. For more information about server-side encryption, see Using Server-Side
388380
* Encryption [^1] in the *Amazon S3 User Guide*.
389381
*
390-
* > For directory buckets, only server-side encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) is supported.
382+
* **General purpose buckets **
383+
*
384+
* - For general purpose buckets, there are the following supported options for server-side encryption: server-side
385+
* encryption with Key Management Service (KMS) keys (SSE-KMS), dual-layer server-side encryption with Amazon Web
386+
* Services KMS keys (DSSE-KMS), and server-side encryption with customer-provided encryption keys (SSE-C). Amazon S3
387+
* uses the corresponding KMS key, or a customer-provided key to encrypt the target object copy.
388+
* - When you perform a `CopyObject` operation, if you want to use a different type of encryption setting for the target
389+
* object, you can specify appropriate encryption-related headers to encrypt the target object with an Amazon S3
390+
* managed key, a KMS key, or a customer-provided key. If the encryption setting in your request is different from the
391+
* default encryption configuration of the destination bucket, the encryption setting in your request takes
392+
* precedence.
393+
*
394+
* **Directory buckets **
395+
*
396+
* - For directory buckets, there are only two supported options for server-side encryption: server-side encryption with
397+
* Amazon S3 managed keys (SSE-S3) (`AES256`) and server-side encryption with KMS keys (SSE-KMS) (`aws:kms`). We
398+
* recommend that the bucket's default encryption uses the desired encryption configuration and you don't override the
399+
* bucket default encryption in your `CreateSession` requests or `PUT` object requests. Then, new objects are
400+
* automatically encrypted with the desired encryption settings. For more information, see Protecting data with
401+
* server-side encryption [^2] in the *Amazon S3 User Guide*. For more information about the encryption overriding
402+
* behaviors in directory buckets, see Specifying server-side encryption with KMS for new object uploads [^3].
403+
* - To encrypt new object copies to a directory bucket with SSE-KMS, we recommend you specify SSE-KMS as the directory
404+
* bucket's default encryption configuration with a KMS key (specifically, a customer managed key [^4]). Amazon Web
405+
* Services managed key [^5] (`aws/s3`) isn't supported. Your SSE-KMS configuration can only support 1 customer
406+
* managed key [^6] per directory bucket for the lifetime of the bucket. After you specify a customer managed key for
407+
* SSE-KMS, you can't override the customer managed key for the bucket's SSE-KMS configuration. Then, when you perform
408+
* a `CopyObject` operation and want to specify server-side encryption settings for new object copies with SSE-KMS in
409+
* the encryption-related request headers, you must ensure the encryption key is the same customer managed key that
410+
* you specified for the directory bucket's default encryption configuration.
391411
*
392412
* [^1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
413+
* [^2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
414+
* [^3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html
415+
* [^4]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
416+
* [^5]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
417+
* [^6]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
393418
*
394419
* @var ServerSideEncryption::*|null
395420
*/
@@ -475,25 +500,41 @@ final class CopyObjectRequest extends Input
475500
private $sseCustomerKeyMd5;
476501

477502
/**
478-
* Specifies the KMS ID (Key ID, Key ARN, or Key Alias) to use for object encryption. All GET and PUT requests for an
479-
* object protected by KMS will fail if they're not made via SSL or using SigV4. For information about configuring any
480-
* of the officially supported Amazon Web Services SDKs and Amazon Web Services CLI, see Specifying the Signature
503+
* Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for object encryption. All GET and PUT requests for
504+
* an object protected by KMS will fail if they're not made via SSL or using SigV4. For information about configuring
505+
* any of the officially supported Amazon Web Services SDKs and Amazon Web Services CLI, see Specifying the Signature
481506
* Version in Request Authentication [^1] in the *Amazon S3 User Guide*.
482507
*
483-
* > This functionality is not supported when the destination bucket is a directory bucket.
508+
* **Directory buckets** - If you specify `x-amz-server-side-encryption` with `aws:kms`, you must specify the `
509+
* x-amz-server-side-encryption-aws-kms-key-id` header with the ID (Key ID or Key ARN) of the KMS symmetric encryption
510+
* customer managed key to use. Otherwise, you get an HTTP `400 Bad Request` error. Only use the key ID or key ARN. The
511+
* key alias format of the KMS key isn't supported. Your SSE-KMS configuration can only support 1 customer managed key
512+
* [^2] per directory bucket for the lifetime of the bucket. Amazon Web Services managed key [^3] (`aws/s3`) isn't
513+
* supported.
484514
*
485515
* [^1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
516+
* [^2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
517+
* [^3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
486518
*
487519
* @var string|null
488520
*/
489521
private $sseKmsKeyId;
490522

491523
/**
492-
* Specifies the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a
493-
* base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs. This value must be explicitly
494-
* added to specify encryption context for `CopyObject` requests.
524+
* Specifies the Amazon Web Services KMS Encryption Context as an additional encryption context to use for the
525+
* destination object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the
526+
* encryption context key-value pairs.
495527
*
496-
* > This functionality is not supported when the destination bucket is a directory bucket.
528+
* **General purpose buckets** - This value must be explicitly added to specify encryption context for `CopyObject`
529+
* requests if you want an additional encryption context for your destination object. The additional encryption context
530+
* of the source object won't be copied to the destination object. For more information, see Encryption context [^1] in
531+
* the *Amazon S3 User Guide*.
532+
*
533+
* **Directory buckets** - You can optionally provide an explicit encryption context value. The value must match the
534+
* default encryption context - the bucket Amazon Resource Name (ARN). An additional encryption context value is not
535+
* supported.
536+
*
537+
* [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html#encryption-context
497538
*
498539
* @var string|null
499540
*/
@@ -509,9 +550,13 @@ final class CopyObjectRequest extends Input
509550
*
510551
* For more information, see Amazon S3 Bucket Keys [^1] in the *Amazon S3 User Guide*.
511552
*
512-
* > This functionality is not supported when the destination bucket is a directory bucket.
553+
* > **Directory buckets** - S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects from general
554+
* > purpose buckets to directory buckets, from directory buckets to general purpose buckets, or between directory
555+
* > buckets, through CopyObject [^2]. In this case, Amazon S3 makes a call to KMS every time a copy request is made for
556+
* > a KMS-encrypted object.
513557
*
514558
* [^1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html
559+
* [^2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
515560
*
516561
* @var bool|null
517562
*/

src/Service/S3/src/Input/CreateMultipartUploadRequest.php

Lines changed: 67 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,36 @@ final class CreateMultipartUploadRequest extends Input
316316
/**
317317
* The server-side encryption algorithm used when you store this object in Amazon S3 (for example, `AES256`, `aws:kms`).
318318
*
319-
* > For directory buckets, only server-side encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) is supported.
319+
* - **Directory buckets ** - For directory buckets, there are only two supported options for server-side encryption:
320+
* server-side encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and server-side encryption with KMS keys
321+
* (SSE-KMS) (`aws:kms`). We recommend that the bucket's default encryption uses the desired encryption configuration
322+
* and you don't override the bucket default encryption in your `CreateSession` requests or `PUT` object requests.
323+
* Then, new objects are automatically encrypted with the desired encryption settings. For more information, see
324+
* Protecting data with server-side encryption [^1] in the *Amazon S3 User Guide*. For more information about the
325+
* encryption overriding behaviors in directory buckets, see Specifying server-side encryption with KMS for new object
326+
* uploads [^2].
327+
*
328+
* In the Zonal endpoint API calls (except CopyObject [^3] and UploadPartCopy [^4]) using the REST API, the encryption
329+
* request headers must match the encryption settings that are specified in the `CreateSession` request. You can't
330+
* override the values of the encryption settings (`x-amz-server-side-encryption`,
331+
* `x-amz-server-side-encryption-aws-kms-key-id`, `x-amz-server-side-encryption-context`, and
332+
* `x-amz-server-side-encryption-bucket-key-enabled`) that are specified in the `CreateSession` request. You don't
333+
* need to explicitly specify these encryption settings values in Zonal endpoint API calls, and Amazon S3 will use the
334+
* encryption settings values from the `CreateSession` request to protect new objects in the directory bucket.
335+
*
336+
* > When you use the CLI or the Amazon Web Services SDKs, for `CreateSession`, the session token refreshes
337+
* > automatically to avoid service interruptions when a session expires. The CLI or the Amazon Web Services SDKs use
338+
* > the bucket's default encryption configuration for the `CreateSession` request. It's not supported to override the
339+
* > encryption settings values in the `CreateSession` request. So in the Zonal endpoint API calls (except CopyObject
340+
* > [^5] and UploadPartCopy [^6]), the encryption request headers must match the default encryption configuration of
341+
* > the directory bucket.
342+
*
343+
* [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
344+
* [^2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html
345+
* [^3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
346+
* [^4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
347+
* [^5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
348+
* [^6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
320349
*
321350
* @var ServerSideEncryption::*|null
322351
*/
@@ -378,33 +407,59 @@ final class CreateMultipartUploadRequest extends Input
378407
private $sseCustomerKeyMd5;
379408

380409
/**
381-
* Specifies the ID (Key ID, Key ARN, or Key Alias) of the symmetric encryption customer managed key to use for object
382-
* encryption.
410+
* Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for object encryption. If the KMS key doesn't exist
411+
* in the same account that's issuing the command, you must use the full Key ARN not the Key ID.
383412
*
384-
* > This functionality is not supported for directory buckets.
413+
* **General purpose buckets** - If you specify `x-amz-server-side-encryption` with `aws:kms` or `aws:kms:dsse`, this
414+
* header specifies the ID (Key ID, Key ARN, or Key Alias) of the KMS key to use. If you specify
415+
* `x-amz-server-side-encryption:aws:kms` or `x-amz-server-side-encryption:aws:kms:dsse`, but do not provide
416+
* `x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the Amazon Web Services managed key (`aws/s3`) to
417+
* protect the data.
418+
*
419+
* **Directory buckets** - If you specify `x-amz-server-side-encryption` with `aws:kms`, you must specify the `
420+
* x-amz-server-side-encryption-aws-kms-key-id` header with the ID (Key ID or Key ARN) of the KMS symmetric encryption
421+
* customer managed key to use. Otherwise, you get an HTTP `400 Bad Request` error. Only use the key ID or key ARN. The
422+
* key alias format of the KMS key isn't supported. Your SSE-KMS configuration can only support 1 customer managed key
423+
* [^1] per directory bucket for the lifetime of the bucket. Amazon Web Services managed key [^2] (`aws/s3`) isn't
424+
* supported.
425+
*
426+
* [^1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
427+
* [^2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
385428
*
386429
* @var string|null
387430
*/
388431
private $sseKmsKeyId;
389432

390433
/**
391434
* Specifies the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a
392-
* base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.
435+
* Base64-encoded string of a UTF-8 encoded JSON, which contains the encryption context as key-value pairs.
393436
*
394-
* > This functionality is not supported for directory buckets.
437+
* **Directory buckets** - You can optionally provide an explicit encryption context value. The value must match the
438+
* default encryption context - the bucket Amazon Resource Name (ARN). An additional encryption context value is not
439+
* supported.
395440
*
396441
* @var string|null
397442
*/
398443
private $sseKmsEncryptionContext;
399444

400445
/**
401446
* Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Key
402-
* Management Service (KMS) keys (SSE-KMS). Setting this header to `true` causes Amazon S3 to use an S3 Bucket Key for
403-
* object encryption with SSE-KMS.
404-
*
405-
* Specifying this header with an object action doesn’t affect bucket-level settings for S3 Bucket Key.
406-
*
407-
* > This functionality is not supported for directory buckets.
447+
* Management Service (KMS) keys (SSE-KMS).
448+
*
449+
* **General purpose buckets** - Setting this header to `true` causes Amazon S3 to use an S3 Bucket Key for object
450+
* encryption with SSE-KMS. Also, specifying this header with a PUT action doesn't affect bucket-level settings for S3
451+
* Bucket Key.
452+
*
453+
* **Directory buckets** - S3 Bucket Keys are always enabled for `GET` and `PUT` operations in a directory bucket and
454+
* can’t be disabled. S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects from general purpose
455+
* buckets to directory buckets, from directory buckets to general purpose buckets, or between directory buckets,
456+
* through CopyObject [^1], UploadPartCopy [^2], the Copy operation in Batch Operations [^3], or the import jobs [^4].
457+
* In this case, Amazon S3 makes a call to KMS every time a copy request is made for a KMS-encrypted object.
458+
*
459+
* [^1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
460+
* [^2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
461+
* [^3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops
462+
* [^4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job
408463
*
409464
* @var bool|null
410465
*/

src/Service/S3/src/Input/GetBucketEncryptionRequest.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,14 @@ final class GetBucketEncryptionRequest extends Input
1212
/**
1313
* The name of the bucket from which the server-side encryption configuration is retrieved.
1414
*
15+
* **Directory buckets ** - When you use this operation with a directory bucket, you must use path-style requests in the
16+
* format `https://s3express-control.*region_code*.amazonaws.com/*bucket-name*`. Virtual-hosted-style requests aren't
17+
* supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must also follow the
18+
* format `*bucket_base_name*--*az_id*--x-s3` (for example, `*DOC-EXAMPLE-BUCKET*--*usw2-az1*--x-s3`). For information
19+
* about bucket naming restrictions, see Directory bucket naming rules [^1] in the *Amazon S3 User Guide*
20+
*
21+
* [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html
22+
*
1523
* @required
1624
*
1725
* @var string|null
@@ -22,6 +30,9 @@ final class GetBucketEncryptionRequest extends Input
2230
* The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of
2331
* the bucket, the request fails with the HTTP status code `403 Forbidden` (access denied).
2432
*
33+
* > For directory buckets, this header is not supported in this API operation. If you specify this header, the request
34+
* > fails with the HTTP status code `501 Not Implemented`.
35+
*
2536
* @var string|null
2637
*/
2738
private $expectedBucketOwner;

0 commit comments

Comments
 (0)