{-# 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.Lightsail.GetOperations
(
getOperations
, GetOperations
, goPageToken
, getOperationsResponse
, GetOperationsResponse
, gosrsNextPageToken
, gosrsOperations
, gosrsResponseStatus
) 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 GetOperations = GetOperations'
{ _goPageToken :: Maybe Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getOperations
:: GetOperations
getOperations = GetOperations' {_goPageToken = Nothing}
goPageToken :: Lens' GetOperations (Maybe Text)
goPageToken = lens _goPageToken (\ s a -> s{_goPageToken = a})
instance AWSPager GetOperations where
page rq rs
| stop (rs ^. gosrsNextPageToken) = Nothing
| stop (rs ^. gosrsOperations) = Nothing
| otherwise =
Just $ rq & goPageToken .~ rs ^. gosrsNextPageToken
instance AWSRequest GetOperations where
type Rs GetOperations = GetOperationsResponse
request = postJSON lightsail
response
= receiveJSON
(\ s h x ->
GetOperationsResponse' <$>
(x .?> "nextPageToken") <*>
(x .?> "operations" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable GetOperations where
instance NFData GetOperations where
instance ToHeaders GetOperations where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("Lightsail_20161128.GetOperations" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON GetOperations where
toJSON GetOperations'{..}
= object
(catMaybes [("pageToken" .=) <$> _goPageToken])
instance ToPath GetOperations where
toPath = const "/"
instance ToQuery GetOperations where
toQuery = const mempty
data GetOperationsResponse = GetOperationsResponse'
{ _gosrsNextPageToken :: !(Maybe Text)
, _gosrsOperations :: !(Maybe [Operation])
, _gosrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getOperationsResponse
:: Int
-> GetOperationsResponse
getOperationsResponse pResponseStatus_ =
GetOperationsResponse'
{ _gosrsNextPageToken = Nothing
, _gosrsOperations = Nothing
, _gosrsResponseStatus = pResponseStatus_
}
gosrsNextPageToken :: Lens' GetOperationsResponse (Maybe Text)
gosrsNextPageToken = lens _gosrsNextPageToken (\ s a -> s{_gosrsNextPageToken = a})
gosrsOperations :: Lens' GetOperationsResponse [Operation]
gosrsOperations = lens _gosrsOperations (\ s a -> s{_gosrsOperations = a}) . _Default . _Coerce
gosrsResponseStatus :: Lens' GetOperationsResponse Int
gosrsResponseStatus = lens _gosrsResponseStatus (\ s a -> s{_gosrsResponseStatus = a})
instance NFData GetOperationsResponse where