| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137 |
- <?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\ChecksumAlgorithm;
- use AsyncAws\S3\Enum\ObjectCannedACL;
- use AsyncAws\S3\Enum\ObjectLockLegalHoldStatus;
- use AsyncAws\S3\Enum\ObjectLockMode;
- use AsyncAws\S3\Enum\RequestPayer;
- use AsyncAws\S3\Enum\ServerSideEncryption;
- use AsyncAws\S3\Enum\StorageClass;
- final class PutObjectRequest extends Input
- {
- /**
- * The canned ACL to apply to the object. For more information, see Canned ACL [^1].
- *
- * This action is not supported by Amazon S3 on Outposts.
- *
- * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL
- *
- * @var ObjectCannedACL::*|null
- */
- private $acl;
- /**
- * Object data.
- *
- * @var string|resource|callable|iterable|null
- */
- private $body;
- /**
- * The bucket name to which the PUT action was initiated.
- *
- * 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;
- /**
- * Can be used to specify caching behavior along the request/reply chain. For more information, see
- * http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9 [^1].
- *
- * [^1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9
- *
- * @var string|null
- */
- private $cacheControl;
- /**
- * Specifies presentational information for the object. For more information, see
- * https://www.rfc-editor.org/rfc/rfc6266#section-4 [^1].
- *
- * [^1]: https://www.rfc-editor.org/rfc/rfc6266#section-4
- *
- * @var string|null
- */
- private $contentDisposition;
- /**
- * Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to
- * obtain the media-type referenced by the Content-Type header field. For more information, see
- * https://www.rfc-editor.org/rfc/rfc9110.html#field.content-encoding [^1].
- *
- * [^1]: https://www.rfc-editor.org/rfc/rfc9110.html#field.content-encoding
- *
- * @var string|null
- */
- private $contentEncoding;
- /**
- * The language the content is in.
- *
- * @var string|null
- */
- private $contentLanguage;
- /**
- * Size of the body in bytes. This parameter is useful when the size of the body cannot be determined automatically. For
- * more information, see https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length [^1].
- *
- * [^1]: https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length
- *
- * @var string|null
- */
- private $contentLength;
- /**
- * The base64-encoded 128-bit MD5 digest of the message (without the headers) according to RFC 1864. This header can be
- * used as a message integrity check to verify that the data is the same data that was originally sent. Although it is
- * optional, we recommend using the Content-MD5 mechanism as an end-to-end integrity check. For more information about
- * REST request authentication, see REST Authentication [^1].
- *
- * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
- *
- * @var string|null
- */
- private $contentMd5;
- /**
- * A standard MIME type describing the format of the contents. For more information, see
- * https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type [^1].
- *
- * [^1]: https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type
- *
- * @var string|null
- */
- private $contentType;
- /**
- * Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide
- * any additional functionality if not using the SDK. When sending this header, there must be a corresponding
- * `x-amz-checksum` or `x-amz-trailer` header sent. Otherwise, Amazon S3 fails the request with the HTTP status code
- * `400 Bad Request`. For more information, see Checking object integrity [^1] in the *Amazon S3 User Guide*.
- *
- * If you provide an individual checksum, Amazon S3 ignores any provided `ChecksumAlgorithm` parameter.
- *
- * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
- *
- * @var ChecksumAlgorithm::*|null
- */
- private $checksumAlgorithm;
- /**
- * This header can be used as a data integrity check to verify that the data received is the same data that was
- * originally sent. This header specifies the base64-encoded, 32-bit CRC32 checksum of 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
- *
- * @var string|null
- */
- private $checksumCrc32;
- /**
- * This header can be used as a data integrity check to verify that the data received is the same data that was
- * originally sent. This header specifies the base64-encoded, 32-bit CRC32C checksum of 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
- *
- * @var string|null
- */
- private $checksumCrc32C;
- /**
- * This header can be used as a data integrity check to verify that the data received is the same data that was
- * originally sent. This header specifies the base64-encoded, 160-bit SHA-1 digest of 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
- *
- * @var string|null
- */
- private $checksumSha1;
- /**
- * This header can be used as a data integrity check to verify that the data received is the same data that was
- * originally sent. This header specifies the base64-encoded, 256-bit SHA-256 digest of 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
- *
- * @var string|null
- */
- private $checksumSha256;
- /**
- * The date and time at which the object is no longer cacheable. For more information, see
- * https://www.rfc-editor.org/rfc/rfc7234#section-5.3 [^1].
- *
- * [^1]: https://www.rfc-editor.org/rfc/rfc7234#section-5.3
- *
- * @var \DateTimeImmutable|null
- */
- private $expires;
- /**
- * Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.
- *
- * This action is not supported by Amazon S3 on Outposts.
- *
- * @var string|null
- */
- private $grantFullControl;
- /**
- * Allows grantee to read the object data and its metadata.
- *
- * This action is not supported by Amazon S3 on Outposts.
- *
- * @var string|null
- */
- private $grantRead;
- /**
- * Allows grantee to read the object ACL.
- *
- * This action is not supported by Amazon S3 on Outposts.
- *
- * @var string|null
- */
- private $grantReadAcp;
- /**
- * Allows grantee to write the ACL for the applicable object.
- *
- * This action is not supported by Amazon S3 on Outposts.
- *
- * @var string|null
- */
- private $grantWriteAcp;
- /**
- * Object key for which the PUT action was initiated.
- *
- * @required
- *
- * @var string|null
- */
- private $key;
- /**
- * A map of metadata to store with the object in S3.
- *
- * @var array<string, string>|null
- */
- private $metadata;
- /**
- * The server-side encryption algorithm used when storing this object in Amazon S3 (for example, `AES256`, `aws:kms`,
- * `aws:kms:dsse`).
- *
- * @var ServerSideEncryption::*|null
- */
- private $serverSideEncryption;
- /**
- * By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The STANDARD storage class
- * provides high durability and high availability. Depending on performance needs, you can specify a different Storage
- * Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, see Storage Classes [^1] in
- * the *Amazon S3 User Guide*.
- *
- * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html
- *
- * @var StorageClass::*|null
- */
- private $storageClass;
- /**
- * If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or
- * to an external URL. Amazon S3 stores the value of this header in the object metadata. For information about object
- * metadata, see Object Key and Metadata [^1].
- *
- * In the following example, the request header sets the redirect to an object (anotherPage.html) in the same bucket:
- *
- * `x-amz-website-redirect-location: /anotherPage.html`
- *
- * In the following example, the request header sets the object redirect to another website:
- *
- * `x-amz-website-redirect-location: http://www.example.com/`
- *
- * For more information about website hosting in Amazon S3, see Hosting Websites on Amazon S3 [^2] and How to Configure
- * Website Page Redirects [^3].
- *
- * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html
- * [^2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html
- * [^3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html
- *
- * @var string|null
- */
- private $websiteRedirectLocation;
- /**
- * Specifies the algorithm to use to when encrypting the object (for example, AES256).
- *
- * @var string|null
- */
- private $sseCustomerAlgorithm;
- /**
- * Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store
- * the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use
- * with the algorithm specified in the `x-amz-server-side-encryption-customer-algorithm` header.
- *
- * @var string|null
- */
- private $sseCustomerKey;
- /**
- * Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a
- * message integrity check to ensure that the encryption key was transmitted without error.
- *
- * @var string|null
- */
- private $sseCustomerKeyMd5;
- /**
- * If `x-amz-server-side-encryption` has a valid value of `aws:kms` or `aws:kms:dsse`, this header specifies the ID of
- * the Key Management Service (KMS) symmetric encryption customer managed key that was used for the object. If you
- * specify `x-amz-server-side-encryption:aws:kms` or `x-amz-server-side-encryption:aws:kms:dsse`, but do not provide`
- * x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the Amazon Web Services managed key (`aws/s3`) to
- * protect the data. If the KMS key does not exist in the same account that's issuing the command, you must use the full
- * ARN and not just the ID.
- *
- * @var string|null
- */
- private $sseKmsKeyId;
- /**
- * Specifies the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a
- * base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs. This value is stored as object
- * metadata and automatically gets passed on to Amazon Web Services KMS for future `GetObject` or `CopyObject`
- * operations on this object.
- *
- * @var string|null
- */
- private $sseKmsEncryptionContext;
- /**
- * Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Key
- * Management Service (KMS) keys (SSE-KMS). Setting this header to `true` causes Amazon S3 to use an S3 Bucket Key for
- * object encryption with SSE-KMS.
- *
- * Specifying this header with a PUT action doesn’t affect bucket-level settings for S3 Bucket Key.
- *
- * @var bool|null
- */
- private $bucketKeyEnabled;
- /**
- * @var RequestPayer::*|null
- */
- private $requestPayer;
- /**
- * The tag-set for the object. The tag-set must be encoded as URL Query parameters. (For example, "Key1=Value1").
- *
- * @var string|null
- */
- private $tagging;
- /**
- * The Object Lock mode that you want to apply to this object.
- *
- * @var ObjectLockMode::*|null
- */
- private $objectLockMode;
- /**
- * The date and time when you want this object's Object Lock to expire. Must be formatted as a timestamp parameter.
- *
- * @var \DateTimeImmutable|null
- */
- private $objectLockRetainUntilDate;
- /**
- * Specifies whether a legal hold will be applied to this object. For more information about S3 Object Lock, see Object
- * Lock [^1].
- *
- * [^1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
- *
- * @var ObjectLockLegalHoldStatus::*|null
- */
- private $objectLockLegalHoldStatus;
- /**
- * 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{
- * ACL?: ObjectCannedACL::*,
- * Body?: string|resource|callable|iterable,
- * Bucket?: string,
- * CacheControl?: string,
- * ContentDisposition?: string,
- * ContentEncoding?: string,
- * ContentLanguage?: string,
- * ContentLength?: string,
- * ContentMD5?: string,
- * ContentType?: string,
- * ChecksumAlgorithm?: ChecksumAlgorithm::*,
- * ChecksumCRC32?: string,
- * ChecksumCRC32C?: string,
- * ChecksumSHA1?: string,
- * ChecksumSHA256?: string,
- * Expires?: \DateTimeImmutable|string,
- * GrantFullControl?: string,
- * GrantRead?: string,
- * GrantReadACP?: string,
- * GrantWriteACP?: string,
- * Key?: string,
- * Metadata?: array<string, string>,
- * ServerSideEncryption?: ServerSideEncryption::*,
- * StorageClass?: StorageClass::*,
- * WebsiteRedirectLocation?: string,
- * SSECustomerAlgorithm?: string,
- * SSECustomerKey?: string,
- * SSECustomerKeyMD5?: string,
- * SSEKMSKeyId?: string,
- * SSEKMSEncryptionContext?: string,
- * BucketKeyEnabled?: bool,
- * RequestPayer?: RequestPayer::*,
- * Tagging?: string,
- * ObjectLockMode?: ObjectLockMode::*,
- * ObjectLockRetainUntilDate?: \DateTimeImmutable|string,
- * ObjectLockLegalHoldStatus?: ObjectLockLegalHoldStatus::*,
- * ExpectedBucketOwner?: string,
- *
- * @region?: string,
- * } $input
- */
- public function __construct(array $input = [])
- {
- $this->acl = $input['ACL'] ?? null;
- $this->body = $input['Body'] ?? null;
- $this->bucket = $input['Bucket'] ?? null;
- $this->cacheControl = $input['CacheControl'] ?? null;
- $this->contentDisposition = $input['ContentDisposition'] ?? null;
- $this->contentEncoding = $input['ContentEncoding'] ?? null;
- $this->contentLanguage = $input['ContentLanguage'] ?? null;
- $this->contentLength = $input['ContentLength'] ?? null;
- $this->contentMd5 = $input['ContentMD5'] ?? null;
- $this->contentType = $input['ContentType'] ?? null;
- $this->checksumAlgorithm = $input['ChecksumAlgorithm'] ?? null;
- $this->checksumCrc32 = $input['ChecksumCRC32'] ?? null;
- $this->checksumCrc32C = $input['ChecksumCRC32C'] ?? null;
- $this->checksumSha1 = $input['ChecksumSHA1'] ?? null;
- $this->checksumSha256 = $input['ChecksumSHA256'] ?? null;
- $this->expires = !isset($input['Expires']) ? null : ($input['Expires'] instanceof \DateTimeImmutable ? $input['Expires'] : new \DateTimeImmutable($input['Expires']));
- $this->grantFullControl = $input['GrantFullControl'] ?? null;
- $this->grantRead = $input['GrantRead'] ?? null;
- $this->grantReadAcp = $input['GrantReadACP'] ?? null;
- $this->grantWriteAcp = $input['GrantWriteACP'] ?? null;
- $this->key = $input['Key'] ?? null;
- $this->metadata = $input['Metadata'] ?? null;
- $this->serverSideEncryption = $input['ServerSideEncryption'] ?? null;
- $this->storageClass = $input['StorageClass'] ?? null;
- $this->websiteRedirectLocation = $input['WebsiteRedirectLocation'] ?? null;
- $this->sseCustomerAlgorithm = $input['SSECustomerAlgorithm'] ?? null;
- $this->sseCustomerKey = $input['SSECustomerKey'] ?? null;
- $this->sseCustomerKeyMd5 = $input['SSECustomerKeyMD5'] ?? null;
- $this->sseKmsKeyId = $input['SSEKMSKeyId'] ?? null;
- $this->sseKmsEncryptionContext = $input['SSEKMSEncryptionContext'] ?? null;
- $this->bucketKeyEnabled = $input['BucketKeyEnabled'] ?? null;
- $this->requestPayer = $input['RequestPayer'] ?? null;
- $this->tagging = $input['Tagging'] ?? null;
- $this->objectLockMode = $input['ObjectLockMode'] ?? null;
- $this->objectLockRetainUntilDate = !isset($input['ObjectLockRetainUntilDate']) ? null : ($input['ObjectLockRetainUntilDate'] instanceof \DateTimeImmutable ? $input['ObjectLockRetainUntilDate'] : new \DateTimeImmutable($input['ObjectLockRetainUntilDate']));
- $this->objectLockLegalHoldStatus = $input['ObjectLockLegalHoldStatus'] ?? null;
- $this->expectedBucketOwner = $input['ExpectedBucketOwner'] ?? null;
- parent::__construct($input);
- }
- public static function create($input): self
- {
- return $input instanceof self ? $input : new self($input);
- }
- /**
- * @return ObjectCannedACL::*|null
- */
- public function getAcl(): ?string
- {
- return $this->acl;
- }
- /**
- * @return string|resource|callable|iterable|null
- */
- public function getBody()
- {
- return $this->body;
- }
- public function getBucket(): ?string
- {
- return $this->bucket;
- }
- public function getBucketKeyEnabled(): ?bool
- {
- return $this->bucketKeyEnabled;
- }
- public function getCacheControl(): ?string
- {
- return $this->cacheControl;
- }
- /**
- * @return ChecksumAlgorithm::*|null
- */
- public function getChecksumAlgorithm(): ?string
- {
- return $this->checksumAlgorithm;
- }
- public function getChecksumCrc32(): ?string
- {
- return $this->checksumCrc32;
- }
- public function getChecksumCrc32C(): ?string
- {
- return $this->checksumCrc32C;
- }
- public function getChecksumSha1(): ?string
- {
- return $this->checksumSha1;
- }
- public function getChecksumSha256(): ?string
- {
- return $this->checksumSha256;
- }
- public function getContentDisposition(): ?string
- {
- return $this->contentDisposition;
- }
- public function getContentEncoding(): ?string
- {
- return $this->contentEncoding;
- }
- public function getContentLanguage(): ?string
- {
- return $this->contentLanguage;
- }
- public function getContentLength(): ?string
- {
- return $this->contentLength;
- }
- public function getContentMd5(): ?string
- {
- return $this->contentMd5;
- }
- public function getContentType(): ?string
- {
- return $this->contentType;
- }
- public function getExpectedBucketOwner(): ?string
- {
- return $this->expectedBucketOwner;
- }
- public function getExpires(): ?\DateTimeImmutable
- {
- return $this->expires;
- }
- public function getGrantFullControl(): ?string
- {
- return $this->grantFullControl;
- }
- public function getGrantRead(): ?string
- {
- return $this->grantRead;
- }
- public function getGrantReadAcp(): ?string
- {
- return $this->grantReadAcp;
- }
- public function getGrantWriteAcp(): ?string
- {
- return $this->grantWriteAcp;
- }
- public function getKey(): ?string
- {
- return $this->key;
- }
- /**
- * @return array<string, string>
- */
- public function getMetadata(): array
- {
- return $this->metadata ?? [];
- }
- /**
- * @return ObjectLockLegalHoldStatus::*|null
- */
- public function getObjectLockLegalHoldStatus(): ?string
- {
- return $this->objectLockLegalHoldStatus;
- }
- /**
- * @return ObjectLockMode::*|null
- */
- public function getObjectLockMode(): ?string
- {
- return $this->objectLockMode;
- }
- public function getObjectLockRetainUntilDate(): ?\DateTimeImmutable
- {
- return $this->objectLockRetainUntilDate;
- }
- /**
- * @return RequestPayer::*|null
- */
- public function getRequestPayer(): ?string
- {
- return $this->requestPayer;
- }
- /**
- * @return ServerSideEncryption::*|null
- */
- public function getServerSideEncryption(): ?string
- {
- return $this->serverSideEncryption;
- }
- public function getSseCustomerAlgorithm(): ?string
- {
- return $this->sseCustomerAlgorithm;
- }
- public function getSseCustomerKey(): ?string
- {
- return $this->sseCustomerKey;
- }
- public function getSseCustomerKeyMd5(): ?string
- {
- return $this->sseCustomerKeyMd5;
- }
- public function getSseKmsEncryptionContext(): ?string
- {
- return $this->sseKmsEncryptionContext;
- }
- public function getSseKmsKeyId(): ?string
- {
- return $this->sseKmsKeyId;
- }
- /**
- * @return StorageClass::*|null
- */
- public function getStorageClass(): ?string
- {
- return $this->storageClass;
- }
- public function getTagging(): ?string
- {
- return $this->tagging;
- }
- public function getWebsiteRedirectLocation(): ?string
- {
- return $this->websiteRedirectLocation;
- }
- /**
- * @internal
- */
- public function request(): Request
- {
- // Prepare headers
- $headers = [];
- if (null !== $this->acl) {
- if (!ObjectCannedACL::exists($this->acl)) {
- throw new InvalidArgument(sprintf('Invalid parameter "ACL" for "%s". The value "%s" is not a valid "ObjectCannedACL".', __CLASS__, $this->acl));
- }
- $headers['x-amz-acl'] = $this->acl;
- }
- if (null !== $this->cacheControl) {
- $headers['Cache-Control'] = $this->cacheControl;
- }
- if (null !== $this->contentDisposition) {
- $headers['Content-Disposition'] = $this->contentDisposition;
- }
- if (null !== $this->contentEncoding) {
- $headers['Content-Encoding'] = $this->contentEncoding;
- }
- if (null !== $this->contentLanguage) {
- $headers['Content-Language'] = $this->contentLanguage;
- }
- if (null !== $this->contentLength) {
- $headers['Content-Length'] = $this->contentLength;
- }
- if (null !== $this->contentMd5) {
- $headers['Content-MD5'] = $this->contentMd5;
- }
- if (null !== $this->contentType) {
- $headers['Content-Type'] = $this->contentType;
- }
- if (null !== $this->checksumAlgorithm) {
- if (!ChecksumAlgorithm::exists($this->checksumAlgorithm)) {
- throw new InvalidArgument(sprintf('Invalid parameter "ChecksumAlgorithm" for "%s". The value "%s" is not a valid "ChecksumAlgorithm".', __CLASS__, $this->checksumAlgorithm));
- }
- $headers['x-amz-sdk-checksum-algorithm'] = $this->checksumAlgorithm;
- }
- if (null !== $this->checksumCrc32) {
- $headers['x-amz-checksum-crc32'] = $this->checksumCrc32;
- }
- if (null !== $this->checksumCrc32C) {
- $headers['x-amz-checksum-crc32c'] = $this->checksumCrc32C;
- }
- if (null !== $this->checksumSha1) {
- $headers['x-amz-checksum-sha1'] = $this->checksumSha1;
- }
- if (null !== $this->checksumSha256) {
- $headers['x-amz-checksum-sha256'] = $this->checksumSha256;
- }
- if (null !== $this->expires) {
- $headers['Expires'] = $this->expires->setTimezone(new \DateTimeZone('GMT'))->format(\DateTimeInterface::RFC7231);
- }
- if (null !== $this->grantFullControl) {
- $headers['x-amz-grant-full-control'] = $this->grantFullControl;
- }
- if (null !== $this->grantRead) {
- $headers['x-amz-grant-read'] = $this->grantRead;
- }
- if (null !== $this->grantReadAcp) {
- $headers['x-amz-grant-read-acp'] = $this->grantReadAcp;
- }
- if (null !== $this->grantWriteAcp) {
- $headers['x-amz-grant-write-acp'] = $this->grantWriteAcp;
- }
- if (null !== $this->serverSideEncryption) {
- if (!ServerSideEncryption::exists($this->serverSideEncryption)) {
- throw new InvalidArgument(sprintf('Invalid parameter "ServerSideEncryption" for "%s". The value "%s" is not a valid "ServerSideEncryption".', __CLASS__, $this->serverSideEncryption));
- }
- $headers['x-amz-server-side-encryption'] = $this->serverSideEncryption;
- }
- if (null !== $this->storageClass) {
- if (!StorageClass::exists($this->storageClass)) {
- throw new InvalidArgument(sprintf('Invalid parameter "StorageClass" for "%s". The value "%s" is not a valid "StorageClass".', __CLASS__, $this->storageClass));
- }
- $headers['x-amz-storage-class'] = $this->storageClass;
- }
- if (null !== $this->websiteRedirectLocation) {
- $headers['x-amz-website-redirect-location'] = $this->websiteRedirectLocation;
- }
- if (null !== $this->sseCustomerAlgorithm) {
- $headers['x-amz-server-side-encryption-customer-algorithm'] = $this->sseCustomerAlgorithm;
- }
- if (null !== $this->sseCustomerKey) {
- $headers['x-amz-server-side-encryption-customer-key'] = $this->sseCustomerKey;
- }
- if (null !== $this->sseCustomerKeyMd5) {
- $headers['x-amz-server-side-encryption-customer-key-MD5'] = $this->sseCustomerKeyMd5;
- }
- if (null !== $this->sseKmsKeyId) {
- $headers['x-amz-server-side-encryption-aws-kms-key-id'] = $this->sseKmsKeyId;
- }
- if (null !== $this->sseKmsEncryptionContext) {
- $headers['x-amz-server-side-encryption-context'] = $this->sseKmsEncryptionContext;
- }
- if (null !== $this->bucketKeyEnabled) {
- $headers['x-amz-server-side-encryption-bucket-key-enabled'] = $this->bucketKeyEnabled ? 'true' : 'false';
- }
- 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->tagging) {
- $headers['x-amz-tagging'] = $this->tagging;
- }
- if (null !== $this->objectLockMode) {
- if (!ObjectLockMode::exists($this->objectLockMode)) {
- throw new InvalidArgument(sprintf('Invalid parameter "ObjectLockMode" for "%s". The value "%s" is not a valid "ObjectLockMode".', __CLASS__, $this->objectLockMode));
- }
- $headers['x-amz-object-lock-mode'] = $this->objectLockMode;
- }
- if (null !== $this->objectLockRetainUntilDate) {
- $headers['x-amz-object-lock-retain-until-date'] = $this->objectLockRetainUntilDate->format(\DateTimeInterface::ISO8601);
- }
- if (null !== $this->objectLockLegalHoldStatus) {
- if (!ObjectLockLegalHoldStatus::exists($this->objectLockLegalHoldStatus)) {
- throw new InvalidArgument(sprintf('Invalid parameter "ObjectLockLegalHoldStatus" for "%s". The value "%s" is not a valid "ObjectLockLegalHoldStatus".', __CLASS__, $this->objectLockLegalHoldStatus));
- }
- $headers['x-amz-object-lock-legal-hold'] = $this->objectLockLegalHoldStatus;
- }
- if (null !== $this->expectedBucketOwner) {
- $headers['x-amz-expected-bucket-owner'] = $this->expectedBucketOwner;
- }
- if (null !== $this->metadata) {
- foreach ($this->metadata as $key => $value) {
- $headers["x-amz-meta-$key"] = $value;
- }
- }
- // Prepare query
- $query = [];
- // 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 = $this->body ?? '';
- // Return the Request
- return new Request('PUT', $uriString, $query, $headers, StreamFactory::create($body));
- }
- /**
- * @param ObjectCannedACL::*|null $value
- */
- public function setAcl(?string $value): self
- {
- $this->acl = $value;
- return $this;
- }
- /**
- * @param string|resource|callable|iterable|null $value
- */
- public function setBody($value): self
- {
- $this->body = $value;
- return $this;
- }
- public function setBucket(?string $value): self
- {
- $this->bucket = $value;
- return $this;
- }
- public function setBucketKeyEnabled(?bool $value): self
- {
- $this->bucketKeyEnabled = $value;
- return $this;
- }
- public function setCacheControl(?string $value): self
- {
- $this->cacheControl = $value;
- return $this;
- }
- /**
- * @param ChecksumAlgorithm::*|null $value
- */
- public function setChecksumAlgorithm(?string $value): self
- {
- $this->checksumAlgorithm = $value;
- return $this;
- }
- public function setChecksumCrc32(?string $value): self
- {
- $this->checksumCrc32 = $value;
- return $this;
- }
- public function setChecksumCrc32C(?string $value): self
- {
- $this->checksumCrc32C = $value;
- return $this;
- }
- public function setChecksumSha1(?string $value): self
- {
- $this->checksumSha1 = $value;
- return $this;
- }
- public function setChecksumSha256(?string $value): self
- {
- $this->checksumSha256 = $value;
- return $this;
- }
- public function setContentDisposition(?string $value): self
- {
- $this->contentDisposition = $value;
- return $this;
- }
- public function setContentEncoding(?string $value): self
- {
- $this->contentEncoding = $value;
- return $this;
- }
- public function setContentLanguage(?string $value): self
- {
- $this->contentLanguage = $value;
- return $this;
- }
- public function setContentLength(?string $value): self
- {
- $this->contentLength = $value;
- return $this;
- }
- public function setContentMd5(?string $value): self
- {
- $this->contentMd5 = $value;
- return $this;
- }
- public function setContentType(?string $value): self
- {
- $this->contentType = $value;
- return $this;
- }
- public function setExpectedBucketOwner(?string $value): self
- {
- $this->expectedBucketOwner = $value;
- return $this;
- }
- public function setExpires(?\DateTimeImmutable $value): self
- {
- $this->expires = $value;
- return $this;
- }
- public function setGrantFullControl(?string $value): self
- {
- $this->grantFullControl = $value;
- return $this;
- }
- public function setGrantRead(?string $value): self
- {
- $this->grantRead = $value;
- return $this;
- }
- public function setGrantReadAcp(?string $value): self
- {
- $this->grantReadAcp = $value;
- return $this;
- }
- public function setGrantWriteAcp(?string $value): self
- {
- $this->grantWriteAcp = $value;
- return $this;
- }
- public function setKey(?string $value): self
- {
- $this->key = $value;
- return $this;
- }
- /**
- * @param array<string, string> $value
- */
- public function setMetadata(array $value): self
- {
- $this->metadata = $value;
- return $this;
- }
- /**
- * @param ObjectLockLegalHoldStatus::*|null $value
- */
- public function setObjectLockLegalHoldStatus(?string $value): self
- {
- $this->objectLockLegalHoldStatus = $value;
- return $this;
- }
- /**
- * @param ObjectLockMode::*|null $value
- */
- public function setObjectLockMode(?string $value): self
- {
- $this->objectLockMode = $value;
- return $this;
- }
- public function setObjectLockRetainUntilDate(?\DateTimeImmutable $value): self
- {
- $this->objectLockRetainUntilDate = $value;
- return $this;
- }
- /**
- * @param RequestPayer::*|null $value
- */
- public function setRequestPayer(?string $value): self
- {
- $this->requestPayer = $value;
- return $this;
- }
- /**
- * @param ServerSideEncryption::*|null $value
- */
- public function setServerSideEncryption(?string $value): self
- {
- $this->serverSideEncryption = $value;
- return $this;
- }
- public function setSseCustomerAlgorithm(?string $value): self
- {
- $this->sseCustomerAlgorithm = $value;
- return $this;
- }
- public function setSseCustomerKey(?string $value): self
- {
- $this->sseCustomerKey = $value;
- return $this;
- }
- public function setSseCustomerKeyMd5(?string $value): self
- {
- $this->sseCustomerKeyMd5 = $value;
- return $this;
- }
- public function setSseKmsEncryptionContext(?string $value): self
- {
- $this->sseKmsEncryptionContext = $value;
- return $this;
- }
- public function setSseKmsKeyId(?string $value): self
- {
- $this->sseKmsKeyId = $value;
- return $this;
- }
- /**
- * @param StorageClass::*|null $value
- */
- public function setStorageClass(?string $value): self
- {
- $this->storageClass = $value;
- return $this;
- }
- public function setTagging(?string $value): self
- {
- $this->tagging = $value;
- return $this;
- }
- public function setWebsiteRedirectLocation(?string $value): self
- {
- $this->websiteRedirectLocation = $value;
- return $this;
- }
- }
|