module Network.AWS.S3.ListMultipartUploads
(
ListMultipartUploads
, listMultipartUploads
, lmuBucket
, lmuDelimiter
, lmuEncodingType
, lmuKeyMarker
, lmuMaxUploads
, lmuPrefix
, lmuUploadIdMarker
, ListMultipartUploadsResponse
, listMultipartUploadsResponse
, lmurBucket
, lmurCommonPrefixes
, lmurDelimiter
, lmurEncodingType
, lmurIsTruncated
, lmurKeyMarker
, lmurMaxUploads
, lmurNextKeyMarker
, lmurNextUploadIdMarker
, lmurPrefix
, lmurUploadIdMarker
, lmurUploads
) where
import Network.AWS.Prelude
import Network.AWS.Request.S3
import Network.AWS.S3.Types
import qualified GHC.Exts
data ListMultipartUploads = ListMultipartUploads
{ _lmuBucket :: Text
, _lmuDelimiter :: Maybe Text
, _lmuEncodingType :: Maybe EncodingType
, _lmuKeyMarker :: Maybe Text
, _lmuMaxUploads :: Maybe Int
, _lmuPrefix :: Maybe Text
, _lmuUploadIdMarker :: Maybe Text
} deriving (Eq, Show)
listMultipartUploads :: Text
-> ListMultipartUploads
listMultipartUploads p1 = ListMultipartUploads
{ _lmuBucket = p1
, _lmuDelimiter = Nothing
, _lmuEncodingType = Nothing
, _lmuKeyMarker = Nothing
, _lmuMaxUploads = Nothing
, _lmuPrefix = Nothing
, _lmuUploadIdMarker = Nothing
}
lmuBucket :: Lens' ListMultipartUploads Text
lmuBucket = lens _lmuBucket (\s a -> s { _lmuBucket = a })
lmuDelimiter :: Lens' ListMultipartUploads (Maybe Text)
lmuDelimiter = lens _lmuDelimiter (\s a -> s { _lmuDelimiter = a })
lmuEncodingType :: Lens' ListMultipartUploads (Maybe EncodingType)
lmuEncodingType = lens _lmuEncodingType (\s a -> s { _lmuEncodingType = a })
lmuKeyMarker :: Lens' ListMultipartUploads (Maybe Text)
lmuKeyMarker = lens _lmuKeyMarker (\s a -> s { _lmuKeyMarker = a })
lmuMaxUploads :: Lens' ListMultipartUploads (Maybe Int)
lmuMaxUploads = lens _lmuMaxUploads (\s a -> s { _lmuMaxUploads = a })
lmuPrefix :: Lens' ListMultipartUploads (Maybe Text)
lmuPrefix = lens _lmuPrefix (\s a -> s { _lmuPrefix = a })
lmuUploadIdMarker :: Lens' ListMultipartUploads (Maybe Text)
lmuUploadIdMarker =
lens _lmuUploadIdMarker (\s a -> s { _lmuUploadIdMarker = a })
data ListMultipartUploadsResponse = ListMultipartUploadsResponse
{ _lmurBucket :: Maybe Text
, _lmurCommonPrefixes :: List "CommonPrefixes" CommonPrefix
, _lmurDelimiter :: Maybe Text
, _lmurEncodingType :: Maybe EncodingType
, _lmurIsTruncated :: Maybe Bool
, _lmurKeyMarker :: Maybe Text
, _lmurMaxUploads :: Maybe Int
, _lmurNextKeyMarker :: Maybe Text
, _lmurNextUploadIdMarker :: Maybe Text
, _lmurPrefix :: Maybe Text
, _lmurUploadIdMarker :: Maybe Text
, _lmurUploads :: List "Upload" MultipartUpload
} deriving (Eq, Show)
listMultipartUploadsResponse :: ListMultipartUploadsResponse
listMultipartUploadsResponse = ListMultipartUploadsResponse
{ _lmurBucket = Nothing
, _lmurKeyMarker = Nothing
, _lmurUploadIdMarker = Nothing
, _lmurNextKeyMarker = Nothing
, _lmurPrefix = Nothing
, _lmurDelimiter = Nothing
, _lmurNextUploadIdMarker = Nothing
, _lmurMaxUploads = Nothing
, _lmurIsTruncated = Nothing
, _lmurUploads = mempty
, _lmurCommonPrefixes = mempty
, _lmurEncodingType = Nothing
}
lmurBucket :: Lens' ListMultipartUploadsResponse (Maybe Text)
lmurBucket = lens _lmurBucket (\s a -> s { _lmurBucket = a })
lmurCommonPrefixes :: Lens' ListMultipartUploadsResponse [CommonPrefix]
lmurCommonPrefixes =
lens _lmurCommonPrefixes (\s a -> s { _lmurCommonPrefixes = a })
. _List
lmurDelimiter :: Lens' ListMultipartUploadsResponse (Maybe Text)
lmurDelimiter = lens _lmurDelimiter (\s a -> s { _lmurDelimiter = a })
lmurEncodingType :: Lens' ListMultipartUploadsResponse (Maybe EncodingType)
lmurEncodingType = lens _lmurEncodingType (\s a -> s { _lmurEncodingType = a })
lmurIsTruncated :: Lens' ListMultipartUploadsResponse (Maybe Bool)
lmurIsTruncated = lens _lmurIsTruncated (\s a -> s { _lmurIsTruncated = a })
lmurKeyMarker :: Lens' ListMultipartUploadsResponse (Maybe Text)
lmurKeyMarker = lens _lmurKeyMarker (\s a -> s { _lmurKeyMarker = a })
lmurMaxUploads :: Lens' ListMultipartUploadsResponse (Maybe Int)
lmurMaxUploads = lens _lmurMaxUploads (\s a -> s { _lmurMaxUploads = a })
lmurNextKeyMarker :: Lens' ListMultipartUploadsResponse (Maybe Text)
lmurNextKeyMarker =
lens _lmurNextKeyMarker (\s a -> s { _lmurNextKeyMarker = a })
lmurNextUploadIdMarker :: Lens' ListMultipartUploadsResponse (Maybe Text)
lmurNextUploadIdMarker =
lens _lmurNextUploadIdMarker (\s a -> s { _lmurNextUploadIdMarker = a })
lmurPrefix :: Lens' ListMultipartUploadsResponse (Maybe Text)
lmurPrefix = lens _lmurPrefix (\s a -> s { _lmurPrefix = a })
lmurUploadIdMarker :: Lens' ListMultipartUploadsResponse (Maybe Text)
lmurUploadIdMarker =
lens _lmurUploadIdMarker (\s a -> s { _lmurUploadIdMarker = a })
lmurUploads :: Lens' ListMultipartUploadsResponse [MultipartUpload]
lmurUploads = lens _lmurUploads (\s a -> s { _lmurUploads = a }) . _List
instance ToPath ListMultipartUploads where
toPath ListMultipartUploads{..} = mconcat
[ "/"
, toText _lmuBucket
]
instance ToQuery ListMultipartUploads where
toQuery ListMultipartUploads{..} = mconcat
[ "uploads"
, "delimiter" =? _lmuDelimiter
, "encoding-type" =? _lmuEncodingType
, "key-marker" =? _lmuKeyMarker
, "max-uploads" =? _lmuMaxUploads
, "prefix" =? _lmuPrefix
, "upload-id-marker" =? _lmuUploadIdMarker
]
instance ToHeaders ListMultipartUploads
instance ToXMLRoot ListMultipartUploads where
toXMLRoot = const (namespaced ns "ListMultipartUploads" [])
instance ToXML ListMultipartUploads
instance AWSRequest ListMultipartUploads where
type Sv ListMultipartUploads = S3
type Rs ListMultipartUploads = ListMultipartUploadsResponse
request = get
response = xmlResponse
instance FromXML ListMultipartUploadsResponse where
parseXML x = ListMultipartUploadsResponse
<$> x .@? "Bucket"
<*> parseXML x
<*> x .@? "Delimiter"
<*> x .@? "EncodingType"
<*> x .@? "IsTruncated"
<*> x .@? "KeyMarker"
<*> x .@? "MaxUploads"
<*> x .@? "NextKeyMarker"
<*> x .@? "NextUploadIdMarker"
<*> x .@? "Prefix"
<*> x .@? "UploadIdMarker"
<*> parseXML x
instance AWSPager ListMultipartUploads where
page rq rs
| stop (rs ^. lmurIsTruncated) = Nothing
| isNothing p1 && isNothing p2 = Nothing
| otherwise = Just $ rq
& lmuKeyMarker .~ p1
& lmuUploadIdMarker .~ p2
where
p1 = rs ^. lmurNextKeyMarker
p2 = rs ^. lmurNextUploadIdMarker