{-# 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.StorageGateway.ListFileShares
(
listFileShares
, ListFileShares
, lfsGatewayARN
, lfsMarker
, lfsLimit
, listFileSharesResponse
, ListFileSharesResponse
, lfsrsFileShareInfoList
, lfsrsMarker
, lfsrsNextMarker
, lfsrsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.StorageGateway.Types
import Network.AWS.StorageGateway.Types.Product
data ListFileShares = ListFileShares'
{ _lfsGatewayARN :: !(Maybe Text)
, _lfsMarker :: !(Maybe Text)
, _lfsLimit :: !(Maybe Nat)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listFileShares
:: ListFileShares
listFileShares =
ListFileShares'
{_lfsGatewayARN = Nothing, _lfsMarker = Nothing, _lfsLimit = Nothing}
lfsGatewayARN :: Lens' ListFileShares (Maybe Text)
lfsGatewayARN = lens _lfsGatewayARN (\ s a -> s{_lfsGatewayARN = a})
lfsMarker :: Lens' ListFileShares (Maybe Text)
lfsMarker = lens _lfsMarker (\ s a -> s{_lfsMarker = a})
lfsLimit :: Lens' ListFileShares (Maybe Natural)
lfsLimit = lens _lfsLimit (\ s a -> s{_lfsLimit = a}) . mapping _Nat
instance AWSRequest ListFileShares where
type Rs ListFileShares = ListFileSharesResponse
request = postJSON storageGateway
response
= receiveJSON
(\ s h x ->
ListFileSharesResponse' <$>
(x .?> "FileShareInfoList" .!@ mempty) <*>
(x .?> "Marker")
<*> (x .?> "NextMarker")
<*> (pure (fromEnum s)))
instance Hashable ListFileShares where
instance NFData ListFileShares where
instance ToHeaders ListFileShares where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("StorageGateway_20130630.ListFileShares" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ListFileShares where
toJSON ListFileShares'{..}
= object
(catMaybes
[("GatewayARN" .=) <$> _lfsGatewayARN,
("Marker" .=) <$> _lfsMarker,
("Limit" .=) <$> _lfsLimit])
instance ToPath ListFileShares where
toPath = const "/"
instance ToQuery ListFileShares where
toQuery = const mempty
data ListFileSharesResponse = ListFileSharesResponse'
{ _lfsrsFileShareInfoList :: !(Maybe [FileShareInfo])
, _lfsrsMarker :: !(Maybe Text)
, _lfsrsNextMarker :: !(Maybe Text)
, _lfsrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listFileSharesResponse
:: Int
-> ListFileSharesResponse
listFileSharesResponse pResponseStatus_ =
ListFileSharesResponse'
{ _lfsrsFileShareInfoList = Nothing
, _lfsrsMarker = Nothing
, _lfsrsNextMarker = Nothing
, _lfsrsResponseStatus = pResponseStatus_
}
lfsrsFileShareInfoList :: Lens' ListFileSharesResponse [FileShareInfo]
lfsrsFileShareInfoList = lens _lfsrsFileShareInfoList (\ s a -> s{_lfsrsFileShareInfoList = a}) . _Default . _Coerce
lfsrsMarker :: Lens' ListFileSharesResponse (Maybe Text)
lfsrsMarker = lens _lfsrsMarker (\ s a -> s{_lfsrsMarker = a})
lfsrsNextMarker :: Lens' ListFileSharesResponse (Maybe Text)
lfsrsNextMarker = lens _lfsrsNextMarker (\ s a -> s{_lfsrsNextMarker = a})
lfsrsResponseStatus :: Lens' ListFileSharesResponse Int
lfsrsResponseStatus = lens _lfsrsResponseStatus (\ s a -> s{_lfsrsResponseStatus = a})
instance NFData ListFileSharesResponse where