{-# 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.WorkDocs.DescribeFolderContents
(
describeFolderContents
, DescribeFolderContents
, dfcsInclude
, dfcsAuthenticationToken
, dfcsSort
, dfcsMarker
, dfcsLimit
, dfcsType
, dfcsOrder
, dfcsFolderId
, describeFolderContentsResponse
, DescribeFolderContentsResponse
, dfcrsFolders
, dfcrsDocuments
, dfcrsMarker
, dfcrsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.WorkDocs.Types
import Network.AWS.WorkDocs.Types.Product
data DescribeFolderContents = DescribeFolderContents'
{ _dfcsInclude :: !(Maybe Text)
, _dfcsAuthenticationToken :: !(Maybe (Sensitive Text))
, _dfcsSort :: !(Maybe ResourceSortType)
, _dfcsMarker :: !(Maybe Text)
, _dfcsLimit :: !(Maybe Nat)
, _dfcsType :: !(Maybe FolderContentType)
, _dfcsOrder :: !(Maybe OrderType)
, _dfcsFolderId :: !Text
} deriving (Eq, Show, Data, Typeable, Generic)
describeFolderContents
:: Text
-> DescribeFolderContents
describeFolderContents pFolderId_ =
DescribeFolderContents'
{ _dfcsInclude = Nothing
, _dfcsAuthenticationToken = Nothing
, _dfcsSort = Nothing
, _dfcsMarker = Nothing
, _dfcsLimit = Nothing
, _dfcsType = Nothing
, _dfcsOrder = Nothing
, _dfcsFolderId = pFolderId_
}
dfcsInclude :: Lens' DescribeFolderContents (Maybe Text)
dfcsInclude = lens _dfcsInclude (\ s a -> s{_dfcsInclude = a})
dfcsAuthenticationToken :: Lens' DescribeFolderContents (Maybe Text)
dfcsAuthenticationToken = lens _dfcsAuthenticationToken (\ s a -> s{_dfcsAuthenticationToken = a}) . mapping _Sensitive
dfcsSort :: Lens' DescribeFolderContents (Maybe ResourceSortType)
dfcsSort = lens _dfcsSort (\ s a -> s{_dfcsSort = a})
dfcsMarker :: Lens' DescribeFolderContents (Maybe Text)
dfcsMarker = lens _dfcsMarker (\ s a -> s{_dfcsMarker = a})
dfcsLimit :: Lens' DescribeFolderContents (Maybe Natural)
dfcsLimit = lens _dfcsLimit (\ s a -> s{_dfcsLimit = a}) . mapping _Nat
dfcsType :: Lens' DescribeFolderContents (Maybe FolderContentType)
dfcsType = lens _dfcsType (\ s a -> s{_dfcsType = a})
dfcsOrder :: Lens' DescribeFolderContents (Maybe OrderType)
dfcsOrder = lens _dfcsOrder (\ s a -> s{_dfcsOrder = a})
dfcsFolderId :: Lens' DescribeFolderContents Text
dfcsFolderId = lens _dfcsFolderId (\ s a -> s{_dfcsFolderId = a})
instance AWSPager DescribeFolderContents where
page rq rs
| stop (rs ^. dfcrsMarker) = Nothing
| stop (rs ^. dfcrsFolders) = Nothing
| stop (rs ^. dfcrsDocuments) = Nothing
| otherwise =
Just $ rq & dfcsMarker .~ rs ^. dfcrsMarker
instance AWSRequest DescribeFolderContents where
type Rs DescribeFolderContents =
DescribeFolderContentsResponse
request = get workDocs
response
= receiveJSON
(\ s h x ->
DescribeFolderContentsResponse' <$>
(x .?> "Folders" .!@ mempty) <*>
(x .?> "Documents" .!@ mempty)
<*> (x .?> "Marker")
<*> (pure (fromEnum s)))
instance Hashable DescribeFolderContents where
instance NFData DescribeFolderContents where
instance ToHeaders DescribeFolderContents where
toHeaders DescribeFolderContents'{..}
= mconcat
["Authentication" =# _dfcsAuthenticationToken,
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)]
instance ToPath DescribeFolderContents where
toPath DescribeFolderContents'{..}
= mconcat
["/api/v1/folders/", toBS _dfcsFolderId, "/contents"]
instance ToQuery DescribeFolderContents where
toQuery DescribeFolderContents'{..}
= mconcat
["include" =: _dfcsInclude, "sort" =: _dfcsSort,
"marker" =: _dfcsMarker, "limit" =: _dfcsLimit,
"type" =: _dfcsType, "order" =: _dfcsOrder]
data DescribeFolderContentsResponse = DescribeFolderContentsResponse'
{ _dfcrsFolders :: !(Maybe [FolderMetadata])
, _dfcrsDocuments :: !(Maybe [DocumentMetadata])
, _dfcrsMarker :: !(Maybe Text)
, _dfcrsResponseStatus :: !Int
} deriving (Eq, Show, Data, Typeable, Generic)
describeFolderContentsResponse
:: Int
-> DescribeFolderContentsResponse
describeFolderContentsResponse pResponseStatus_ =
DescribeFolderContentsResponse'
{ _dfcrsFolders = Nothing
, _dfcrsDocuments = Nothing
, _dfcrsMarker = Nothing
, _dfcrsResponseStatus = pResponseStatus_
}
dfcrsFolders :: Lens' DescribeFolderContentsResponse [FolderMetadata]
dfcrsFolders = lens _dfcrsFolders (\ s a -> s{_dfcrsFolders = a}) . _Default . _Coerce
dfcrsDocuments :: Lens' DescribeFolderContentsResponse [DocumentMetadata]
dfcrsDocuments = lens _dfcrsDocuments (\ s a -> s{_dfcrsDocuments = a}) . _Default . _Coerce
dfcrsMarker :: Lens' DescribeFolderContentsResponse (Maybe Text)
dfcrsMarker = lens _dfcrsMarker (\ s a -> s{_dfcrsMarker = a})
dfcrsResponseStatus :: Lens' DescribeFolderContentsResponse Int
dfcrsResponseStatus = lens _dfcrsResponseStatus (\ s a -> s{_dfcrsResponseStatus = a})
instance NFData DescribeFolderContentsResponse where