{-# 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.ListObjectsV
(
listObjectsV
, ListObjectsV
, lStartAfter
, lContinuationToken
, lFetchOwner
, lPrefix
, lEncodingType
, lMaxKeys
, lDelimiter
, lBucket
, listObjectsVResponse
, ListObjectsVResponse
, lrsStartAfter
, lrsKeyCount
, lrsContents
, lrsContinuationToken
, lrsPrefix
, lrsCommonPrefixes
, lrsEncodingType
, lrsName
, lrsNextContinuationToken
, lrsMaxKeys
, lrsIsTruncated
, lrsDelimiter
, lrsResponseStatus
) 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 ListObjectsV = ListObjectsV'
{ _lStartAfter :: !(Maybe Text)
, _lContinuationToken :: !(Maybe Text)
, _lFetchOwner :: !(Maybe Bool)
, _lPrefix :: !(Maybe Text)
, _lEncodingType :: !(Maybe EncodingType)
, _lMaxKeys :: !(Maybe Int)
, _lDelimiter :: !(Maybe Delimiter)
, _lBucket :: !BucketName
} deriving (Eq,Read,Show,Data,Typeable,Generic)
listObjectsV
:: BucketName
-> ListObjectsV
listObjectsV pBucket_ =
ListObjectsV'
{ _lStartAfter = Nothing
, _lContinuationToken = Nothing
, _lFetchOwner = Nothing
, _lPrefix = Nothing
, _lEncodingType = Nothing
, _lMaxKeys = Nothing
, _lDelimiter = Nothing
, _lBucket = pBucket_
}
lStartAfter :: Lens' ListObjectsV (Maybe Text)
lStartAfter = lens _lStartAfter (\ s a -> s{_lStartAfter = a});
lContinuationToken :: Lens' ListObjectsV (Maybe Text)
lContinuationToken = lens _lContinuationToken (\ s a -> s{_lContinuationToken = a});
lFetchOwner :: Lens' ListObjectsV (Maybe Bool)
lFetchOwner = lens _lFetchOwner (\ s a -> s{_lFetchOwner = a});
lPrefix :: Lens' ListObjectsV (Maybe Text)
lPrefix = lens _lPrefix (\ s a -> s{_lPrefix = a});
lEncodingType :: Lens' ListObjectsV (Maybe EncodingType)
lEncodingType = lens _lEncodingType (\ s a -> s{_lEncodingType = a});
lMaxKeys :: Lens' ListObjectsV (Maybe Int)
lMaxKeys = lens _lMaxKeys (\ s a -> s{_lMaxKeys = a});
lDelimiter :: Lens' ListObjectsV (Maybe Delimiter)
lDelimiter = lens _lDelimiter (\ s a -> s{_lDelimiter = a});
lBucket :: Lens' ListObjectsV BucketName
lBucket = lens _lBucket (\ s a -> s{_lBucket = a});
instance AWSRequest ListObjectsV where
type Rs ListObjectsV = ListObjectsVResponse
request = get s3
response
= receiveXML
(\ s h x ->
ListObjectsVResponse' <$>
(x .@? "StartAfter") <*> (x .@? "KeyCount") <*>
(may (parseXMLList "Contents") x)
<*> (x .@? "ContinuationToken")
<*> (x .@? "Prefix")
<*> (may (parseXMLList "CommonPrefixes") x)
<*> (x .@? "EncodingType")
<*> (x .@? "Name")
<*> (x .@? "NextContinuationToken")
<*> (x .@? "MaxKeys")
<*> (x .@? "IsTruncated")
<*> (x .@? "Delimiter")
<*> (pure (fromEnum s)))
instance Hashable ListObjectsV
instance NFData ListObjectsV
instance ToHeaders ListObjectsV where
toHeaders = const mempty
instance ToPath ListObjectsV where
toPath ListObjectsV'{..}
= mconcat ["/", toBS _lBucket]
instance ToQuery ListObjectsV where
toQuery ListObjectsV'{..}
= mconcat
["start-after" =: _lStartAfter,
"continuation-token" =: _lContinuationToken,
"fetch-owner" =: _lFetchOwner, "prefix" =: _lPrefix,
"encoding-type" =: _lEncodingType,
"max-keys" =: _lMaxKeys, "delimiter" =: _lDelimiter,
"list-type=2"]
data ListObjectsVResponse = ListObjectsVResponse'
{ _lrsStartAfter :: !(Maybe Text)
, _lrsKeyCount :: !(Maybe Int)
, _lrsContents :: !(Maybe [Object])
, _lrsContinuationToken :: !(Maybe Text)
, _lrsPrefix :: !(Maybe Text)
, _lrsCommonPrefixes :: !(Maybe [CommonPrefix])
, _lrsEncodingType :: !(Maybe EncodingType)
, _lrsName :: !(Maybe BucketName)
, _lrsNextContinuationToken :: !(Maybe Text)
, _lrsMaxKeys :: !(Maybe Int)
, _lrsIsTruncated :: !(Maybe Bool)
, _lrsDelimiter :: !(Maybe Delimiter)
, _lrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
listObjectsVResponse
:: Int
-> ListObjectsVResponse
listObjectsVResponse pResponseStatus_ =
ListObjectsVResponse'
{ _lrsStartAfter = Nothing
, _lrsKeyCount = Nothing
, _lrsContents = Nothing
, _lrsContinuationToken = Nothing
, _lrsPrefix = Nothing
, _lrsCommonPrefixes = Nothing
, _lrsEncodingType = Nothing
, _lrsName = Nothing
, _lrsNextContinuationToken = Nothing
, _lrsMaxKeys = Nothing
, _lrsIsTruncated = Nothing
, _lrsDelimiter = Nothing
, _lrsResponseStatus = pResponseStatus_
}
lrsStartAfter :: Lens' ListObjectsVResponse (Maybe Text)
lrsStartAfter = lens _lrsStartAfter (\ s a -> s{_lrsStartAfter = a});
lrsKeyCount :: Lens' ListObjectsVResponse (Maybe Int)
lrsKeyCount = lens _lrsKeyCount (\ s a -> s{_lrsKeyCount = a});
lrsContents :: Lens' ListObjectsVResponse [Object]
lrsContents = lens _lrsContents (\ s a -> s{_lrsContents = a}) . _Default . _Coerce;
lrsContinuationToken :: Lens' ListObjectsVResponse (Maybe Text)
lrsContinuationToken = lens _lrsContinuationToken (\ s a -> s{_lrsContinuationToken = a});
lrsPrefix :: Lens' ListObjectsVResponse (Maybe Text)
lrsPrefix = lens _lrsPrefix (\ s a -> s{_lrsPrefix = a});
lrsCommonPrefixes :: Lens' ListObjectsVResponse [CommonPrefix]
lrsCommonPrefixes = lens _lrsCommonPrefixes (\ s a -> s{_lrsCommonPrefixes = a}) . _Default . _Coerce;
lrsEncodingType :: Lens' ListObjectsVResponse (Maybe EncodingType)
lrsEncodingType = lens _lrsEncodingType (\ s a -> s{_lrsEncodingType = a});
lrsName :: Lens' ListObjectsVResponse (Maybe BucketName)
lrsName = lens _lrsName (\ s a -> s{_lrsName = a});
lrsNextContinuationToken :: Lens' ListObjectsVResponse (Maybe Text)
lrsNextContinuationToken = lens _lrsNextContinuationToken (\ s a -> s{_lrsNextContinuationToken = a});
lrsMaxKeys :: Lens' ListObjectsVResponse (Maybe Int)
lrsMaxKeys = lens _lrsMaxKeys (\ s a -> s{_lrsMaxKeys = a});
lrsIsTruncated :: Lens' ListObjectsVResponse (Maybe Bool)
lrsIsTruncated = lens _lrsIsTruncated (\ s a -> s{_lrsIsTruncated = a});
lrsDelimiter :: Lens' ListObjectsVResponse (Maybe Delimiter)
lrsDelimiter = lens _lrsDelimiter (\ s a -> s{_lrsDelimiter = a});
lrsResponseStatus :: Lens' ListObjectsVResponse Int
lrsResponseStatus = lens _lrsResponseStatus (\ s a -> s{_lrsResponseStatus = a});
instance NFData ListObjectsVResponse