From f5e54ca2e054ed5b202600f9a3289f1b480df383 Mon Sep 17 00:00:00 2001 From: AsyncAws Bot Date: Wed, 29 Oct 2025 06:36:17 +0000 Subject: [PATCH] update generated code --- manifest.json | 2 +- src/Service/Lambda/CHANGELOG.md | 1 + ...rializedRequestEntityTooLargeException.php | 33 +++ .../Lambda/src/Input/InvocationRequest.php | 3 +- src/Service/Lambda/src/LambdaClient.php | 9 + src/Service/S3/CHANGELOG.md | 1 + .../S3/src/Input/CopyObjectRequest.php | 67 ++++++ .../S3/src/Input/DeleteObjectRequest.php | 10 +- .../S3/src/Input/PutObjectTaggingRequest.php | 3 + .../Result/CompleteMultipartUploadOutput.php | 26 +-- src/Service/S3/src/Result/GetObjectOutput.php | 12 +- .../S3/src/Result/HeadObjectOutput.php | 26 +-- src/Service/S3/src/Result/PutObjectOutput.php | 26 +-- .../S3/src/Result/UploadPartOutput.php | 26 +-- src/Service/S3/src/S3Client.php | 191 ++++++++++++++---- .../S3/src/ValueObject/CopyObjectResult.php | 12 +- .../ValueObject/CreateBucketConfiguration.php | 6 +- src/Service/S3/src/ValueObject/Grantee.php | 8 + src/Service/S3/src/ValueObject/Owner.php | 2 +- 19 files changed, 348 insertions(+), 116 deletions(-) create mode 100644 src/Service/Lambda/src/Exception/SerializedRequestEntityTooLargeException.php diff --git a/manifest.json b/manifest.json index cb0c3ed70..5f26270f3 100644 --- a/manifest.json +++ b/manifest.json @@ -1,6 +1,6 @@ { "variables": { - "${LATEST}": "3.358.0" + "${LATEST}": "3.359.0" }, "endpoints": "https://raw.githubusercontent.com/aws/aws-sdk-php/${LATEST}/src/data/endpoints.json", "services": { diff --git a/src/Service/Lambda/CHANGELOG.md b/src/Service/Lambda/CHANGELOG.md index 5e2e9f7d8..6dc607527 100644 --- a/src/Service/Lambda/CHANGELOG.md +++ b/src/Service/Lambda/CHANGELOG.md @@ -6,6 +6,7 @@ - AWS api-change: Add NodeJs 24 (nodejs24.x) support to AWS Lambda. - AWS api-change: Added `us-isob-west-1` region +- AWS api-change: Added SerializedRequestEntityTooLargeException to Lambda Invoke API ### Dependency bumped diff --git a/src/Service/Lambda/src/Exception/SerializedRequestEntityTooLargeException.php b/src/Service/Lambda/src/Exception/SerializedRequestEntityTooLargeException.php new file mode 100644 index 000000000..a4551467f --- /dev/null +++ b/src/Service/Lambda/src/Exception/SerializedRequestEntityTooLargeException.php @@ -0,0 +1,33 @@ +type; + } + + protected function populateResult(ResponseInterface $response): void + { + $data = $response->toArray(false); + + $this->type = isset($data['Type']) ? (string) $data['Type'] : null; + } +} diff --git a/src/Service/Lambda/src/Input/InvocationRequest.php b/src/Service/Lambda/src/Input/InvocationRequest.php index b757b7af5..2a9d769d5 100644 --- a/src/Service/Lambda/src/Input/InvocationRequest.php +++ b/src/Service/Lambda/src/Input/InvocationRequest.php @@ -58,7 +58,8 @@ final class InvocationRequest extends Input private $clientContext; /** - * The JSON that you want to provide to your Lambda function as input. + * The JSON that you want to provide to your Lambda function as input. The maximum payload size is 6 MB for synchronous + * invocations and 1 MB for asynchronous invocations. * * You can enter the JSON directly. For example, `--payload '{ "key": "value" }'`. You can also specify a file path. For * example, `--payload file://payload.json`. diff --git a/src/Service/Lambda/src/LambdaClient.php b/src/Service/Lambda/src/LambdaClient.php index 0aef3885e..e6f3574a6 100644 --- a/src/Service/Lambda/src/LambdaClient.php +++ b/src/Service/Lambda/src/LambdaClient.php @@ -42,6 +42,7 @@ use AsyncAws\Lambda\Exception\ResourceConflictException; use AsyncAws\Lambda\Exception\ResourceNotFoundException; use AsyncAws\Lambda\Exception\ResourceNotReadyException; +use AsyncAws\Lambda\Exception\SerializedRequestEntityTooLargeException; use AsyncAws\Lambda\Exception\ServiceException; use AsyncAws\Lambda\Exception\SnapStartException; use AsyncAws\Lambda\Exception\SnapStartNotReadyException; @@ -129,6 +130,9 @@ public function addLayerVersionPermission($input): AddLayerVersionPermissionResp * Deletes a Lambda function. To delete a specific function version, use the `Qualifier` parameter. Otherwise, all * versions and aliases are deleted. This doesn't require the user to have explicit permissions for DeleteAlias. * + * > A deleted Lambda function cannot be recovered. Ensure that you specify the correct function name and version before + * > deleting. + * * To delete Lambda event source mappings that invoke a function, use DeleteEventSourceMapping. For Amazon Web Services * services and resources that invoke your function directly, delete the trigger in the service where you originally * configured it. @@ -201,6 +205,9 @@ public function getFunctionConfiguration($input): FunctionConfiguration * function asynchronously, set `InvocationType` to `Event`. Lambda passes the `ClientContext` object to your function * for synchronous invocations only. * + * For synchronous invocations, the maximum payload size is 6 MB. For asynchronous invocations, the maximum payload size + * is 1 MB. + * * For synchronous invocation [^1], details about the function response, including errors, are included in the response * body and headers. For either invocation type, you can find more information in the execution log [^2] and trace [^3]. * @@ -273,6 +280,7 @@ public function getFunctionConfiguration($input): FunctionConfiguration * @throws ResourceConflictException * @throws ResourceNotFoundException * @throws ResourceNotReadyException + * @throws SerializedRequestEntityTooLargeException * @throws ServiceException * @throws SnapStartException * @throws SnapStartNotReadyException @@ -308,6 +316,7 @@ public function invoke($input): InvocationResponse 'ResourceConflictException' => ResourceConflictException::class, 'ResourceNotFoundException' => ResourceNotFoundException::class, 'ResourceNotReadyException' => ResourceNotReadyException::class, + 'SerializedRequestEntityTooLargeException' => SerializedRequestEntityTooLargeException::class, 'ServiceException' => ServiceException::class, 'SnapStartException' => SnapStartException::class, 'SnapStartNotReadyException' => SnapStartNotReadyException::class, diff --git a/src/Service/S3/CHANGELOG.md b/src/Service/S3/CHANGELOG.md index 88ef002cb..7cb239c07 100644 --- a/src/Service/S3/CHANGELOG.md +++ b/src/Service/S3/CHANGELOG.md @@ -10,6 +10,7 @@ - AWS api-change: Added `us-isob-west-1` region - Added `S3Client::putPublicAccessBlock()` method +- AWS api-change: Amazon Simple Storage Service / Features: Add conditional writes in CopyObject on destination key to prevent unintended object modifications. ### Dependency bumped diff --git a/src/Service/S3/src/Input/CopyObjectRequest.php b/src/Service/S3/src/Input/CopyObjectRequest.php index 860beb062..b9714679a 100644 --- a/src/Service/S3/src/Input/CopyObjectRequest.php +++ b/src/Service/S3/src/Input/CopyObjectRequest.php @@ -304,6 +304,37 @@ final class CopyObjectRequest extends Input */ private $grantWriteAcp; + /** + * Copies the object if the entity tag (ETag) of the destination object matches the specified tag. If the ETag values do + * not match, the operation returns a `412 Precondition Failed` error. If a concurrent operation occurs during the + * upload S3 returns a `409 ConditionalRequestConflict` response. On a 409 failure you should fetch the object's ETag + * and retry the upload. + * + * Expects the ETag value as a string. + * + * For more information about conditional requests, see RFC 7232 [^1]. + * + * [^1]: https://tools.ietf.org/html/rfc7232 + * + * @var string|null + */ + private $ifMatch; + + /** + * Copies the object only if the object key name at the destination does not already exist in the bucket specified. + * Otherwise, Amazon S3 returns a `412 Precondition Failed` error. If a concurrent operation occurs during the upload S3 + * returns a `409 ConditionalRequestConflict` response. On a 409 failure you should retry the upload. + * + * Expects the '*' (asterisk) character. + * + * For more information about conditional requests, see RFC 7232 [^1]. + * + * [^1]: https://tools.ietf.org/html/rfc7232 + * + * @var string|null + */ + private $ifNoneMatch; + /** * The key of the destination object. * @@ -718,6 +749,8 @@ final class CopyObjectRequest extends Input * GrantRead?: string|null, * GrantReadACP?: string|null, * GrantWriteACP?: string|null, + * IfMatch?: string|null, + * IfNoneMatch?: string|null, * Key?: string, * Metadata?: array|null, * MetadataDirective?: MetadataDirective::*|null, @@ -764,6 +797,8 @@ public function __construct(array $input = []) $this->grantRead = $input['GrantRead'] ?? null; $this->grantReadAcp = $input['GrantReadACP'] ?? null; $this->grantWriteAcp = $input['GrantWriteACP'] ?? null; + $this->ifMatch = $input['IfMatch'] ?? null; + $this->ifNoneMatch = $input['IfNoneMatch'] ?? null; $this->key = $input['Key'] ?? null; $this->metadata = $input['Metadata'] ?? null; $this->metadataDirective = $input['MetadataDirective'] ?? null; @@ -810,6 +845,8 @@ public function __construct(array $input = []) * GrantRead?: string|null, * GrantReadACP?: string|null, * GrantWriteACP?: string|null, + * IfMatch?: string|null, + * IfNoneMatch?: string|null, * Key?: string, * Metadata?: array|null, * MetadataDirective?: MetadataDirective::*|null, @@ -967,6 +1004,16 @@ public function getGrantWriteAcp(): ?string return $this->grantWriteAcp; } + public function getIfMatch(): ?string + { + return $this->ifMatch; + } + + public function getIfNoneMatch(): ?string + { + return $this->ifNoneMatch; + } + public function getKey(): ?string { return $this->key; @@ -1141,6 +1188,12 @@ public function request(): Request if (null !== $this->grantWriteAcp) { $headers['x-amz-grant-write-acp'] = $this->grantWriteAcp; } + if (null !== $this->ifMatch) { + $headers['If-Match'] = $this->ifMatch; + } + if (null !== $this->ifNoneMatch) { + $headers['If-None-Match'] = $this->ifNoneMatch; + } if (null !== $this->metadataDirective) { if (!MetadataDirective::exists($this->metadataDirective)) { throw new InvalidArgument(\sprintf('Invalid parameter "MetadataDirective" for "%s". The value "%s" is not a valid "MetadataDirective".', __CLASS__, $this->metadataDirective)); @@ -1427,6 +1480,20 @@ public function setGrantWriteAcp(?string $value): self return $this; } + public function setIfMatch(?string $value): self + { + $this->ifMatch = $value; + + return $this; + } + + public function setIfNoneMatch(?string $value): self + { + $this->ifNoneMatch = $value; + + return $this; + } + public function setKey(?string $value): self { $this->key = $value; diff --git a/src/Service/S3/src/Input/DeleteObjectRequest.php b/src/Service/S3/src/Input/DeleteObjectRequest.php index 70fa24a3b..ff9b80f09 100644 --- a/src/Service/S3/src/Input/DeleteObjectRequest.php +++ b/src/Service/S3/src/Input/DeleteObjectRequest.php @@ -99,13 +99,13 @@ final class DeleteObjectRequest extends Input private $expectedBucketOwner; /** - * The `If-Match` header field makes the request method conditional on ETags. If the ETag value does not match, the - * operation returns a `412 Precondition Failed` error. If the ETag matches or if the object doesn't exist, the - * operation will return a `204 Success (No Content) response`. + * Deletes the object if the ETag (entity tag) value provided during the delete operation matches the ETag of the object + * in S3. If the ETag values do not match, the operation returns a `412 Precondition Failed` error. * - * For more information about conditional requests, see RFC 7232 [^1]. + * Expects the ETag value as a string. `If-Match` does accept a string value of an '*' (asterisk) character to denote a + * match of any ETag. * - * > This functionality is only supported for directory buckets. + * For more information about conditional requests, see RFC 7232 [^1]. * * [^1]: https://tools.ietf.org/html/rfc7232 * diff --git a/src/Service/S3/src/Input/PutObjectTaggingRequest.php b/src/Service/S3/src/Input/PutObjectTaggingRequest.php index 7a96d6f48..cd40ad68e 100644 --- a/src/Service/S3/src/Input/PutObjectTaggingRequest.php +++ b/src/Service/S3/src/Input/PutObjectTaggingRequest.php @@ -97,6 +97,9 @@ final class PutObjectTaggingRequest extends Input private $expectedBucketOwner; /** + * Confirms that the requester knows that she or he will be charged for the tagging object request. Bucket owners need + * not specify this parameter in their requests. + * * @var RequestPayer::*|null */ private $requestPayer; diff --git a/src/Service/S3/src/Result/CompleteMultipartUploadOutput.php b/src/Service/S3/src/Result/CompleteMultipartUploadOutput.php index b8f0e53fe..281ca8501 100644 --- a/src/Service/S3/src/Result/CompleteMultipartUploadOutput.php +++ b/src/Service/S3/src/Result/CompleteMultipartUploadOutput.php @@ -58,11 +58,11 @@ class CompleteMultipartUploadOutput extends Result private $etag; /** - * The Base64 encoded, 32-bit `CRC32 checksum` of the object. This checksum is only be present if the checksum was - * uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this - * value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values - * of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking - * object integrity [^1] in the *Amazon S3 User Guide*. + * The Base64 encoded, 32-bit `CRC32 checksum` of the object. This checksum is only present if the checksum was uploaded + * with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may + * not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each + * individual part. For more information about how checksums are calculated with multipart uploads, see Checking object + * integrity [^1] in the *Amazon S3 User Guide*. * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums * @@ -96,11 +96,11 @@ class CompleteMultipartUploadOutput extends Result private $checksumCrc64Nvme; /** - * The Base64 encoded, 160-bit `SHA1` digest of the object. This will only be present if the object was uploaded with - * the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not - * be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each - * individual part. For more information about how checksums are calculated with multipart uploads, see Checking object - * integrity [^1] in the *Amazon S3 User Guide*. + * The Base64 encoded, 160-bit `SHA1` digest of the object. This checksum is only present if the checksum was uploaded + * with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value + * may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of + * each individual part. For more information about how checksums are calculated with multipart uploads, see Checking + * object integrity [^1] in the *Amazon S3 User Guide*. * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums * @@ -109,9 +109,9 @@ class CompleteMultipartUploadOutput extends Result private $checksumSha1; /** - * The Base64 encoded, 256-bit `SHA256` digest of the object. This will only be present if the object was uploaded with - * the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not - * be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each + * The Base64 encoded, 256-bit `SHA256` digest of the object. This checksum is only present if the checksum was uploaded + * with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may + * not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each * individual part. For more information about how checksums are calculated with multipart uploads, see Checking object * integrity [^1] in the *Amazon S3 User Guide*. * diff --git a/src/Service/S3/src/Result/GetObjectOutput.php b/src/Service/S3/src/Result/GetObjectOutput.php index f24b57a1a..cd94076b6 100644 --- a/src/Service/S3/src/Result/GetObjectOutput.php +++ b/src/Service/S3/src/Result/GetObjectOutput.php @@ -105,8 +105,8 @@ class GetObjectOutput extends Result private $checksumCrc32; /** - * The Base64 encoded, 32-bit `CRC32C` checksum of the object. This will only be present if the object was uploaded with - * the object. For more information, see Checking object integrity [^1] in the *Amazon S3 User Guide*. + * The Base64 encoded, 32-bit `CRC32C` checksum of the object. This checksum is only present if the checksum was + * uploaded with the object. For more information, see Checking object integrity [^1] in the *Amazon S3 User Guide*. * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html * @@ -125,8 +125,8 @@ class GetObjectOutput extends Result private $checksumCrc64Nvme; /** - * The Base64 encoded, 160-bit `SHA1` digest of the object. This will only be present if the object was uploaded with - * the object. For more information, see Checking object integrity [^1] in the *Amazon S3 User Guide*. + * The Base64 encoded, 160-bit `SHA1` digest of the object. This checksum is only present if the checksum was uploaded + * with the object. For more information, see Checking object integrity [^1] in the *Amazon S3 User Guide*. * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html * @@ -135,8 +135,8 @@ class GetObjectOutput extends Result private $checksumSha1; /** - * The Base64 encoded, 256-bit `SHA256` digest of the object. This will only be present if the object was uploaded with - * the object. For more information, see Checking object integrity [^1] in the *Amazon S3 User Guide*. + * The Base64 encoded, 256-bit `SHA256` digest of the object. This checksum is only present if the checksum was uploaded + * with the object. For more information, see Checking object integrity [^1] in the *Amazon S3 User Guide*. * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html * diff --git a/src/Service/S3/src/Result/HeadObjectOutput.php b/src/Service/S3/src/Result/HeadObjectOutput.php index 50fe19c61..740329340 100644 --- a/src/Service/S3/src/Result/HeadObjectOutput.php +++ b/src/Service/S3/src/Result/HeadObjectOutput.php @@ -94,11 +94,11 @@ class HeadObjectOutput extends Result private $contentLength; /** - * The Base64 encoded, 32-bit `CRC32 checksum` of the object. This checksum is only be present if the checksum was - * uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this - * value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values - * of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking - * object integrity [^1] in the *Amazon S3 User Guide*. + * The Base64 encoded, 32-bit `CRC32 checksum` of the object. This checksum is only present if the checksum was uploaded + * with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may + * not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each + * individual part. For more information about how checksums are calculated with multipart uploads, see Checking object + * integrity [^1] in the *Amazon S3 User Guide*. * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums * @@ -130,11 +130,11 @@ class HeadObjectOutput extends Result private $checksumCrc64Nvme; /** - * The Base64 encoded, 160-bit `SHA1` digest of the object. This will only be present if the object was uploaded with - * the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not - * be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each - * individual part. For more information about how checksums are calculated with multipart uploads, see Checking object - * integrity [^1] in the *Amazon S3 User Guide*. + * The Base64 encoded, 160-bit `SHA1` digest of the object. This checksum is only present if the checksum was uploaded + * with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value + * may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of + * each individual part. For more information about how checksums are calculated with multipart uploads, see Checking + * object integrity [^1] in the *Amazon S3 User Guide*. * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums * @@ -143,9 +143,9 @@ class HeadObjectOutput extends Result private $checksumSha1; /** - * The Base64 encoded, 256-bit `SHA256` digest of the object. This will only be present if the object was uploaded with - * the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not - * be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each + * The Base64 encoded, 256-bit `SHA256` digest of the object. This checksum is only present if the checksum was uploaded + * with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may + * not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each * individual part. For more information about how checksums are calculated with multipart uploads, see Checking object * integrity [^1] in the *Amazon S3 User Guide*. * diff --git a/src/Service/S3/src/Result/PutObjectOutput.php b/src/Service/S3/src/Result/PutObjectOutput.php index 5e8bf4142..1aad457c0 100644 --- a/src/Service/S3/src/Result/PutObjectOutput.php +++ b/src/Service/S3/src/Result/PutObjectOutput.php @@ -38,11 +38,11 @@ class PutObjectOutput extends Result private $etag; /** - * The Base64 encoded, 32-bit `CRC32 checksum` of the object. This checksum is only be present if the checksum was - * uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this - * value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values - * of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking - * object integrity [^1] in the *Amazon S3 User Guide*. + * The Base64 encoded, 32-bit `CRC32 checksum` of the object. This checksum is only present if the checksum was uploaded + * with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may + * not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each + * individual part. For more information about how checksums are calculated with multipart uploads, see Checking object + * integrity [^1] in the *Amazon S3 User Guide*. * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums * @@ -76,11 +76,11 @@ class PutObjectOutput extends Result private $checksumCrc64Nvme; /** - * The Base64 encoded, 160-bit `SHA1` digest of the object. This will only be present if the object was uploaded with - * the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not - * be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each - * individual part. For more information about how checksums are calculated with multipart uploads, see Checking object - * integrity [^1] in the *Amazon S3 User Guide*. + * The Base64 encoded, 160-bit `SHA1` digest of the object. This checksum is only present if the checksum was uploaded + * with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value + * may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of + * each individual part. For more information about how checksums are calculated with multipart uploads, see Checking + * object integrity [^1] in the *Amazon S3 User Guide*. * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums * @@ -89,9 +89,9 @@ class PutObjectOutput extends Result private $checksumSha1; /** - * The Base64 encoded, 256-bit `SHA256` digest of the object. This will only be present if the object was uploaded with - * the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not - * be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each + * The Base64 encoded, 256-bit `SHA256` digest of the object. This checksum is only present if the checksum was uploaded + * with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may + * not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each * individual part. For more information about how checksums are calculated with multipart uploads, see Checking object * integrity [^1] in the *Amazon S3 User Guide*. * diff --git a/src/Service/S3/src/Result/UploadPartOutput.php b/src/Service/S3/src/Result/UploadPartOutput.php index b651aa3fb..215de5485 100644 --- a/src/Service/S3/src/Result/UploadPartOutput.php +++ b/src/Service/S3/src/Result/UploadPartOutput.php @@ -27,11 +27,11 @@ class UploadPartOutput extends Result private $etag; /** - * The Base64 encoded, 32-bit `CRC32 checksum` of the object. This checksum is only be present if the checksum was - * uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this - * value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values - * of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking - * object integrity [^1] in the *Amazon S3 User Guide*. + * The Base64 encoded, 32-bit `CRC32 checksum` of the object. This checksum is only present if the checksum was uploaded + * with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may + * not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each + * individual part. For more information about how checksums are calculated with multipart uploads, see Checking object + * integrity [^1] in the *Amazon S3 User Guide*. * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums * @@ -64,11 +64,11 @@ class UploadPartOutput extends Result private $checksumCrc64Nvme; /** - * The Base64 encoded, 160-bit `SHA1` digest of the object. This will only be present if the object was uploaded with - * the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not - * be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each - * individual part. For more information about how checksums are calculated with multipart uploads, see Checking object - * integrity [^1] in the *Amazon S3 User Guide*. + * The Base64 encoded, 160-bit `SHA1` digest of the object. This checksum is only present if the checksum was uploaded + * with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value + * may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of + * each individual part. For more information about how checksums are calculated with multipart uploads, see Checking + * object integrity [^1] in the *Amazon S3 User Guide*. * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums * @@ -77,9 +77,9 @@ class UploadPartOutput extends Result private $checksumSha1; /** - * The Base64 encoded, 256-bit `SHA256` digest of the object. This will only be present if the object was uploaded with - * the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not - * be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each + * The Base64 encoded, 256-bit `SHA256` digest of the object. This checksum is only present if the checksum was uploaded + * with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may + * not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each * individual part. For more information about how checksums are calculated with multipart uploads, see Checking object * integrity [^1] in the *Amazon S3 User Guide*. * diff --git a/src/Service/S3/src/S3Client.php b/src/Service/S3/src/S3Client.php index 9b002d5b3..b6503d527 100644 --- a/src/Service/S3/src/S3Client.php +++ b/src/Service/S3/src/S3Client.php @@ -154,6 +154,9 @@ class S3Client extends AbstractApi * - ListParts [^10] * - ListMultipartUploads [^11] * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html @@ -326,6 +329,9 @@ public function bucketNotExists($input): BucketNotExistsWaiter * - ListParts [^14] * - ListMultipartUploads [^15] * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ErrorBestPractices.html @@ -376,17 +382,16 @@ public function completeMultipartUpload($input): CompleteMultipartUploadOutput } /** - * ! End of support notice: Beginning October 1, 2025, Amazon S3 will discontinue support for creating new Email Grantee - * ! Access Control Lists (ACL). Email Grantee ACLs created prior to this date will continue to work and remain - * ! accessible through the Amazon Web Services Management Console, Command Line Interface (CLI), SDKs, and REST API. - * ! However, you will no longer be able to create new Email Grantee ACLs. - * ! - * ! This change affects the following Amazon Web Services Regions: US East (N. Virginia) Region, US West (N. - * ! California) Region, US West (Oregon) Region, Asia Pacific (Singapore) Region, Asia Pacific (Sydney) Region, Asia - * ! Pacific (Tokyo) Region, Europe (Ireland) Region, and South America (São Paulo) Region. - * * Creates a copy of an object that is already stored in Amazon S3. * + * ! End of support notice: As of October 1, 2025, Amazon S3 has discontinued support for Email Grantee Access Control + * ! Lists (ACLs). If you attempt to use an Email Grantee ACL in a request after October 1, 2025, the request will + * ! receive an `HTTP 405` (Method Not Allowed) error. + * ! + * ! This change affects the following Amazon Web Services Regions: US East (N. Virginia), US West (N. California), US + * ! West (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Europe (Ireland), and South + * ! America (São Paulo). + * * > You can store individual objects of up to 5 TB in Amazon S3. You create a copy of your object up to 5 GB in size in * > a single atomic action using this API. However, to copy an object greater than 5 GB, you must use the multipart * > upload Upload Part - Copy (UploadPartCopy) API. For more information, see Copy Object Using the REST Multipart @@ -502,6 +507,9 @@ public function completeMultipartUpload($input): CompleteMultipartUploadOutput * - PutObject [^11] * - GetObject [^12] * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingRESTMPUapi.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html @@ -537,6 +545,8 @@ public function completeMultipartUpload($input): CompleteMultipartUploadOutput * GrantRead?: string|null, * GrantReadACP?: string|null, * GrantWriteACP?: string|null, + * IfMatch?: string|null, + * IfNoneMatch?: string|null, * Key: string, * Metadata?: array|null, * MetadataDirective?: MetadataDirective::*|null, @@ -576,22 +586,13 @@ public function copyObject($input): CopyObjectOutput } /** - * ! End of support notice: Beginning October 1, 2025, Amazon S3 will discontinue support for creating new Email Grantee - * ! Access Control Lists (ACL). Email Grantee ACLs created prior to this date will continue to work and remain - * ! accessible through the Amazon Web Services Management Console, Command Line Interface (CLI), SDKs, and REST API. - * ! However, you will no longer be able to create new Email Grantee ACLs. - * ! - * ! This change affects the following Amazon Web Services Regions: US East (N. Virginia) Region, US West (N. - * ! California) Region, US West (Oregon) Region, Asia Pacific (Singapore) Region, Asia Pacific (Sydney) Region, Asia - * ! Pacific (Tokyo) Region, Europe (Ireland) Region, and South America (São Paulo) Region. - * - * ! End of support notice: Beginning October 1, 2025, Amazon S3 will stop returning `DisplayName`. Update your - * ! applications to use canonical IDs (unique identifier for Amazon Web Services accounts), Amazon Web Services account - * ! ID (12 digit identifier) or IAM ARNs (full resource naming) as a direct replacement of `DisplayName`. + * ! End of support notice: As of October 1, 2025, Amazon S3 has discontinued support for Email Grantee Access Control + * ! Lists (ACLs). If you attempt to use an Email Grantee ACL in a request after October 1, 2025, the request will + * ! receive an `HTTP 405` (Method Not Allowed) error. * ! - * ! This change affects the following Amazon Web Services Regions: US East (N. Virginia) Region, US West (N. - * ! California) Region, US West (Oregon) Region, Asia Pacific (Singapore) Region, Asia Pacific (Sydney) Region, Asia - * ! Pacific (Tokyo) Region, Europe (Ireland) Region, and South America (São Paulo) Region. + * ! This change affects the following Amazon Web Services Regions: US East (N. Virginia), US West (N. California), US + * ! West (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Europe (Ireland), and South + * ! America (São Paulo). * * > This action creates an Amazon S3 bucket. To create an Amazon S3 on Outposts bucket, see `CreateBucket` [^1]. * @@ -672,6 +673,9 @@ public function copyObject($input): CopyObjectOutput * - PutObject [^13] * - DeleteBucket [^14] * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html @@ -719,14 +723,13 @@ public function createBucket($input): CreateBucketOutput } /** - * ! End of support notice: Beginning October 1, 2025, Amazon S3 will discontinue support for creating new Email Grantee - * ! Access Control Lists (ACL). Email Grantee ACLs created prior to this date will continue to work and remain - * ! accessible through the Amazon Web Services Management Console, Command Line Interface (CLI), SDKs, and REST API. - * ! However, you will no longer be able to create new Email Grantee ACLs. + * ! End of support notice: As of October 1, 2025, Amazon S3 has discontinued support for Email Grantee Access Control + * ! Lists (ACLs). If you attempt to use an Email Grantee ACL in a request after October 1, 2025, the request will + * ! receive an `HTTP 405` (Method Not Allowed) error. * ! - * ! This change affects the following Amazon Web Services Regions: US East (N. Virginia) Region, US West (N. - * ! California) Region, US West (Oregon) Region, Asia Pacific (Singapore) Region, Asia Pacific (Sydney) Region, Asia - * ! Pacific (Tokyo) Region, Europe (Ireland) Region, and South America (São Paulo) Region. + * ! This change affects the following Amazon Web Services Regions: US East (N. Virginia), US West (N. California), US + * ! West (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Europe (Ireland), and South + * ! America (São Paulo). * * This action initiates a multipart upload and returns an upload ID. This upload ID is used to associate all of the * parts in the specific multipart upload. You specify this upload ID in each of your subsequent upload part requests @@ -875,6 +878,9 @@ public function createBucket($input): CreateBucketOutput * - ListParts [^27] * - ListMultipartUploads [^28] * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config @@ -983,6 +989,9 @@ public function createMultipartUpload($input): CreateMultipartUploadOutput * - CreateBucket [^4] * - DeleteObject [^5] * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html @@ -1021,6 +1030,9 @@ public function deleteBucket($input): Result * - PutBucketCors [^2] * - RESTOPTIONSobject [^3] * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html @@ -1113,6 +1125,12 @@ public function deleteBucketCors($input): Result * * - PutObject [^10] * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * + * > The `If-Match` header is supported for both general purpose and directory buckets. `IfMatchLastModifiedTime` and + * > `IfMatchSize` is only supported for directory buckets. + * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeletingObjectVersions.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeletingObjectsfromVersioningSuspendedBuckets.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html @@ -1165,6 +1183,9 @@ public function deleteObject($input): DeleteObjectOutput * - PutObjectTagging [^2] * - GetObjectTagging [^3] * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html @@ -1261,6 +1282,9 @@ public function deleteObjectTagging($input): DeleteObjectTaggingOutput * - ListParts [^9] * - AbortMultipartUpload [^10] * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html#MultiFactorAuthenticationDelete @@ -1317,6 +1341,9 @@ public function deleteObjects($input): DeleteObjectsOutput * - PutBucketCors [^3] * - DeleteBucketCors [^4] * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html @@ -1372,6 +1399,9 @@ public function getBucketCors($input): GetBucketCorsOutput * - PutBucketEncryption [^6] * - DeleteBucketEncryption [^7] * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-bucket-encryption.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources @@ -1510,6 +1540,9 @@ public function getBucketEncryption($input): GetBucketEncryptionOutput * - ListBuckets [^10] * - GetObjectAcl [^11] * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html#VirtualHostingSpecifyBucket * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html @@ -1565,6 +1598,14 @@ public function getObject($input): GetObjectOutput } /** + * ! End of support notice: Beginning November 21, 2025, Amazon S3 will stop returning `DisplayName`. Update your + * ! applications to use canonical IDs (unique identifier for Amazon Web Services accounts), Amazon Web Services account + * ! ID (12 digit identifier) or IAM ARNs (full resource naming) as a direct replacement of `DisplayName`. + * ! + * ! This change affects the following Amazon Web Services Regions: US East (N. Virginia) Region, US West (N. + * ! California) Region, US West (Oregon) Region, Asia Pacific (Singapore) Region, Asia Pacific (Sydney) Region, Asia + * ! Pacific (Tokyo) Region, Europe (Ireland) Region, and South America (São Paulo) Region. + * * > This operation is not supported for directory buckets. * * Returns the access control list (ACL) of an object. To use this operation, you must have `s3:GetObjectAcl` @@ -1587,6 +1628,9 @@ public function getObject($input): GetObjectOutput * - DeleteObject [^5] * - PutObject [^6] * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#acl-access-policy-permission-mapping * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html @@ -1639,6 +1683,9 @@ public function getObjectAcl($input): GetObjectAclOutput * - GetObjectAttributes [^3] * - PutObjectTagging [^4] * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html @@ -1762,6 +1809,9 @@ public function getObjectTagging($input): GetObjectTaggingOutput * - GetObject [^10] * - GetObjectAttributes [^11] * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html * [^3]: /AmazonS3/latest/userguide/using-with-s3-policy-actions.html @@ -1816,7 +1866,7 @@ public function headObject($input): HeadObjectOutput } /** - * ! End of support notice: Beginning October 1, 2025, Amazon S3 will stop returning `DisplayName`. Update your + * ! End of support notice: Beginning November 21, 2025, Amazon S3 will stop returning `DisplayName`. Update your * ! applications to use canonical IDs (unique identifier for Amazon Web Services accounts), Amazon Web Services account * ! ID (12 digit identifier) or IAM ARNs (full resource naming) as a direct replacement of `DisplayName`. * ! @@ -1837,6 +1887,9 @@ public function headObject($input): HeadObjectOutput * ! account’s buckets. All unpaginated `ListBuckets` requests will be rejected for Amazon Web Services accounts with * ! a general purpose bucket quota greater than 10,000. * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html * * @see https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html @@ -1859,7 +1912,7 @@ public function listBuckets($input = []): ListBucketsOutput } /** - * ! End of support notice: Beginning October 1, 2025, Amazon S3 will stop returning `DisplayName`. Update your + * ! End of support notice: Beginning November 21, 2025, Amazon S3 will stop returning `DisplayName`. Update your * ! applications to use canonical IDs (unique identifier for Amazon Web Services accounts), Amazon Web Services account * ! ID (12 digit identifier) or IAM ARNs (full resource naming) as a direct replacement of `DisplayName`. * ! @@ -1937,6 +1990,9 @@ public function listBuckets($input = []): ListBucketsOutput * - ListParts [^10] * - AbortMultipartUpload [^11] * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html @@ -1974,7 +2030,7 @@ public function listMultipartUploads($input): ListMultipartUploadsOutput } /** - * ! End of support notice: Beginning October 1, 2025, Amazon S3 will stop returning `DisplayName`. Update your + * ! End of support notice: Beginning November 21, 2025, Amazon S3 will stop returning `DisplayName`. Update your * ! applications to use canonical IDs (unique identifier for Amazon Web Services accounts), Amazon Web Services account * ! ID (12 digit identifier) or IAM ARNs (full resource naming) as a direct replacement of `DisplayName`. * ! @@ -2002,6 +2058,9 @@ public function listMultipartUploads($input): ListMultipartUploadsOutput * - PutObject [^3] * - DeleteObject [^4] * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html @@ -2033,6 +2092,14 @@ public function listObjectVersions($input): ListObjectVersionsOutput } /** + * ! End of support notice: Beginning November 21, 2025, Amazon S3 will stop returning `DisplayName`. Update your + * ! applications to use canonical IDs (unique identifier for Amazon Web Services accounts), Amazon Web Services account + * ! ID (12 digit identifier) or IAM ARNs (full resource naming) as a direct replacement of `DisplayName`. + * ! + * ! This change affects the following Amazon Web Services Regions: US East (N. Virginia) Region, US West (N. + * ! California) Region, US West (Oregon) Region, Asia Pacific (Singapore) Region, Asia Pacific (Sydney) Region, Asia + * ! Pacific (Tokyo) Region, Europe (Ireland) Region, and South America (São Paulo) Region. + * * Returns some or all (up to 1,000) of the objects in a bucket with each request. You can use the request parameters as * selection criteria to return a subset of the objects in a bucket. A `200 OK` response can contain valid or invalid * XML. Make sure to design your application to parse the contents of the response and handle it appropriately. For more @@ -2088,6 +2155,9 @@ public function listObjectVersions($input): ListObjectVersionsOutput * - PutObject [^11] * - CreateBucket [^12] * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ListingKeysUsingAPIs.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html @@ -2132,7 +2202,7 @@ public function listObjectsV2($input): ListObjectsV2Output } /** - * ! End of support notice: Beginning October 1, 2025, Amazon S3 will stop returning `DisplayName`. Update your + * ! End of support notice: Beginning November 21, 2025, Amazon S3 will stop returning `DisplayName`. Update your * ! applications to use canonical IDs (unique identifier for Amazon Web Services accounts), Amazon Web Services account * ! ID (12 digit identifier) or IAM ARNs (full resource naming) as a direct replacement of `DisplayName`. * ! @@ -2193,6 +2263,9 @@ public function listObjectsV2($input): ListObjectsV2Output * - GetObjectAttributes [^12] * - ListMultipartUploads [^13] * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html @@ -2342,6 +2415,9 @@ public function objectNotExists($input): ObjectNotExistsWaiter * - DeleteBucketCors [^3] * - RESTOPTIONSobject [^4] * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketCors.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html @@ -2414,6 +2490,9 @@ public function putBucketCors($input): Result * * - GetBucketNotificationConfiguration [^4] * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html * [^3]: https://docs.aws.amazon.com/general/latest/gr/s3.html#limits_s3 @@ -2472,6 +2551,9 @@ public function putBucketNotificationConfiguration($input): Result * - GetBucketTagging [^7] * - DeleteBucketTagging [^8] * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * * [^1]: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/CostAllocTagging.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources @@ -2502,14 +2584,13 @@ public function putBucketTagging($input): Result } /** - * ! End of support notice: Beginning October 1, 2025, Amazon S3 will discontinue support for creating new Email Grantee - * ! Access Control Lists (ACL). Email Grantee ACLs created prior to this date will continue to work and remain - * ! accessible through the Amazon Web Services Management Console, Command Line Interface (CLI), SDKs, and REST API. - * ! However, you will no longer be able to create new Email Grantee ACLs. + * ! End of support notice: As of October 1, 2025, Amazon S3 has discontinued support for Email Grantee Access Control + * ! Lists (ACLs). If you attempt to use an Email Grantee ACL in a request after October 1, 2025, the request will + * ! receive an `HTTP 405` (Method Not Allowed) error. * ! - * ! This change affects the following Amazon Web Services Regions: US East (N. Virginia) Region, US West (N. - * ! California) Region, US West (Oregon) Region, Asia Pacific (Singapore) Region, Asia Pacific (Sydney) Region, Asia - * ! Pacific (Tokyo) Region, Europe (Ireland) Region, and South America (São Paulo) Region. + * ! This change affects the following Amazon Web Services Regions: US East (N. Virginia), US West (N. California), US + * ! West (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Europe (Ireland), and South + * ! America (São Paulo). * * Adds an object to a bucket. * @@ -2597,6 +2678,9 @@ public function putBucketTagging($input): Result * - CopyObject [^10] * - DeleteObject [^11] * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html @@ -2676,6 +2760,14 @@ public function putObject($input): PutObjectOutput } /** + * ! End of support notice: As of October 1, 2025, Amazon S3 has discontinued support for Email Grantee Access Control + * ! Lists (ACLs). If you attempt to use an Email Grantee ACL in a request after October 1, 2025, the request will + * ! receive an `HTTP 405` (Method Not Allowed) error. + * ! + * ! This change affects the following Amazon Web Services Regions: US East (N. Virginia), US West (N. California), US + * ! West (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Europe (Ireland), and South + * ! America (São Paulo). + * * > This operation is not supported for directory buckets. * * Uses the `acl` subresource to set the access control list (ACL) permissions for a new or existing object in an S3 @@ -2786,6 +2878,9 @@ public function putObject($input): PutObjectOutput * - CopyObject [^9] * - GetObject [^10] * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#permissions * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html @@ -2862,6 +2957,9 @@ public function putObjectAcl($input): PutObjectAclOutput * - GetObjectTagging [^6] * - DeleteObjectTagging [^7] * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html * [^3]: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html @@ -2914,6 +3012,9 @@ public function putObjectTagging($input): PutObjectTaggingOutput * - GetBucketPolicyStatus [^5] * - Using Amazon S3 Block Public Access [^6] * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html @@ -3060,6 +3161,9 @@ public function putPublicAccessBlock($input): Result * - ListParts [^18] * - ListMultipartUploads [^19] * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html @@ -3233,6 +3337,9 @@ public function uploadPart($input): UploadPartOutput * - ListParts [^21] * - ListMultipartUploads [^22] * + * ! You must URL encode any signed header values that contain spaces. For example, if your header value is `my + * ! file.txt`, containing two spaces after `my`, you must URL encode this value to `my%20%20file.txt`. + * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html diff --git a/src/Service/S3/src/ValueObject/CopyObjectResult.php b/src/Service/S3/src/ValueObject/CopyObjectResult.php index 3c24c7a4f..5f77cb9e8 100644 --- a/src/Service/S3/src/ValueObject/CopyObjectResult.php +++ b/src/Service/S3/src/ValueObject/CopyObjectResult.php @@ -44,8 +44,8 @@ final class CopyObjectResult private $checksumCrc32; /** - * The Base64 encoded, 32-bit `CRC32C` checksum of the object. This will only be present if the object was uploaded with - * the object. For more information, see Checking object integrity [^1] in the *Amazon S3 User Guide*. + * The Base64 encoded, 32-bit `CRC32C` checksum of the object. This checksum is only present if the checksum was + * uploaded with the object. For more information, see Checking object integrity [^1] in the *Amazon S3 User Guide*. * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html * @@ -66,8 +66,8 @@ final class CopyObjectResult private $checksumCrc64Nvme; /** - * The Base64 encoded, 160-bit `SHA1` digest of the object. This will only be present if the object was uploaded with - * the object. For more information, see Checking object integrity [^1] in the *Amazon S3 User Guide*. + * The Base64 encoded, 160-bit `SHA1` digest of the object. This checksum is only present if the checksum was uploaded + * with the object. For more information, see Checking object integrity [^1] in the *Amazon S3 User Guide*. * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html * @@ -76,8 +76,8 @@ final class CopyObjectResult private $checksumSha1; /** - * The Base64 encoded, 256-bit `SHA256` digest of the object. This will only be present if the object was uploaded with - * the object. For more information, see Checking object integrity [^1] in the *Amazon S3 User Guide*. + * The Base64 encoded, 256-bit `SHA256` digest of the object. This checksum is only present if the checksum was uploaded + * with the object. For more information, see Checking object integrity [^1] in the *Amazon S3 User Guide*. * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html * diff --git a/src/Service/S3/src/ValueObject/CreateBucketConfiguration.php b/src/Service/S3/src/ValueObject/CreateBucketConfiguration.php index 5caea9e10..3b937d6d4 100644 --- a/src/Service/S3/src/ValueObject/CreateBucketConfiguration.php +++ b/src/Service/S3/src/ValueObject/CreateBucketConfiguration.php @@ -56,8 +56,10 @@ final class CreateBucketConfiguration * 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. * - * > This parameter is only supported for S3 directory buckets. For more information, see Using tags with directory - * > buckets [^1]. + * > - This parameter is only supported for S3 directory buckets. For more information, see Using tags with directory + * > buckets [^1]. + * > - You must have the `s3express:TagResource` permission to create a directory bucket with tags. + * > * * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html * diff --git a/src/Service/S3/src/ValueObject/Grantee.php b/src/Service/S3/src/ValueObject/Grantee.php index dab300ad7..04b84c69c 100644 --- a/src/Service/S3/src/ValueObject/Grantee.php +++ b/src/Service/S3/src/ValueObject/Grantee.php @@ -6,6 +6,14 @@ use AsyncAws\S3\Enum\Type; /** + * ! End of support notice: Beginning November 21, 2025, Amazon S3 will stop returning `DisplayName`. Update your + * ! applications to use canonical IDs (unique identifier for Amazon Web Services accounts), Amazon Web Services account + * ! ID (12 digit identifier) or IAM ARNs (full resource naming) as a direct replacement of `DisplayName`. + * ! + * ! This change affects the following Amazon Web Services Regions: US East (N. Virginia) Region, US West (N. + * ! California) Region, US West (Oregon) Region, Asia Pacific (Singapore) Region, Asia Pacific (Sydney) Region, Asia + * ! Pacific (Tokyo) Region, Europe (Ireland) Region, and South America (São Paulo) Region. + * * Container for the person being granted permissions. */ final class Grantee diff --git a/src/Service/S3/src/ValueObject/Owner.php b/src/Service/S3/src/ValueObject/Owner.php index fabe354b7..ac4e05a93 100644 --- a/src/Service/S3/src/ValueObject/Owner.php +++ b/src/Service/S3/src/ValueObject/Owner.php @@ -3,7 +3,7 @@ namespace AsyncAws\S3\ValueObject; /** - * ! End of support notice: Beginning October 1, 2025, Amazon S3 will stop returning `DisplayName`. Update your + * ! End of support notice: Beginning November 21, 2025, Amazon S3 will stop returning `DisplayName`. Update your * ! applications to use canonical IDs (unique identifier for Amazon Web Services accounts), Amazon Web Services account * ! ID (12 digit identifier) or IAM ARNs (full resource naming) as a direct replacement of `DisplayName`. * !