{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

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

-- |
-- Module      : Amazonka.EC2.Types.AnalysisRouteTableRoute
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.EC2.Types.AnalysisRouteTableRoute where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.EC2.Internal
import qualified Amazonka.Prelude as Prelude

-- | Describes a route table route.
--
-- /See:/ 'newAnalysisRouteTableRoute' smart constructor.
data AnalysisRouteTableRoute = AnalysisRouteTableRoute'
  { -- | The destination IPv4 address, in CIDR notation.
    AnalysisRouteTableRoute -> Maybe Text
destinationCidr :: Prelude.Maybe Prelude.Text,
    -- | The prefix of the Amazon Web Service.
    AnalysisRouteTableRoute -> Maybe Text
destinationPrefixListId :: Prelude.Maybe Prelude.Text,
    -- | The ID of an egress-only internet gateway.
    AnalysisRouteTableRoute -> Maybe Text
egressOnlyInternetGatewayId :: Prelude.Maybe Prelude.Text,
    -- | The ID of the gateway, such as an internet gateway or virtual private
    -- gateway.
    AnalysisRouteTableRoute -> Maybe Text
gatewayId :: Prelude.Maybe Prelude.Text,
    -- | The ID of the instance, such as a NAT instance.
    AnalysisRouteTableRoute -> Maybe Text
instanceId :: Prelude.Maybe Prelude.Text,
    -- | The ID of a NAT gateway.
    AnalysisRouteTableRoute -> Maybe Text
natGatewayId :: Prelude.Maybe Prelude.Text,
    -- | The ID of a network interface.
    AnalysisRouteTableRoute -> Maybe Text
networkInterfaceId :: Prelude.Maybe Prelude.Text,
    -- | Describes how the route was created. The following are the possible
    -- values:
    --
    -- -   CreateRouteTable - The route was automatically created when the
    --     route table was created.
    --
    -- -   CreateRoute - The route was manually added to the route table.
    --
    -- -   EnableVgwRoutePropagation - The route was propagated by route
    --     propagation.
    AnalysisRouteTableRoute -> Maybe Text
origin :: Prelude.Maybe Prelude.Text,
    -- | The state. The following are the possible values:
    --
    -- -   active
    --
    -- -   blackhole
    AnalysisRouteTableRoute -> Maybe Text
state :: Prelude.Maybe Prelude.Text,
    -- | The ID of a transit gateway.
    AnalysisRouteTableRoute -> Maybe Text
transitGatewayId :: Prelude.Maybe Prelude.Text,
    -- | The ID of a VPC peering connection.
    AnalysisRouteTableRoute -> Maybe Text
vpcPeeringConnectionId :: Prelude.Maybe Prelude.Text
  }
  deriving (AnalysisRouteTableRoute -> AnalysisRouteTableRoute -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AnalysisRouteTableRoute -> AnalysisRouteTableRoute -> Bool
$c/= :: AnalysisRouteTableRoute -> AnalysisRouteTableRoute -> Bool
== :: AnalysisRouteTableRoute -> AnalysisRouteTableRoute -> Bool
$c== :: AnalysisRouteTableRoute -> AnalysisRouteTableRoute -> Bool
Prelude.Eq, ReadPrec [AnalysisRouteTableRoute]
ReadPrec AnalysisRouteTableRoute
Int -> ReadS AnalysisRouteTableRoute
ReadS [AnalysisRouteTableRoute]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AnalysisRouteTableRoute]
$creadListPrec :: ReadPrec [AnalysisRouteTableRoute]
readPrec :: ReadPrec AnalysisRouteTableRoute
$creadPrec :: ReadPrec AnalysisRouteTableRoute
readList :: ReadS [AnalysisRouteTableRoute]
$creadList :: ReadS [AnalysisRouteTableRoute]
readsPrec :: Int -> ReadS AnalysisRouteTableRoute
$creadsPrec :: Int -> ReadS AnalysisRouteTableRoute
Prelude.Read, Int -> AnalysisRouteTableRoute -> ShowS
[AnalysisRouteTableRoute] -> ShowS
AnalysisRouteTableRoute -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AnalysisRouteTableRoute] -> ShowS
$cshowList :: [AnalysisRouteTableRoute] -> ShowS
show :: AnalysisRouteTableRoute -> String
$cshow :: AnalysisRouteTableRoute -> String
showsPrec :: Int -> AnalysisRouteTableRoute -> ShowS
$cshowsPrec :: Int -> AnalysisRouteTableRoute -> ShowS
Prelude.Show, forall x. Rep AnalysisRouteTableRoute x -> AnalysisRouteTableRoute
forall x. AnalysisRouteTableRoute -> Rep AnalysisRouteTableRoute x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep AnalysisRouteTableRoute x -> AnalysisRouteTableRoute
$cfrom :: forall x. AnalysisRouteTableRoute -> Rep AnalysisRouteTableRoute x
Prelude.Generic)

-- |
-- Create a value of 'AnalysisRouteTableRoute' 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:
--
-- 'destinationCidr', 'analysisRouteTableRoute_destinationCidr' - The destination IPv4 address, in CIDR notation.
--
-- 'destinationPrefixListId', 'analysisRouteTableRoute_destinationPrefixListId' - The prefix of the Amazon Web Service.
--
-- 'egressOnlyInternetGatewayId', 'analysisRouteTableRoute_egressOnlyInternetGatewayId' - The ID of an egress-only internet gateway.
--
-- 'gatewayId', 'analysisRouteTableRoute_gatewayId' - The ID of the gateway, such as an internet gateway or virtual private
-- gateway.
--
-- 'instanceId', 'analysisRouteTableRoute_instanceId' - The ID of the instance, such as a NAT instance.
--
-- 'natGatewayId', 'analysisRouteTableRoute_natGatewayId' - The ID of a NAT gateway.
--
-- 'networkInterfaceId', 'analysisRouteTableRoute_networkInterfaceId' - The ID of a network interface.
--
-- 'origin', 'analysisRouteTableRoute_origin' - Describes how the route was created. The following are the possible
-- values:
--
-- -   CreateRouteTable - The route was automatically created when the
--     route table was created.
--
-- -   CreateRoute - The route was manually added to the route table.
--
-- -   EnableVgwRoutePropagation - The route was propagated by route
--     propagation.
--
-- 'state', 'analysisRouteTableRoute_state' - The state. The following are the possible values:
--
-- -   active
--
-- -   blackhole
--
-- 'transitGatewayId', 'analysisRouteTableRoute_transitGatewayId' - The ID of a transit gateway.
--
-- 'vpcPeeringConnectionId', 'analysisRouteTableRoute_vpcPeeringConnectionId' - The ID of a VPC peering connection.
newAnalysisRouteTableRoute ::
  AnalysisRouteTableRoute
newAnalysisRouteTableRoute :: AnalysisRouteTableRoute
newAnalysisRouteTableRoute =
  AnalysisRouteTableRoute'
    { $sel:destinationCidr:AnalysisRouteTableRoute' :: Maybe Text
destinationCidr =
        forall a. Maybe a
Prelude.Nothing,
      $sel:destinationPrefixListId:AnalysisRouteTableRoute' :: Maybe Text
destinationPrefixListId = forall a. Maybe a
Prelude.Nothing,
      $sel:egressOnlyInternetGatewayId:AnalysisRouteTableRoute' :: Maybe Text
egressOnlyInternetGatewayId = forall a. Maybe a
Prelude.Nothing,
      $sel:gatewayId:AnalysisRouteTableRoute' :: Maybe Text
gatewayId = forall a. Maybe a
Prelude.Nothing,
      $sel:instanceId:AnalysisRouteTableRoute' :: Maybe Text
instanceId = forall a. Maybe a
Prelude.Nothing,
      $sel:natGatewayId:AnalysisRouteTableRoute' :: Maybe Text
natGatewayId = forall a. Maybe a
Prelude.Nothing,
      $sel:networkInterfaceId:AnalysisRouteTableRoute' :: Maybe Text
networkInterfaceId = forall a. Maybe a
Prelude.Nothing,
      $sel:origin:AnalysisRouteTableRoute' :: Maybe Text
origin = forall a. Maybe a
Prelude.Nothing,
      $sel:state:AnalysisRouteTableRoute' :: Maybe Text
state = forall a. Maybe a
Prelude.Nothing,
      $sel:transitGatewayId:AnalysisRouteTableRoute' :: Maybe Text
transitGatewayId = forall a. Maybe a
Prelude.Nothing,
      $sel:vpcPeeringConnectionId:AnalysisRouteTableRoute' :: Maybe Text
vpcPeeringConnectionId = forall a. Maybe a
Prelude.Nothing
    }

-- | The destination IPv4 address, in CIDR notation.
analysisRouteTableRoute_destinationCidr :: Lens.Lens' AnalysisRouteTableRoute (Prelude.Maybe Prelude.Text)
analysisRouteTableRoute_destinationCidr :: Lens' AnalysisRouteTableRoute (Maybe Text)
analysisRouteTableRoute_destinationCidr = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AnalysisRouteTableRoute' {Maybe Text
destinationCidr :: Maybe Text
$sel:destinationCidr:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
destinationCidr} -> Maybe Text
destinationCidr) (\s :: AnalysisRouteTableRoute
s@AnalysisRouteTableRoute' {} Maybe Text
a -> AnalysisRouteTableRoute
s {$sel:destinationCidr:AnalysisRouteTableRoute' :: Maybe Text
destinationCidr = Maybe Text
a} :: AnalysisRouteTableRoute)

-- | The prefix of the Amazon Web Service.
analysisRouteTableRoute_destinationPrefixListId :: Lens.Lens' AnalysisRouteTableRoute (Prelude.Maybe Prelude.Text)
analysisRouteTableRoute_destinationPrefixListId :: Lens' AnalysisRouteTableRoute (Maybe Text)
analysisRouteTableRoute_destinationPrefixListId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AnalysisRouteTableRoute' {Maybe Text
destinationPrefixListId :: Maybe Text
$sel:destinationPrefixListId:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
destinationPrefixListId} -> Maybe Text
destinationPrefixListId) (\s :: AnalysisRouteTableRoute
s@AnalysisRouteTableRoute' {} Maybe Text
a -> AnalysisRouteTableRoute
s {$sel:destinationPrefixListId:AnalysisRouteTableRoute' :: Maybe Text
destinationPrefixListId = Maybe Text
a} :: AnalysisRouteTableRoute)

-- | The ID of an egress-only internet gateway.
analysisRouteTableRoute_egressOnlyInternetGatewayId :: Lens.Lens' AnalysisRouteTableRoute (Prelude.Maybe Prelude.Text)
analysisRouteTableRoute_egressOnlyInternetGatewayId :: Lens' AnalysisRouteTableRoute (Maybe Text)
analysisRouteTableRoute_egressOnlyInternetGatewayId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AnalysisRouteTableRoute' {Maybe Text
egressOnlyInternetGatewayId :: Maybe Text
$sel:egressOnlyInternetGatewayId:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
egressOnlyInternetGatewayId} -> Maybe Text
egressOnlyInternetGatewayId) (\s :: AnalysisRouteTableRoute
s@AnalysisRouteTableRoute' {} Maybe Text
a -> AnalysisRouteTableRoute
s {$sel:egressOnlyInternetGatewayId:AnalysisRouteTableRoute' :: Maybe Text
egressOnlyInternetGatewayId = Maybe Text
a} :: AnalysisRouteTableRoute)

-- | The ID of the gateway, such as an internet gateway or virtual private
-- gateway.
analysisRouteTableRoute_gatewayId :: Lens.Lens' AnalysisRouteTableRoute (Prelude.Maybe Prelude.Text)
analysisRouteTableRoute_gatewayId :: Lens' AnalysisRouteTableRoute (Maybe Text)
analysisRouteTableRoute_gatewayId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AnalysisRouteTableRoute' {Maybe Text
gatewayId :: Maybe Text
$sel:gatewayId:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
gatewayId} -> Maybe Text
gatewayId) (\s :: AnalysisRouteTableRoute
s@AnalysisRouteTableRoute' {} Maybe Text
a -> AnalysisRouteTableRoute
s {$sel:gatewayId:AnalysisRouteTableRoute' :: Maybe Text
gatewayId = Maybe Text
a} :: AnalysisRouteTableRoute)

-- | The ID of the instance, such as a NAT instance.
analysisRouteTableRoute_instanceId :: Lens.Lens' AnalysisRouteTableRoute (Prelude.Maybe Prelude.Text)
analysisRouteTableRoute_instanceId :: Lens' AnalysisRouteTableRoute (Maybe Text)
analysisRouteTableRoute_instanceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AnalysisRouteTableRoute' {Maybe Text
instanceId :: Maybe Text
$sel:instanceId:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
instanceId} -> Maybe Text
instanceId) (\s :: AnalysisRouteTableRoute
s@AnalysisRouteTableRoute' {} Maybe Text
a -> AnalysisRouteTableRoute
s {$sel:instanceId:AnalysisRouteTableRoute' :: Maybe Text
instanceId = Maybe Text
a} :: AnalysisRouteTableRoute)

-- | The ID of a NAT gateway.
analysisRouteTableRoute_natGatewayId :: Lens.Lens' AnalysisRouteTableRoute (Prelude.Maybe Prelude.Text)
analysisRouteTableRoute_natGatewayId :: Lens' AnalysisRouteTableRoute (Maybe Text)
analysisRouteTableRoute_natGatewayId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AnalysisRouteTableRoute' {Maybe Text
natGatewayId :: Maybe Text
$sel:natGatewayId:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
natGatewayId} -> Maybe Text
natGatewayId) (\s :: AnalysisRouteTableRoute
s@AnalysisRouteTableRoute' {} Maybe Text
a -> AnalysisRouteTableRoute
s {$sel:natGatewayId:AnalysisRouteTableRoute' :: Maybe Text
natGatewayId = Maybe Text
a} :: AnalysisRouteTableRoute)

-- | The ID of a network interface.
analysisRouteTableRoute_networkInterfaceId :: Lens.Lens' AnalysisRouteTableRoute (Prelude.Maybe Prelude.Text)
analysisRouteTableRoute_networkInterfaceId :: Lens' AnalysisRouteTableRoute (Maybe Text)
analysisRouteTableRoute_networkInterfaceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AnalysisRouteTableRoute' {Maybe Text
networkInterfaceId :: Maybe Text
$sel:networkInterfaceId:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
networkInterfaceId} -> Maybe Text
networkInterfaceId) (\s :: AnalysisRouteTableRoute
s@AnalysisRouteTableRoute' {} Maybe Text
a -> AnalysisRouteTableRoute
s {$sel:networkInterfaceId:AnalysisRouteTableRoute' :: Maybe Text
networkInterfaceId = Maybe Text
a} :: AnalysisRouteTableRoute)

-- | Describes how the route was created. The following are the possible
-- values:
--
-- -   CreateRouteTable - The route was automatically created when the
--     route table was created.
--
-- -   CreateRoute - The route was manually added to the route table.
--
-- -   EnableVgwRoutePropagation - The route was propagated by route
--     propagation.
analysisRouteTableRoute_origin :: Lens.Lens' AnalysisRouteTableRoute (Prelude.Maybe Prelude.Text)
analysisRouteTableRoute_origin :: Lens' AnalysisRouteTableRoute (Maybe Text)
analysisRouteTableRoute_origin = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AnalysisRouteTableRoute' {Maybe Text
origin :: Maybe Text
$sel:origin:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
origin} -> Maybe Text
origin) (\s :: AnalysisRouteTableRoute
s@AnalysisRouteTableRoute' {} Maybe Text
a -> AnalysisRouteTableRoute
s {$sel:origin:AnalysisRouteTableRoute' :: Maybe Text
origin = Maybe Text
a} :: AnalysisRouteTableRoute)

-- | The state. The following are the possible values:
--
-- -   active
--
-- -   blackhole
analysisRouteTableRoute_state :: Lens.Lens' AnalysisRouteTableRoute (Prelude.Maybe Prelude.Text)
analysisRouteTableRoute_state :: Lens' AnalysisRouteTableRoute (Maybe Text)
analysisRouteTableRoute_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AnalysisRouteTableRoute' {Maybe Text
state :: Maybe Text
$sel:state:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
state} -> Maybe Text
state) (\s :: AnalysisRouteTableRoute
s@AnalysisRouteTableRoute' {} Maybe Text
a -> AnalysisRouteTableRoute
s {$sel:state:AnalysisRouteTableRoute' :: Maybe Text
state = Maybe Text
a} :: AnalysisRouteTableRoute)

-- | The ID of a transit gateway.
analysisRouteTableRoute_transitGatewayId :: Lens.Lens' AnalysisRouteTableRoute (Prelude.Maybe Prelude.Text)
analysisRouteTableRoute_transitGatewayId :: Lens' AnalysisRouteTableRoute (Maybe Text)
analysisRouteTableRoute_transitGatewayId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AnalysisRouteTableRoute' {Maybe Text
transitGatewayId :: Maybe Text
$sel:transitGatewayId:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
transitGatewayId} -> Maybe Text
transitGatewayId) (\s :: AnalysisRouteTableRoute
s@AnalysisRouteTableRoute' {} Maybe Text
a -> AnalysisRouteTableRoute
s {$sel:transitGatewayId:AnalysisRouteTableRoute' :: Maybe Text
transitGatewayId = Maybe Text
a} :: AnalysisRouteTableRoute)

-- | The ID of a VPC peering connection.
analysisRouteTableRoute_vpcPeeringConnectionId :: Lens.Lens' AnalysisRouteTableRoute (Prelude.Maybe Prelude.Text)
analysisRouteTableRoute_vpcPeeringConnectionId :: Lens' AnalysisRouteTableRoute (Maybe Text)
analysisRouteTableRoute_vpcPeeringConnectionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AnalysisRouteTableRoute' {Maybe Text
vpcPeeringConnectionId :: Maybe Text
$sel:vpcPeeringConnectionId:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
vpcPeeringConnectionId} -> Maybe Text
vpcPeeringConnectionId) (\s :: AnalysisRouteTableRoute
s@AnalysisRouteTableRoute' {} Maybe Text
a -> AnalysisRouteTableRoute
s {$sel:vpcPeeringConnectionId:AnalysisRouteTableRoute' :: Maybe Text
vpcPeeringConnectionId = Maybe Text
a} :: AnalysisRouteTableRoute)

instance Data.FromXML AnalysisRouteTableRoute where
  parseXML :: [Node] -> Either String AnalysisRouteTableRoute
parseXML [Node]
x =
    Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> AnalysisRouteTableRoute
AnalysisRouteTableRoute'
      forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"destinationCidr")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"destinationPrefixListId")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"egressOnlyInternetGatewayId")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"gatewayId")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"instanceId")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"natGatewayId")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"networkInterfaceId")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"origin")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"state")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"transitGatewayId")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"vpcPeeringConnectionId")

instance Prelude.Hashable AnalysisRouteTableRoute where
  hashWithSalt :: Int -> AnalysisRouteTableRoute -> Int
hashWithSalt Int
_salt AnalysisRouteTableRoute' {Maybe Text
vpcPeeringConnectionId :: Maybe Text
transitGatewayId :: Maybe Text
state :: Maybe Text
origin :: Maybe Text
networkInterfaceId :: Maybe Text
natGatewayId :: Maybe Text
instanceId :: Maybe Text
gatewayId :: Maybe Text
egressOnlyInternetGatewayId :: Maybe Text
destinationPrefixListId :: Maybe Text
destinationCidr :: Maybe Text
$sel:vpcPeeringConnectionId:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
$sel:transitGatewayId:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
$sel:state:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
$sel:origin:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
$sel:networkInterfaceId:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
$sel:natGatewayId:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
$sel:instanceId:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
$sel:gatewayId:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
$sel:egressOnlyInternetGatewayId:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
$sel:destinationPrefixListId:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
$sel:destinationCidr:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
destinationCidr
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
destinationPrefixListId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
egressOnlyInternetGatewayId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
gatewayId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
instanceId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
natGatewayId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
networkInterfaceId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
origin
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
state
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
transitGatewayId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
vpcPeeringConnectionId

instance Prelude.NFData AnalysisRouteTableRoute where
  rnf :: AnalysisRouteTableRoute -> ()
rnf AnalysisRouteTableRoute' {Maybe Text
vpcPeeringConnectionId :: Maybe Text
transitGatewayId :: Maybe Text
state :: Maybe Text
origin :: Maybe Text
networkInterfaceId :: Maybe Text
natGatewayId :: Maybe Text
instanceId :: Maybe Text
gatewayId :: Maybe Text
egressOnlyInternetGatewayId :: Maybe Text
destinationPrefixListId :: Maybe Text
destinationCidr :: Maybe Text
$sel:vpcPeeringConnectionId:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
$sel:transitGatewayId:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
$sel:state:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
$sel:origin:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
$sel:networkInterfaceId:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
$sel:natGatewayId:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
$sel:instanceId:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
$sel:gatewayId:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
$sel:egressOnlyInternetGatewayId:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
$sel:destinationPrefixListId:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
$sel:destinationCidr:AnalysisRouteTableRoute' :: AnalysisRouteTableRoute -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
destinationCidr
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
destinationPrefixListId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
egressOnlyInternetGatewayId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
gatewayId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
instanceId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
natGatewayId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
networkInterfaceId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
origin
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
state
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
transitGatewayId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
vpcPeeringConnectionId