| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249 |
- <?php
- namespace AsyncAws\S3\Input;
- use AsyncAws\Core\Exception\InvalidArgument;
- use AsyncAws\Core\Input;
- use AsyncAws\Core\Request;
- use AsyncAws\Core\Stream\StreamFactory;
- use AsyncAws\S3\Enum\RequestPayer;
- final class DeleteObjectRequest extends Input
- {
- /**
- * The bucket name of the bucket containing the object.
- *
- * 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;
- /**
- * Key name of the object to delete.
- *
- * @required
- *
- * @var string|null
- */
- private $key;
- /**
- * The concatenation of the authentication device's serial number, a space, and the value that is displayed on your
- * authentication device. Required to permanently delete a versioned object if versioning is configured with MFA delete
- * enabled.
- *
- * @var string|null
- */
- private $mfa;
- /**
- * VersionId used to reference a specific version of the object.
- *
- * @var string|null
- */
- private $versionId;
- /**
- * @var RequestPayer::*|null
- */
- private $requestPayer;
- /**
- * Indicates whether S3 Object Lock should bypass Governance-mode restrictions to process this operation. To use this
- * header, you must have the `s3:BypassGovernanceRetention` permission.
- *
- * @var bool|null
- */
- private $bypassGovernanceRetention;
- /**
- * 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,
- * MFA?: string,
- * VersionId?: string,
- * RequestPayer?: RequestPayer::*,
- * BypassGovernanceRetention?: bool,
- * ExpectedBucketOwner?: string,
- *
- * @region?: string,
- * } $input
- */
- public function __construct(array $input = [])
- {
- $this->bucket = $input['Bucket'] ?? null;
- $this->key = $input['Key'] ?? null;
- $this->mfa = $input['MFA'] ?? null;
- $this->versionId = $input['VersionId'] ?? null;
- $this->requestPayer = $input['RequestPayer'] ?? null;
- $this->bypassGovernanceRetention = $input['BypassGovernanceRetention'] ?? 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 getBypassGovernanceRetention(): ?bool
- {
- return $this->bypassGovernanceRetention;
- }
- public function getExpectedBucketOwner(): ?string
- {
- return $this->expectedBucketOwner;
- }
- public function getKey(): ?string
- {
- return $this->key;
- }
- public function getMfa(): ?string
- {
- return $this->mfa;
- }
- /**
- * @return RequestPayer::*|null
- */
- public function getRequestPayer(): ?string
- {
- return $this->requestPayer;
- }
- public function getVersionId(): ?string
- {
- return $this->versionId;
- }
- /**
- * @internal
- */
- public function request(): Request
- {
- // Prepare headers
- $headers = ['content-type' => 'application/xml'];
- if (null !== $this->mfa) {
- $headers['x-amz-mfa'] = $this->mfa;
- }
- if (null !== $this->requestPayer) {
- if (!RequestPayer::exists($this->requestPayer)) {
- throw new InvalidArgument(sprintf('Invalid parameter "RequestPayer" for "%s". The value "%s" is not a valid "RequestPayer".', __CLASS__, $this->requestPayer));
- }
- $headers['x-amz-request-payer'] = $this->requestPayer;
- }
- if (null !== $this->bypassGovernanceRetention) {
- $headers['x-amz-bypass-governance-retention'] = $this->bypassGovernanceRetention ? 'true' : 'false';
- }
- 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']));
- // 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 setBypassGovernanceRetention(?bool $value): self
- {
- $this->bypassGovernanceRetention = $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 setMfa(?string $value): self
- {
- $this->mfa = $value;
- return $this;
- }
- /**
- * @param RequestPayer::*|null $value
- */
- public function setRequestPayer(?string $value): self
- {
- $this->requestPayer = $value;
- return $this;
- }
- public function setVersionId(?string $value): self
- {
- $this->versionId = $value;
- return $this;
- }
- }
|