-
-
Notifications
You must be signed in to change notification settings - Fork 132
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Managing object tags (GetObjectTagging/PutObjectTagging/DeleteObjectT…
…agging) (#1453) * Support Put/Delete/Get ObjectTagging * added documentation * fixed tests * updated from master
- Loading branch information
Showing
17 changed files
with
1,411 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
165 changes: 165 additions & 0 deletions
165
src/Service/S3/src/Input/DeleteObjectTaggingRequest.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,165 @@ | ||
<?php | ||
|
||
namespace AsyncAws\S3\Input; | ||
|
||
use AsyncAws\Core\Exception\InvalidArgument; | ||
use AsyncAws\Core\Input; | ||
use AsyncAws\Core\Request; | ||
use AsyncAws\Core\Stream\StreamFactory; | ||
|
||
final class DeleteObjectTaggingRequest extends Input | ||
{ | ||
/** | ||
* The bucket name containing the objects from which to remove the tags. | ||
* | ||
* When using this action with an access point, you must direct requests to the access point hostname. The access point | ||
* hostname takes the form *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com. When using this action | ||
* with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket | ||
* name. For more information about access point ARNs, see Using access points [^1] in the *Amazon S3 User Guide*. | ||
* | ||
* When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 | ||
* on Outposts hostname takes the form `*AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com`. | ||
* When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access | ||
* point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts | ||
* [^2] in the *Amazon S3 User Guide*. | ||
* | ||
* [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html | ||
* [^2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html | ||
* | ||
* @required | ||
* | ||
* @var string|null | ||
*/ | ||
private $bucket; | ||
|
||
/** | ||
* The key that identifies the object in the bucket from which to remove all tags. | ||
* | ||
* @required | ||
* | ||
* @var string|null | ||
*/ | ||
private $key; | ||
|
||
/** | ||
* The versionId of the object that the tag-set will be removed from. | ||
* | ||
* @var string|null | ||
*/ | ||
private $versionId; | ||
|
||
/** | ||
* The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with | ||
* the HTTP status code `403 Forbidden` (access denied). | ||
* | ||
* @var string|null | ||
*/ | ||
private $expectedBucketOwner; | ||
|
||
/** | ||
* @param array{ | ||
* Bucket?: string, | ||
* Key?: string, | ||
* VersionId?: string, | ||
* ExpectedBucketOwner?: string, | ||
* '@region'?: string|null, | ||
* } $input | ||
*/ | ||
public function __construct(array $input = []) | ||
{ | ||
$this->bucket = $input['Bucket'] ?? null; | ||
$this->key = $input['Key'] ?? null; | ||
$this->versionId = $input['VersionId'] ?? null; | ||
$this->expectedBucketOwner = $input['ExpectedBucketOwner'] ?? null; | ||
parent::__construct($input); | ||
} | ||
|
||
public static function create($input): self | ||
{ | ||
return $input instanceof self ? $input : new self($input); | ||
} | ||
|
||
public function getBucket(): ?string | ||
{ | ||
return $this->bucket; | ||
} | ||
|
||
public function getExpectedBucketOwner(): ?string | ||
{ | ||
return $this->expectedBucketOwner; | ||
} | ||
|
||
public function getKey(): ?string | ||
{ | ||
return $this->key; | ||
} | ||
|
||
public function getVersionId(): ?string | ||
{ | ||
return $this->versionId; | ||
} | ||
|
||
/** | ||
* @internal | ||
*/ | ||
public function request(): Request | ||
{ | ||
// Prepare headers | ||
$headers = ['content-type' => 'application/xml']; | ||
if (null !== $this->expectedBucketOwner) { | ||
$headers['x-amz-expected-bucket-owner'] = $this->expectedBucketOwner; | ||
} | ||
|
||
// Prepare query | ||
$query = []; | ||
if (null !== $this->versionId) { | ||
$query['versionId'] = $this->versionId; | ||
} | ||
|
||
// Prepare URI | ||
$uri = []; | ||
if (null === $v = $this->bucket) { | ||
throw new InvalidArgument(sprintf('Missing parameter "Bucket" for "%s". The value cannot be null.', __CLASS__)); | ||
} | ||
$uri['Bucket'] = $v; | ||
if (null === $v = $this->key) { | ||
throw new InvalidArgument(sprintf('Missing parameter "Key" for "%s". The value cannot be null.', __CLASS__)); | ||
} | ||
$uri['Key'] = $v; | ||
$uriString = '/' . rawurlencode($uri['Bucket']) . '/' . str_replace('%2F', '/', rawurlencode($uri['Key'])) . '?tagging'; | ||
|
||
// Prepare Body | ||
$body = ''; | ||
|
||
// Return the Request | ||
return new Request('DELETE', $uriString, $query, $headers, StreamFactory::create($body)); | ||
} | ||
|
||
public function setBucket(?string $value): self | ||
{ | ||
$this->bucket = $value; | ||
|
||
return $this; | ||
} | ||
|
||
public function setExpectedBucketOwner(?string $value): self | ||
{ | ||
$this->expectedBucketOwner = $value; | ||
|
||
return $this; | ||
} | ||
|
||
public function setKey(?string $value): self | ||
{ | ||
$this->key = $value; | ||
|
||
return $this; | ||
} | ||
|
||
public function setVersionId(?string $value): self | ||
{ | ||
$this->versionId = $value; | ||
|
||
return $this; | ||
} | ||
} |
Oops, something went wrong.