{-# 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.EFS.DescribeMountTargets
(
describeMountTargets
, DescribeMountTargets
, dmtFileSystemId
, dmtMarker
, dmtMaxItems
, dmtMountTargetId
, describeMountTargetsResponse
, DescribeMountTargetsResponse
, dmtrsMountTargets
, dmtrsMarker
, dmtrsNextMarker
, dmtrsResponseStatus
) where
import Network.AWS.EFS.Types
import Network.AWS.EFS.Types.Product
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DescribeMountTargets = DescribeMountTargets'
{ _dmtFileSystemId :: !(Maybe Text)
, _dmtMarker :: !(Maybe Text)
, _dmtMaxItems :: !(Maybe Nat)
, _dmtMountTargetId :: !(Maybe Text)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeMountTargets
:: DescribeMountTargets
describeMountTargets =
DescribeMountTargets'
{ _dmtFileSystemId = Nothing
, _dmtMarker = Nothing
, _dmtMaxItems = Nothing
, _dmtMountTargetId = Nothing
}
dmtFileSystemId :: Lens' DescribeMountTargets (Maybe Text)
dmtFileSystemId = lens _dmtFileSystemId (\ s a -> s{_dmtFileSystemId = a})
dmtMarker :: Lens' DescribeMountTargets (Maybe Text)
dmtMarker = lens _dmtMarker (\ s a -> s{_dmtMarker = a})
dmtMaxItems :: Lens' DescribeMountTargets (Maybe Natural)
dmtMaxItems = lens _dmtMaxItems (\ s a -> s{_dmtMaxItems = a}) . mapping _Nat
dmtMountTargetId :: Lens' DescribeMountTargets (Maybe Text)
dmtMountTargetId = lens _dmtMountTargetId (\ s a -> s{_dmtMountTargetId = a})
instance AWSPager DescribeMountTargets where
page rq rs
| stop (rs ^. dmtrsNextMarker) = Nothing
| stop (rs ^. dmtrsMountTargets) = Nothing
| otherwise =
Just $ rq & dmtMarker .~ rs ^. dmtrsNextMarker
instance AWSRequest DescribeMountTargets where
type Rs DescribeMountTargets =
DescribeMountTargetsResponse
request = get efs
response
= receiveJSON
(\ s h x ->
DescribeMountTargetsResponse' <$>
(x .?> "MountTargets" .!@ mempty) <*>
(x .?> "Marker")
<*> (x .?> "NextMarker")
<*> (pure (fromEnum s)))
instance Hashable DescribeMountTargets where
instance NFData DescribeMountTargets where
instance ToHeaders DescribeMountTargets where
toHeaders = const mempty
instance ToPath DescribeMountTargets where
toPath = const "/2015-02-01/mount-targets"
instance ToQuery DescribeMountTargets where
toQuery DescribeMountTargets'{..}
= mconcat
["FileSystemId" =: _dmtFileSystemId,
"Marker" =: _dmtMarker, "MaxItems" =: _dmtMaxItems,
"MountTargetId" =: _dmtMountTargetId]
data DescribeMountTargetsResponse = DescribeMountTargetsResponse'
{ _dmtrsMountTargets :: !(Maybe [MountTargetDescription])
, _dmtrsMarker :: !(Maybe Text)
, _dmtrsNextMarker :: !(Maybe Text)
, _dmtrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeMountTargetsResponse
:: Int
-> DescribeMountTargetsResponse
describeMountTargetsResponse pResponseStatus_ =
DescribeMountTargetsResponse'
{ _dmtrsMountTargets = Nothing
, _dmtrsMarker = Nothing
, _dmtrsNextMarker = Nothing
, _dmtrsResponseStatus = pResponseStatus_
}
dmtrsMountTargets :: Lens' DescribeMountTargetsResponse [MountTargetDescription]
dmtrsMountTargets = lens _dmtrsMountTargets (\ s a -> s{_dmtrsMountTargets = a}) . _Default . _Coerce
dmtrsMarker :: Lens' DescribeMountTargetsResponse (Maybe Text)
dmtrsMarker = lens _dmtrsMarker (\ s a -> s{_dmtrsMarker = a})
dmtrsNextMarker :: Lens' DescribeMountTargetsResponse (Maybe Text)
dmtrsNextMarker = lens _dmtrsNextMarker (\ s a -> s{_dmtrsNextMarker = a})
dmtrsResponseStatus :: Lens' DescribeMountTargetsResponse Int
dmtrsResponseStatus = lens _dmtrsResponseStatus (\ s a -> s{_dmtrsResponseStatus = a})
instance NFData DescribeMountTargetsResponse where