{-# 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.TransitGateway 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.Tag
import Amazonka.EC2.Types.TransitGatewayOptions
import Amazonka.EC2.Types.TransitGatewayState
import qualified Amazonka.Prelude as Prelude
data TransitGateway = TransitGateway'
{
TransitGateway -> Maybe ISO8601
creationTime :: Prelude.Maybe Data.ISO8601,
TransitGateway -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
TransitGateway -> Maybe TransitGatewayOptions
options :: Prelude.Maybe TransitGatewayOptions,
TransitGateway -> Maybe Text
ownerId :: Prelude.Maybe Prelude.Text,
TransitGateway -> Maybe TransitGatewayState
state :: Prelude.Maybe TransitGatewayState,
TransitGateway -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
TransitGateway -> Maybe Text
transitGatewayArn :: Prelude.Maybe Prelude.Text,
TransitGateway -> Maybe Text
transitGatewayId :: Prelude.Maybe Prelude.Text
}
deriving (TransitGateway -> TransitGateway -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TransitGateway -> TransitGateway -> Bool
$c/= :: TransitGateway -> TransitGateway -> Bool
== :: TransitGateway -> TransitGateway -> Bool
$c== :: TransitGateway -> TransitGateway -> Bool
Prelude.Eq, ReadPrec [TransitGateway]
ReadPrec TransitGateway
Int -> ReadS TransitGateway
ReadS [TransitGateway]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [TransitGateway]
$creadListPrec :: ReadPrec [TransitGateway]
readPrec :: ReadPrec TransitGateway
$creadPrec :: ReadPrec TransitGateway
readList :: ReadS [TransitGateway]
$creadList :: ReadS [TransitGateway]
readsPrec :: Int -> ReadS TransitGateway
$creadsPrec :: Int -> ReadS TransitGateway
Prelude.Read, Int -> TransitGateway -> ShowS
[TransitGateway] -> ShowS
TransitGateway -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TransitGateway] -> ShowS
$cshowList :: [TransitGateway] -> ShowS
show :: TransitGateway -> String
$cshow :: TransitGateway -> String
showsPrec :: Int -> TransitGateway -> ShowS
$cshowsPrec :: Int -> TransitGateway -> ShowS
Prelude.Show, forall x. Rep TransitGateway x -> TransitGateway
forall x. TransitGateway -> Rep TransitGateway x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep TransitGateway x -> TransitGateway
$cfrom :: forall x. TransitGateway -> Rep TransitGateway x
Prelude.Generic)
newTransitGateway ::
TransitGateway
newTransitGateway :: TransitGateway
newTransitGateway =
TransitGateway'
{ $sel:creationTime:TransitGateway' :: Maybe ISO8601
creationTime = forall a. Maybe a
Prelude.Nothing,
$sel:description:TransitGateway' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
$sel:options:TransitGateway' :: Maybe TransitGatewayOptions
options = forall a. Maybe a
Prelude.Nothing,
$sel:ownerId:TransitGateway' :: Maybe Text
ownerId = forall a. Maybe a
Prelude.Nothing,
$sel:state:TransitGateway' :: Maybe TransitGatewayState
state = forall a. Maybe a
Prelude.Nothing,
$sel:tags:TransitGateway' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
$sel:transitGatewayArn:TransitGateway' :: Maybe Text
transitGatewayArn = forall a. Maybe a
Prelude.Nothing,
$sel:transitGatewayId:TransitGateway' :: Maybe Text
transitGatewayId = forall a. Maybe a
Prelude.Nothing
}
transitGateway_creationTime :: Lens.Lens' TransitGateway (Prelude.Maybe Prelude.UTCTime)
transitGateway_creationTime :: Lens' TransitGateway (Maybe UTCTime)
transitGateway_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransitGateway' {Maybe ISO8601
creationTime :: Maybe ISO8601
$sel:creationTime:TransitGateway' :: TransitGateway -> Maybe ISO8601
creationTime} -> Maybe ISO8601
creationTime) (\s :: TransitGateway
s@TransitGateway' {} Maybe ISO8601
a -> TransitGateway
s {$sel:creationTime:TransitGateway' :: Maybe ISO8601
creationTime = Maybe ISO8601
a} :: TransitGateway) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time
transitGateway_description :: Lens.Lens' TransitGateway (Prelude.Maybe Prelude.Text)
transitGateway_description :: Lens' TransitGateway (Maybe Text)
transitGateway_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransitGateway' {Maybe Text
description :: Maybe Text
$sel:description:TransitGateway' :: TransitGateway -> Maybe Text
description} -> Maybe Text
description) (\s :: TransitGateway
s@TransitGateway' {} Maybe Text
a -> TransitGateway
s {$sel:description:TransitGateway' :: Maybe Text
description = Maybe Text
a} :: TransitGateway)
transitGateway_options :: Lens.Lens' TransitGateway (Prelude.Maybe TransitGatewayOptions)
transitGateway_options :: Lens' TransitGateway (Maybe TransitGatewayOptions)
transitGateway_options = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransitGateway' {Maybe TransitGatewayOptions
options :: Maybe TransitGatewayOptions
$sel:options:TransitGateway' :: TransitGateway -> Maybe TransitGatewayOptions
options} -> Maybe TransitGatewayOptions
options) (\s :: TransitGateway
s@TransitGateway' {} Maybe TransitGatewayOptions
a -> TransitGateway
s {$sel:options:TransitGateway' :: Maybe TransitGatewayOptions
options = Maybe TransitGatewayOptions
a} :: TransitGateway)
transitGateway_ownerId :: Lens.Lens' TransitGateway (Prelude.Maybe Prelude.Text)
transitGateway_ownerId :: Lens' TransitGateway (Maybe Text)
transitGateway_ownerId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransitGateway' {Maybe Text
ownerId :: Maybe Text
$sel:ownerId:TransitGateway' :: TransitGateway -> Maybe Text
ownerId} -> Maybe Text
ownerId) (\s :: TransitGateway
s@TransitGateway' {} Maybe Text
a -> TransitGateway
s {$sel:ownerId:TransitGateway' :: Maybe Text
ownerId = Maybe Text
a} :: TransitGateway)
transitGateway_state :: Lens.Lens' TransitGateway (Prelude.Maybe TransitGatewayState)
transitGateway_state :: Lens' TransitGateway (Maybe TransitGatewayState)
transitGateway_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransitGateway' {Maybe TransitGatewayState
state :: Maybe TransitGatewayState
$sel:state:TransitGateway' :: TransitGateway -> Maybe TransitGatewayState
state} -> Maybe TransitGatewayState
state) (\s :: TransitGateway
s@TransitGateway' {} Maybe TransitGatewayState
a -> TransitGateway
s {$sel:state:TransitGateway' :: Maybe TransitGatewayState
state = Maybe TransitGatewayState
a} :: TransitGateway)
transitGateway_tags :: Lens.Lens' TransitGateway (Prelude.Maybe [Tag])
transitGateway_tags :: Lens' TransitGateway (Maybe [Tag])
transitGateway_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransitGateway' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:TransitGateway' :: TransitGateway -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: TransitGateway
s@TransitGateway' {} Maybe [Tag]
a -> TransitGateway
s {$sel:tags:TransitGateway' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: TransitGateway) 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
transitGateway_transitGatewayArn :: Lens.Lens' TransitGateway (Prelude.Maybe Prelude.Text)
transitGateway_transitGatewayArn :: Lens' TransitGateway (Maybe Text)
transitGateway_transitGatewayArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransitGateway' {Maybe Text
transitGatewayArn :: Maybe Text
$sel:transitGatewayArn:TransitGateway' :: TransitGateway -> Maybe Text
transitGatewayArn} -> Maybe Text
transitGatewayArn) (\s :: TransitGateway
s@TransitGateway' {} Maybe Text
a -> TransitGateway
s {$sel:transitGatewayArn:TransitGateway' :: Maybe Text
transitGatewayArn = Maybe Text
a} :: TransitGateway)
transitGateway_transitGatewayId :: Lens.Lens' TransitGateway (Prelude.Maybe Prelude.Text)
transitGateway_transitGatewayId :: Lens' TransitGateway (Maybe Text)
transitGateway_transitGatewayId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransitGateway' {Maybe Text
transitGatewayId :: Maybe Text
$sel:transitGatewayId:TransitGateway' :: TransitGateway -> Maybe Text
transitGatewayId} -> Maybe Text
transitGatewayId) (\s :: TransitGateway
s@TransitGateway' {} Maybe Text
a -> TransitGateway
s {$sel:transitGatewayId:TransitGateway' :: Maybe Text
transitGatewayId = Maybe Text
a} :: TransitGateway)
instance Data.FromXML TransitGateway where
parseXML :: [Node] -> Either String TransitGateway
parseXML [Node]
x =
Maybe ISO8601
-> Maybe Text
-> Maybe TransitGatewayOptions
-> Maybe Text
-> Maybe TransitGatewayState
-> Maybe [Tag]
-> Maybe Text
-> Maybe Text
-> TransitGateway
TransitGateway'
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
"creationTime")
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
"description")
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
"options")
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
"ownerId")
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
"tagSet"
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
"transitGatewayArn")
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")
instance Prelude.Hashable TransitGateway where
hashWithSalt :: Int -> TransitGateway -> Int
hashWithSalt Int
_salt TransitGateway' {Maybe [Tag]
Maybe Text
Maybe ISO8601
Maybe TransitGatewayState
Maybe TransitGatewayOptions
transitGatewayId :: Maybe Text
transitGatewayArn :: Maybe Text
tags :: Maybe [Tag]
state :: Maybe TransitGatewayState
ownerId :: Maybe Text
options :: Maybe TransitGatewayOptions
description :: Maybe Text
creationTime :: Maybe ISO8601
$sel:transitGatewayId:TransitGateway' :: TransitGateway -> Maybe Text
$sel:transitGatewayArn:TransitGateway' :: TransitGateway -> Maybe Text
$sel:tags:TransitGateway' :: TransitGateway -> Maybe [Tag]
$sel:state:TransitGateway' :: TransitGateway -> Maybe TransitGatewayState
$sel:ownerId:TransitGateway' :: TransitGateway -> Maybe Text
$sel:options:TransitGateway' :: TransitGateway -> Maybe TransitGatewayOptions
$sel:description:TransitGateway' :: TransitGateway -> Maybe Text
$sel:creationTime:TransitGateway' :: TransitGateway -> Maybe ISO8601
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ISO8601
creationTime
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TransitGatewayOptions
options
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
ownerId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TransitGatewayState
state
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
transitGatewayArn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
transitGatewayId
instance Prelude.NFData TransitGateway where
rnf :: TransitGateway -> ()
rnf TransitGateway' {Maybe [Tag]
Maybe Text
Maybe ISO8601
Maybe TransitGatewayState
Maybe TransitGatewayOptions
transitGatewayId :: Maybe Text
transitGatewayArn :: Maybe Text
tags :: Maybe [Tag]
state :: Maybe TransitGatewayState
ownerId :: Maybe Text
options :: Maybe TransitGatewayOptions
description :: Maybe Text
creationTime :: Maybe ISO8601
$sel:transitGatewayId:TransitGateway' :: TransitGateway -> Maybe Text
$sel:transitGatewayArn:TransitGateway' :: TransitGateway -> Maybe Text
$sel:tags:TransitGateway' :: TransitGateway -> Maybe [Tag]
$sel:state:TransitGateway' :: TransitGateway -> Maybe TransitGatewayState
$sel:ownerId:TransitGateway' :: TransitGateway -> Maybe Text
$sel:options:TransitGateway' :: TransitGateway -> Maybe TransitGatewayOptions
$sel:description:TransitGateway' :: TransitGateway -> Maybe Text
$sel:creationTime:TransitGateway' :: TransitGateway -> Maybe ISO8601
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
creationTime
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TransitGatewayOptions
options
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ownerId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TransitGatewayState
state
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Tag]
tags
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
transitGatewayArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
transitGatewayId