{-# 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 #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.StorageGateway.DescribeBandwidthRateLimit
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns the bandwidth rate limits of a gateway. By default, these limits
-- are not set, which means no bandwidth rate limiting is in effect. This
-- operation is supported only for the stored volume, cached volume, and
-- tape gateway types. To describe bandwidth rate limits for S3 file
-- gateways, use DescribeBandwidthRateLimitSchedule.
--
-- This operation returns a value for a bandwidth rate limit only if the
-- limit is set. If no limits are set for the gateway, then this operation
-- returns only the gateway ARN in the response body. To specify which
-- gateway to describe, use the Amazon Resource Name (ARN) of the gateway
-- in your request.
module Amazonka.StorageGateway.DescribeBandwidthRateLimit
  ( -- * Creating a Request
    DescribeBandwidthRateLimit (..),
    newDescribeBandwidthRateLimit,

    -- * Request Lenses
    describeBandwidthRateLimit_gatewayARN,

    -- * Destructuring the Response
    DescribeBandwidthRateLimitResponse (..),
    newDescribeBandwidthRateLimitResponse,

    -- * Response Lenses
    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

-- | A JSON object containing the Amazon Resource Name (ARN) of the gateway.
--
-- /See:/ 'newDescribeBandwidthRateLimit' smart constructor.
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)

-- |
-- Create a value of 'DescribeBandwidthRateLimit' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'gatewayARN', 'describeBandwidthRateLimit_gatewayARN' - Undocumented member.
newDescribeBandwidthRateLimit ::
  -- | 'gatewayARN'
  Prelude.Text ->
  DescribeBandwidthRateLimit
newDescribeBandwidthRateLimit :: Text -> DescribeBandwidthRateLimit
newDescribeBandwidthRateLimit Text
pGatewayARN_ =
  DescribeBandwidthRateLimit'
    { $sel:gatewayARN:DescribeBandwidthRateLimit' :: Text
gatewayARN =
        Text
pGatewayARN_
    }

-- | Undocumented member.
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

-- | A JSON object containing the following fields:
--
-- /See:/ 'newDescribeBandwidthRateLimitResponse' smart constructor.
data DescribeBandwidthRateLimitResponse = DescribeBandwidthRateLimitResponse'
  { -- | The average download bandwidth rate limit in bits per second. This field
    -- does not appear in the response if the download rate limit is not set.
    DescribeBandwidthRateLimitResponse -> Maybe Natural
averageDownloadRateLimitInBitsPerSec :: Prelude.Maybe Prelude.Natural,
    -- | The average upload bandwidth rate limit in bits per second. This field
    -- does not appear in the response if the upload rate limit is not set.
    DescribeBandwidthRateLimitResponse -> Maybe Natural
averageUploadRateLimitInBitsPerSec :: Prelude.Maybe Prelude.Natural,
    DescribeBandwidthRateLimitResponse -> Maybe Text
gatewayARN :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    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)

-- |
-- Create a value of 'DescribeBandwidthRateLimitResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'averageDownloadRateLimitInBitsPerSec', 'describeBandwidthRateLimitResponse_averageDownloadRateLimitInBitsPerSec' - The average download bandwidth rate limit in bits per second. This field
-- does not appear in the response if the download rate limit is not set.
--
-- 'averageUploadRateLimitInBitsPerSec', 'describeBandwidthRateLimitResponse_averageUploadRateLimitInBitsPerSec' - The average upload bandwidth rate limit in bits per second. This field
-- does not appear in the response if the upload rate limit is not set.
--
-- 'gatewayARN', 'describeBandwidthRateLimitResponse_gatewayARN' - Undocumented member.
--
-- 'httpStatus', 'describeBandwidthRateLimitResponse_httpStatus' - The response's http status code.
newDescribeBandwidthRateLimitResponse ::
  -- | 'httpStatus'
  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_
    }

-- | The average download bandwidth rate limit in bits per second. This field
-- does not appear in the response if the download rate limit is not set.
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)

-- | The average upload bandwidth rate limit in bits per second. This field
-- does not appear in the response if the upload rate limit is not set.
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)

-- | Undocumented member.
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)

-- | The response's http status code.
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