module Network.AWS.StorageGateway.UpdateBandwidthRateLimit
(
UpdateBandwidthRateLimit
, updateBandwidthRateLimit
, ubrlAverageDownloadRateLimitInBitsPerSec
, ubrlAverageUploadRateLimitInBitsPerSec
, ubrlGatewayARN
, UpdateBandwidthRateLimitResponse
, updateBandwidthRateLimitResponse
, ubrlrGatewayARN
) where
import Network.AWS.Prelude
import Network.AWS.Request.JSON
import Network.AWS.StorageGateway.Types
import qualified GHC.Exts
data UpdateBandwidthRateLimit = UpdateBandwidthRateLimit
{ _ubrlAverageDownloadRateLimitInBitsPerSec :: Maybe Nat
, _ubrlAverageUploadRateLimitInBitsPerSec :: Maybe Nat
, _ubrlGatewayARN :: Text
} deriving (Eq, Ord, Show)
updateBandwidthRateLimit :: Text
-> UpdateBandwidthRateLimit
updateBandwidthRateLimit p1 = UpdateBandwidthRateLimit
{ _ubrlGatewayARN = p1
, _ubrlAverageUploadRateLimitInBitsPerSec = Nothing
, _ubrlAverageDownloadRateLimitInBitsPerSec = Nothing
}
ubrlAverageDownloadRateLimitInBitsPerSec :: Lens' UpdateBandwidthRateLimit (Maybe Natural)
ubrlAverageDownloadRateLimitInBitsPerSec =
lens _ubrlAverageDownloadRateLimitInBitsPerSec
(\s a -> s { _ubrlAverageDownloadRateLimitInBitsPerSec = a })
. mapping _Nat
ubrlAverageUploadRateLimitInBitsPerSec :: Lens' UpdateBandwidthRateLimit (Maybe Natural)
ubrlAverageUploadRateLimitInBitsPerSec =
lens _ubrlAverageUploadRateLimitInBitsPerSec
(\s a -> s { _ubrlAverageUploadRateLimitInBitsPerSec = a })
. mapping _Nat
ubrlGatewayARN :: Lens' UpdateBandwidthRateLimit Text
ubrlGatewayARN = lens _ubrlGatewayARN (\s a -> s { _ubrlGatewayARN = a })
newtype UpdateBandwidthRateLimitResponse = UpdateBandwidthRateLimitResponse
{ _ubrlrGatewayARN :: Maybe Text
} deriving (Eq, Ord, Show, Monoid)
updateBandwidthRateLimitResponse :: UpdateBandwidthRateLimitResponse
updateBandwidthRateLimitResponse = UpdateBandwidthRateLimitResponse
{ _ubrlrGatewayARN = Nothing
}
ubrlrGatewayARN :: Lens' UpdateBandwidthRateLimitResponse (Maybe Text)
ubrlrGatewayARN = lens _ubrlrGatewayARN (\s a -> s { _ubrlrGatewayARN = a })
instance ToPath UpdateBandwidthRateLimit where
toPath = const "/"
instance ToQuery UpdateBandwidthRateLimit where
toQuery = const mempty
instance ToHeaders UpdateBandwidthRateLimit
instance ToJSON UpdateBandwidthRateLimit where
toJSON UpdateBandwidthRateLimit{..} = object
[ "GatewayARN" .= _ubrlGatewayARN
, "AverageUploadRateLimitInBitsPerSec" .= _ubrlAverageUploadRateLimitInBitsPerSec
, "AverageDownloadRateLimitInBitsPerSec" .= _ubrlAverageDownloadRateLimitInBitsPerSec
]
instance AWSRequest UpdateBandwidthRateLimit where
type Sv UpdateBandwidthRateLimit = StorageGateway
type Rs UpdateBandwidthRateLimit = UpdateBandwidthRateLimitResponse
request = post "UpdateBandwidthRateLimit"
response = jsonResponse
instance FromJSON UpdateBandwidthRateLimitResponse where
parseJSON = withObject "UpdateBandwidthRateLimitResponse" $ \o -> UpdateBandwidthRateLimitResponse
<$> o .:? "GatewayARN"