{-# 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 #-}
module Amazonka.EC2.Types.TransitGatewayRoute 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 Amazonka.EC2.Types.TransitGatewayRouteAttachment
import Amazonka.EC2.Types.TransitGatewayRouteState
import Amazonka.EC2.Types.TransitGatewayRouteType
import qualified Amazonka.Prelude as Prelude
data TransitGatewayRoute = TransitGatewayRoute'
{
TransitGatewayRoute -> Maybe Text
destinationCidrBlock :: Prelude.Maybe Prelude.Text,
TransitGatewayRoute -> Maybe Text
prefixListId :: Prelude.Maybe Prelude.Text,
TransitGatewayRoute -> Maybe TransitGatewayRouteState
state :: Prelude.Maybe TransitGatewayRouteState,
TransitGatewayRoute -> Maybe [TransitGatewayRouteAttachment]
transitGatewayAttachments :: Prelude.Maybe [TransitGatewayRouteAttachment],
TransitGatewayRoute -> Maybe Text
transitGatewayRouteTableAnnouncementId :: Prelude.Maybe Prelude.Text,
TransitGatewayRoute -> Maybe TransitGatewayRouteType
type' :: Prelude.Maybe TransitGatewayRouteType
}
deriving (TransitGatewayRoute -> TransitGatewayRoute -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TransitGatewayRoute -> TransitGatewayRoute -> Bool
$c/= :: TransitGatewayRoute -> TransitGatewayRoute -> Bool
== :: TransitGatewayRoute -> TransitGatewayRoute -> Bool
$c== :: TransitGatewayRoute -> TransitGatewayRoute -> Bool
Prelude.Eq, ReadPrec [TransitGatewayRoute]
ReadPrec TransitGatewayRoute
Int -> ReadS TransitGatewayRoute
ReadS [TransitGatewayRoute]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [TransitGatewayRoute]
$creadListPrec :: ReadPrec [TransitGatewayRoute]
readPrec :: ReadPrec TransitGatewayRoute
$creadPrec :: ReadPrec TransitGatewayRoute
readList :: ReadS [TransitGatewayRoute]
$creadList :: ReadS [TransitGatewayRoute]
readsPrec :: Int -> ReadS TransitGatewayRoute
$creadsPrec :: Int -> ReadS TransitGatewayRoute
Prelude.Read, Int -> TransitGatewayRoute -> ShowS
[TransitGatewayRoute] -> ShowS
TransitGatewayRoute -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TransitGatewayRoute] -> ShowS
$cshowList :: [TransitGatewayRoute] -> ShowS
show :: TransitGatewayRoute -> String
$cshow :: TransitGatewayRoute -> String
showsPrec :: Int -> TransitGatewayRoute -> ShowS
$cshowsPrec :: Int -> TransitGatewayRoute -> ShowS
Prelude.Show, forall x. Rep TransitGatewayRoute x -> TransitGatewayRoute
forall x. TransitGatewayRoute -> Rep TransitGatewayRoute x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep TransitGatewayRoute x -> TransitGatewayRoute
$cfrom :: forall x. TransitGatewayRoute -> Rep TransitGatewayRoute x
Prelude.Generic)
newTransitGatewayRoute ::
TransitGatewayRoute
newTransitGatewayRoute :: TransitGatewayRoute
newTransitGatewayRoute =
TransitGatewayRoute'
{ $sel:destinationCidrBlock:TransitGatewayRoute' :: Maybe Text
destinationCidrBlock =
forall a. Maybe a
Prelude.Nothing,
$sel:prefixListId:TransitGatewayRoute' :: Maybe Text
prefixListId = forall a. Maybe a
Prelude.Nothing,
$sel:state:TransitGatewayRoute' :: Maybe TransitGatewayRouteState
state = forall a. Maybe a
Prelude.Nothing,
$sel:transitGatewayAttachments:TransitGatewayRoute' :: Maybe [TransitGatewayRouteAttachment]
transitGatewayAttachments = forall a. Maybe a
Prelude.Nothing,
$sel:transitGatewayRouteTableAnnouncementId:TransitGatewayRoute' :: Maybe Text
transitGatewayRouteTableAnnouncementId =
forall a. Maybe a
Prelude.Nothing,
$sel:type':TransitGatewayRoute' :: Maybe TransitGatewayRouteType
type' = forall a. Maybe a
Prelude.Nothing
}
transitGatewayRoute_destinationCidrBlock :: Lens.Lens' TransitGatewayRoute (Prelude.Maybe Prelude.Text)
transitGatewayRoute_destinationCidrBlock :: Lens' TransitGatewayRoute (Maybe Text)
transitGatewayRoute_destinationCidrBlock = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransitGatewayRoute' {Maybe Text
destinationCidrBlock :: Maybe Text
$sel:destinationCidrBlock:TransitGatewayRoute' :: TransitGatewayRoute -> Maybe Text
destinationCidrBlock} -> Maybe Text
destinationCidrBlock) (\s :: TransitGatewayRoute
s@TransitGatewayRoute' {} Maybe Text
a -> TransitGatewayRoute
s {$sel:destinationCidrBlock:TransitGatewayRoute' :: Maybe Text
destinationCidrBlock = Maybe Text
a} :: TransitGatewayRoute)
transitGatewayRoute_prefixListId :: Lens.Lens' TransitGatewayRoute (Prelude.Maybe Prelude.Text)
transitGatewayRoute_prefixListId :: Lens' TransitGatewayRoute (Maybe Text)
transitGatewayRoute_prefixListId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransitGatewayRoute' {Maybe Text
prefixListId :: Maybe Text
$sel:prefixListId:TransitGatewayRoute' :: TransitGatewayRoute -> Maybe Text
prefixListId} -> Maybe Text
prefixListId) (\s :: TransitGatewayRoute
s@TransitGatewayRoute' {} Maybe Text
a -> TransitGatewayRoute
s {$sel:prefixListId:TransitGatewayRoute' :: Maybe Text
prefixListId = Maybe Text
a} :: TransitGatewayRoute)
transitGatewayRoute_state :: Lens.Lens' TransitGatewayRoute (Prelude.Maybe TransitGatewayRouteState)
transitGatewayRoute_state :: Lens' TransitGatewayRoute (Maybe TransitGatewayRouteState)
transitGatewayRoute_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransitGatewayRoute' {Maybe TransitGatewayRouteState
state :: Maybe TransitGatewayRouteState
$sel:state:TransitGatewayRoute' :: TransitGatewayRoute -> Maybe TransitGatewayRouteState
state} -> Maybe TransitGatewayRouteState
state) (\s :: TransitGatewayRoute
s@TransitGatewayRoute' {} Maybe TransitGatewayRouteState
a -> TransitGatewayRoute
s {$sel:state:TransitGatewayRoute' :: Maybe TransitGatewayRouteState
state = Maybe TransitGatewayRouteState
a} :: TransitGatewayRoute)
transitGatewayRoute_transitGatewayAttachments :: Lens.Lens' TransitGatewayRoute (Prelude.Maybe [TransitGatewayRouteAttachment])
transitGatewayRoute_transitGatewayAttachments :: Lens' TransitGatewayRoute (Maybe [TransitGatewayRouteAttachment])
transitGatewayRoute_transitGatewayAttachments = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransitGatewayRoute' {Maybe [TransitGatewayRouteAttachment]
transitGatewayAttachments :: Maybe [TransitGatewayRouteAttachment]
$sel:transitGatewayAttachments:TransitGatewayRoute' :: TransitGatewayRoute -> Maybe [TransitGatewayRouteAttachment]
transitGatewayAttachments} -> Maybe [TransitGatewayRouteAttachment]
transitGatewayAttachments) (\s :: TransitGatewayRoute
s@TransitGatewayRoute' {} Maybe [TransitGatewayRouteAttachment]
a -> TransitGatewayRoute
s {$sel:transitGatewayAttachments:TransitGatewayRoute' :: Maybe [TransitGatewayRouteAttachment]
transitGatewayAttachments = Maybe [TransitGatewayRouteAttachment]
a} :: TransitGatewayRoute) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
transitGatewayRoute_transitGatewayRouteTableAnnouncementId :: Lens.Lens' TransitGatewayRoute (Prelude.Maybe Prelude.Text)
transitGatewayRoute_transitGatewayRouteTableAnnouncementId :: Lens' TransitGatewayRoute (Maybe Text)
transitGatewayRoute_transitGatewayRouteTableAnnouncementId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransitGatewayRoute' {Maybe Text
transitGatewayRouteTableAnnouncementId :: Maybe Text
$sel:transitGatewayRouteTableAnnouncementId:TransitGatewayRoute' :: TransitGatewayRoute -> Maybe Text
transitGatewayRouteTableAnnouncementId} -> Maybe Text
transitGatewayRouteTableAnnouncementId) (\s :: TransitGatewayRoute
s@TransitGatewayRoute' {} Maybe Text
a -> TransitGatewayRoute
s {$sel:transitGatewayRouteTableAnnouncementId:TransitGatewayRoute' :: Maybe Text
transitGatewayRouteTableAnnouncementId = Maybe Text
a} :: TransitGatewayRoute)
transitGatewayRoute_type :: Lens.Lens' TransitGatewayRoute (Prelude.Maybe TransitGatewayRouteType)
transitGatewayRoute_type :: Lens' TransitGatewayRoute (Maybe TransitGatewayRouteType)
transitGatewayRoute_type = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransitGatewayRoute' {Maybe TransitGatewayRouteType
type' :: Maybe TransitGatewayRouteType
$sel:type':TransitGatewayRoute' :: TransitGatewayRoute -> Maybe TransitGatewayRouteType
type'} -> Maybe TransitGatewayRouteType
type') (\s :: TransitGatewayRoute
s@TransitGatewayRoute' {} Maybe TransitGatewayRouteType
a -> TransitGatewayRoute
s {$sel:type':TransitGatewayRoute' :: Maybe TransitGatewayRouteType
type' = Maybe TransitGatewayRouteType
a} :: TransitGatewayRoute)
instance Data.FromXML TransitGatewayRoute where
parseXML :: [Node] -> Either String TransitGatewayRoute
parseXML [Node]
x =
Maybe Text
-> Maybe Text
-> Maybe TransitGatewayRouteState
-> Maybe [TransitGatewayRouteAttachment]
-> Maybe Text
-> Maybe TransitGatewayRouteType
-> TransitGatewayRoute
TransitGatewayRoute'
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
"destinationCidrBlock")
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
"prefixListId")
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
"transitGatewayAttachments"
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"item")
)
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
"transitGatewayRouteTableAnnouncementId")
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
"type")
instance Prelude.Hashable TransitGatewayRoute where
hashWithSalt :: Int -> TransitGatewayRoute -> Int
hashWithSalt Int
_salt TransitGatewayRoute' {Maybe [TransitGatewayRouteAttachment]
Maybe Text
Maybe TransitGatewayRouteState
Maybe TransitGatewayRouteType
type' :: Maybe TransitGatewayRouteType
transitGatewayRouteTableAnnouncementId :: Maybe Text
transitGatewayAttachments :: Maybe [TransitGatewayRouteAttachment]
state :: Maybe TransitGatewayRouteState
prefixListId :: Maybe Text
destinationCidrBlock :: Maybe Text
$sel:type':TransitGatewayRoute' :: TransitGatewayRoute -> Maybe TransitGatewayRouteType
$sel:transitGatewayRouteTableAnnouncementId:TransitGatewayRoute' :: TransitGatewayRoute -> Maybe Text
$sel:transitGatewayAttachments:TransitGatewayRoute' :: TransitGatewayRoute -> Maybe [TransitGatewayRouteAttachment]
$sel:state:TransitGatewayRoute' :: TransitGatewayRoute -> Maybe TransitGatewayRouteState
$sel:prefixListId:TransitGatewayRoute' :: TransitGatewayRoute -> Maybe Text
$sel:destinationCidrBlock:TransitGatewayRoute' :: TransitGatewayRoute -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
destinationCidrBlock
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
prefixListId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TransitGatewayRouteState
state
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [TransitGatewayRouteAttachment]
transitGatewayAttachments
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
transitGatewayRouteTableAnnouncementId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TransitGatewayRouteType
type'
instance Prelude.NFData TransitGatewayRoute where
rnf :: TransitGatewayRoute -> ()
rnf TransitGatewayRoute' {Maybe [TransitGatewayRouteAttachment]
Maybe Text
Maybe TransitGatewayRouteState
Maybe TransitGatewayRouteType
type' :: Maybe TransitGatewayRouteType
transitGatewayRouteTableAnnouncementId :: Maybe Text
transitGatewayAttachments :: Maybe [TransitGatewayRouteAttachment]
state :: Maybe TransitGatewayRouteState
prefixListId :: Maybe Text
destinationCidrBlock :: Maybe Text
$sel:type':TransitGatewayRoute' :: TransitGatewayRoute -> Maybe TransitGatewayRouteType
$sel:transitGatewayRouteTableAnnouncementId:TransitGatewayRoute' :: TransitGatewayRoute -> Maybe Text
$sel:transitGatewayAttachments:TransitGatewayRoute' :: TransitGatewayRoute -> Maybe [TransitGatewayRouteAttachment]
$sel:state:TransitGatewayRoute' :: TransitGatewayRoute -> Maybe TransitGatewayRouteState
$sel:prefixListId:TransitGatewayRoute' :: TransitGatewayRoute -> Maybe Text
$sel:destinationCidrBlock:TransitGatewayRoute' :: TransitGatewayRoute -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
destinationCidrBlock
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
prefixListId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TransitGatewayRouteState
state
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [TransitGatewayRouteAttachment]
transitGatewayAttachments
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
transitGatewayRouteTableAnnouncementId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TransitGatewayRouteType
type'