module Network.AWS.StorageGateway.DescribeTapeRecoveryPoints
(
DescribeTapeRecoveryPoints
, describeTapeRecoveryPoints
, dtrpGatewayARN
, dtrpLimit
, dtrpMarker
, DescribeTapeRecoveryPointsResponse
, describeTapeRecoveryPointsResponse
, dtrprGatewayARN
, dtrprMarker
, dtrprTapeRecoveryPointInfos
) where
import Network.AWS.Prelude
import Network.AWS.Request.JSON
import Network.AWS.StorageGateway.Types
import qualified GHC.Exts
data DescribeTapeRecoveryPoints = DescribeTapeRecoveryPoints
{ _dtrpGatewayARN :: Text
, _dtrpLimit :: Maybe Nat
, _dtrpMarker :: Maybe Text
} deriving (Eq, Ord, Show)
describeTapeRecoveryPoints :: Text
-> DescribeTapeRecoveryPoints
describeTapeRecoveryPoints p1 = DescribeTapeRecoveryPoints
{ _dtrpGatewayARN = p1
, _dtrpMarker = Nothing
, _dtrpLimit = Nothing
}
dtrpGatewayARN :: Lens' DescribeTapeRecoveryPoints Text
dtrpGatewayARN = lens _dtrpGatewayARN (\s a -> s { _dtrpGatewayARN = a })
dtrpLimit :: Lens' DescribeTapeRecoveryPoints (Maybe Natural)
dtrpLimit = lens _dtrpLimit (\s a -> s { _dtrpLimit = a }) . mapping _Nat
dtrpMarker :: Lens' DescribeTapeRecoveryPoints (Maybe Text)
dtrpMarker = lens _dtrpMarker (\s a -> s { _dtrpMarker = a })
data DescribeTapeRecoveryPointsResponse = DescribeTapeRecoveryPointsResponse
{ _dtrprGatewayARN :: Maybe Text
, _dtrprMarker :: Maybe Text
, _dtrprTapeRecoveryPointInfos :: List "TapeRecoveryPointInfos" TapeRecoveryPointInfo
} deriving (Eq, Show)
describeTapeRecoveryPointsResponse :: DescribeTapeRecoveryPointsResponse
describeTapeRecoveryPointsResponse = DescribeTapeRecoveryPointsResponse
{ _dtrprGatewayARN = Nothing
, _dtrprTapeRecoveryPointInfos = mempty
, _dtrprMarker = Nothing
}
dtrprGatewayARN :: Lens' DescribeTapeRecoveryPointsResponse (Maybe Text)
dtrprGatewayARN = lens _dtrprGatewayARN (\s a -> s { _dtrprGatewayARN = a })
dtrprMarker :: Lens' DescribeTapeRecoveryPointsResponse (Maybe Text)
dtrprMarker = lens _dtrprMarker (\s a -> s { _dtrprMarker = a })
dtrprTapeRecoveryPointInfos :: Lens' DescribeTapeRecoveryPointsResponse [TapeRecoveryPointInfo]
dtrprTapeRecoveryPointInfos =
lens _dtrprTapeRecoveryPointInfos
(\s a -> s { _dtrprTapeRecoveryPointInfos = a })
. _List
instance ToPath DescribeTapeRecoveryPoints where
toPath = const "/"
instance ToQuery DescribeTapeRecoveryPoints where
toQuery = const mempty
instance ToHeaders DescribeTapeRecoveryPoints
instance ToJSON DescribeTapeRecoveryPoints where
toJSON DescribeTapeRecoveryPoints{..} = object
[ "GatewayARN" .= _dtrpGatewayARN
, "Marker" .= _dtrpMarker
, "Limit" .= _dtrpLimit
]
instance AWSRequest DescribeTapeRecoveryPoints where
type Sv DescribeTapeRecoveryPoints = StorageGateway
type Rs DescribeTapeRecoveryPoints = DescribeTapeRecoveryPointsResponse
request = post "DescribeTapeRecoveryPoints"
response = jsonResponse
instance FromJSON DescribeTapeRecoveryPointsResponse where
parseJSON = withObject "DescribeTapeRecoveryPointsResponse" $ \o -> DescribeTapeRecoveryPointsResponse
<$> o .:? "GatewayARN"
<*> o .:? "Marker"
<*> o .:? "TapeRecoveryPointInfos" .!= mempty
instance AWSPager DescribeTapeRecoveryPoints where
page rq rs
| stop (rq ^. dtrpMarker) = Nothing
| otherwise = (\x -> rq & dtrpMarker ?~ x)
<$> (rs ^. dtrprMarker)