{-# 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.DirectConnect.DescribeRouterConfiguration
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Details about the router.
module Amazonka.DirectConnect.DescribeRouterConfiguration
  ( -- * Creating a Request
    DescribeRouterConfiguration (..),
    newDescribeRouterConfiguration,

    -- * Request Lenses
    describeRouterConfiguration_routerTypeIdentifier,
    describeRouterConfiguration_virtualInterfaceId,

    -- * Destructuring the Response
    DescribeRouterConfigurationResponse (..),
    newDescribeRouterConfigurationResponse,

    -- * Response Lenses
    describeRouterConfigurationResponse_customerRouterConfig,
    describeRouterConfigurationResponse_router,
    describeRouterConfigurationResponse_virtualInterfaceId,
    describeRouterConfigurationResponse_virtualInterfaceName,
    describeRouterConfigurationResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.DirectConnect.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | Provides the details about a virtual interface\'s router.
--
-- /See:/ 'newDescribeRouterConfiguration' smart constructor.
data DescribeRouterConfiguration = DescribeRouterConfiguration'
  { -- | Identifies the router by a combination of vendor, platform, and software
    -- version. For example, @CiscoSystemsInc-2900SeriesRouters-IOS124@.
    DescribeRouterConfiguration -> Maybe Text
routerTypeIdentifier :: Prelude.Maybe Prelude.Text,
    -- | The ID of the virtual interface.
    DescribeRouterConfiguration -> Text
virtualInterfaceId :: Prelude.Text
  }
  deriving (DescribeRouterConfiguration -> DescribeRouterConfiguration -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeRouterConfiguration -> DescribeRouterConfiguration -> Bool
$c/= :: DescribeRouterConfiguration -> DescribeRouterConfiguration -> Bool
== :: DescribeRouterConfiguration -> DescribeRouterConfiguration -> Bool
$c== :: DescribeRouterConfiguration -> DescribeRouterConfiguration -> Bool
Prelude.Eq, ReadPrec [DescribeRouterConfiguration]
ReadPrec DescribeRouterConfiguration
Int -> ReadS DescribeRouterConfiguration
ReadS [DescribeRouterConfiguration]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeRouterConfiguration]
$creadListPrec :: ReadPrec [DescribeRouterConfiguration]
readPrec :: ReadPrec DescribeRouterConfiguration
$creadPrec :: ReadPrec DescribeRouterConfiguration
readList :: ReadS [DescribeRouterConfiguration]
$creadList :: ReadS [DescribeRouterConfiguration]
readsPrec :: Int -> ReadS DescribeRouterConfiguration
$creadsPrec :: Int -> ReadS DescribeRouterConfiguration
Prelude.Read, Int -> DescribeRouterConfiguration -> ShowS
[DescribeRouterConfiguration] -> ShowS
DescribeRouterConfiguration -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeRouterConfiguration] -> ShowS
$cshowList :: [DescribeRouterConfiguration] -> ShowS
show :: DescribeRouterConfiguration -> String
$cshow :: DescribeRouterConfiguration -> String
showsPrec :: Int -> DescribeRouterConfiguration -> ShowS
$cshowsPrec :: Int -> DescribeRouterConfiguration -> ShowS
Prelude.Show, forall x.
Rep DescribeRouterConfiguration x -> DescribeRouterConfiguration
forall x.
DescribeRouterConfiguration -> Rep DescribeRouterConfiguration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeRouterConfiguration x -> DescribeRouterConfiguration
$cfrom :: forall x.
DescribeRouterConfiguration -> Rep DescribeRouterConfiguration x
Prelude.Generic)

-- |
-- Create a value of 'DescribeRouterConfiguration' 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:
--
-- 'routerTypeIdentifier', 'describeRouterConfiguration_routerTypeIdentifier' - Identifies the router by a combination of vendor, platform, and software
-- version. For example, @CiscoSystemsInc-2900SeriesRouters-IOS124@.
--
-- 'virtualInterfaceId', 'describeRouterConfiguration_virtualInterfaceId' - The ID of the virtual interface.
newDescribeRouterConfiguration ::
  -- | 'virtualInterfaceId'
  Prelude.Text ->
  DescribeRouterConfiguration
newDescribeRouterConfiguration :: Text -> DescribeRouterConfiguration
newDescribeRouterConfiguration Text
pVirtualInterfaceId_ =
  DescribeRouterConfiguration'
    { $sel:routerTypeIdentifier:DescribeRouterConfiguration' :: Maybe Text
routerTypeIdentifier =
        forall a. Maybe a
Prelude.Nothing,
      $sel:virtualInterfaceId:DescribeRouterConfiguration' :: Text
virtualInterfaceId = Text
pVirtualInterfaceId_
    }

-- | Identifies the router by a combination of vendor, platform, and software
-- version. For example, @CiscoSystemsInc-2900SeriesRouters-IOS124@.
describeRouterConfiguration_routerTypeIdentifier :: Lens.Lens' DescribeRouterConfiguration (Prelude.Maybe Prelude.Text)
describeRouterConfiguration_routerTypeIdentifier :: Lens' DescribeRouterConfiguration (Maybe Text)
describeRouterConfiguration_routerTypeIdentifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeRouterConfiguration' {Maybe Text
routerTypeIdentifier :: Maybe Text
$sel:routerTypeIdentifier:DescribeRouterConfiguration' :: DescribeRouterConfiguration -> Maybe Text
routerTypeIdentifier} -> Maybe Text
routerTypeIdentifier) (\s :: DescribeRouterConfiguration
s@DescribeRouterConfiguration' {} Maybe Text
a -> DescribeRouterConfiguration
s {$sel:routerTypeIdentifier:DescribeRouterConfiguration' :: Maybe Text
routerTypeIdentifier = Maybe Text
a} :: DescribeRouterConfiguration)

-- | The ID of the virtual interface.
describeRouterConfiguration_virtualInterfaceId :: Lens.Lens' DescribeRouterConfiguration Prelude.Text
describeRouterConfiguration_virtualInterfaceId :: Lens' DescribeRouterConfiguration Text
describeRouterConfiguration_virtualInterfaceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeRouterConfiguration' {Text
virtualInterfaceId :: Text
$sel:virtualInterfaceId:DescribeRouterConfiguration' :: DescribeRouterConfiguration -> Text
virtualInterfaceId} -> Text
virtualInterfaceId) (\s :: DescribeRouterConfiguration
s@DescribeRouterConfiguration' {} Text
a -> DescribeRouterConfiguration
s {$sel:virtualInterfaceId:DescribeRouterConfiguration' :: Text
virtualInterfaceId = Text
a} :: DescribeRouterConfiguration)

instance Core.AWSRequest DescribeRouterConfiguration where
  type
    AWSResponse DescribeRouterConfiguration =
      DescribeRouterConfigurationResponse
  request :: (Service -> Service)
-> DescribeRouterConfiguration
-> Request DescribeRouterConfiguration
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 DescribeRouterConfiguration
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeRouterConfiguration)))
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 Text
-> Maybe RouterType
-> Maybe Text
-> Maybe Text
-> Int
-> DescribeRouterConfigurationResponse
DescribeRouterConfigurationResponse'
            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
"customerRouterConfig")
            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
"router")
            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
"virtualInterfaceId")
            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
"virtualInterfaceName")
            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 DescribeRouterConfiguration where
  hashWithSalt :: Int -> DescribeRouterConfiguration -> Int
hashWithSalt Int
_salt DescribeRouterConfiguration' {Maybe Text
Text
virtualInterfaceId :: Text
routerTypeIdentifier :: Maybe Text
$sel:virtualInterfaceId:DescribeRouterConfiguration' :: DescribeRouterConfiguration -> Text
$sel:routerTypeIdentifier:DescribeRouterConfiguration' :: DescribeRouterConfiguration -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
routerTypeIdentifier
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
virtualInterfaceId

instance Prelude.NFData DescribeRouterConfiguration where
  rnf :: DescribeRouterConfiguration -> ()
rnf DescribeRouterConfiguration' {Maybe Text
Text
virtualInterfaceId :: Text
routerTypeIdentifier :: Maybe Text
$sel:virtualInterfaceId:DescribeRouterConfiguration' :: DescribeRouterConfiguration -> Text
$sel:routerTypeIdentifier:DescribeRouterConfiguration' :: DescribeRouterConfiguration -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
routerTypeIdentifier
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
virtualInterfaceId

instance Data.ToHeaders DescribeRouterConfiguration where
  toHeaders :: DescribeRouterConfiguration -> 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
"OvertureService.DescribeRouterConfiguration" ::
                          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 DescribeRouterConfiguration where
  toJSON :: DescribeRouterConfiguration -> Value
toJSON DescribeRouterConfiguration' {Maybe Text
Text
virtualInterfaceId :: Text
routerTypeIdentifier :: Maybe Text
$sel:virtualInterfaceId:DescribeRouterConfiguration' :: DescribeRouterConfiguration -> Text
$sel:routerTypeIdentifier:DescribeRouterConfiguration' :: DescribeRouterConfiguration -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"routerTypeIdentifier" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
routerTypeIdentifier,
            forall a. a -> Maybe a
Prelude.Just
              (Key
"virtualInterfaceId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
virtualInterfaceId)
          ]
      )

instance Data.ToPath DescribeRouterConfiguration where
  toPath :: DescribeRouterConfiguration -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance Data.ToQuery DescribeRouterConfiguration where
  toQuery :: DescribeRouterConfiguration -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newDescribeRouterConfigurationResponse' smart constructor.
data DescribeRouterConfigurationResponse = DescribeRouterConfigurationResponse'
  { -- | The customer router configuration.
    DescribeRouterConfigurationResponse -> Maybe Text
customerRouterConfig :: Prelude.Maybe Prelude.Text,
    -- | The details about the router.
    DescribeRouterConfigurationResponse -> Maybe RouterType
router :: Prelude.Maybe RouterType,
    -- | The ID assigned to the virtual interface.
    DescribeRouterConfigurationResponse -> Maybe Text
virtualInterfaceId :: Prelude.Maybe Prelude.Text,
    -- | Provides the details about a virtual interface\'s router.
    DescribeRouterConfigurationResponse -> Maybe Text
virtualInterfaceName :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeRouterConfigurationResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeRouterConfigurationResponse
-> DescribeRouterConfigurationResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeRouterConfigurationResponse
-> DescribeRouterConfigurationResponse -> Bool
$c/= :: DescribeRouterConfigurationResponse
-> DescribeRouterConfigurationResponse -> Bool
== :: DescribeRouterConfigurationResponse
-> DescribeRouterConfigurationResponse -> Bool
$c== :: DescribeRouterConfigurationResponse
-> DescribeRouterConfigurationResponse -> Bool
Prelude.Eq, ReadPrec [DescribeRouterConfigurationResponse]
ReadPrec DescribeRouterConfigurationResponse
Int -> ReadS DescribeRouterConfigurationResponse
ReadS [DescribeRouterConfigurationResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeRouterConfigurationResponse]
$creadListPrec :: ReadPrec [DescribeRouterConfigurationResponse]
readPrec :: ReadPrec DescribeRouterConfigurationResponse
$creadPrec :: ReadPrec DescribeRouterConfigurationResponse
readList :: ReadS [DescribeRouterConfigurationResponse]
$creadList :: ReadS [DescribeRouterConfigurationResponse]
readsPrec :: Int -> ReadS DescribeRouterConfigurationResponse
$creadsPrec :: Int -> ReadS DescribeRouterConfigurationResponse
Prelude.Read, Int -> DescribeRouterConfigurationResponse -> ShowS
[DescribeRouterConfigurationResponse] -> ShowS
DescribeRouterConfigurationResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeRouterConfigurationResponse] -> ShowS
$cshowList :: [DescribeRouterConfigurationResponse] -> ShowS
show :: DescribeRouterConfigurationResponse -> String
$cshow :: DescribeRouterConfigurationResponse -> String
showsPrec :: Int -> DescribeRouterConfigurationResponse -> ShowS
$cshowsPrec :: Int -> DescribeRouterConfigurationResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeRouterConfigurationResponse x
-> DescribeRouterConfigurationResponse
forall x.
DescribeRouterConfigurationResponse
-> Rep DescribeRouterConfigurationResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeRouterConfigurationResponse x
-> DescribeRouterConfigurationResponse
$cfrom :: forall x.
DescribeRouterConfigurationResponse
-> Rep DescribeRouterConfigurationResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeRouterConfigurationResponse' 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:
--
-- 'customerRouterConfig', 'describeRouterConfigurationResponse_customerRouterConfig' - The customer router configuration.
--
-- 'router', 'describeRouterConfigurationResponse_router' - The details about the router.
--
-- 'virtualInterfaceId', 'describeRouterConfigurationResponse_virtualInterfaceId' - The ID assigned to the virtual interface.
--
-- 'virtualInterfaceName', 'describeRouterConfigurationResponse_virtualInterfaceName' - Provides the details about a virtual interface\'s router.
--
-- 'httpStatus', 'describeRouterConfigurationResponse_httpStatus' - The response's http status code.
newDescribeRouterConfigurationResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeRouterConfigurationResponse
newDescribeRouterConfigurationResponse :: Int -> DescribeRouterConfigurationResponse
newDescribeRouterConfigurationResponse Int
pHttpStatus_ =
  DescribeRouterConfigurationResponse'
    { $sel:customerRouterConfig:DescribeRouterConfigurationResponse' :: Maybe Text
customerRouterConfig =
        forall a. Maybe a
Prelude.Nothing,
      $sel:router:DescribeRouterConfigurationResponse' :: Maybe RouterType
router = forall a. Maybe a
Prelude.Nothing,
      $sel:virtualInterfaceId:DescribeRouterConfigurationResponse' :: Maybe Text
virtualInterfaceId = forall a. Maybe a
Prelude.Nothing,
      $sel:virtualInterfaceName:DescribeRouterConfigurationResponse' :: Maybe Text
virtualInterfaceName = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeRouterConfigurationResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The customer router configuration.
describeRouterConfigurationResponse_customerRouterConfig :: Lens.Lens' DescribeRouterConfigurationResponse (Prelude.Maybe Prelude.Text)
describeRouterConfigurationResponse_customerRouterConfig :: Lens' DescribeRouterConfigurationResponse (Maybe Text)
describeRouterConfigurationResponse_customerRouterConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeRouterConfigurationResponse' {Maybe Text
customerRouterConfig :: Maybe Text
$sel:customerRouterConfig:DescribeRouterConfigurationResponse' :: DescribeRouterConfigurationResponse -> Maybe Text
customerRouterConfig} -> Maybe Text
customerRouterConfig) (\s :: DescribeRouterConfigurationResponse
s@DescribeRouterConfigurationResponse' {} Maybe Text
a -> DescribeRouterConfigurationResponse
s {$sel:customerRouterConfig:DescribeRouterConfigurationResponse' :: Maybe Text
customerRouterConfig = Maybe Text
a} :: DescribeRouterConfigurationResponse)

-- | The details about the router.
describeRouterConfigurationResponse_router :: Lens.Lens' DescribeRouterConfigurationResponse (Prelude.Maybe RouterType)
describeRouterConfigurationResponse_router :: Lens' DescribeRouterConfigurationResponse (Maybe RouterType)
describeRouterConfigurationResponse_router = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeRouterConfigurationResponse' {Maybe RouterType
router :: Maybe RouterType
$sel:router:DescribeRouterConfigurationResponse' :: DescribeRouterConfigurationResponse -> Maybe RouterType
router} -> Maybe RouterType
router) (\s :: DescribeRouterConfigurationResponse
s@DescribeRouterConfigurationResponse' {} Maybe RouterType
a -> DescribeRouterConfigurationResponse
s {$sel:router:DescribeRouterConfigurationResponse' :: Maybe RouterType
router = Maybe RouterType
a} :: DescribeRouterConfigurationResponse)

-- | The ID assigned to the virtual interface.
describeRouterConfigurationResponse_virtualInterfaceId :: Lens.Lens' DescribeRouterConfigurationResponse (Prelude.Maybe Prelude.Text)
describeRouterConfigurationResponse_virtualInterfaceId :: Lens' DescribeRouterConfigurationResponse (Maybe Text)
describeRouterConfigurationResponse_virtualInterfaceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeRouterConfigurationResponse' {Maybe Text
virtualInterfaceId :: Maybe Text
$sel:virtualInterfaceId:DescribeRouterConfigurationResponse' :: DescribeRouterConfigurationResponse -> Maybe Text
virtualInterfaceId} -> Maybe Text
virtualInterfaceId) (\s :: DescribeRouterConfigurationResponse
s@DescribeRouterConfigurationResponse' {} Maybe Text
a -> DescribeRouterConfigurationResponse
s {$sel:virtualInterfaceId:DescribeRouterConfigurationResponse' :: Maybe Text
virtualInterfaceId = Maybe Text
a} :: DescribeRouterConfigurationResponse)

-- | Provides the details about a virtual interface\'s router.
describeRouterConfigurationResponse_virtualInterfaceName :: Lens.Lens' DescribeRouterConfigurationResponse (Prelude.Maybe Prelude.Text)
describeRouterConfigurationResponse_virtualInterfaceName :: Lens' DescribeRouterConfigurationResponse (Maybe Text)
describeRouterConfigurationResponse_virtualInterfaceName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeRouterConfigurationResponse' {Maybe Text
virtualInterfaceName :: Maybe Text
$sel:virtualInterfaceName:DescribeRouterConfigurationResponse' :: DescribeRouterConfigurationResponse -> Maybe Text
virtualInterfaceName} -> Maybe Text
virtualInterfaceName) (\s :: DescribeRouterConfigurationResponse
s@DescribeRouterConfigurationResponse' {} Maybe Text
a -> DescribeRouterConfigurationResponse
s {$sel:virtualInterfaceName:DescribeRouterConfigurationResponse' :: Maybe Text
virtualInterfaceName = Maybe Text
a} :: DescribeRouterConfigurationResponse)

-- | The response's http status code.
describeRouterConfigurationResponse_httpStatus :: Lens.Lens' DescribeRouterConfigurationResponse Prelude.Int
describeRouterConfigurationResponse_httpStatus :: Lens' DescribeRouterConfigurationResponse Int
describeRouterConfigurationResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeRouterConfigurationResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeRouterConfigurationResponse' :: DescribeRouterConfigurationResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeRouterConfigurationResponse
s@DescribeRouterConfigurationResponse' {} Int
a -> DescribeRouterConfigurationResponse
s {$sel:httpStatus:DescribeRouterConfigurationResponse' :: Int
httpStatus = Int
a} :: DescribeRouterConfigurationResponse)

instance
  Prelude.NFData
    DescribeRouterConfigurationResponse
  where
  rnf :: DescribeRouterConfigurationResponse -> ()
rnf DescribeRouterConfigurationResponse' {Int
Maybe Text
Maybe RouterType
httpStatus :: Int
virtualInterfaceName :: Maybe Text
virtualInterfaceId :: Maybe Text
router :: Maybe RouterType
customerRouterConfig :: Maybe Text
$sel:httpStatus:DescribeRouterConfigurationResponse' :: DescribeRouterConfigurationResponse -> Int
$sel:virtualInterfaceName:DescribeRouterConfigurationResponse' :: DescribeRouterConfigurationResponse -> Maybe Text
$sel:virtualInterfaceId:DescribeRouterConfigurationResponse' :: DescribeRouterConfigurationResponse -> Maybe Text
$sel:router:DescribeRouterConfigurationResponse' :: DescribeRouterConfigurationResponse -> Maybe RouterType
$sel:customerRouterConfig:DescribeRouterConfigurationResponse' :: DescribeRouterConfigurationResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
customerRouterConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe RouterType
router
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
virtualInterfaceId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
virtualInterfaceName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus