{-# 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.TransitGatewayConnect 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.TransitGatewayAttachmentState
import Amazonka.EC2.Types.TransitGatewayConnectOptions
import qualified Amazonka.Prelude as Prelude
data TransitGatewayConnect = TransitGatewayConnect'
{
TransitGatewayConnect -> Maybe ISO8601
creationTime :: Prelude.Maybe Data.ISO8601,
TransitGatewayConnect -> Maybe TransitGatewayConnectOptions
options :: Prelude.Maybe TransitGatewayConnectOptions,
TransitGatewayConnect -> Maybe TransitGatewayAttachmentState
state :: Prelude.Maybe TransitGatewayAttachmentState,
TransitGatewayConnect -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
TransitGatewayConnect -> Maybe Text
transitGatewayAttachmentId :: Prelude.Maybe Prelude.Text,
TransitGatewayConnect -> Maybe Text
transitGatewayId :: Prelude.Maybe Prelude.Text,
TransitGatewayConnect -> Maybe Text
transportTransitGatewayAttachmentId :: Prelude.Maybe Prelude.Text
}
deriving (TransitGatewayConnect -> TransitGatewayConnect -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TransitGatewayConnect -> TransitGatewayConnect -> Bool
$c/= :: TransitGatewayConnect -> TransitGatewayConnect -> Bool
== :: TransitGatewayConnect -> TransitGatewayConnect -> Bool
$c== :: TransitGatewayConnect -> TransitGatewayConnect -> Bool
Prelude.Eq, ReadPrec [TransitGatewayConnect]
ReadPrec TransitGatewayConnect
Int -> ReadS TransitGatewayConnect
ReadS [TransitGatewayConnect]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [TransitGatewayConnect]
$creadListPrec :: ReadPrec [TransitGatewayConnect]
readPrec :: ReadPrec TransitGatewayConnect
$creadPrec :: ReadPrec TransitGatewayConnect
readList :: ReadS [TransitGatewayConnect]
$creadList :: ReadS [TransitGatewayConnect]
readsPrec :: Int -> ReadS TransitGatewayConnect
$creadsPrec :: Int -> ReadS TransitGatewayConnect
Prelude.Read, Int -> TransitGatewayConnect -> ShowS
[TransitGatewayConnect] -> ShowS
TransitGatewayConnect -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TransitGatewayConnect] -> ShowS
$cshowList :: [TransitGatewayConnect] -> ShowS
show :: TransitGatewayConnect -> String
$cshow :: TransitGatewayConnect -> String
showsPrec :: Int -> TransitGatewayConnect -> ShowS
$cshowsPrec :: Int -> TransitGatewayConnect -> ShowS
Prelude.Show, forall x. Rep TransitGatewayConnect x -> TransitGatewayConnect
forall x. TransitGatewayConnect -> Rep TransitGatewayConnect x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep TransitGatewayConnect x -> TransitGatewayConnect
$cfrom :: forall x. TransitGatewayConnect -> Rep TransitGatewayConnect x
Prelude.Generic)
newTransitGatewayConnect ::
TransitGatewayConnect
newTransitGatewayConnect :: TransitGatewayConnect
newTransitGatewayConnect =
TransitGatewayConnect'
{ $sel:creationTime:TransitGatewayConnect' :: Maybe ISO8601
creationTime =
forall a. Maybe a
Prelude.Nothing,
$sel:options:TransitGatewayConnect' :: Maybe TransitGatewayConnectOptions
options = forall a. Maybe a
Prelude.Nothing,
$sel:state:TransitGatewayConnect' :: Maybe TransitGatewayAttachmentState
state = forall a. Maybe a
Prelude.Nothing,
$sel:tags:TransitGatewayConnect' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
$sel:transitGatewayAttachmentId:TransitGatewayConnect' :: Maybe Text
transitGatewayAttachmentId = forall a. Maybe a
Prelude.Nothing,
$sel:transitGatewayId:TransitGatewayConnect' :: Maybe Text
transitGatewayId = forall a. Maybe a
Prelude.Nothing,
$sel:transportTransitGatewayAttachmentId:TransitGatewayConnect' :: Maybe Text
transportTransitGatewayAttachmentId =
forall a. Maybe a
Prelude.Nothing
}
transitGatewayConnect_creationTime :: Lens.Lens' TransitGatewayConnect (Prelude.Maybe Prelude.UTCTime)
transitGatewayConnect_creationTime :: Lens' TransitGatewayConnect (Maybe UTCTime)
transitGatewayConnect_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransitGatewayConnect' {Maybe ISO8601
creationTime :: Maybe ISO8601
$sel:creationTime:TransitGatewayConnect' :: TransitGatewayConnect -> Maybe ISO8601
creationTime} -> Maybe ISO8601
creationTime) (\s :: TransitGatewayConnect
s@TransitGatewayConnect' {} Maybe ISO8601
a -> TransitGatewayConnect
s {$sel:creationTime:TransitGatewayConnect' :: Maybe ISO8601
creationTime = Maybe ISO8601
a} :: TransitGatewayConnect) 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
transitGatewayConnect_options :: Lens.Lens' TransitGatewayConnect (Prelude.Maybe TransitGatewayConnectOptions)
transitGatewayConnect_options :: Lens' TransitGatewayConnect (Maybe TransitGatewayConnectOptions)
transitGatewayConnect_options = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransitGatewayConnect' {Maybe TransitGatewayConnectOptions
options :: Maybe TransitGatewayConnectOptions
$sel:options:TransitGatewayConnect' :: TransitGatewayConnect -> Maybe TransitGatewayConnectOptions
options} -> Maybe TransitGatewayConnectOptions
options) (\s :: TransitGatewayConnect
s@TransitGatewayConnect' {} Maybe TransitGatewayConnectOptions
a -> TransitGatewayConnect
s {$sel:options:TransitGatewayConnect' :: Maybe TransitGatewayConnectOptions
options = Maybe TransitGatewayConnectOptions
a} :: TransitGatewayConnect)
transitGatewayConnect_state :: Lens.Lens' TransitGatewayConnect (Prelude.Maybe TransitGatewayAttachmentState)
transitGatewayConnect_state :: Lens' TransitGatewayConnect (Maybe TransitGatewayAttachmentState)
transitGatewayConnect_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransitGatewayConnect' {Maybe TransitGatewayAttachmentState
state :: Maybe TransitGatewayAttachmentState
$sel:state:TransitGatewayConnect' :: TransitGatewayConnect -> Maybe TransitGatewayAttachmentState
state} -> Maybe TransitGatewayAttachmentState
state) (\s :: TransitGatewayConnect
s@TransitGatewayConnect' {} Maybe TransitGatewayAttachmentState
a -> TransitGatewayConnect
s {$sel:state:TransitGatewayConnect' :: Maybe TransitGatewayAttachmentState
state = Maybe TransitGatewayAttachmentState
a} :: TransitGatewayConnect)
transitGatewayConnect_tags :: Lens.Lens' TransitGatewayConnect (Prelude.Maybe [Tag])
transitGatewayConnect_tags :: Lens' TransitGatewayConnect (Maybe [Tag])
transitGatewayConnect_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransitGatewayConnect' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:TransitGatewayConnect' :: TransitGatewayConnect -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: TransitGatewayConnect
s@TransitGatewayConnect' {} Maybe [Tag]
a -> TransitGatewayConnect
s {$sel:tags:TransitGatewayConnect' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: TransitGatewayConnect) 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
transitGatewayConnect_transitGatewayAttachmentId :: Lens.Lens' TransitGatewayConnect (Prelude.Maybe Prelude.Text)
transitGatewayConnect_transitGatewayAttachmentId :: Lens' TransitGatewayConnect (Maybe Text)
transitGatewayConnect_transitGatewayAttachmentId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransitGatewayConnect' {Maybe Text
transitGatewayAttachmentId :: Maybe Text
$sel:transitGatewayAttachmentId:TransitGatewayConnect' :: TransitGatewayConnect -> Maybe Text
transitGatewayAttachmentId} -> Maybe Text
transitGatewayAttachmentId) (\s :: TransitGatewayConnect
s@TransitGatewayConnect' {} Maybe Text
a -> TransitGatewayConnect
s {$sel:transitGatewayAttachmentId:TransitGatewayConnect' :: Maybe Text
transitGatewayAttachmentId = Maybe Text
a} :: TransitGatewayConnect)
transitGatewayConnect_transitGatewayId :: Lens.Lens' TransitGatewayConnect (Prelude.Maybe Prelude.Text)
transitGatewayConnect_transitGatewayId :: Lens' TransitGatewayConnect (Maybe Text)
transitGatewayConnect_transitGatewayId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransitGatewayConnect' {Maybe Text
transitGatewayId :: Maybe Text
$sel:transitGatewayId:TransitGatewayConnect' :: TransitGatewayConnect -> Maybe Text
transitGatewayId} -> Maybe Text
transitGatewayId) (\s :: TransitGatewayConnect
s@TransitGatewayConnect' {} Maybe Text
a -> TransitGatewayConnect
s {$sel:transitGatewayId:TransitGatewayConnect' :: Maybe Text
transitGatewayId = Maybe Text
a} :: TransitGatewayConnect)
transitGatewayConnect_transportTransitGatewayAttachmentId :: Lens.Lens' TransitGatewayConnect (Prelude.Maybe Prelude.Text)
transitGatewayConnect_transportTransitGatewayAttachmentId :: Lens' TransitGatewayConnect (Maybe Text)
transitGatewayConnect_transportTransitGatewayAttachmentId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransitGatewayConnect' {Maybe Text
transportTransitGatewayAttachmentId :: Maybe Text
$sel:transportTransitGatewayAttachmentId:TransitGatewayConnect' :: TransitGatewayConnect -> Maybe Text
transportTransitGatewayAttachmentId} -> Maybe Text
transportTransitGatewayAttachmentId) (\s :: TransitGatewayConnect
s@TransitGatewayConnect' {} Maybe Text
a -> TransitGatewayConnect
s {$sel:transportTransitGatewayAttachmentId:TransitGatewayConnect' :: Maybe Text
transportTransitGatewayAttachmentId = Maybe Text
a} :: TransitGatewayConnect)
instance Data.FromXML TransitGatewayConnect where
parseXML :: [Node] -> Either String TransitGatewayConnect
parseXML [Node]
x =
Maybe ISO8601
-> Maybe TransitGatewayConnectOptions
-> Maybe TransitGatewayAttachmentState
-> Maybe [Tag]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> TransitGatewayConnect
TransitGatewayConnect'
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
"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
"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
"transitGatewayAttachmentId")
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
"transportTransitGatewayAttachmentId")
instance Prelude.Hashable TransitGatewayConnect where
hashWithSalt :: Int -> TransitGatewayConnect -> Int
hashWithSalt Int
_salt TransitGatewayConnect' {Maybe [Tag]
Maybe Text
Maybe ISO8601
Maybe TransitGatewayAttachmentState
Maybe TransitGatewayConnectOptions
transportTransitGatewayAttachmentId :: Maybe Text
transitGatewayId :: Maybe Text
transitGatewayAttachmentId :: Maybe Text
tags :: Maybe [Tag]
state :: Maybe TransitGatewayAttachmentState
options :: Maybe TransitGatewayConnectOptions
creationTime :: Maybe ISO8601
$sel:transportTransitGatewayAttachmentId:TransitGatewayConnect' :: TransitGatewayConnect -> Maybe Text
$sel:transitGatewayId:TransitGatewayConnect' :: TransitGatewayConnect -> Maybe Text
$sel:transitGatewayAttachmentId:TransitGatewayConnect' :: TransitGatewayConnect -> Maybe Text
$sel:tags:TransitGatewayConnect' :: TransitGatewayConnect -> Maybe [Tag]
$sel:state:TransitGatewayConnect' :: TransitGatewayConnect -> Maybe TransitGatewayAttachmentState
$sel:options:TransitGatewayConnect' :: TransitGatewayConnect -> Maybe TransitGatewayConnectOptions
$sel:creationTime:TransitGatewayConnect' :: TransitGatewayConnect -> 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 TransitGatewayConnectOptions
options
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TransitGatewayAttachmentState
state
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
transitGatewayAttachmentId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
transitGatewayId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
transportTransitGatewayAttachmentId
instance Prelude.NFData TransitGatewayConnect where
rnf :: TransitGatewayConnect -> ()
rnf TransitGatewayConnect' {Maybe [Tag]
Maybe Text
Maybe ISO8601
Maybe TransitGatewayAttachmentState
Maybe TransitGatewayConnectOptions
transportTransitGatewayAttachmentId :: Maybe Text
transitGatewayId :: Maybe Text
transitGatewayAttachmentId :: Maybe Text
tags :: Maybe [Tag]
state :: Maybe TransitGatewayAttachmentState
options :: Maybe TransitGatewayConnectOptions
creationTime :: Maybe ISO8601
$sel:transportTransitGatewayAttachmentId:TransitGatewayConnect' :: TransitGatewayConnect -> Maybe Text
$sel:transitGatewayId:TransitGatewayConnect' :: TransitGatewayConnect -> Maybe Text
$sel:transitGatewayAttachmentId:TransitGatewayConnect' :: TransitGatewayConnect -> Maybe Text
$sel:tags:TransitGatewayConnect' :: TransitGatewayConnect -> Maybe [Tag]
$sel:state:TransitGatewayConnect' :: TransitGatewayConnect -> Maybe TransitGatewayAttachmentState
$sel:options:TransitGatewayConnect' :: TransitGatewayConnect -> Maybe TransitGatewayConnectOptions
$sel:creationTime:TransitGatewayConnect' :: TransitGatewayConnect -> 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 TransitGatewayConnectOptions
options
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TransitGatewayAttachmentState
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
transitGatewayAttachmentId
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
transportTransitGatewayAttachmentId