{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Network.AWS.S3.CompleteMultipartUpload
(
completeMultipartUpload
, CompleteMultipartUpload
, cRequestPayer
, cMultipartUpload
, cBucket
, cKey
, cUploadId
, completeMultipartUploadResponse
, CompleteMultipartUploadResponse
, crsRequestCharged
, crsETag
, crsVersionId
, crsLocation
, crsExpiration
, crsBucket
, crsKey
, crsSSEKMSKeyId
, crsServerSideEncryption
, crsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.S3.Types
import Network.AWS.S3.Types.Product
data CompleteMultipartUpload = CompleteMultipartUpload'
{ _cRequestPayer :: !(Maybe RequestPayer)
, _cMultipartUpload :: !(Maybe CompletedMultipartUpload)
, _cBucket :: !BucketName
, _cKey :: !ObjectKey
, _cUploadId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
completeMultipartUpload
:: BucketName
-> ObjectKey
-> Text
-> CompleteMultipartUpload
completeMultipartUpload pBucket_ pKey_ pUploadId_ =
CompleteMultipartUpload'
{ _cRequestPayer = Nothing
, _cMultipartUpload = Nothing
, _cBucket = pBucket_
, _cKey = pKey_
, _cUploadId = pUploadId_
}
cRequestPayer :: Lens' CompleteMultipartUpload (Maybe RequestPayer)
cRequestPayer = lens _cRequestPayer (\ s a -> s{_cRequestPayer = a})
cMultipartUpload :: Lens' CompleteMultipartUpload (Maybe CompletedMultipartUpload)
cMultipartUpload = lens _cMultipartUpload (\ s a -> s{_cMultipartUpload = a})
cBucket :: Lens' CompleteMultipartUpload BucketName
cBucket = lens _cBucket (\ s a -> s{_cBucket = a})
cKey :: Lens' CompleteMultipartUpload ObjectKey
cKey = lens _cKey (\ s a -> s{_cKey = a})
cUploadId :: Lens' CompleteMultipartUpload Text
cUploadId = lens _cUploadId (\ s a -> s{_cUploadId = a})
instance AWSRequest CompleteMultipartUpload where
type Rs CompleteMultipartUpload =
CompleteMultipartUploadResponse
request = postXML s3
response
= receiveXML
(\ s h x ->
CompleteMultipartUploadResponse' <$>
(h .#? "x-amz-request-charged") <*> (x .@? "ETag")
<*> (h .#? "x-amz-version-id")
<*> (x .@? "Location")
<*> (h .#? "x-amz-expiration")
<*> (x .@? "Bucket")
<*> (x .@? "Key")
<*>
(h .#? "x-amz-server-side-encryption-aws-kms-key-id")
<*> (h .#? "x-amz-server-side-encryption")
<*> (pure (fromEnum s)))
instance Hashable CompleteMultipartUpload where
instance NFData CompleteMultipartUpload where
instance ToElement CompleteMultipartUpload where
toElement
= mkElement
"{http://s3.amazonaws.com/doc/2006-03-01/}CompleteMultipartUpload"
.
_cMultipartUpload
instance ToHeaders CompleteMultipartUpload where
toHeaders CompleteMultipartUpload'{..}
= mconcat ["x-amz-request-payer" =# _cRequestPayer]
instance ToPath CompleteMultipartUpload where
toPath CompleteMultipartUpload'{..}
= mconcat ["/", toBS _cBucket, "/", toBS _cKey]
instance ToQuery CompleteMultipartUpload where
toQuery CompleteMultipartUpload'{..}
= mconcat ["uploadId" =: _cUploadId]
data CompleteMultipartUploadResponse = CompleteMultipartUploadResponse'
{ _crsRequestCharged :: !(Maybe RequestCharged)
, _crsETag :: !(Maybe ETag)
, _crsVersionId :: !(Maybe ObjectVersionId)
, _crsLocation :: !(Maybe Text)
, _crsExpiration :: !(Maybe Text)
, _crsBucket :: !(Maybe BucketName)
, _crsKey :: !(Maybe ObjectKey)
, _crsSSEKMSKeyId :: !(Maybe (Sensitive Text))
, _crsServerSideEncryption :: !(Maybe ServerSideEncryption)
, _crsResponseStatus :: !Int
} deriving (Eq, Show, Data, Typeable, Generic)
completeMultipartUploadResponse
:: Int
-> CompleteMultipartUploadResponse
completeMultipartUploadResponse pResponseStatus_ =
CompleteMultipartUploadResponse'
{ _crsRequestCharged = Nothing
, _crsETag = Nothing
, _crsVersionId = Nothing
, _crsLocation = Nothing
, _crsExpiration = Nothing
, _crsBucket = Nothing
, _crsKey = Nothing
, _crsSSEKMSKeyId = Nothing
, _crsServerSideEncryption = Nothing
, _crsResponseStatus = pResponseStatus_
}
crsRequestCharged :: Lens' CompleteMultipartUploadResponse (Maybe RequestCharged)
crsRequestCharged = lens _crsRequestCharged (\ s a -> s{_crsRequestCharged = a})
crsETag :: Lens' CompleteMultipartUploadResponse (Maybe ETag)
crsETag = lens _crsETag (\ s a -> s{_crsETag = a})
crsVersionId :: Lens' CompleteMultipartUploadResponse (Maybe ObjectVersionId)
crsVersionId = lens _crsVersionId (\ s a -> s{_crsVersionId = a})
crsLocation :: Lens' CompleteMultipartUploadResponse (Maybe Text)
crsLocation = lens _crsLocation (\ s a -> s{_crsLocation = a})
crsExpiration :: Lens' CompleteMultipartUploadResponse (Maybe Text)
crsExpiration = lens _crsExpiration (\ s a -> s{_crsExpiration = a})
crsBucket :: Lens' CompleteMultipartUploadResponse (Maybe BucketName)
crsBucket = lens _crsBucket (\ s a -> s{_crsBucket = a})
crsKey :: Lens' CompleteMultipartUploadResponse (Maybe ObjectKey)
crsKey = lens _crsKey (\ s a -> s{_crsKey = a})
crsSSEKMSKeyId :: Lens' CompleteMultipartUploadResponse (Maybe Text)
crsSSEKMSKeyId = lens _crsSSEKMSKeyId (\ s a -> s{_crsSSEKMSKeyId = a}) . mapping _Sensitive
crsServerSideEncryption :: Lens' CompleteMultipartUploadResponse (Maybe ServerSideEncryption)
crsServerSideEncryption = lens _crsServerSideEncryption (\ s a -> s{_crsServerSideEncryption = a})
crsResponseStatus :: Lens' CompleteMultipartUploadResponse Int
crsResponseStatus = lens _crsResponseStatus (\ s a -> s{_crsResponseStatus = a})
instance NFData CompleteMultipartUploadResponse where