module Network.AWS.WorkDocs.DescribeDocumentVersions
(
describeDocumentVersions
, DescribeDocumentVersions
, ddvInclude
, ddvAuthenticationToken
, ddvMarker
, ddvLimit
, ddvFields
, ddvDocumentId
, describeDocumentVersionsResponse
, DescribeDocumentVersionsResponse
, ddvrsDocumentVersions
, ddvrsMarker
, ddvrsResponseStatus
) 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 DescribeDocumentVersions = DescribeDocumentVersions'
{ _ddvInclude :: !(Maybe Text)
, _ddvAuthenticationToken :: !(Maybe (Sensitive Text))
, _ddvMarker :: !(Maybe Text)
, _ddvLimit :: !(Maybe Nat)
, _ddvFields :: !(Maybe Text)
, _ddvDocumentId :: !Text
} deriving (Eq, Show, Data, Typeable, Generic)
describeDocumentVersions
:: Text
-> DescribeDocumentVersions
describeDocumentVersions pDocumentId_ =
DescribeDocumentVersions'
{ _ddvInclude = Nothing
, _ddvAuthenticationToken = Nothing
, _ddvMarker = Nothing
, _ddvLimit = Nothing
, _ddvFields = Nothing
, _ddvDocumentId = pDocumentId_
}
ddvInclude :: Lens' DescribeDocumentVersions (Maybe Text)
ddvInclude = lens _ddvInclude (\ s a -> s{_ddvInclude = a});
ddvAuthenticationToken :: Lens' DescribeDocumentVersions (Maybe Text)
ddvAuthenticationToken = lens _ddvAuthenticationToken (\ s a -> s{_ddvAuthenticationToken = a}) . mapping _Sensitive;
ddvMarker :: Lens' DescribeDocumentVersions (Maybe Text)
ddvMarker = lens _ddvMarker (\ s a -> s{_ddvMarker = a});
ddvLimit :: Lens' DescribeDocumentVersions (Maybe Natural)
ddvLimit = lens _ddvLimit (\ s a -> s{_ddvLimit = a}) . mapping _Nat;
ddvFields :: Lens' DescribeDocumentVersions (Maybe Text)
ddvFields = lens _ddvFields (\ s a -> s{_ddvFields = a});
ddvDocumentId :: Lens' DescribeDocumentVersions Text
ddvDocumentId = lens _ddvDocumentId (\ s a -> s{_ddvDocumentId = a});
instance AWSPager DescribeDocumentVersions where
page rq rs
| stop (rs ^. ddvrsMarker) = Nothing
| stop (rs ^. ddvrsDocumentVersions) = Nothing
| otherwise =
Just $ rq & ddvMarker .~ rs ^. ddvrsMarker
instance AWSRequest DescribeDocumentVersions where
type Rs DescribeDocumentVersions =
DescribeDocumentVersionsResponse
request = get workDocs
response
= receiveJSON
(\ s h x ->
DescribeDocumentVersionsResponse' <$>
(x .?> "DocumentVersions" .!@ mempty) <*>
(x .?> "Marker")
<*> (pure (fromEnum s)))
instance Hashable DescribeDocumentVersions where
instance NFData DescribeDocumentVersions where
instance ToHeaders DescribeDocumentVersions where
toHeaders DescribeDocumentVersions'{..}
= mconcat
["Authentication" =# _ddvAuthenticationToken,
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)]
instance ToPath DescribeDocumentVersions where
toPath DescribeDocumentVersions'{..}
= mconcat
["/api/v1/documents/", toBS _ddvDocumentId,
"/versions"]
instance ToQuery DescribeDocumentVersions where
toQuery DescribeDocumentVersions'{..}
= mconcat
["include" =: _ddvInclude, "marker" =: _ddvMarker,
"limit" =: _ddvLimit, "fields" =: _ddvFields]
data DescribeDocumentVersionsResponse = DescribeDocumentVersionsResponse'
{ _ddvrsDocumentVersions :: !(Maybe [DocumentVersionMetadata])
, _ddvrsMarker :: !(Maybe Text)
, _ddvrsResponseStatus :: !Int
} deriving (Eq, Show, Data, Typeable, Generic)
describeDocumentVersionsResponse
:: Int
-> DescribeDocumentVersionsResponse
describeDocumentVersionsResponse pResponseStatus_ =
DescribeDocumentVersionsResponse'
{ _ddvrsDocumentVersions = Nothing
, _ddvrsMarker = Nothing
, _ddvrsResponseStatus = pResponseStatus_
}
ddvrsDocumentVersions :: Lens' DescribeDocumentVersionsResponse [DocumentVersionMetadata]
ddvrsDocumentVersions = lens _ddvrsDocumentVersions (\ s a -> s{_ddvrsDocumentVersions = a}) . _Default . _Coerce;
ddvrsMarker :: Lens' DescribeDocumentVersionsResponse (Maybe Text)
ddvrsMarker = lens _ddvrsMarker (\ s a -> s{_ddvrsMarker = a});
ddvrsResponseStatus :: Lens' DescribeDocumentVersionsResponse Int
ddvrsResponseStatus = lens _ddvrsResponseStatus (\ s a -> s{_ddvrsResponseStatus = a});
instance NFData DescribeDocumentVersionsResponse
where