module Network.AWS.StorageGateway.DescribeTapeRecoveryPoints
(
describeTapeRecoveryPoints
, DescribeTapeRecoveryPoints
, dtrpMarker
, dtrpLimit
, dtrpGatewayARN
, describeTapeRecoveryPointsResponse
, DescribeTapeRecoveryPointsResponse
, dtrprsTapeRecoveryPointInfos
, dtrprsGatewayARN
, dtrprsMarker
, dtrprsResponseStatus
) where
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.StorageGateway.Types
import Network.AWS.StorageGateway.Types.Product
data DescribeTapeRecoveryPoints = DescribeTapeRecoveryPoints'
{ _dtrpMarker :: !(Maybe Text)
, _dtrpLimit :: !(Maybe Nat)
, _dtrpGatewayARN :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeTapeRecoveryPoints
:: Text
-> DescribeTapeRecoveryPoints
describeTapeRecoveryPoints pGatewayARN_ =
DescribeTapeRecoveryPoints'
{ _dtrpMarker = Nothing
, _dtrpLimit = Nothing
, _dtrpGatewayARN = pGatewayARN_
}
dtrpMarker :: Lens' DescribeTapeRecoveryPoints (Maybe Text)
dtrpMarker = lens _dtrpMarker (\ s a -> s{_dtrpMarker = a});
dtrpLimit :: Lens' DescribeTapeRecoveryPoints (Maybe Natural)
dtrpLimit = lens _dtrpLimit (\ s a -> s{_dtrpLimit = a}) . mapping _Nat;
dtrpGatewayARN :: Lens' DescribeTapeRecoveryPoints Text
dtrpGatewayARN = lens _dtrpGatewayARN (\ s a -> s{_dtrpGatewayARN = a});
instance AWSPager DescribeTapeRecoveryPoints where
page rq rs
| stop (rs ^. dtrprsMarker) = Nothing
| stop (rs ^. dtrprsTapeRecoveryPointInfos) = Nothing
| otherwise =
Just $ rq & dtrpMarker .~ rs ^. dtrprsMarker
instance AWSRequest DescribeTapeRecoveryPoints where
type Rs DescribeTapeRecoveryPoints =
DescribeTapeRecoveryPointsResponse
request = postJSON storageGateway
response
= receiveJSON
(\ s h x ->
DescribeTapeRecoveryPointsResponse' <$>
(x .?> "TapeRecoveryPointInfos" .!@ mempty) <*>
(x .?> "GatewayARN")
<*> (x .?> "Marker")
<*> (pure (fromEnum s)))
instance ToHeaders DescribeTapeRecoveryPoints where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("StorageGateway_20130630.DescribeTapeRecoveryPoints"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON DescribeTapeRecoveryPoints where
toJSON DescribeTapeRecoveryPoints'{..}
= object
(catMaybes
[("Marker" .=) <$> _dtrpMarker,
("Limit" .=) <$> _dtrpLimit,
Just ("GatewayARN" .= _dtrpGatewayARN)])
instance ToPath DescribeTapeRecoveryPoints where
toPath = const "/"
instance ToQuery DescribeTapeRecoveryPoints where
toQuery = const mempty
data DescribeTapeRecoveryPointsResponse = DescribeTapeRecoveryPointsResponse'
{ _dtrprsTapeRecoveryPointInfos :: !(Maybe [TapeRecoveryPointInfo])
, _dtrprsGatewayARN :: !(Maybe Text)
, _dtrprsMarker :: !(Maybe Text)
, _dtrprsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeTapeRecoveryPointsResponse
:: Int
-> DescribeTapeRecoveryPointsResponse
describeTapeRecoveryPointsResponse pResponseStatus_ =
DescribeTapeRecoveryPointsResponse'
{ _dtrprsTapeRecoveryPointInfos = Nothing
, _dtrprsGatewayARN = Nothing
, _dtrprsMarker = Nothing
, _dtrprsResponseStatus = pResponseStatus_
}
dtrprsTapeRecoveryPointInfos :: Lens' DescribeTapeRecoveryPointsResponse [TapeRecoveryPointInfo]
dtrprsTapeRecoveryPointInfos = lens _dtrprsTapeRecoveryPointInfos (\ s a -> s{_dtrprsTapeRecoveryPointInfos = a}) . _Default . _Coerce;
dtrprsGatewayARN :: Lens' DescribeTapeRecoveryPointsResponse (Maybe Text)
dtrprsGatewayARN = lens _dtrprsGatewayARN (\ s a -> s{_dtrprsGatewayARN = a});
dtrprsMarker :: Lens' DescribeTapeRecoveryPointsResponse (Maybe Text)
dtrprsMarker = lens _dtrprsMarker (\ s a -> s{_dtrprsMarker = a});
dtrprsResponseStatus :: Lens' DescribeTapeRecoveryPointsResponse Int
dtrprsResponseStatus = lens _dtrprsResponseStatus (\ s a -> s{_dtrprsResponseStatus = a});