module Network.AWS.Lightsail.GetInstanceSnapshots
(
getInstanceSnapshots
, GetInstanceSnapshots
, gisPageToken
, getInstanceSnapshotsResponse
, GetInstanceSnapshotsResponse
, gissrsNextPageToken
, gissrsInstanceSnapshots
, gissrsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Lightsail.Types
import Network.AWS.Lightsail.Types.Product
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
newtype GetInstanceSnapshots = GetInstanceSnapshots'
{ _gisPageToken :: Maybe Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getInstanceSnapshots
:: GetInstanceSnapshots
getInstanceSnapshots = GetInstanceSnapshots' {_gisPageToken = Nothing}
gisPageToken :: Lens' GetInstanceSnapshots (Maybe Text)
gisPageToken = lens _gisPageToken (\ s a -> s{_gisPageToken = a});
instance AWSPager GetInstanceSnapshots where
page rq rs
| stop (rs ^. gissrsNextPageToken) = Nothing
| stop (rs ^. gissrsInstanceSnapshots) = Nothing
| otherwise =
Just $ rq & gisPageToken .~ rs ^. gissrsNextPageToken
instance AWSRequest GetInstanceSnapshots where
type Rs GetInstanceSnapshots =
GetInstanceSnapshotsResponse
request = postJSON lightsail
response
= receiveJSON
(\ s h x ->
GetInstanceSnapshotsResponse' <$>
(x .?> "nextPageToken") <*>
(x .?> "instanceSnapshots" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable GetInstanceSnapshots where
instance NFData GetInstanceSnapshots where
instance ToHeaders GetInstanceSnapshots where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("Lightsail_20161128.GetInstanceSnapshots" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON GetInstanceSnapshots where
toJSON GetInstanceSnapshots'{..}
= object
(catMaybes [("pageToken" .=) <$> _gisPageToken])
instance ToPath GetInstanceSnapshots where
toPath = const "/"
instance ToQuery GetInstanceSnapshots where
toQuery = const mempty
data GetInstanceSnapshotsResponse = GetInstanceSnapshotsResponse'
{ _gissrsNextPageToken :: !(Maybe Text)
, _gissrsInstanceSnapshots :: !(Maybe [InstanceSnapshot])
, _gissrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getInstanceSnapshotsResponse
:: Int
-> GetInstanceSnapshotsResponse
getInstanceSnapshotsResponse pResponseStatus_ =
GetInstanceSnapshotsResponse'
{ _gissrsNextPageToken = Nothing
, _gissrsInstanceSnapshots = Nothing
, _gissrsResponseStatus = pResponseStatus_
}
gissrsNextPageToken :: Lens' GetInstanceSnapshotsResponse (Maybe Text)
gissrsNextPageToken = lens _gissrsNextPageToken (\ s a -> s{_gissrsNextPageToken = a});
gissrsInstanceSnapshots :: Lens' GetInstanceSnapshotsResponse [InstanceSnapshot]
gissrsInstanceSnapshots = lens _gissrsInstanceSnapshots (\ s a -> s{_gissrsInstanceSnapshots = a}) . _Default . _Coerce;
gissrsResponseStatus :: Lens' GetInstanceSnapshotsResponse Int
gissrsResponseStatus = lens _gissrsResponseStatus (\ s a -> s{_gissrsResponseStatus = a});
instance NFData GetInstanceSnapshotsResponse where