{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.StorageGateway.DescribeBandwidthRateLimit
(
DescribeBandwidthRateLimit (..),
newDescribeBandwidthRateLimit,
describeBandwidthRateLimit_gatewayARN,
DescribeBandwidthRateLimitResponse (..),
newDescribeBandwidthRateLimitResponse,
describeBandwidthRateLimitResponse_averageDownloadRateLimitInBitsPerSec,
describeBandwidthRateLimitResponse_averageUploadRateLimitInBitsPerSec,
describeBandwidthRateLimitResponse_gatewayARN,
describeBandwidthRateLimitResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.StorageGateway.Types
data DescribeBandwidthRateLimit = DescribeBandwidthRateLimit'
{ DescribeBandwidthRateLimit -> Text
gatewayARN :: Prelude.Text
}
deriving (DescribeBandwidthRateLimit -> DescribeBandwidthRateLimit -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeBandwidthRateLimit -> DescribeBandwidthRateLimit -> Bool
$c/= :: DescribeBandwidthRateLimit -> DescribeBandwidthRateLimit -> Bool
== :: DescribeBandwidthRateLimit -> DescribeBandwidthRateLimit -> Bool
$c== :: DescribeBandwidthRateLimit -> DescribeBandwidthRateLimit -> Bool
Prelude.Eq, ReadPrec [DescribeBandwidthRateLimit]
ReadPrec DescribeBandwidthRateLimit
Int -> ReadS DescribeBandwidthRateLimit
ReadS [DescribeBandwidthRateLimit]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeBandwidthRateLimit]
$creadListPrec :: ReadPrec [DescribeBandwidthRateLimit]
readPrec :: ReadPrec DescribeBandwidthRateLimit
$creadPrec :: ReadPrec DescribeBandwidthRateLimit
readList :: ReadS [DescribeBandwidthRateLimit]
$creadList :: ReadS [DescribeBandwidthRateLimit]
readsPrec :: Int -> ReadS DescribeBandwidthRateLimit
$creadsPrec :: Int -> ReadS DescribeBandwidthRateLimit
Prelude.Read, Int -> DescribeBandwidthRateLimit -> ShowS
[DescribeBandwidthRateLimit] -> ShowS
DescribeBandwidthRateLimit -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeBandwidthRateLimit] -> ShowS
$cshowList :: [DescribeBandwidthRateLimit] -> ShowS
show :: DescribeBandwidthRateLimit -> String
$cshow :: DescribeBandwidthRateLimit -> String
showsPrec :: Int -> DescribeBandwidthRateLimit -> ShowS
$cshowsPrec :: Int -> DescribeBandwidthRateLimit -> ShowS
Prelude.Show, forall x.
Rep DescribeBandwidthRateLimit x -> DescribeBandwidthRateLimit
forall x.
DescribeBandwidthRateLimit -> Rep DescribeBandwidthRateLimit x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeBandwidthRateLimit x -> DescribeBandwidthRateLimit
$cfrom :: forall x.
DescribeBandwidthRateLimit -> Rep DescribeBandwidthRateLimit x
Prelude.Generic)
newDescribeBandwidthRateLimit ::
Prelude.Text ->
DescribeBandwidthRateLimit
newDescribeBandwidthRateLimit :: Text -> DescribeBandwidthRateLimit
newDescribeBandwidthRateLimit Text
pGatewayARN_ =
DescribeBandwidthRateLimit'
{ $sel:gatewayARN:DescribeBandwidthRateLimit' :: Text
gatewayARN =
Text
pGatewayARN_
}
describeBandwidthRateLimit_gatewayARN :: Lens.Lens' DescribeBandwidthRateLimit Prelude.Text
describeBandwidthRateLimit_gatewayARN :: Lens' DescribeBandwidthRateLimit Text
describeBandwidthRateLimit_gatewayARN = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeBandwidthRateLimit' {Text
gatewayARN :: Text
$sel:gatewayARN:DescribeBandwidthRateLimit' :: DescribeBandwidthRateLimit -> Text
gatewayARN} -> Text
gatewayARN) (\s :: DescribeBandwidthRateLimit
s@DescribeBandwidthRateLimit' {} Text
a -> DescribeBandwidthRateLimit
s {$sel:gatewayARN:DescribeBandwidthRateLimit' :: Text
gatewayARN = Text
a} :: DescribeBandwidthRateLimit)
instance Core.AWSRequest DescribeBandwidthRateLimit where
type
AWSResponse DescribeBandwidthRateLimit =
DescribeBandwidthRateLimitResponse
request :: (Service -> Service)
-> DescribeBandwidthRateLimit -> Request DescribeBandwidthRateLimit
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeBandwidthRateLimit
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse DescribeBandwidthRateLimit)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
( \Int
s ResponseHeaders
h Object
x ->
Maybe Natural
-> Maybe Natural
-> Maybe Text
-> Int
-> DescribeBandwidthRateLimitResponse
DescribeBandwidthRateLimitResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"AverageDownloadRateLimitInBitsPerSec")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"AverageUploadRateLimitInBitsPerSec")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"GatewayARN")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
)
instance Prelude.Hashable DescribeBandwidthRateLimit where
hashWithSalt :: Int -> DescribeBandwidthRateLimit -> Int
hashWithSalt Int
_salt DescribeBandwidthRateLimit' {Text
gatewayARN :: Text
$sel:gatewayARN:DescribeBandwidthRateLimit' :: DescribeBandwidthRateLimit -> Text
..} =
Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
gatewayARN
instance Prelude.NFData DescribeBandwidthRateLimit where
rnf :: DescribeBandwidthRateLimit -> ()
rnf DescribeBandwidthRateLimit' {Text
gatewayARN :: Text
$sel:gatewayARN:DescribeBandwidthRateLimit' :: DescribeBandwidthRateLimit -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
gatewayARN
instance Data.ToHeaders DescribeBandwidthRateLimit where
toHeaders :: DescribeBandwidthRateLimit -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"X-Amz-Target"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"StorageGateway_20130630.DescribeBandwidthRateLimit" ::
Prelude.ByteString
),
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON DescribeBandwidthRateLimit where
toJSON :: DescribeBandwidthRateLimit -> Value
toJSON DescribeBandwidthRateLimit' {Text
gatewayARN :: Text
$sel:gatewayARN:DescribeBandwidthRateLimit' :: DescribeBandwidthRateLimit -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[forall a. a -> Maybe a
Prelude.Just (Key
"GatewayARN" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
gatewayARN)]
)
instance Data.ToPath DescribeBandwidthRateLimit where
toPath :: DescribeBandwidthRateLimit -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery DescribeBandwidthRateLimit where
toQuery :: DescribeBandwidthRateLimit -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data DescribeBandwidthRateLimitResponse = DescribeBandwidthRateLimitResponse'
{
DescribeBandwidthRateLimitResponse -> Maybe Natural
averageDownloadRateLimitInBitsPerSec :: Prelude.Maybe Prelude.Natural,
DescribeBandwidthRateLimitResponse -> Maybe Natural
averageUploadRateLimitInBitsPerSec :: Prelude.Maybe Prelude.Natural,
DescribeBandwidthRateLimitResponse -> Maybe Text
gatewayARN :: Prelude.Maybe Prelude.Text,
DescribeBandwidthRateLimitResponse -> Int
httpStatus :: Prelude.Int
}
deriving (DescribeBandwidthRateLimitResponse
-> DescribeBandwidthRateLimitResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeBandwidthRateLimitResponse
-> DescribeBandwidthRateLimitResponse -> Bool
$c/= :: DescribeBandwidthRateLimitResponse
-> DescribeBandwidthRateLimitResponse -> Bool
== :: DescribeBandwidthRateLimitResponse
-> DescribeBandwidthRateLimitResponse -> Bool
$c== :: DescribeBandwidthRateLimitResponse
-> DescribeBandwidthRateLimitResponse -> Bool
Prelude.Eq, ReadPrec [DescribeBandwidthRateLimitResponse]
ReadPrec DescribeBandwidthRateLimitResponse
Int -> ReadS DescribeBandwidthRateLimitResponse
ReadS [DescribeBandwidthRateLimitResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeBandwidthRateLimitResponse]
$creadListPrec :: ReadPrec [DescribeBandwidthRateLimitResponse]
readPrec :: ReadPrec DescribeBandwidthRateLimitResponse
$creadPrec :: ReadPrec DescribeBandwidthRateLimitResponse
readList :: ReadS [DescribeBandwidthRateLimitResponse]
$creadList :: ReadS [DescribeBandwidthRateLimitResponse]
readsPrec :: Int -> ReadS DescribeBandwidthRateLimitResponse
$creadsPrec :: Int -> ReadS DescribeBandwidthRateLimitResponse
Prelude.Read, Int -> DescribeBandwidthRateLimitResponse -> ShowS
[DescribeBandwidthRateLimitResponse] -> ShowS
DescribeBandwidthRateLimitResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeBandwidthRateLimitResponse] -> ShowS
$cshowList :: [DescribeBandwidthRateLimitResponse] -> ShowS
show :: DescribeBandwidthRateLimitResponse -> String
$cshow :: DescribeBandwidthRateLimitResponse -> String
showsPrec :: Int -> DescribeBandwidthRateLimitResponse -> ShowS
$cshowsPrec :: Int -> DescribeBandwidthRateLimitResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeBandwidthRateLimitResponse x
-> DescribeBandwidthRateLimitResponse
forall x.
DescribeBandwidthRateLimitResponse
-> Rep DescribeBandwidthRateLimitResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeBandwidthRateLimitResponse x
-> DescribeBandwidthRateLimitResponse
$cfrom :: forall x.
DescribeBandwidthRateLimitResponse
-> Rep DescribeBandwidthRateLimitResponse x
Prelude.Generic)
newDescribeBandwidthRateLimitResponse ::
Prelude.Int ->
DescribeBandwidthRateLimitResponse
newDescribeBandwidthRateLimitResponse :: Int -> DescribeBandwidthRateLimitResponse
newDescribeBandwidthRateLimitResponse Int
pHttpStatus_ =
DescribeBandwidthRateLimitResponse'
{ $sel:averageDownloadRateLimitInBitsPerSec:DescribeBandwidthRateLimitResponse' :: Maybe Natural
averageDownloadRateLimitInBitsPerSec =
forall a. Maybe a
Prelude.Nothing,
$sel:averageUploadRateLimitInBitsPerSec:DescribeBandwidthRateLimitResponse' :: Maybe Natural
averageUploadRateLimitInBitsPerSec =
forall a. Maybe a
Prelude.Nothing,
$sel:gatewayARN:DescribeBandwidthRateLimitResponse' :: Maybe Text
gatewayARN = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:DescribeBandwidthRateLimitResponse' :: Int
httpStatus = Int
pHttpStatus_
}
describeBandwidthRateLimitResponse_averageDownloadRateLimitInBitsPerSec :: Lens.Lens' DescribeBandwidthRateLimitResponse (Prelude.Maybe Prelude.Natural)
describeBandwidthRateLimitResponse_averageDownloadRateLimitInBitsPerSec :: Lens' DescribeBandwidthRateLimitResponse (Maybe Natural)
describeBandwidthRateLimitResponse_averageDownloadRateLimitInBitsPerSec = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeBandwidthRateLimitResponse' {Maybe Natural
averageDownloadRateLimitInBitsPerSec :: Maybe Natural
$sel:averageDownloadRateLimitInBitsPerSec:DescribeBandwidthRateLimitResponse' :: DescribeBandwidthRateLimitResponse -> Maybe Natural
averageDownloadRateLimitInBitsPerSec} -> Maybe Natural
averageDownloadRateLimitInBitsPerSec) (\s :: DescribeBandwidthRateLimitResponse
s@DescribeBandwidthRateLimitResponse' {} Maybe Natural
a -> DescribeBandwidthRateLimitResponse
s {$sel:averageDownloadRateLimitInBitsPerSec:DescribeBandwidthRateLimitResponse' :: Maybe Natural
averageDownloadRateLimitInBitsPerSec = Maybe Natural
a} :: DescribeBandwidthRateLimitResponse)
describeBandwidthRateLimitResponse_averageUploadRateLimitInBitsPerSec :: Lens.Lens' DescribeBandwidthRateLimitResponse (Prelude.Maybe Prelude.Natural)
describeBandwidthRateLimitResponse_averageUploadRateLimitInBitsPerSec :: Lens' DescribeBandwidthRateLimitResponse (Maybe Natural)
describeBandwidthRateLimitResponse_averageUploadRateLimitInBitsPerSec = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeBandwidthRateLimitResponse' {Maybe Natural
averageUploadRateLimitInBitsPerSec :: Maybe Natural
$sel:averageUploadRateLimitInBitsPerSec:DescribeBandwidthRateLimitResponse' :: DescribeBandwidthRateLimitResponse -> Maybe Natural
averageUploadRateLimitInBitsPerSec} -> Maybe Natural
averageUploadRateLimitInBitsPerSec) (\s :: DescribeBandwidthRateLimitResponse
s@DescribeBandwidthRateLimitResponse' {} Maybe Natural
a -> DescribeBandwidthRateLimitResponse
s {$sel:averageUploadRateLimitInBitsPerSec:DescribeBandwidthRateLimitResponse' :: Maybe Natural
averageUploadRateLimitInBitsPerSec = Maybe Natural
a} :: DescribeBandwidthRateLimitResponse)
describeBandwidthRateLimitResponse_gatewayARN :: Lens.Lens' DescribeBandwidthRateLimitResponse (Prelude.Maybe Prelude.Text)
describeBandwidthRateLimitResponse_gatewayARN :: Lens' DescribeBandwidthRateLimitResponse (Maybe Text)
describeBandwidthRateLimitResponse_gatewayARN = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeBandwidthRateLimitResponse' {Maybe Text
gatewayARN :: Maybe Text
$sel:gatewayARN:DescribeBandwidthRateLimitResponse' :: DescribeBandwidthRateLimitResponse -> Maybe Text
gatewayARN} -> Maybe Text
gatewayARN) (\s :: DescribeBandwidthRateLimitResponse
s@DescribeBandwidthRateLimitResponse' {} Maybe Text
a -> DescribeBandwidthRateLimitResponse
s {$sel:gatewayARN:DescribeBandwidthRateLimitResponse' :: Maybe Text
gatewayARN = Maybe Text
a} :: DescribeBandwidthRateLimitResponse)
describeBandwidthRateLimitResponse_httpStatus :: Lens.Lens' DescribeBandwidthRateLimitResponse Prelude.Int
describeBandwidthRateLimitResponse_httpStatus :: Lens' DescribeBandwidthRateLimitResponse Int
describeBandwidthRateLimitResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeBandwidthRateLimitResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeBandwidthRateLimitResponse' :: DescribeBandwidthRateLimitResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeBandwidthRateLimitResponse
s@DescribeBandwidthRateLimitResponse' {} Int
a -> DescribeBandwidthRateLimitResponse
s {$sel:httpStatus:DescribeBandwidthRateLimitResponse' :: Int
httpStatus = Int
a} :: DescribeBandwidthRateLimitResponse)
instance
Prelude.NFData
DescribeBandwidthRateLimitResponse
where
rnf :: DescribeBandwidthRateLimitResponse -> ()
rnf DescribeBandwidthRateLimitResponse' {Int
Maybe Natural
Maybe Text
httpStatus :: Int
gatewayARN :: Maybe Text
averageUploadRateLimitInBitsPerSec :: Maybe Natural
averageDownloadRateLimitInBitsPerSec :: Maybe Natural
$sel:httpStatus:DescribeBandwidthRateLimitResponse' :: DescribeBandwidthRateLimitResponse -> Int
$sel:gatewayARN:DescribeBandwidthRateLimitResponse' :: DescribeBandwidthRateLimitResponse -> Maybe Text
$sel:averageUploadRateLimitInBitsPerSec:DescribeBandwidthRateLimitResponse' :: DescribeBandwidthRateLimitResponse -> Maybe Natural
$sel:averageDownloadRateLimitInBitsPerSec:DescribeBandwidthRateLimitResponse' :: DescribeBandwidthRateLimitResponse -> Maybe Natural
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
averageDownloadRateLimitInBitsPerSec
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
averageUploadRateLimitInBitsPerSec
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
gatewayARN
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus