module Network.AWS.CloudHSM.ListAvailableZones
(
listAvailableZones
, ListAvailableZones
, listAvailableZonesResponse
, ListAvailableZonesResponse
, lazrsAZList
, lazrsResponseStatus
) where
import Network.AWS.CloudHSM.Types
import Network.AWS.CloudHSM.Types.Product
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data ListAvailableZones =
ListAvailableZones'
deriving (Eq,Read,Show,Data,Typeable,Generic)
listAvailableZones
:: ListAvailableZones
listAvailableZones = ListAvailableZones'
instance AWSRequest ListAvailableZones where
type Rs ListAvailableZones =
ListAvailableZonesResponse
request = postJSON cloudHSM
response
= receiveJSON
(\ s h x ->
ListAvailableZonesResponse' <$>
(x .?> "AZList" .!@ mempty) <*> (pure (fromEnum s)))
instance ToHeaders ListAvailableZones where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("CloudHsmFrontendService.ListAvailableZones" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ListAvailableZones where
toJSON = const (Object mempty)
instance ToPath ListAvailableZones where
toPath = const "/"
instance ToQuery ListAvailableZones where
toQuery = const mempty
data ListAvailableZonesResponse = ListAvailableZonesResponse'
{ _lazrsAZList :: !(Maybe [Text])
, _lazrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
listAvailableZonesResponse
:: Int
-> ListAvailableZonesResponse
listAvailableZonesResponse pResponseStatus_ =
ListAvailableZonesResponse'
{ _lazrsAZList = Nothing
, _lazrsResponseStatus = pResponseStatus_
}
lazrsAZList :: Lens' ListAvailableZonesResponse [Text]
lazrsAZList = lens _lazrsAZList (\ s a -> s{_lazrsAZList = a}) . _Default . _Coerce;
lazrsResponseStatus :: Lens' ListAvailableZonesResponse Int
lazrsResponseStatus = lens _lazrsResponseStatus (\ s a -> s{_lazrsResponseStatus = a});