{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.S3.WriteGetObjectResponse
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Passes transformed objects to a @GetObject@ operation when using Object
-- Lambda access points. For information about Object Lambda access points,
-- see
-- <https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html Transforming objects with Object Lambda access points>
-- in the /Amazon S3 User Guide/.
--
-- This operation supports metadata that can be returned by
-- <https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html GetObject>,
-- in addition to @RequestRoute@, @RequestToken@, @StatusCode@,
-- @ErrorCode@, and @ErrorMessage@. The @GetObject@ response metadata is
-- supported so that the @WriteGetObjectResponse@ caller, typically an
-- Lambda function, can provide the same metadata when it internally
-- invokes @GetObject@. When @WriteGetObjectResponse@ is called by a
-- customer-owned Lambda function, the metadata returned to the end user
-- @GetObject@ call might differ from what Amazon S3 would normally return.
--
-- You can include any number of metadata headers. When including a
-- metadata header, it should be prefaced with @x-amz-meta@. For example,
-- @x-amz-meta-my-custom-header: MyCustomValue@. The primary use case for
-- this is to forward @GetObject@ metadata.
--
-- Amazon Web Services provides some prebuilt Lambda functions that you can
-- use with S3 Object Lambda to detect and redact personally identifiable
-- information (PII) and decompress S3 objects. These Lambda functions are
-- available in the Amazon Web Services Serverless Application Repository,
-- and can be selected through the Amazon Web Services Management Console
-- when you create your Object Lambda access point.
--
-- Example 1: PII Access Control - This Lambda function uses Amazon
-- Comprehend, a natural language processing (NLP) service using machine
-- learning to find insights and relationships in text. It automatically
-- detects personally identifiable information (PII) such as names,
-- addresses, dates, credit card numbers, and social security numbers from
-- documents in your Amazon S3 bucket.
--
-- Example 2: PII Redaction - This Lambda function uses Amazon Comprehend,
-- a natural language processing (NLP) service using machine learning to
-- find insights and relationships in text. It automatically redacts
-- personally identifiable information (PII) such as names, addresses,
-- dates, credit card numbers, and social security numbers from documents
-- in your Amazon S3 bucket.
--
-- Example 3: Decompression - The Lambda function
-- S3ObjectLambdaDecompression, is equipped to decompress objects stored in
-- S3 in one of six compressed file formats including bzip2, gzip, snappy,
-- zlib, zstandard and ZIP.
--
-- For information on how to view and use these functions, see
-- <https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-examples.html Using Amazon Web Services built Lambda functions>
-- in the /Amazon S3 User Guide/.
module Amazonka.S3.WriteGetObjectResponse
  ( -- * Creating a Request
    WriteGetObjectResponse (..),
    newWriteGetObjectResponse,

    -- * Request Lenses
    writeGetObjectResponse_requestCharged,
    writeGetObjectResponse_partsCount,
    writeGetObjectResponse_eTag,
    writeGetObjectResponse_versionId,
    writeGetObjectResponse_contentLength,
    writeGetObjectResponse_objectLockMode,
    writeGetObjectResponse_expires,
    writeGetObjectResponse_restore,
    writeGetObjectResponse_expiration,
    writeGetObjectResponse_deleteMarker,
    writeGetObjectResponse_sSECustomerAlgorithm,
    writeGetObjectResponse_tagCount,
    writeGetObjectResponse_missingMeta,
    writeGetObjectResponse_bucketKeyEnabled,
    writeGetObjectResponse_acceptRanges,
    writeGetObjectResponse_storageClass,
    writeGetObjectResponse_sSECustomerKeyMD5,
    writeGetObjectResponse_sSEKMSKeyId,
    writeGetObjectResponse_contentEncoding,
    writeGetObjectResponse_errorCode,
    writeGetObjectResponse_objectLockRetainUntilDate,
    writeGetObjectResponse_metadata,
    writeGetObjectResponse_replicationStatus,
    writeGetObjectResponse_cacheControl,
    writeGetObjectResponse_contentLanguage,
    writeGetObjectResponse_errorMessage,
    writeGetObjectResponse_lastModified,
    writeGetObjectResponse_objectLockLegalHoldStatus,
    writeGetObjectResponse_contentDisposition,
    writeGetObjectResponse_contentRange,
    writeGetObjectResponse_serverSideEncryption,
    writeGetObjectResponse_contentType,
    writeGetObjectResponse_statusCode,
    writeGetObjectResponse_requestRoute,
    writeGetObjectResponse_requestToken,
    writeGetObjectResponse_body,

    -- * Destructuring the Response
    WriteGetObjectResponseResponse (..),
    newWriteGetObjectResponseResponse,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.S3.Types

-- | /See:/ 'newWriteGetObjectResponse' smart constructor.
data WriteGetObjectResponse = WriteGetObjectResponse'
  { WriteGetObjectResponse -> Maybe RequestCharged
requestCharged :: Prelude.Maybe RequestCharged,
    -- | The count of parts this object has.
    WriteGetObjectResponse -> Maybe Int
partsCount :: Prelude.Maybe Prelude.Int,
    -- | An opaque identifier assigned by a web server to a specific version of a
    -- resource found at a URL.
    WriteGetObjectResponse -> Maybe ETag
eTag :: Prelude.Maybe ETag,
    -- | An ID used to reference a specific version of the object.
    WriteGetObjectResponse -> Maybe ObjectVersionId
versionId :: Prelude.Maybe ObjectVersionId,
    -- | The size of the content body in bytes.
    WriteGetObjectResponse -> Maybe Integer
contentLength :: Prelude.Maybe Prelude.Integer,
    -- | Indicates whether an object stored in Amazon S3 has Object Lock enabled.
    -- For more information about S3 Object Lock, see
    -- <https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html Object Lock>.
    WriteGetObjectResponse -> Maybe ObjectLockMode
objectLockMode :: Prelude.Maybe ObjectLockMode,
    -- | The date and time at which the object is no longer cacheable.
    WriteGetObjectResponse -> Maybe ISO8601
expires :: Prelude.Maybe Core.ISO8601,
    -- | Provides information about object restoration operation and expiration
    -- time of the restored object copy.
    WriteGetObjectResponse -> Maybe Text
restore :: Prelude.Maybe Prelude.Text,
    -- | If object stored in Amazon S3 expiration is configured (see PUT Bucket
    -- lifecycle) it includes expiry-date and rule-id key-value pairs providing
    -- object expiration information. The value of the rule-id is URL encoded.
    WriteGetObjectResponse -> Maybe Text
expiration :: Prelude.Maybe Prelude.Text,
    -- | Specifies whether an object stored in Amazon S3 is (@true@) or is not
    -- (@false@) a delete marker.
    WriteGetObjectResponse -> Maybe Bool
deleteMarker :: Prelude.Maybe Prelude.Bool,
    -- | Encryption algorithm used if server-side encryption with a
    -- customer-provided encryption key was specified for object stored in
    -- Amazon S3.
    WriteGetObjectResponse -> Maybe Text
sSECustomerAlgorithm :: Prelude.Maybe Prelude.Text,
    -- | The number of tags, if any, on the object.
    WriteGetObjectResponse -> Maybe Int
tagCount :: Prelude.Maybe Prelude.Int,
    -- | Set to the number of metadata entries not returned in @x-amz-meta@
    -- headers. This can happen if you create metadata using an API like SOAP
    -- that supports more flexible metadata than the REST API. For example,
    -- using SOAP, you can create metadata whose values are not legal HTTP
    -- headers.
    WriteGetObjectResponse -> Maybe Int
missingMeta :: Prelude.Maybe Prelude.Int,
    -- | Indicates whether the object stored in Amazon S3 uses an S3 bucket key
    -- for server-side encryption with Amazon Web Services KMS (SSE-KMS).
    WriteGetObjectResponse -> Maybe Bool
bucketKeyEnabled :: Prelude.Maybe Prelude.Bool,
    -- | Indicates that a range of bytes was specified.
    WriteGetObjectResponse -> Maybe Text
acceptRanges :: Prelude.Maybe Prelude.Text,
    -- | The class of storage used to store object in Amazon S3.
    WriteGetObjectResponse -> Maybe StorageClass
storageClass :: Prelude.Maybe StorageClass,
    -- | 128-bit MD5 digest of customer-provided encryption key used in Amazon S3
    -- to encrypt data stored in S3. For more information, see
    -- <https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html Protecting data using server-side encryption with customer-provided encryption keys (SSE-C)>.
    WriteGetObjectResponse -> Maybe Text
sSECustomerKeyMD5 :: Prelude.Maybe Prelude.Text,
    -- | If present, specifies the ID of the Amazon Web Services Key Management
    -- Service (Amazon Web Services KMS) symmetric customer managed key that
    -- was used for stored in Amazon S3 object.
    WriteGetObjectResponse -> Maybe (Sensitive Text)
sSEKMSKeyId :: Prelude.Maybe (Core.Sensitive Prelude.Text),
    -- | 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.
    WriteGetObjectResponse -> Maybe Text
contentEncoding :: Prelude.Maybe Prelude.Text,
    -- | A string that uniquely identifies an error condition. Returned in the
    -- \<Code> tag of the error XML response for a corresponding @GetObject@
    -- call. Cannot be used with a successful @StatusCode@ header or when the
    -- transformed object is provided in the body. All error codes from S3 are
    -- sentence-cased. Regex value is \"^[A-Z][a-zA-Z]+$\".
    WriteGetObjectResponse -> Maybe Text
errorCode :: Prelude.Maybe Prelude.Text,
    -- | The date and time when Object Lock is configured to expire.
    WriteGetObjectResponse -> Maybe ISO8601
objectLockRetainUntilDate :: Prelude.Maybe Core.ISO8601,
    -- | A map of metadata to store with the object in S3.
    WriteGetObjectResponse -> HashMap Text Text
metadata :: Prelude.HashMap Prelude.Text Prelude.Text,
    -- | Indicates if request involves bucket that is either a source or
    -- destination in a Replication rule. For more information about S3
    -- Replication, see
    -- <https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html Replication>.
    WriteGetObjectResponse -> Maybe ReplicationStatus
replicationStatus :: Prelude.Maybe ReplicationStatus,
    -- | Specifies caching behavior along the request\/reply chain.
    WriteGetObjectResponse -> Maybe Text
cacheControl :: Prelude.Maybe Prelude.Text,
    -- | The language the content is in.
    WriteGetObjectResponse -> Maybe Text
contentLanguage :: Prelude.Maybe Prelude.Text,
    -- | Contains a generic description of the error condition. Returned in the
    -- \<Message> tag of the error XML response for a corresponding @GetObject@
    -- call. Cannot be used with a successful @StatusCode@ header or when the
    -- transformed object is provided in body.
    WriteGetObjectResponse -> Maybe Text
errorMessage :: Prelude.Maybe Prelude.Text,
    -- | The date and time that the object was last modified.
    WriteGetObjectResponse -> Maybe ISO8601
lastModified :: Prelude.Maybe Core.ISO8601,
    -- | Indicates whether an object stored in Amazon S3 has an active legal
    -- hold.
    WriteGetObjectResponse -> Maybe ObjectLockLegalHoldStatus
objectLockLegalHoldStatus :: Prelude.Maybe ObjectLockLegalHoldStatus,
    -- | Specifies presentational information for the object.
    WriteGetObjectResponse -> Maybe Text
contentDisposition :: Prelude.Maybe Prelude.Text,
    -- | The portion of the object returned in the response.
    WriteGetObjectResponse -> Maybe Text
contentRange :: Prelude.Maybe Prelude.Text,
    -- | The server-side encryption algorithm used when storing requested object
    -- in Amazon S3 (for example, AES256, aws:kms).
    WriteGetObjectResponse -> Maybe ServerSideEncryption
serverSideEncryption :: Prelude.Maybe ServerSideEncryption,
    -- | A standard MIME type describing the format of the object data.
    WriteGetObjectResponse -> Maybe Text
contentType :: Prelude.Maybe Prelude.Text,
    -- | The integer status code for an HTTP response of a corresponding
    -- @GetObject@ request.
    --
    -- __Status Codes__
    --
    -- -   /200 - OK/
    --
    -- -   /206 - Partial Content/
    --
    -- -   /304 - Not Modified/
    --
    -- -   /400 - Bad Request/
    --
    -- -   /401 - Unauthorized/
    --
    -- -   /403 - Forbidden/
    --
    -- -   /404 - Not Found/
    --
    -- -   /405 - Method Not Allowed/
    --
    -- -   /409 - Conflict/
    --
    -- -   /411 - Length Required/
    --
    -- -   /412 - Precondition Failed/
    --
    -- -   /416 - Range Not Satisfiable/
    --
    -- -   /500 - Internal Server Error/
    --
    -- -   /503 - Service Unavailable/
    WriteGetObjectResponse -> Maybe Int
statusCode :: Prelude.Maybe Prelude.Int,
    -- | Route prefix to the HTTP URL generated.
    WriteGetObjectResponse -> Text
requestRoute :: Prelude.Text,
    -- | A single use encrypted token that maps @WriteGetObjectResponse@ to the
    -- end user @GetObject@ request.
    WriteGetObjectResponse -> Text
requestToken :: Prelude.Text,
    -- | The object data.
    WriteGetObjectResponse -> RequestBody
body :: Core.RequestBody
  }
  deriving (Int -> WriteGetObjectResponse -> ShowS
[WriteGetObjectResponse] -> ShowS
WriteGetObjectResponse -> String
(Int -> WriteGetObjectResponse -> ShowS)
-> (WriteGetObjectResponse -> String)
-> ([WriteGetObjectResponse] -> ShowS)
-> Show WriteGetObjectResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [WriteGetObjectResponse] -> ShowS
$cshowList :: [WriteGetObjectResponse] -> ShowS
show :: WriteGetObjectResponse -> String
$cshow :: WriteGetObjectResponse -> String
showsPrec :: Int -> WriteGetObjectResponse -> ShowS
$cshowsPrec :: Int -> WriteGetObjectResponse -> ShowS
Prelude.Show, (forall x. WriteGetObjectResponse -> Rep WriteGetObjectResponse x)
-> (forall x.
    Rep WriteGetObjectResponse x -> WriteGetObjectResponse)
-> Generic WriteGetObjectResponse
forall x. Rep WriteGetObjectResponse x -> WriteGetObjectResponse
forall x. WriteGetObjectResponse -> Rep WriteGetObjectResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep WriteGetObjectResponse x -> WriteGetObjectResponse
$cfrom :: forall x. WriteGetObjectResponse -> Rep WriteGetObjectResponse x
Prelude.Generic)

-- |
-- Create a value of 'WriteGetObjectResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'requestCharged', 'writeGetObjectResponse_requestCharged' - Undocumented member.
--
-- 'partsCount', 'writeGetObjectResponse_partsCount' - The count of parts this object has.
--
-- 'eTag', 'writeGetObjectResponse_eTag' - An opaque identifier assigned by a web server to a specific version of a
-- resource found at a URL.
--
-- 'versionId', 'writeGetObjectResponse_versionId' - An ID used to reference a specific version of the object.
--
-- 'contentLength', 'writeGetObjectResponse_contentLength' - The size of the content body in bytes.
--
-- 'objectLockMode', 'writeGetObjectResponse_objectLockMode' - Indicates whether an object stored in Amazon S3 has Object Lock enabled.
-- For more information about S3 Object Lock, see
-- <https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html Object Lock>.
--
-- 'expires', 'writeGetObjectResponse_expires' - The date and time at which the object is no longer cacheable.
--
-- 'restore', 'writeGetObjectResponse_restore' - Provides information about object restoration operation and expiration
-- time of the restored object copy.
--
-- 'expiration', 'writeGetObjectResponse_expiration' - If object stored in Amazon S3 expiration is configured (see PUT Bucket
-- lifecycle) it includes expiry-date and rule-id key-value pairs providing
-- object expiration information. The value of the rule-id is URL encoded.
--
-- 'deleteMarker', 'writeGetObjectResponse_deleteMarker' - Specifies whether an object stored in Amazon S3 is (@true@) or is not
-- (@false@) a delete marker.
--
-- 'sSECustomerAlgorithm', 'writeGetObjectResponse_sSECustomerAlgorithm' - Encryption algorithm used if server-side encryption with a
-- customer-provided encryption key was specified for object stored in
-- Amazon S3.
--
-- 'tagCount', 'writeGetObjectResponse_tagCount' - The number of tags, if any, on the object.
--
-- 'missingMeta', 'writeGetObjectResponse_missingMeta' - Set to the number of metadata entries not returned in @x-amz-meta@
-- headers. This can happen if you create metadata using an API like SOAP
-- that supports more flexible metadata than the REST API. For example,
-- using SOAP, you can create metadata whose values are not legal HTTP
-- headers.
--
-- 'bucketKeyEnabled', 'writeGetObjectResponse_bucketKeyEnabled' - Indicates whether the object stored in Amazon S3 uses an S3 bucket key
-- for server-side encryption with Amazon Web Services KMS (SSE-KMS).
--
-- 'acceptRanges', 'writeGetObjectResponse_acceptRanges' - Indicates that a range of bytes was specified.
--
-- 'storageClass', 'writeGetObjectResponse_storageClass' - The class of storage used to store object in Amazon S3.
--
-- 'sSECustomerKeyMD5', 'writeGetObjectResponse_sSECustomerKeyMD5' - 128-bit MD5 digest of customer-provided encryption key used in Amazon S3
-- to encrypt data stored in S3. For more information, see
-- <https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html Protecting data using server-side encryption with customer-provided encryption keys (SSE-C)>.
--
-- 'sSEKMSKeyId', 'writeGetObjectResponse_sSEKMSKeyId' - If present, specifies the ID of the Amazon Web Services Key Management
-- Service (Amazon Web Services KMS) symmetric customer managed key that
-- was used for stored in Amazon S3 object.
--
-- 'contentEncoding', 'writeGetObjectResponse_contentEncoding' - 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.
--
-- 'errorCode', 'writeGetObjectResponse_errorCode' - A string that uniquely identifies an error condition. Returned in the
-- \<Code> tag of the error XML response for a corresponding @GetObject@
-- call. Cannot be used with a successful @StatusCode@ header or when the
-- transformed object is provided in the body. All error codes from S3 are
-- sentence-cased. Regex value is \"^[A-Z][a-zA-Z]+$\".
--
-- 'objectLockRetainUntilDate', 'writeGetObjectResponse_objectLockRetainUntilDate' - The date and time when Object Lock is configured to expire.
--
-- 'metadata', 'writeGetObjectResponse_metadata' - A map of metadata to store with the object in S3.
--
-- 'replicationStatus', 'writeGetObjectResponse_replicationStatus' - Indicates if request involves bucket that is either a source or
-- destination in a Replication rule. For more information about S3
-- Replication, see
-- <https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html Replication>.
--
-- 'cacheControl', 'writeGetObjectResponse_cacheControl' - Specifies caching behavior along the request\/reply chain.
--
-- 'contentLanguage', 'writeGetObjectResponse_contentLanguage' - The language the content is in.
--
-- 'errorMessage', 'writeGetObjectResponse_errorMessage' - Contains a generic description of the error condition. Returned in the
-- \<Message> tag of the error XML response for a corresponding @GetObject@
-- call. Cannot be used with a successful @StatusCode@ header or when the
-- transformed object is provided in body.
--
-- 'lastModified', 'writeGetObjectResponse_lastModified' - The date and time that the object was last modified.
--
-- 'objectLockLegalHoldStatus', 'writeGetObjectResponse_objectLockLegalHoldStatus' - Indicates whether an object stored in Amazon S3 has an active legal
-- hold.
--
-- 'contentDisposition', 'writeGetObjectResponse_contentDisposition' - Specifies presentational information for the object.
--
-- 'contentRange', 'writeGetObjectResponse_contentRange' - The portion of the object returned in the response.
--
-- 'serverSideEncryption', 'writeGetObjectResponse_serverSideEncryption' - The server-side encryption algorithm used when storing requested object
-- in Amazon S3 (for example, AES256, aws:kms).
--
-- 'contentType', 'writeGetObjectResponse_contentType' - A standard MIME type describing the format of the object data.
--
-- 'statusCode', 'writeGetObjectResponse_statusCode' - The integer status code for an HTTP response of a corresponding
-- @GetObject@ request.
--
-- __Status Codes__
--
-- -   /200 - OK/
--
-- -   /206 - Partial Content/
--
-- -   /304 - Not Modified/
--
-- -   /400 - Bad Request/
--
-- -   /401 - Unauthorized/
--
-- -   /403 - Forbidden/
--
-- -   /404 - Not Found/
--
-- -   /405 - Method Not Allowed/
--
-- -   /409 - Conflict/
--
-- -   /411 - Length Required/
--
-- -   /412 - Precondition Failed/
--
-- -   /416 - Range Not Satisfiable/
--
-- -   /500 - Internal Server Error/
--
-- -   /503 - Service Unavailable/
--
-- 'requestRoute', 'writeGetObjectResponse_requestRoute' - Route prefix to the HTTP URL generated.
--
-- 'requestToken', 'writeGetObjectResponse_requestToken' - A single use encrypted token that maps @WriteGetObjectResponse@ to the
-- end user @GetObject@ request.
--
-- 'body', 'writeGetObjectResponse_body' - The object data.
newWriteGetObjectResponse ::
  -- | 'requestRoute'
  Prelude.Text ->
  -- | 'requestToken'
  Prelude.Text ->
  -- | 'body'
  Core.RequestBody ->
  WriteGetObjectResponse
newWriteGetObjectResponse :: Text -> Text -> RequestBody -> WriteGetObjectResponse
newWriteGetObjectResponse
  Text
pRequestRoute_
  Text
pRequestToken_
  RequestBody
pBody_ =
    WriteGetObjectResponse' :: Maybe RequestCharged
-> Maybe Int
-> Maybe ETag
-> Maybe ObjectVersionId
-> Maybe Integer
-> Maybe ObjectLockMode
-> Maybe ISO8601
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe Int
-> Maybe Int
-> Maybe Bool
-> Maybe Text
-> Maybe StorageClass
-> Maybe Text
-> Maybe (Sensitive Text)
-> Maybe Text
-> Maybe Text
-> Maybe ISO8601
-> HashMap Text Text
-> Maybe ReplicationStatus
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe ISO8601
-> Maybe ObjectLockLegalHoldStatus
-> Maybe Text
-> Maybe Text
-> Maybe ServerSideEncryption
-> Maybe Text
-> Maybe Int
-> Text
-> Text
-> RequestBody
-> WriteGetObjectResponse
WriteGetObjectResponse'
      { $sel:requestCharged:WriteGetObjectResponse' :: Maybe RequestCharged
requestCharged =
          Maybe RequestCharged
forall a. Maybe a
Prelude.Nothing,
        $sel:partsCount:WriteGetObjectResponse' :: Maybe Int
partsCount = Maybe Int
forall a. Maybe a
Prelude.Nothing,
        $sel:eTag:WriteGetObjectResponse' :: Maybe ETag
eTag = Maybe ETag
forall a. Maybe a
Prelude.Nothing,
        $sel:versionId:WriteGetObjectResponse' :: Maybe ObjectVersionId
versionId = Maybe ObjectVersionId
forall a. Maybe a
Prelude.Nothing,
        $sel:contentLength:WriteGetObjectResponse' :: Maybe Integer
contentLength = Maybe Integer
forall a. Maybe a
Prelude.Nothing,
        $sel:objectLockMode:WriteGetObjectResponse' :: Maybe ObjectLockMode
objectLockMode = Maybe ObjectLockMode
forall a. Maybe a
Prelude.Nothing,
        $sel:expires:WriteGetObjectResponse' :: Maybe ISO8601
expires = Maybe ISO8601
forall a. Maybe a
Prelude.Nothing,
        $sel:restore:WriteGetObjectResponse' :: Maybe Text
restore = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:expiration:WriteGetObjectResponse' :: Maybe Text
expiration = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:deleteMarker:WriteGetObjectResponse' :: Maybe Bool
deleteMarker = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
        $sel:sSECustomerAlgorithm:WriteGetObjectResponse' :: Maybe Text
sSECustomerAlgorithm = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:tagCount:WriteGetObjectResponse' :: Maybe Int
tagCount = Maybe Int
forall a. Maybe a
Prelude.Nothing,
        $sel:missingMeta:WriteGetObjectResponse' :: Maybe Int
missingMeta = Maybe Int
forall a. Maybe a
Prelude.Nothing,
        $sel:bucketKeyEnabled:WriteGetObjectResponse' :: Maybe Bool
bucketKeyEnabled = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
        $sel:acceptRanges:WriteGetObjectResponse' :: Maybe Text
acceptRanges = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:storageClass:WriteGetObjectResponse' :: Maybe StorageClass
storageClass = Maybe StorageClass
forall a. Maybe a
Prelude.Nothing,
        $sel:sSECustomerKeyMD5:WriteGetObjectResponse' :: Maybe Text
sSECustomerKeyMD5 = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:sSEKMSKeyId:WriteGetObjectResponse' :: Maybe (Sensitive Text)
sSEKMSKeyId = Maybe (Sensitive Text)
forall a. Maybe a
Prelude.Nothing,
        $sel:contentEncoding:WriteGetObjectResponse' :: Maybe Text
contentEncoding = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:errorCode:WriteGetObjectResponse' :: Maybe Text
errorCode = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:objectLockRetainUntilDate:WriteGetObjectResponse' :: Maybe ISO8601
objectLockRetainUntilDate = Maybe ISO8601
forall a. Maybe a
Prelude.Nothing,
        $sel:metadata:WriteGetObjectResponse' :: HashMap Text Text
metadata = HashMap Text Text
forall a. Monoid a => a
Prelude.mempty,
        $sel:replicationStatus:WriteGetObjectResponse' :: Maybe ReplicationStatus
replicationStatus = Maybe ReplicationStatus
forall a. Maybe a
Prelude.Nothing,
        $sel:cacheControl:WriteGetObjectResponse' :: Maybe Text
cacheControl = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:contentLanguage:WriteGetObjectResponse' :: Maybe Text
contentLanguage = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:errorMessage:WriteGetObjectResponse' :: Maybe Text
errorMessage = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:lastModified:WriteGetObjectResponse' :: Maybe ISO8601
lastModified = Maybe ISO8601
forall a. Maybe a
Prelude.Nothing,
        $sel:objectLockLegalHoldStatus:WriteGetObjectResponse' :: Maybe ObjectLockLegalHoldStatus
objectLockLegalHoldStatus = Maybe ObjectLockLegalHoldStatus
forall a. Maybe a
Prelude.Nothing,
        $sel:contentDisposition:WriteGetObjectResponse' :: Maybe Text
contentDisposition = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:contentRange:WriteGetObjectResponse' :: Maybe Text
contentRange = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:serverSideEncryption:WriteGetObjectResponse' :: Maybe ServerSideEncryption
serverSideEncryption = Maybe ServerSideEncryption
forall a. Maybe a
Prelude.Nothing,
        $sel:contentType:WriteGetObjectResponse' :: Maybe Text
contentType = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:statusCode:WriteGetObjectResponse' :: Maybe Int
statusCode = Maybe Int
forall a. Maybe a
Prelude.Nothing,
        $sel:requestRoute:WriteGetObjectResponse' :: Text
requestRoute = Text
pRequestRoute_,
        $sel:requestToken:WriteGetObjectResponse' :: Text
requestToken = Text
pRequestToken_,
        $sel:body:WriteGetObjectResponse' :: RequestBody
body = RequestBody
pBody_
      }

-- | Undocumented member.
writeGetObjectResponse_requestCharged :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe RequestCharged)
writeGetObjectResponse_requestCharged :: (Maybe RequestCharged -> f (Maybe RequestCharged))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_requestCharged = (WriteGetObjectResponse -> Maybe RequestCharged)
-> (WriteGetObjectResponse
    -> Maybe RequestCharged -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe RequestCharged)
     (Maybe RequestCharged)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe RequestCharged
requestCharged :: Maybe RequestCharged
$sel:requestCharged:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe RequestCharged
requestCharged} -> Maybe RequestCharged
requestCharged) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe RequestCharged
a -> WriteGetObjectResponse
s {$sel:requestCharged:WriteGetObjectResponse' :: Maybe RequestCharged
requestCharged = Maybe RequestCharged
a} :: WriteGetObjectResponse)

-- | The count of parts this object has.
writeGetObjectResponse_partsCount :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe Prelude.Int)
writeGetObjectResponse_partsCount :: (Maybe Int -> f (Maybe Int))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_partsCount = (WriteGetObjectResponse -> Maybe Int)
-> (WriteGetObjectResponse -> Maybe Int -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe Int
partsCount :: Maybe Int
$sel:partsCount:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Int
partsCount} -> Maybe Int
partsCount) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe Int
a -> WriteGetObjectResponse
s {$sel:partsCount:WriteGetObjectResponse' :: Maybe Int
partsCount = Maybe Int
a} :: WriteGetObjectResponse)

-- | An opaque identifier assigned by a web server to a specific version of a
-- resource found at a URL.
writeGetObjectResponse_eTag :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe ETag)
writeGetObjectResponse_eTag :: (Maybe ETag -> f (Maybe ETag))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_eTag = (WriteGetObjectResponse -> Maybe ETag)
-> (WriteGetObjectResponse -> Maybe ETag -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe ETag)
     (Maybe ETag)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe ETag
eTag :: Maybe ETag
$sel:eTag:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe ETag
eTag} -> Maybe ETag
eTag) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe ETag
a -> WriteGetObjectResponse
s {$sel:eTag:WriteGetObjectResponse' :: Maybe ETag
eTag = Maybe ETag
a} :: WriteGetObjectResponse)

-- | An ID used to reference a specific version of the object.
writeGetObjectResponse_versionId :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe ObjectVersionId)
writeGetObjectResponse_versionId :: (Maybe ObjectVersionId -> f (Maybe ObjectVersionId))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_versionId = (WriteGetObjectResponse -> Maybe ObjectVersionId)
-> (WriteGetObjectResponse
    -> Maybe ObjectVersionId -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe ObjectVersionId)
     (Maybe ObjectVersionId)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe ObjectVersionId
versionId :: Maybe ObjectVersionId
$sel:versionId:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe ObjectVersionId
versionId} -> Maybe ObjectVersionId
versionId) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe ObjectVersionId
a -> WriteGetObjectResponse
s {$sel:versionId:WriteGetObjectResponse' :: Maybe ObjectVersionId
versionId = Maybe ObjectVersionId
a} :: WriteGetObjectResponse)

-- | The size of the content body in bytes.
writeGetObjectResponse_contentLength :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe Prelude.Integer)
writeGetObjectResponse_contentLength :: (Maybe Integer -> f (Maybe Integer))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_contentLength = (WriteGetObjectResponse -> Maybe Integer)
-> (WriteGetObjectResponse
    -> Maybe Integer -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe Integer)
     (Maybe Integer)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe Integer
contentLength :: Maybe Integer
$sel:contentLength:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Integer
contentLength} -> Maybe Integer
contentLength) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe Integer
a -> WriteGetObjectResponse
s {$sel:contentLength:WriteGetObjectResponse' :: Maybe Integer
contentLength = Maybe Integer
a} :: WriteGetObjectResponse)

-- | Indicates whether an object stored in Amazon S3 has Object Lock enabled.
-- For more information about S3 Object Lock, see
-- <https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html Object Lock>.
writeGetObjectResponse_objectLockMode :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe ObjectLockMode)
writeGetObjectResponse_objectLockMode :: (Maybe ObjectLockMode -> f (Maybe ObjectLockMode))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_objectLockMode = (WriteGetObjectResponse -> Maybe ObjectLockMode)
-> (WriteGetObjectResponse
    -> Maybe ObjectLockMode -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe ObjectLockMode)
     (Maybe ObjectLockMode)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe ObjectLockMode
objectLockMode :: Maybe ObjectLockMode
$sel:objectLockMode:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe ObjectLockMode
objectLockMode} -> Maybe ObjectLockMode
objectLockMode) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe ObjectLockMode
a -> WriteGetObjectResponse
s {$sel:objectLockMode:WriteGetObjectResponse' :: Maybe ObjectLockMode
objectLockMode = Maybe ObjectLockMode
a} :: WriteGetObjectResponse)

-- | The date and time at which the object is no longer cacheable.
writeGetObjectResponse_expires :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe Prelude.UTCTime)
writeGetObjectResponse_expires :: (Maybe UTCTime -> f (Maybe UTCTime))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_expires = (WriteGetObjectResponse -> Maybe ISO8601)
-> (WriteGetObjectResponse
    -> Maybe ISO8601 -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe ISO8601)
     (Maybe ISO8601)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe ISO8601
expires :: Maybe ISO8601
$sel:expires:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe ISO8601
expires} -> Maybe ISO8601
expires) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe ISO8601
a -> WriteGetObjectResponse
s {$sel:expires:WriteGetObjectResponse' :: Maybe ISO8601
expires = Maybe ISO8601
a} :: WriteGetObjectResponse) ((Maybe ISO8601 -> f (Maybe ISO8601))
 -> WriteGetObjectResponse -> f WriteGetObjectResponse)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe ISO8601 -> f (Maybe ISO8601))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> WriteGetObjectResponse
-> f WriteGetObjectResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso ISO8601 ISO8601 UTCTime UTCTime
-> Iso
     (Maybe ISO8601) (Maybe ISO8601) (Maybe UTCTime) (Maybe UTCTime)
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso ISO8601 ISO8601 UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | Provides information about object restoration operation and expiration
-- time of the restored object copy.
writeGetObjectResponse_restore :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe Prelude.Text)
writeGetObjectResponse_restore :: (Maybe Text -> f (Maybe Text))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_restore = (WriteGetObjectResponse -> Maybe Text)
-> (WriteGetObjectResponse -> Maybe Text -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe Text
restore :: Maybe Text
$sel:restore:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
restore} -> Maybe Text
restore) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe Text
a -> WriteGetObjectResponse
s {$sel:restore:WriteGetObjectResponse' :: Maybe Text
restore = Maybe Text
a} :: WriteGetObjectResponse)

-- | If object stored in Amazon S3 expiration is configured (see PUT Bucket
-- lifecycle) it includes expiry-date and rule-id key-value pairs providing
-- object expiration information. The value of the rule-id is URL encoded.
writeGetObjectResponse_expiration :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe Prelude.Text)
writeGetObjectResponse_expiration :: (Maybe Text -> f (Maybe Text))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_expiration = (WriteGetObjectResponse -> Maybe Text)
-> (WriteGetObjectResponse -> Maybe Text -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe Text
expiration :: Maybe Text
$sel:expiration:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
expiration} -> Maybe Text
expiration) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe Text
a -> WriteGetObjectResponse
s {$sel:expiration:WriteGetObjectResponse' :: Maybe Text
expiration = Maybe Text
a} :: WriteGetObjectResponse)

-- | Specifies whether an object stored in Amazon S3 is (@true@) or is not
-- (@false@) a delete marker.
writeGetObjectResponse_deleteMarker :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe Prelude.Bool)
writeGetObjectResponse_deleteMarker :: (Maybe Bool -> f (Maybe Bool))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_deleteMarker = (WriteGetObjectResponse -> Maybe Bool)
-> (WriteGetObjectResponse -> Maybe Bool -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe Bool)
     (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe Bool
deleteMarker :: Maybe Bool
$sel:deleteMarker:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Bool
deleteMarker} -> Maybe Bool
deleteMarker) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe Bool
a -> WriteGetObjectResponse
s {$sel:deleteMarker:WriteGetObjectResponse' :: Maybe Bool
deleteMarker = Maybe Bool
a} :: WriteGetObjectResponse)

-- | Encryption algorithm used if server-side encryption with a
-- customer-provided encryption key was specified for object stored in
-- Amazon S3.
writeGetObjectResponse_sSECustomerAlgorithm :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe Prelude.Text)
writeGetObjectResponse_sSECustomerAlgorithm :: (Maybe Text -> f (Maybe Text))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_sSECustomerAlgorithm = (WriteGetObjectResponse -> Maybe Text)
-> (WriteGetObjectResponse -> Maybe Text -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe Text
sSECustomerAlgorithm :: Maybe Text
$sel:sSECustomerAlgorithm:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
sSECustomerAlgorithm} -> Maybe Text
sSECustomerAlgorithm) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe Text
a -> WriteGetObjectResponse
s {$sel:sSECustomerAlgorithm:WriteGetObjectResponse' :: Maybe Text
sSECustomerAlgorithm = Maybe Text
a} :: WriteGetObjectResponse)

-- | The number of tags, if any, on the object.
writeGetObjectResponse_tagCount :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe Prelude.Int)
writeGetObjectResponse_tagCount :: (Maybe Int -> f (Maybe Int))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_tagCount = (WriteGetObjectResponse -> Maybe Int)
-> (WriteGetObjectResponse -> Maybe Int -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe Int
tagCount :: Maybe Int
$sel:tagCount:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Int
tagCount} -> Maybe Int
tagCount) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe Int
a -> WriteGetObjectResponse
s {$sel:tagCount:WriteGetObjectResponse' :: Maybe Int
tagCount = Maybe Int
a} :: WriteGetObjectResponse)

-- | Set to the number of metadata entries not returned in @x-amz-meta@
-- headers. This can happen if you create metadata using an API like SOAP
-- that supports more flexible metadata than the REST API. For example,
-- using SOAP, you can create metadata whose values are not legal HTTP
-- headers.
writeGetObjectResponse_missingMeta :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe Prelude.Int)
writeGetObjectResponse_missingMeta :: (Maybe Int -> f (Maybe Int))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_missingMeta = (WriteGetObjectResponse -> Maybe Int)
-> (WriteGetObjectResponse -> Maybe Int -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe Int
missingMeta :: Maybe Int
$sel:missingMeta:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Int
missingMeta} -> Maybe Int
missingMeta) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe Int
a -> WriteGetObjectResponse
s {$sel:missingMeta:WriteGetObjectResponse' :: Maybe Int
missingMeta = Maybe Int
a} :: WriteGetObjectResponse)

-- | Indicates whether the object stored in Amazon S3 uses an S3 bucket key
-- for server-side encryption with Amazon Web Services KMS (SSE-KMS).
writeGetObjectResponse_bucketKeyEnabled :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe Prelude.Bool)
writeGetObjectResponse_bucketKeyEnabled :: (Maybe Bool -> f (Maybe Bool))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_bucketKeyEnabled = (WriteGetObjectResponse -> Maybe Bool)
-> (WriteGetObjectResponse -> Maybe Bool -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe Bool)
     (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe Bool
bucketKeyEnabled :: Maybe Bool
$sel:bucketKeyEnabled:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Bool
bucketKeyEnabled} -> Maybe Bool
bucketKeyEnabled) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe Bool
a -> WriteGetObjectResponse
s {$sel:bucketKeyEnabled:WriteGetObjectResponse' :: Maybe Bool
bucketKeyEnabled = Maybe Bool
a} :: WriteGetObjectResponse)

-- | Indicates that a range of bytes was specified.
writeGetObjectResponse_acceptRanges :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe Prelude.Text)
writeGetObjectResponse_acceptRanges :: (Maybe Text -> f (Maybe Text))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_acceptRanges = (WriteGetObjectResponse -> Maybe Text)
-> (WriteGetObjectResponse -> Maybe Text -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe Text
acceptRanges :: Maybe Text
$sel:acceptRanges:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
acceptRanges} -> Maybe Text
acceptRanges) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe Text
a -> WriteGetObjectResponse
s {$sel:acceptRanges:WriteGetObjectResponse' :: Maybe Text
acceptRanges = Maybe Text
a} :: WriteGetObjectResponse)

-- | The class of storage used to store object in Amazon S3.
writeGetObjectResponse_storageClass :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe StorageClass)
writeGetObjectResponse_storageClass :: (Maybe StorageClass -> f (Maybe StorageClass))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_storageClass = (WriteGetObjectResponse -> Maybe StorageClass)
-> (WriteGetObjectResponse
    -> Maybe StorageClass -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe StorageClass)
     (Maybe StorageClass)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe StorageClass
storageClass :: Maybe StorageClass
$sel:storageClass:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe StorageClass
storageClass} -> Maybe StorageClass
storageClass) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe StorageClass
a -> WriteGetObjectResponse
s {$sel:storageClass:WriteGetObjectResponse' :: Maybe StorageClass
storageClass = Maybe StorageClass
a} :: WriteGetObjectResponse)

-- | 128-bit MD5 digest of customer-provided encryption key used in Amazon S3
-- to encrypt data stored in S3. For more information, see
-- <https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html Protecting data using server-side encryption with customer-provided encryption keys (SSE-C)>.
writeGetObjectResponse_sSECustomerKeyMD5 :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe Prelude.Text)
writeGetObjectResponse_sSECustomerKeyMD5 :: (Maybe Text -> f (Maybe Text))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_sSECustomerKeyMD5 = (WriteGetObjectResponse -> Maybe Text)
-> (WriteGetObjectResponse -> Maybe Text -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe Text
sSECustomerKeyMD5 :: Maybe Text
$sel:sSECustomerKeyMD5:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
sSECustomerKeyMD5} -> Maybe Text
sSECustomerKeyMD5) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe Text
a -> WriteGetObjectResponse
s {$sel:sSECustomerKeyMD5:WriteGetObjectResponse' :: Maybe Text
sSECustomerKeyMD5 = Maybe Text
a} :: WriteGetObjectResponse)

-- | If present, specifies the ID of the Amazon Web Services Key Management
-- Service (Amazon Web Services KMS) symmetric customer managed key that
-- was used for stored in Amazon S3 object.
writeGetObjectResponse_sSEKMSKeyId :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe Prelude.Text)
writeGetObjectResponse_sSEKMSKeyId :: (Maybe Text -> f (Maybe Text))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_sSEKMSKeyId = (WriteGetObjectResponse -> Maybe (Sensitive Text))
-> (WriteGetObjectResponse
    -> Maybe (Sensitive Text) -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe (Sensitive Text))
     (Maybe (Sensitive Text))
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe (Sensitive Text)
sSEKMSKeyId :: Maybe (Sensitive Text)
$sel:sSEKMSKeyId:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe (Sensitive Text)
sSEKMSKeyId} -> Maybe (Sensitive Text)
sSEKMSKeyId) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe (Sensitive Text)
a -> WriteGetObjectResponse
s {$sel:sSEKMSKeyId:WriteGetObjectResponse' :: Maybe (Sensitive Text)
sSEKMSKeyId = Maybe (Sensitive Text)
a} :: WriteGetObjectResponse) ((Maybe (Sensitive Text) -> f (Maybe (Sensitive Text)))
 -> WriteGetObjectResponse -> f WriteGetObjectResponse)
-> ((Maybe Text -> f (Maybe Text))
    -> Maybe (Sensitive Text) -> f (Maybe (Sensitive Text)))
-> (Maybe Text -> f (Maybe Text))
-> WriteGetObjectResponse
-> f WriteGetObjectResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso (Sensitive Text) (Sensitive Text) Text Text
-> Iso
     (Maybe (Sensitive Text))
     (Maybe (Sensitive Text))
     (Maybe Text)
     (Maybe Text)
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso (Sensitive Text) (Sensitive Text) Text Text
forall a. Iso' (Sensitive a) a
Core._Sensitive

-- | 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.
writeGetObjectResponse_contentEncoding :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe Prelude.Text)
writeGetObjectResponse_contentEncoding :: (Maybe Text -> f (Maybe Text))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_contentEncoding = (WriteGetObjectResponse -> Maybe Text)
-> (WriteGetObjectResponse -> Maybe Text -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe Text
contentEncoding :: Maybe Text
$sel:contentEncoding:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
contentEncoding} -> Maybe Text
contentEncoding) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe Text
a -> WriteGetObjectResponse
s {$sel:contentEncoding:WriteGetObjectResponse' :: Maybe Text
contentEncoding = Maybe Text
a} :: WriteGetObjectResponse)

-- | A string that uniquely identifies an error condition. Returned in the
-- \<Code> tag of the error XML response for a corresponding @GetObject@
-- call. Cannot be used with a successful @StatusCode@ header or when the
-- transformed object is provided in the body. All error codes from S3 are
-- sentence-cased. Regex value is \"^[A-Z][a-zA-Z]+$\".
writeGetObjectResponse_errorCode :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe Prelude.Text)
writeGetObjectResponse_errorCode :: (Maybe Text -> f (Maybe Text))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_errorCode = (WriteGetObjectResponse -> Maybe Text)
-> (WriteGetObjectResponse -> Maybe Text -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe Text
errorCode :: Maybe Text
$sel:errorCode:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
errorCode} -> Maybe Text
errorCode) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe Text
a -> WriteGetObjectResponse
s {$sel:errorCode:WriteGetObjectResponse' :: Maybe Text
errorCode = Maybe Text
a} :: WriteGetObjectResponse)

-- | The date and time when Object Lock is configured to expire.
writeGetObjectResponse_objectLockRetainUntilDate :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe Prelude.UTCTime)
writeGetObjectResponse_objectLockRetainUntilDate :: (Maybe UTCTime -> f (Maybe UTCTime))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_objectLockRetainUntilDate = (WriteGetObjectResponse -> Maybe ISO8601)
-> (WriteGetObjectResponse
    -> Maybe ISO8601 -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe ISO8601)
     (Maybe ISO8601)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe ISO8601
objectLockRetainUntilDate :: Maybe ISO8601
$sel:objectLockRetainUntilDate:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe ISO8601
objectLockRetainUntilDate} -> Maybe ISO8601
objectLockRetainUntilDate) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe ISO8601
a -> WriteGetObjectResponse
s {$sel:objectLockRetainUntilDate:WriteGetObjectResponse' :: Maybe ISO8601
objectLockRetainUntilDate = Maybe ISO8601
a} :: WriteGetObjectResponse) ((Maybe ISO8601 -> f (Maybe ISO8601))
 -> WriteGetObjectResponse -> f WriteGetObjectResponse)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe ISO8601 -> f (Maybe ISO8601))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> WriteGetObjectResponse
-> f WriteGetObjectResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso ISO8601 ISO8601 UTCTime UTCTime
-> Iso
     (Maybe ISO8601) (Maybe ISO8601) (Maybe UTCTime) (Maybe UTCTime)
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso ISO8601 ISO8601 UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | A map of metadata to store with the object in S3.
writeGetObjectResponse_metadata :: Lens.Lens' WriteGetObjectResponse (Prelude.HashMap Prelude.Text Prelude.Text)
writeGetObjectResponse_metadata :: (HashMap Text Text -> f (HashMap Text Text))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_metadata = (WriteGetObjectResponse -> HashMap Text Text)
-> (WriteGetObjectResponse
    -> HashMap Text Text -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (HashMap Text Text)
     (HashMap Text Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {HashMap Text Text
metadata :: HashMap Text Text
$sel:metadata:WriteGetObjectResponse' :: WriteGetObjectResponse -> HashMap Text Text
metadata} -> HashMap Text Text
metadata) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} HashMap Text Text
a -> WriteGetObjectResponse
s {$sel:metadata:WriteGetObjectResponse' :: HashMap Text Text
metadata = HashMap Text Text
a} :: WriteGetObjectResponse) ((HashMap Text Text -> f (HashMap Text Text))
 -> WriteGetObjectResponse -> f WriteGetObjectResponse)
-> ((HashMap Text Text -> f (HashMap Text Text))
    -> HashMap Text Text -> f (HashMap Text Text))
-> (HashMap Text Text -> f (HashMap Text Text))
-> WriteGetObjectResponse
-> f WriteGetObjectResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. (HashMap Text Text -> f (HashMap Text Text))
-> HashMap Text Text -> f (HashMap Text Text)
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Indicates if request involves bucket that is either a source or
-- destination in a Replication rule. For more information about S3
-- Replication, see
-- <https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html Replication>.
writeGetObjectResponse_replicationStatus :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe ReplicationStatus)
writeGetObjectResponse_replicationStatus :: (Maybe ReplicationStatus -> f (Maybe ReplicationStatus))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_replicationStatus = (WriteGetObjectResponse -> Maybe ReplicationStatus)
-> (WriteGetObjectResponse
    -> Maybe ReplicationStatus -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe ReplicationStatus)
     (Maybe ReplicationStatus)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe ReplicationStatus
replicationStatus :: Maybe ReplicationStatus
$sel:replicationStatus:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe ReplicationStatus
replicationStatus} -> Maybe ReplicationStatus
replicationStatus) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe ReplicationStatus
a -> WriteGetObjectResponse
s {$sel:replicationStatus:WriteGetObjectResponse' :: Maybe ReplicationStatus
replicationStatus = Maybe ReplicationStatus
a} :: WriteGetObjectResponse)

-- | Specifies caching behavior along the request\/reply chain.
writeGetObjectResponse_cacheControl :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe Prelude.Text)
writeGetObjectResponse_cacheControl :: (Maybe Text -> f (Maybe Text))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_cacheControl = (WriteGetObjectResponse -> Maybe Text)
-> (WriteGetObjectResponse -> Maybe Text -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe Text
cacheControl :: Maybe Text
$sel:cacheControl:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
cacheControl} -> Maybe Text
cacheControl) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe Text
a -> WriteGetObjectResponse
s {$sel:cacheControl:WriteGetObjectResponse' :: Maybe Text
cacheControl = Maybe Text
a} :: WriteGetObjectResponse)

-- | The language the content is in.
writeGetObjectResponse_contentLanguage :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe Prelude.Text)
writeGetObjectResponse_contentLanguage :: (Maybe Text -> f (Maybe Text))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_contentLanguage = (WriteGetObjectResponse -> Maybe Text)
-> (WriteGetObjectResponse -> Maybe Text -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe Text
contentLanguage :: Maybe Text
$sel:contentLanguage:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
contentLanguage} -> Maybe Text
contentLanguage) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe Text
a -> WriteGetObjectResponse
s {$sel:contentLanguage:WriteGetObjectResponse' :: Maybe Text
contentLanguage = Maybe Text
a} :: WriteGetObjectResponse)

-- | Contains a generic description of the error condition. Returned in the
-- \<Message> tag of the error XML response for a corresponding @GetObject@
-- call. Cannot be used with a successful @StatusCode@ header or when the
-- transformed object is provided in body.
writeGetObjectResponse_errorMessage :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe Prelude.Text)
writeGetObjectResponse_errorMessage :: (Maybe Text -> f (Maybe Text))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_errorMessage = (WriteGetObjectResponse -> Maybe Text)
-> (WriteGetObjectResponse -> Maybe Text -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe Text
errorMessage :: Maybe Text
$sel:errorMessage:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
errorMessage} -> Maybe Text
errorMessage) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe Text
a -> WriteGetObjectResponse
s {$sel:errorMessage:WriteGetObjectResponse' :: Maybe Text
errorMessage = Maybe Text
a} :: WriteGetObjectResponse)

-- | The date and time that the object was last modified.
writeGetObjectResponse_lastModified :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe Prelude.UTCTime)
writeGetObjectResponse_lastModified :: (Maybe UTCTime -> f (Maybe UTCTime))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_lastModified = (WriteGetObjectResponse -> Maybe ISO8601)
-> (WriteGetObjectResponse
    -> Maybe ISO8601 -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe ISO8601)
     (Maybe ISO8601)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe ISO8601
lastModified :: Maybe ISO8601
$sel:lastModified:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe ISO8601
lastModified} -> Maybe ISO8601
lastModified) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe ISO8601
a -> WriteGetObjectResponse
s {$sel:lastModified:WriteGetObjectResponse' :: Maybe ISO8601
lastModified = Maybe ISO8601
a} :: WriteGetObjectResponse) ((Maybe ISO8601 -> f (Maybe ISO8601))
 -> WriteGetObjectResponse -> f WriteGetObjectResponse)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe ISO8601 -> f (Maybe ISO8601))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> WriteGetObjectResponse
-> f WriteGetObjectResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso ISO8601 ISO8601 UTCTime UTCTime
-> Iso
     (Maybe ISO8601) (Maybe ISO8601) (Maybe UTCTime) (Maybe UTCTime)
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso ISO8601 ISO8601 UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | Indicates whether an object stored in Amazon S3 has an active legal
-- hold.
writeGetObjectResponse_objectLockLegalHoldStatus :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe ObjectLockLegalHoldStatus)
writeGetObjectResponse_objectLockLegalHoldStatus :: (Maybe ObjectLockLegalHoldStatus
 -> f (Maybe ObjectLockLegalHoldStatus))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_objectLockLegalHoldStatus = (WriteGetObjectResponse -> Maybe ObjectLockLegalHoldStatus)
-> (WriteGetObjectResponse
    -> Maybe ObjectLockLegalHoldStatus -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe ObjectLockLegalHoldStatus)
     (Maybe ObjectLockLegalHoldStatus)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe ObjectLockLegalHoldStatus
objectLockLegalHoldStatus :: Maybe ObjectLockLegalHoldStatus
$sel:objectLockLegalHoldStatus:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe ObjectLockLegalHoldStatus
objectLockLegalHoldStatus} -> Maybe ObjectLockLegalHoldStatus
objectLockLegalHoldStatus) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe ObjectLockLegalHoldStatus
a -> WriteGetObjectResponse
s {$sel:objectLockLegalHoldStatus:WriteGetObjectResponse' :: Maybe ObjectLockLegalHoldStatus
objectLockLegalHoldStatus = Maybe ObjectLockLegalHoldStatus
a} :: WriteGetObjectResponse)

-- | Specifies presentational information for the object.
writeGetObjectResponse_contentDisposition :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe Prelude.Text)
writeGetObjectResponse_contentDisposition :: (Maybe Text -> f (Maybe Text))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_contentDisposition = (WriteGetObjectResponse -> Maybe Text)
-> (WriteGetObjectResponse -> Maybe Text -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe Text
contentDisposition :: Maybe Text
$sel:contentDisposition:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
contentDisposition} -> Maybe Text
contentDisposition) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe Text
a -> WriteGetObjectResponse
s {$sel:contentDisposition:WriteGetObjectResponse' :: Maybe Text
contentDisposition = Maybe Text
a} :: WriteGetObjectResponse)

-- | The portion of the object returned in the response.
writeGetObjectResponse_contentRange :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe Prelude.Text)
writeGetObjectResponse_contentRange :: (Maybe Text -> f (Maybe Text))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_contentRange = (WriteGetObjectResponse -> Maybe Text)
-> (WriteGetObjectResponse -> Maybe Text -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe Text
contentRange :: Maybe Text
$sel:contentRange:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
contentRange} -> Maybe Text
contentRange) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe Text
a -> WriteGetObjectResponse
s {$sel:contentRange:WriteGetObjectResponse' :: Maybe Text
contentRange = Maybe Text
a} :: WriteGetObjectResponse)

-- | The server-side encryption algorithm used when storing requested object
-- in Amazon S3 (for example, AES256, aws:kms).
writeGetObjectResponse_serverSideEncryption :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe ServerSideEncryption)
writeGetObjectResponse_serverSideEncryption :: (Maybe ServerSideEncryption -> f (Maybe ServerSideEncryption))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_serverSideEncryption = (WriteGetObjectResponse -> Maybe ServerSideEncryption)
-> (WriteGetObjectResponse
    -> Maybe ServerSideEncryption -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe ServerSideEncryption)
     (Maybe ServerSideEncryption)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe ServerSideEncryption
serverSideEncryption :: Maybe ServerSideEncryption
$sel:serverSideEncryption:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe ServerSideEncryption
serverSideEncryption} -> Maybe ServerSideEncryption
serverSideEncryption) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe ServerSideEncryption
a -> WriteGetObjectResponse
s {$sel:serverSideEncryption:WriteGetObjectResponse' :: Maybe ServerSideEncryption
serverSideEncryption = Maybe ServerSideEncryption
a} :: WriteGetObjectResponse)

-- | A standard MIME type describing the format of the object data.
writeGetObjectResponse_contentType :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe Prelude.Text)
writeGetObjectResponse_contentType :: (Maybe Text -> f (Maybe Text))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_contentType = (WriteGetObjectResponse -> Maybe Text)
-> (WriteGetObjectResponse -> Maybe Text -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe Text
contentType :: Maybe Text
$sel:contentType:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
contentType} -> Maybe Text
contentType) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe Text
a -> WriteGetObjectResponse
s {$sel:contentType:WriteGetObjectResponse' :: Maybe Text
contentType = Maybe Text
a} :: WriteGetObjectResponse)

-- | The integer status code for an HTTP response of a corresponding
-- @GetObject@ request.
--
-- __Status Codes__
--
-- -   /200 - OK/
--
-- -   /206 - Partial Content/
--
-- -   /304 - Not Modified/
--
-- -   /400 - Bad Request/
--
-- -   /401 - Unauthorized/
--
-- -   /403 - Forbidden/
--
-- -   /404 - Not Found/
--
-- -   /405 - Method Not Allowed/
--
-- -   /409 - Conflict/
--
-- -   /411 - Length Required/
--
-- -   /412 - Precondition Failed/
--
-- -   /416 - Range Not Satisfiable/
--
-- -   /500 - Internal Server Error/
--
-- -   /503 - Service Unavailable/
writeGetObjectResponse_statusCode :: Lens.Lens' WriteGetObjectResponse (Prelude.Maybe Prelude.Int)
writeGetObjectResponse_statusCode :: (Maybe Int -> f (Maybe Int))
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_statusCode = (WriteGetObjectResponse -> Maybe Int)
-> (WriteGetObjectResponse -> Maybe Int -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Maybe Int
statusCode :: Maybe Int
$sel:statusCode:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Int
statusCode} -> Maybe Int
statusCode) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Maybe Int
a -> WriteGetObjectResponse
s {$sel:statusCode:WriteGetObjectResponse' :: Maybe Int
statusCode = Maybe Int
a} :: WriteGetObjectResponse)

-- | Route prefix to the HTTP URL generated.
writeGetObjectResponse_requestRoute :: Lens.Lens' WriteGetObjectResponse Prelude.Text
writeGetObjectResponse_requestRoute :: (Text -> f Text)
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_requestRoute = (WriteGetObjectResponse -> Text)
-> (WriteGetObjectResponse -> Text -> WriteGetObjectResponse)
-> Lens WriteGetObjectResponse WriteGetObjectResponse Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Text
requestRoute :: Text
$sel:requestRoute:WriteGetObjectResponse' :: WriteGetObjectResponse -> Text
requestRoute} -> Text
requestRoute) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Text
a -> WriteGetObjectResponse
s {$sel:requestRoute:WriteGetObjectResponse' :: Text
requestRoute = Text
a} :: WriteGetObjectResponse)

-- | A single use encrypted token that maps @WriteGetObjectResponse@ to the
-- end user @GetObject@ request.
writeGetObjectResponse_requestToken :: Lens.Lens' WriteGetObjectResponse Prelude.Text
writeGetObjectResponse_requestToken :: (Text -> f Text)
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_requestToken = (WriteGetObjectResponse -> Text)
-> (WriteGetObjectResponse -> Text -> WriteGetObjectResponse)
-> Lens WriteGetObjectResponse WriteGetObjectResponse Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {Text
requestToken :: Text
$sel:requestToken:WriteGetObjectResponse' :: WriteGetObjectResponse -> Text
requestToken} -> Text
requestToken) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} Text
a -> WriteGetObjectResponse
s {$sel:requestToken:WriteGetObjectResponse' :: Text
requestToken = Text
a} :: WriteGetObjectResponse)

-- | The object data.
writeGetObjectResponse_body :: Lens.Lens' WriteGetObjectResponse Core.RequestBody
writeGetObjectResponse_body :: (RequestBody -> f RequestBody)
-> WriteGetObjectResponse -> f WriteGetObjectResponse
writeGetObjectResponse_body = (WriteGetObjectResponse -> RequestBody)
-> (WriteGetObjectResponse
    -> RequestBody -> WriteGetObjectResponse)
-> Lens
     WriteGetObjectResponse
     WriteGetObjectResponse
     RequestBody
     RequestBody
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WriteGetObjectResponse' {RequestBody
body :: RequestBody
$sel:body:WriteGetObjectResponse' :: WriteGetObjectResponse -> RequestBody
body} -> RequestBody
body) (\s :: WriteGetObjectResponse
s@WriteGetObjectResponse' {} RequestBody
a -> WriteGetObjectResponse
s {$sel:body:WriteGetObjectResponse' :: RequestBody
body = RequestBody
a} :: WriteGetObjectResponse)

instance Core.AWSRequest WriteGetObjectResponse where
  type
    AWSResponse WriteGetObjectResponse =
      WriteGetObjectResponseResponse
  request :: WriteGetObjectResponse -> Request WriteGetObjectResponse
request =
    Request WriteGetObjectResponse -> Request WriteGetObjectResponse
forall a. Request a -> Request a
Request.s3vhost
      (Request WriteGetObjectResponse -> Request WriteGetObjectResponse)
-> (WriteGetObjectResponse -> Request WriteGetObjectResponse)
-> WriteGetObjectResponse
-> Request WriteGetObjectResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. Service -> WriteGetObjectResponse -> Request WriteGetObjectResponse
forall a. (ToRequest a, ToBody a) => Service -> a -> Request a
Request.postBody Service
defaultService
  response :: Logger
-> Service
-> Proxy WriteGetObjectResponse
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse WriteGetObjectResponse)))
response =
    AWSResponse WriteGetObjectResponse
-> Logger
-> Service
-> Proxy WriteGetObjectResponse
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse WriteGetObjectResponse)))
forall (m :: * -> *) a.
MonadResource m =>
AWSResponse a
-> Logger
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveNull
      AWSResponse WriteGetObjectResponse
WriteGetObjectResponseResponse
WriteGetObjectResponseResponse'

instance Core.ToBody WriteGetObjectResponse where
  toBody :: WriteGetObjectResponse -> RequestBody
toBody WriteGetObjectResponse' {Maybe Bool
Maybe Int
Maybe Integer
Maybe Text
Maybe (Sensitive Text)
Maybe ISO8601
Maybe ObjectVersionId
Maybe ETag
Maybe ObjectLockLegalHoldStatus
Maybe ObjectLockMode
Maybe ReplicationStatus
Maybe RequestCharged
Maybe ServerSideEncryption
Maybe StorageClass
Text
HashMap Text Text
RequestBody
body :: RequestBody
requestToken :: Text
requestRoute :: Text
statusCode :: Maybe Int
contentType :: Maybe Text
serverSideEncryption :: Maybe ServerSideEncryption
contentRange :: Maybe Text
contentDisposition :: Maybe Text
objectLockLegalHoldStatus :: Maybe ObjectLockLegalHoldStatus
lastModified :: Maybe ISO8601
errorMessage :: Maybe Text
contentLanguage :: Maybe Text
cacheControl :: Maybe Text
replicationStatus :: Maybe ReplicationStatus
metadata :: HashMap Text Text
objectLockRetainUntilDate :: Maybe ISO8601
errorCode :: Maybe Text
contentEncoding :: Maybe Text
sSEKMSKeyId :: Maybe (Sensitive Text)
sSECustomerKeyMD5 :: Maybe Text
storageClass :: Maybe StorageClass
acceptRanges :: Maybe Text
bucketKeyEnabled :: Maybe Bool
missingMeta :: Maybe Int
tagCount :: Maybe Int
sSECustomerAlgorithm :: Maybe Text
deleteMarker :: Maybe Bool
expiration :: Maybe Text
restore :: Maybe Text
expires :: Maybe ISO8601
objectLockMode :: Maybe ObjectLockMode
contentLength :: Maybe Integer
versionId :: Maybe ObjectVersionId
eTag :: Maybe ETag
partsCount :: Maybe Int
requestCharged :: Maybe RequestCharged
$sel:body:WriteGetObjectResponse' :: WriteGetObjectResponse -> RequestBody
$sel:requestToken:WriteGetObjectResponse' :: WriteGetObjectResponse -> Text
$sel:requestRoute:WriteGetObjectResponse' :: WriteGetObjectResponse -> Text
$sel:statusCode:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Int
$sel:contentType:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
$sel:serverSideEncryption:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe ServerSideEncryption
$sel:contentRange:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
$sel:contentDisposition:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
$sel:objectLockLegalHoldStatus:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe ObjectLockLegalHoldStatus
$sel:lastModified:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe ISO8601
$sel:errorMessage:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
$sel:contentLanguage:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
$sel:cacheControl:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
$sel:replicationStatus:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe ReplicationStatus
$sel:metadata:WriteGetObjectResponse' :: WriteGetObjectResponse -> HashMap Text Text
$sel:objectLockRetainUntilDate:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe ISO8601
$sel:errorCode:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
$sel:contentEncoding:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
$sel:sSEKMSKeyId:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe (Sensitive Text)
$sel:sSECustomerKeyMD5:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
$sel:storageClass:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe StorageClass
$sel:acceptRanges:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
$sel:bucketKeyEnabled:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Bool
$sel:missingMeta:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Int
$sel:tagCount:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Int
$sel:sSECustomerAlgorithm:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
$sel:deleteMarker:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Bool
$sel:expiration:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
$sel:restore:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
$sel:expires:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe ISO8601
$sel:objectLockMode:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe ObjectLockMode
$sel:contentLength:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Integer
$sel:versionId:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe ObjectVersionId
$sel:eTag:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe ETag
$sel:partsCount:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Int
$sel:requestCharged:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe RequestCharged
..} = RequestBody -> RequestBody
forall a. ToBody a => a -> RequestBody
Core.toBody RequestBody
body

instance Core.ToHeaders WriteGetObjectResponse where
  toHeaders :: WriteGetObjectResponse -> [Header]
toHeaders WriteGetObjectResponse' {Maybe Bool
Maybe Int
Maybe Integer
Maybe Text
Maybe (Sensitive Text)
Maybe ISO8601
Maybe ObjectVersionId
Maybe ETag
Maybe ObjectLockLegalHoldStatus
Maybe ObjectLockMode
Maybe ReplicationStatus
Maybe RequestCharged
Maybe ServerSideEncryption
Maybe StorageClass
Text
HashMap Text Text
RequestBody
body :: RequestBody
requestToken :: Text
requestRoute :: Text
statusCode :: Maybe Int
contentType :: Maybe Text
serverSideEncryption :: Maybe ServerSideEncryption
contentRange :: Maybe Text
contentDisposition :: Maybe Text
objectLockLegalHoldStatus :: Maybe ObjectLockLegalHoldStatus
lastModified :: Maybe ISO8601
errorMessage :: Maybe Text
contentLanguage :: Maybe Text
cacheControl :: Maybe Text
replicationStatus :: Maybe ReplicationStatus
metadata :: HashMap Text Text
objectLockRetainUntilDate :: Maybe ISO8601
errorCode :: Maybe Text
contentEncoding :: Maybe Text
sSEKMSKeyId :: Maybe (Sensitive Text)
sSECustomerKeyMD5 :: Maybe Text
storageClass :: Maybe StorageClass
acceptRanges :: Maybe Text
bucketKeyEnabled :: Maybe Bool
missingMeta :: Maybe Int
tagCount :: Maybe Int
sSECustomerAlgorithm :: Maybe Text
deleteMarker :: Maybe Bool
expiration :: Maybe Text
restore :: Maybe Text
expires :: Maybe ISO8601
objectLockMode :: Maybe ObjectLockMode
contentLength :: Maybe Integer
versionId :: Maybe ObjectVersionId
eTag :: Maybe ETag
partsCount :: Maybe Int
requestCharged :: Maybe RequestCharged
$sel:body:WriteGetObjectResponse' :: WriteGetObjectResponse -> RequestBody
$sel:requestToken:WriteGetObjectResponse' :: WriteGetObjectResponse -> Text
$sel:requestRoute:WriteGetObjectResponse' :: WriteGetObjectResponse -> Text
$sel:statusCode:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Int
$sel:contentType:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
$sel:serverSideEncryption:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe ServerSideEncryption
$sel:contentRange:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
$sel:contentDisposition:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
$sel:objectLockLegalHoldStatus:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe ObjectLockLegalHoldStatus
$sel:lastModified:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe ISO8601
$sel:errorMessage:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
$sel:contentLanguage:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
$sel:cacheControl:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
$sel:replicationStatus:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe ReplicationStatus
$sel:metadata:WriteGetObjectResponse' :: WriteGetObjectResponse -> HashMap Text Text
$sel:objectLockRetainUntilDate:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe ISO8601
$sel:errorCode:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
$sel:contentEncoding:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
$sel:sSEKMSKeyId:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe (Sensitive Text)
$sel:sSECustomerKeyMD5:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
$sel:storageClass:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe StorageClass
$sel:acceptRanges:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
$sel:bucketKeyEnabled:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Bool
$sel:missingMeta:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Int
$sel:tagCount:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Int
$sel:sSECustomerAlgorithm:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
$sel:deleteMarker:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Bool
$sel:expiration:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
$sel:restore:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Text
$sel:expires:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe ISO8601
$sel:objectLockMode:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe ObjectLockMode
$sel:contentLength:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Integer
$sel:versionId:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe ObjectVersionId
$sel:eTag:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe ETag
$sel:partsCount:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe Int
$sel:requestCharged:WriteGetObjectResponse' :: WriteGetObjectResponse -> Maybe RequestCharged
..} =
    [[Header]] -> [Header]
forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ HeaderName
"x-amz-fwd-header-x-amz-request-charged"
          HeaderName -> Maybe RequestCharged -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe RequestCharged
requestCharged,
        HeaderName
"x-amz-fwd-header-x-amz-mp-parts-count"
          HeaderName -> Maybe Int -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe Int
partsCount,
        HeaderName
"x-amz-fwd-header-ETag" HeaderName -> Maybe ETag -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe ETag
eTag,
        HeaderName
"x-amz-fwd-header-x-amz-version-id"
          HeaderName -> Maybe ObjectVersionId -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe ObjectVersionId
versionId,
        HeaderName
"Content-Length" HeaderName -> Maybe Integer -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe Integer
contentLength,
        HeaderName
"x-amz-fwd-header-x-amz-object-lock-mode"
          HeaderName -> Maybe ObjectLockMode -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe ObjectLockMode
objectLockMode,
        HeaderName
"x-amz-fwd-header-Expires" HeaderName -> Maybe ISO8601 -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe ISO8601
expires,
        HeaderName
"x-amz-fwd-header-x-amz-restore" HeaderName -> Maybe Text -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe Text
restore,
        HeaderName
"x-amz-fwd-header-x-amz-expiration"
          HeaderName -> Maybe Text -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe Text
expiration,
        HeaderName
"x-amz-fwd-header-x-amz-delete-marker"
          HeaderName -> Maybe Bool -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe Bool
deleteMarker,
        HeaderName
"x-amz-fwd-header-x-amz-server-side-encryption-customer-algorithm"
          HeaderName -> Maybe Text -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe Text
sSECustomerAlgorithm,
        HeaderName
"x-amz-fwd-header-x-amz-tagging-count"
          HeaderName -> Maybe Int -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe Int
tagCount,
        HeaderName
"x-amz-fwd-header-x-amz-missing-meta"
          HeaderName -> Maybe Int -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe Int
missingMeta,
        HeaderName
"x-amz-fwd-header-x-amz-server-side-encryption-bucket-key-enabled"
          HeaderName -> Maybe Bool -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe Bool
bucketKeyEnabled,
        HeaderName
"x-amz-fwd-header-accept-ranges"
          HeaderName -> Maybe Text -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe Text
acceptRanges,
        HeaderName
"x-amz-fwd-header-x-amz-storage-class"
          HeaderName -> Maybe StorageClass -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe StorageClass
storageClass,
        HeaderName
"x-amz-fwd-header-x-amz-server-side-encryption-customer-key-MD5"
          HeaderName -> Maybe Text -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe Text
sSECustomerKeyMD5,
        HeaderName
"x-amz-fwd-header-x-amz-server-side-encryption-aws-kms-key-id"
          HeaderName -> Maybe (Sensitive Text) -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe (Sensitive Text)
sSEKMSKeyId,
        HeaderName
"x-amz-fwd-header-Content-Encoding"
          HeaderName -> Maybe Text -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe Text
contentEncoding,
        HeaderName
"x-amz-fwd-error-code" HeaderName -> Maybe Text -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe Text
errorCode,
        HeaderName
"x-amz-fwd-header-x-amz-object-lock-retain-until-date"
          HeaderName -> Maybe ISO8601 -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe ISO8601
objectLockRetainUntilDate,
        HeaderName
"x-amz-meta-" HeaderName -> HashMap Text Text -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# HashMap Text Text
metadata,
        HeaderName
"x-amz-fwd-header-x-amz-replication-status"
          HeaderName -> Maybe ReplicationStatus -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe ReplicationStatus
replicationStatus,
        HeaderName
"x-amz-fwd-header-Cache-Control"
          HeaderName -> Maybe Text -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe Text
cacheControl,
        HeaderName
"x-amz-fwd-header-Content-Language"
          HeaderName -> Maybe Text -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe Text
contentLanguage,
        HeaderName
"x-amz-fwd-error-message" HeaderName -> Maybe Text -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe Text
errorMessage,
        HeaderName
"x-amz-fwd-header-Last-Modified"
          HeaderName -> Maybe ISO8601 -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe ISO8601
lastModified,
        HeaderName
"x-amz-fwd-header-x-amz-object-lock-legal-hold"
          HeaderName -> Maybe ObjectLockLegalHoldStatus -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe ObjectLockLegalHoldStatus
objectLockLegalHoldStatus,
        HeaderName
"x-amz-fwd-header-Content-Disposition"
          HeaderName -> Maybe Text -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe Text
contentDisposition,
        HeaderName
"x-amz-fwd-header-Content-Range"
          HeaderName -> Maybe Text -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe Text
contentRange,
        HeaderName
"x-amz-fwd-header-x-amz-server-side-encryption"
          HeaderName -> Maybe ServerSideEncryption -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe ServerSideEncryption
serverSideEncryption,
        HeaderName
"x-amz-fwd-header-Content-Type" HeaderName -> Maybe Text -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe Text
contentType,
        HeaderName
"x-amz-fwd-status" HeaderName -> Maybe Int -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Maybe Int
statusCode,
        HeaderName
"x-amz-request-route" HeaderName -> Text -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Text
requestRoute,
        HeaderName
"x-amz-request-token" HeaderName -> Text -> [Header]
forall a. ToHeader a => HeaderName -> a -> [Header]
Core.=# Text
requestToken
      ]

instance Core.ToPath WriteGetObjectResponse where
  toPath :: WriteGetObjectResponse -> ByteString
toPath = ByteString -> WriteGetObjectResponse -> ByteString
forall a b. a -> b -> a
Prelude.const ByteString
"/WriteGetObjectResponse"

instance Core.ToQuery WriteGetObjectResponse where
  toQuery :: WriteGetObjectResponse -> QueryString
toQuery = QueryString -> WriteGetObjectResponse -> QueryString
forall a b. a -> b -> a
Prelude.const QueryString
forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newWriteGetObjectResponseResponse' smart constructor.
data WriteGetObjectResponseResponse = WriteGetObjectResponseResponse'
  {
  }
  deriving (WriteGetObjectResponseResponse
-> WriteGetObjectResponseResponse -> Bool
(WriteGetObjectResponseResponse
 -> WriteGetObjectResponseResponse -> Bool)
-> (WriteGetObjectResponseResponse
    -> WriteGetObjectResponseResponse -> Bool)
-> Eq WriteGetObjectResponseResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: WriteGetObjectResponseResponse
-> WriteGetObjectResponseResponse -> Bool
$c/= :: WriteGetObjectResponseResponse
-> WriteGetObjectResponseResponse -> Bool
== :: WriteGetObjectResponseResponse
-> WriteGetObjectResponseResponse -> Bool
$c== :: WriteGetObjectResponseResponse
-> WriteGetObjectResponseResponse -> Bool
Prelude.Eq, ReadPrec [WriteGetObjectResponseResponse]
ReadPrec WriteGetObjectResponseResponse
Int -> ReadS WriteGetObjectResponseResponse
ReadS [WriteGetObjectResponseResponse]
(Int -> ReadS WriteGetObjectResponseResponse)
-> ReadS [WriteGetObjectResponseResponse]
-> ReadPrec WriteGetObjectResponseResponse
-> ReadPrec [WriteGetObjectResponseResponse]
-> Read WriteGetObjectResponseResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [WriteGetObjectResponseResponse]
$creadListPrec :: ReadPrec [WriteGetObjectResponseResponse]
readPrec :: ReadPrec WriteGetObjectResponseResponse
$creadPrec :: ReadPrec WriteGetObjectResponseResponse
readList :: ReadS [WriteGetObjectResponseResponse]
$creadList :: ReadS [WriteGetObjectResponseResponse]
readsPrec :: Int -> ReadS WriteGetObjectResponseResponse
$creadsPrec :: Int -> ReadS WriteGetObjectResponseResponse
Prelude.Read, Int -> WriteGetObjectResponseResponse -> ShowS
[WriteGetObjectResponseResponse] -> ShowS
WriteGetObjectResponseResponse -> String
(Int -> WriteGetObjectResponseResponse -> ShowS)
-> (WriteGetObjectResponseResponse -> String)
-> ([WriteGetObjectResponseResponse] -> ShowS)
-> Show WriteGetObjectResponseResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [WriteGetObjectResponseResponse] -> ShowS
$cshowList :: [WriteGetObjectResponseResponse] -> ShowS
show :: WriteGetObjectResponseResponse -> String
$cshow :: WriteGetObjectResponseResponse -> String
showsPrec :: Int -> WriteGetObjectResponseResponse -> ShowS
$cshowsPrec :: Int -> WriteGetObjectResponseResponse -> ShowS
Prelude.Show, (forall x.
 WriteGetObjectResponseResponse
 -> Rep WriteGetObjectResponseResponse x)
-> (forall x.
    Rep WriteGetObjectResponseResponse x
    -> WriteGetObjectResponseResponse)
-> Generic WriteGetObjectResponseResponse
forall x.
Rep WriteGetObjectResponseResponse x
-> WriteGetObjectResponseResponse
forall x.
WriteGetObjectResponseResponse
-> Rep WriteGetObjectResponseResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep WriteGetObjectResponseResponse x
-> WriteGetObjectResponseResponse
$cfrom :: forall x.
WriteGetObjectResponseResponse
-> Rep WriteGetObjectResponseResponse x
Prelude.Generic)

-- |
-- Create a value of 'WriteGetObjectResponseResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
newWriteGetObjectResponseResponse ::
  WriteGetObjectResponseResponse
newWriteGetObjectResponseResponse :: WriteGetObjectResponseResponse
newWriteGetObjectResponseResponse =
  WriteGetObjectResponseResponse
WriteGetObjectResponseResponse'

instance
  Prelude.NFData
    WriteGetObjectResponseResponse