module Network.AWS.StorageGateway.DescribeBandwidthRateLimit
(
describeBandwidthRateLimit
, DescribeBandwidthRateLimit
, dbrlGatewayARN
, describeBandwidthRateLimitResponse
, DescribeBandwidthRateLimitResponse
, dbrlrsGatewayARN
, dbrlrsAverageUploadRateLimitInBitsPerSec
, dbrlrsAverageDownloadRateLimitInBitsPerSec
, dbrlrsResponseStatus
) where
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.StorageGateway.Types
import Network.AWS.StorageGateway.Types.Product
newtype DescribeBandwidthRateLimit = DescribeBandwidthRateLimit'
{ _dbrlGatewayARN :: Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeBandwidthRateLimit
:: Text
-> DescribeBandwidthRateLimit
describeBandwidthRateLimit pGatewayARN_ =
DescribeBandwidthRateLimit'
{ _dbrlGatewayARN = pGatewayARN_
}
dbrlGatewayARN :: Lens' DescribeBandwidthRateLimit Text
dbrlGatewayARN = lens _dbrlGatewayARN (\ s a -> s{_dbrlGatewayARN = a});
instance AWSRequest DescribeBandwidthRateLimit where
type Rs DescribeBandwidthRateLimit =
DescribeBandwidthRateLimitResponse
request = postJSON storageGateway
response
= receiveJSON
(\ s h x ->
DescribeBandwidthRateLimitResponse' <$>
(x .?> "GatewayARN") <*>
(x .?> "AverageUploadRateLimitInBitsPerSec")
<*> (x .?> "AverageDownloadRateLimitInBitsPerSec")
<*> (pure (fromEnum s)))
instance ToHeaders DescribeBandwidthRateLimit where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("StorageGateway_20130630.DescribeBandwidthRateLimit"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON DescribeBandwidthRateLimit where
toJSON DescribeBandwidthRateLimit'{..}
= object
(catMaybes [Just ("GatewayARN" .= _dbrlGatewayARN)])
instance ToPath DescribeBandwidthRateLimit where
toPath = const "/"
instance ToQuery DescribeBandwidthRateLimit where
toQuery = const mempty
data DescribeBandwidthRateLimitResponse = DescribeBandwidthRateLimitResponse'
{ _dbrlrsGatewayARN :: !(Maybe Text)
, _dbrlrsAverageUploadRateLimitInBitsPerSec :: !(Maybe Nat)
, _dbrlrsAverageDownloadRateLimitInBitsPerSec :: !(Maybe Nat)
, _dbrlrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeBandwidthRateLimitResponse
:: Int
-> DescribeBandwidthRateLimitResponse
describeBandwidthRateLimitResponse pResponseStatus_ =
DescribeBandwidthRateLimitResponse'
{ _dbrlrsGatewayARN = Nothing
, _dbrlrsAverageUploadRateLimitInBitsPerSec = Nothing
, _dbrlrsAverageDownloadRateLimitInBitsPerSec = Nothing
, _dbrlrsResponseStatus = pResponseStatus_
}
dbrlrsGatewayARN :: Lens' DescribeBandwidthRateLimitResponse (Maybe Text)
dbrlrsGatewayARN = lens _dbrlrsGatewayARN (\ s a -> s{_dbrlrsGatewayARN = a});
dbrlrsAverageUploadRateLimitInBitsPerSec :: Lens' DescribeBandwidthRateLimitResponse (Maybe Natural)
dbrlrsAverageUploadRateLimitInBitsPerSec = lens _dbrlrsAverageUploadRateLimitInBitsPerSec (\ s a -> s{_dbrlrsAverageUploadRateLimitInBitsPerSec = a}) . mapping _Nat;
dbrlrsAverageDownloadRateLimitInBitsPerSec :: Lens' DescribeBandwidthRateLimitResponse (Maybe Natural)
dbrlrsAverageDownloadRateLimitInBitsPerSec = lens _dbrlrsAverageDownloadRateLimitInBitsPerSec (\ s a -> s{_dbrlrsAverageDownloadRateLimitInBitsPerSec = a}) . mapping _Nat;
dbrlrsResponseStatus :: Lens' DescribeBandwidthRateLimitResponse Int
dbrlrsResponseStatus = lens _dbrlrsResponseStatus (\ s a -> s{_dbrlrsResponseStatus = a});