{-# 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.MGN.Types.SourceServer where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.MGN.Types.DataReplicationInfo
import Amazonka.MGN.Types.LaunchedInstance
import Amazonka.MGN.Types.LifeCycle
import Amazonka.MGN.Types.ReplicationType
import Amazonka.MGN.Types.SourceProperties
import qualified Amazonka.Prelude as Prelude
data SourceServer = SourceServer'
{
SourceServer -> Maybe Text
applicationID :: Prelude.Maybe Prelude.Text,
SourceServer -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
SourceServer -> Maybe DataReplicationInfo
dataReplicationInfo :: Prelude.Maybe DataReplicationInfo,
SourceServer -> Maybe Bool
isArchived :: Prelude.Maybe Prelude.Bool,
SourceServer -> Maybe LaunchedInstance
launchedInstance :: Prelude.Maybe LaunchedInstance,
SourceServer -> Maybe LifeCycle
lifeCycle :: Prelude.Maybe LifeCycle,
SourceServer -> Maybe ReplicationType
replicationType :: Prelude.Maybe ReplicationType,
SourceServer -> Maybe SourceProperties
sourceProperties :: Prelude.Maybe SourceProperties,
SourceServer -> Maybe Text
sourceServerID :: Prelude.Maybe Prelude.Text,
SourceServer -> Maybe (Sensitive (HashMap Text Text))
tags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),
SourceServer -> Maybe Text
vcenterClientID :: Prelude.Maybe Prelude.Text
}
deriving (SourceServer -> SourceServer -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SourceServer -> SourceServer -> Bool
$c/= :: SourceServer -> SourceServer -> Bool
== :: SourceServer -> SourceServer -> Bool
$c== :: SourceServer -> SourceServer -> Bool
Prelude.Eq, Int -> SourceServer -> ShowS
[SourceServer] -> ShowS
SourceServer -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SourceServer] -> ShowS
$cshowList :: [SourceServer] -> ShowS
show :: SourceServer -> String
$cshow :: SourceServer -> String
showsPrec :: Int -> SourceServer -> ShowS
$cshowsPrec :: Int -> SourceServer -> ShowS
Prelude.Show, forall x. Rep SourceServer x -> SourceServer
forall x. SourceServer -> Rep SourceServer x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep SourceServer x -> SourceServer
$cfrom :: forall x. SourceServer -> Rep SourceServer x
Prelude.Generic)
newSourceServer ::
SourceServer
newSourceServer :: SourceServer
newSourceServer =
SourceServer'
{ $sel:applicationID:SourceServer' :: Maybe Text
applicationID = forall a. Maybe a
Prelude.Nothing,
$sel:arn:SourceServer' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
$sel:dataReplicationInfo:SourceServer' :: Maybe DataReplicationInfo
dataReplicationInfo = forall a. Maybe a
Prelude.Nothing,
$sel:isArchived:SourceServer' :: Maybe Bool
isArchived = forall a. Maybe a
Prelude.Nothing,
$sel:launchedInstance:SourceServer' :: Maybe LaunchedInstance
launchedInstance = forall a. Maybe a
Prelude.Nothing,
$sel:lifeCycle:SourceServer' :: Maybe LifeCycle
lifeCycle = forall a. Maybe a
Prelude.Nothing,
$sel:replicationType:SourceServer' :: Maybe ReplicationType
replicationType = forall a. Maybe a
Prelude.Nothing,
$sel:sourceProperties:SourceServer' :: Maybe SourceProperties
sourceProperties = forall a. Maybe a
Prelude.Nothing,
$sel:sourceServerID:SourceServer' :: Maybe Text
sourceServerID = forall a. Maybe a
Prelude.Nothing,
$sel:tags:SourceServer' :: Maybe (Sensitive (HashMap Text Text))
tags = forall a. Maybe a
Prelude.Nothing,
$sel:vcenterClientID:SourceServer' :: Maybe Text
vcenterClientID = forall a. Maybe a
Prelude.Nothing
}
sourceServer_applicationID :: Lens.Lens' SourceServer (Prelude.Maybe Prelude.Text)
sourceServer_applicationID :: Lens' SourceServer (Maybe Text)
sourceServer_applicationID = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceServer' {Maybe Text
applicationID :: Maybe Text
$sel:applicationID:SourceServer' :: SourceServer -> Maybe Text
applicationID} -> Maybe Text
applicationID) (\s :: SourceServer
s@SourceServer' {} Maybe Text
a -> SourceServer
s {$sel:applicationID:SourceServer' :: Maybe Text
applicationID = Maybe Text
a} :: SourceServer)
sourceServer_arn :: Lens.Lens' SourceServer (Prelude.Maybe Prelude.Text)
sourceServer_arn :: Lens' SourceServer (Maybe Text)
sourceServer_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceServer' {Maybe Text
arn :: Maybe Text
$sel:arn:SourceServer' :: SourceServer -> Maybe Text
arn} -> Maybe Text
arn) (\s :: SourceServer
s@SourceServer' {} Maybe Text
a -> SourceServer
s {$sel:arn:SourceServer' :: Maybe Text
arn = Maybe Text
a} :: SourceServer)
sourceServer_dataReplicationInfo :: Lens.Lens' SourceServer (Prelude.Maybe DataReplicationInfo)
sourceServer_dataReplicationInfo :: Lens' SourceServer (Maybe DataReplicationInfo)
sourceServer_dataReplicationInfo = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceServer' {Maybe DataReplicationInfo
dataReplicationInfo :: Maybe DataReplicationInfo
$sel:dataReplicationInfo:SourceServer' :: SourceServer -> Maybe DataReplicationInfo
dataReplicationInfo} -> Maybe DataReplicationInfo
dataReplicationInfo) (\s :: SourceServer
s@SourceServer' {} Maybe DataReplicationInfo
a -> SourceServer
s {$sel:dataReplicationInfo:SourceServer' :: Maybe DataReplicationInfo
dataReplicationInfo = Maybe DataReplicationInfo
a} :: SourceServer)
sourceServer_isArchived :: Lens.Lens' SourceServer (Prelude.Maybe Prelude.Bool)
sourceServer_isArchived :: Lens' SourceServer (Maybe Bool)
sourceServer_isArchived = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceServer' {Maybe Bool
isArchived :: Maybe Bool
$sel:isArchived:SourceServer' :: SourceServer -> Maybe Bool
isArchived} -> Maybe Bool
isArchived) (\s :: SourceServer
s@SourceServer' {} Maybe Bool
a -> SourceServer
s {$sel:isArchived:SourceServer' :: Maybe Bool
isArchived = Maybe Bool
a} :: SourceServer)
sourceServer_launchedInstance :: Lens.Lens' SourceServer (Prelude.Maybe LaunchedInstance)
sourceServer_launchedInstance :: Lens' SourceServer (Maybe LaunchedInstance)
sourceServer_launchedInstance = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceServer' {Maybe LaunchedInstance
launchedInstance :: Maybe LaunchedInstance
$sel:launchedInstance:SourceServer' :: SourceServer -> Maybe LaunchedInstance
launchedInstance} -> Maybe LaunchedInstance
launchedInstance) (\s :: SourceServer
s@SourceServer' {} Maybe LaunchedInstance
a -> SourceServer
s {$sel:launchedInstance:SourceServer' :: Maybe LaunchedInstance
launchedInstance = Maybe LaunchedInstance
a} :: SourceServer)
sourceServer_lifeCycle :: Lens.Lens' SourceServer (Prelude.Maybe LifeCycle)
sourceServer_lifeCycle :: Lens' SourceServer (Maybe LifeCycle)
sourceServer_lifeCycle = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceServer' {Maybe LifeCycle
lifeCycle :: Maybe LifeCycle
$sel:lifeCycle:SourceServer' :: SourceServer -> Maybe LifeCycle
lifeCycle} -> Maybe LifeCycle
lifeCycle) (\s :: SourceServer
s@SourceServer' {} Maybe LifeCycle
a -> SourceServer
s {$sel:lifeCycle:SourceServer' :: Maybe LifeCycle
lifeCycle = Maybe LifeCycle
a} :: SourceServer)
sourceServer_replicationType :: Lens.Lens' SourceServer (Prelude.Maybe ReplicationType)
sourceServer_replicationType :: Lens' SourceServer (Maybe ReplicationType)
sourceServer_replicationType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceServer' {Maybe ReplicationType
replicationType :: Maybe ReplicationType
$sel:replicationType:SourceServer' :: SourceServer -> Maybe ReplicationType
replicationType} -> Maybe ReplicationType
replicationType) (\s :: SourceServer
s@SourceServer' {} Maybe ReplicationType
a -> SourceServer
s {$sel:replicationType:SourceServer' :: Maybe ReplicationType
replicationType = Maybe ReplicationType
a} :: SourceServer)
sourceServer_sourceProperties :: Lens.Lens' SourceServer (Prelude.Maybe SourceProperties)
sourceServer_sourceProperties :: Lens' SourceServer (Maybe SourceProperties)
sourceServer_sourceProperties = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceServer' {Maybe SourceProperties
sourceProperties :: Maybe SourceProperties
$sel:sourceProperties:SourceServer' :: SourceServer -> Maybe SourceProperties
sourceProperties} -> Maybe SourceProperties
sourceProperties) (\s :: SourceServer
s@SourceServer' {} Maybe SourceProperties
a -> SourceServer
s {$sel:sourceProperties:SourceServer' :: Maybe SourceProperties
sourceProperties = Maybe SourceProperties
a} :: SourceServer)
sourceServer_sourceServerID :: Lens.Lens' SourceServer (Prelude.Maybe Prelude.Text)
sourceServer_sourceServerID :: Lens' SourceServer (Maybe Text)
sourceServer_sourceServerID = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceServer' {Maybe Text
sourceServerID :: Maybe Text
$sel:sourceServerID:SourceServer' :: SourceServer -> Maybe Text
sourceServerID} -> Maybe Text
sourceServerID) (\s :: SourceServer
s@SourceServer' {} Maybe Text
a -> SourceServer
s {$sel:sourceServerID:SourceServer' :: Maybe Text
sourceServerID = Maybe Text
a} :: SourceServer)
sourceServer_tags :: Lens.Lens' SourceServer (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
sourceServer_tags :: Lens' SourceServer (Maybe (HashMap Text Text))
sourceServer_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceServer' {Maybe (Sensitive (HashMap Text Text))
tags :: Maybe (Sensitive (HashMap Text Text))
$sel:tags:SourceServer' :: SourceServer -> Maybe (Sensitive (HashMap Text Text))
tags} -> Maybe (Sensitive (HashMap Text Text))
tags) (\s :: SourceServer
s@SourceServer' {} Maybe (Sensitive (HashMap Text Text))
a -> SourceServer
s {$sel:tags:SourceServer' :: Maybe (Sensitive (HashMap Text Text))
tags = Maybe (Sensitive (HashMap Text Text))
a} :: SourceServer) 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. Iso' (Sensitive a) a
Data._Sensitive forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced)
sourceServer_vcenterClientID :: Lens.Lens' SourceServer (Prelude.Maybe Prelude.Text)
sourceServer_vcenterClientID :: Lens' SourceServer (Maybe Text)
sourceServer_vcenterClientID = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceServer' {Maybe Text
vcenterClientID :: Maybe Text
$sel:vcenterClientID:SourceServer' :: SourceServer -> Maybe Text
vcenterClientID} -> Maybe Text
vcenterClientID) (\s :: SourceServer
s@SourceServer' {} Maybe Text
a -> SourceServer
s {$sel:vcenterClientID:SourceServer' :: Maybe Text
vcenterClientID = Maybe Text
a} :: SourceServer)
instance Data.FromJSON SourceServer where
parseJSON :: Value -> Parser SourceServer
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"SourceServer"
( \Object
x ->
Maybe Text
-> Maybe Text
-> Maybe DataReplicationInfo
-> Maybe Bool
-> Maybe LaunchedInstance
-> Maybe LifeCycle
-> Maybe ReplicationType
-> Maybe SourceProperties
-> Maybe Text
-> Maybe (Sensitive (HashMap Text Text))
-> Maybe Text
-> SourceServer
SourceServer'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"applicationID")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"arn")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"dataReplicationInfo")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"isArchived")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"launchedInstance")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"lifeCycle")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"replicationType")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"sourceProperties")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"sourceServerID")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"tags" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"vcenterClientID")
)
instance Prelude.Hashable SourceServer where
hashWithSalt :: Int -> SourceServer -> Int
hashWithSalt Int
_salt SourceServer' {Maybe Bool
Maybe Text
Maybe (Sensitive (HashMap Text Text))
Maybe DataReplicationInfo
Maybe LaunchedInstance
Maybe LifeCycle
Maybe ReplicationType
Maybe SourceProperties
vcenterClientID :: Maybe Text
tags :: Maybe (Sensitive (HashMap Text Text))
sourceServerID :: Maybe Text
sourceProperties :: Maybe SourceProperties
replicationType :: Maybe ReplicationType
lifeCycle :: Maybe LifeCycle
launchedInstance :: Maybe LaunchedInstance
isArchived :: Maybe Bool
dataReplicationInfo :: Maybe DataReplicationInfo
arn :: Maybe Text
applicationID :: Maybe Text
$sel:vcenterClientID:SourceServer' :: SourceServer -> Maybe Text
$sel:tags:SourceServer' :: SourceServer -> Maybe (Sensitive (HashMap Text Text))
$sel:sourceServerID:SourceServer' :: SourceServer -> Maybe Text
$sel:sourceProperties:SourceServer' :: SourceServer -> Maybe SourceProperties
$sel:replicationType:SourceServer' :: SourceServer -> Maybe ReplicationType
$sel:lifeCycle:SourceServer' :: SourceServer -> Maybe LifeCycle
$sel:launchedInstance:SourceServer' :: SourceServer -> Maybe LaunchedInstance
$sel:isArchived:SourceServer' :: SourceServer -> Maybe Bool
$sel:dataReplicationInfo:SourceServer' :: SourceServer -> Maybe DataReplicationInfo
$sel:arn:SourceServer' :: SourceServer -> Maybe Text
$sel:applicationID:SourceServer' :: SourceServer -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
applicationID
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
arn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DataReplicationInfo
dataReplicationInfo
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
isArchived
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LaunchedInstance
launchedInstance
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LifeCycle
lifeCycle
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ReplicationType
replicationType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SourceProperties
sourceProperties
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
sourceServerID
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive (HashMap Text Text))
tags
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
vcenterClientID
instance Prelude.NFData SourceServer where
rnf :: SourceServer -> ()
rnf SourceServer' {Maybe Bool
Maybe Text
Maybe (Sensitive (HashMap Text Text))
Maybe DataReplicationInfo
Maybe LaunchedInstance
Maybe LifeCycle
Maybe ReplicationType
Maybe SourceProperties
vcenterClientID :: Maybe Text
tags :: Maybe (Sensitive (HashMap Text Text))
sourceServerID :: Maybe Text
sourceProperties :: Maybe SourceProperties
replicationType :: Maybe ReplicationType
lifeCycle :: Maybe LifeCycle
launchedInstance :: Maybe LaunchedInstance
isArchived :: Maybe Bool
dataReplicationInfo :: Maybe DataReplicationInfo
arn :: Maybe Text
applicationID :: Maybe Text
$sel:vcenterClientID:SourceServer' :: SourceServer -> Maybe Text
$sel:tags:SourceServer' :: SourceServer -> Maybe (Sensitive (HashMap Text Text))
$sel:sourceServerID:SourceServer' :: SourceServer -> Maybe Text
$sel:sourceProperties:SourceServer' :: SourceServer -> Maybe SourceProperties
$sel:replicationType:SourceServer' :: SourceServer -> Maybe ReplicationType
$sel:lifeCycle:SourceServer' :: SourceServer -> Maybe LifeCycle
$sel:launchedInstance:SourceServer' :: SourceServer -> Maybe LaunchedInstance
$sel:isArchived:SourceServer' :: SourceServer -> Maybe Bool
$sel:dataReplicationInfo:SourceServer' :: SourceServer -> Maybe DataReplicationInfo
$sel:arn:SourceServer' :: SourceServer -> Maybe Text
$sel:applicationID:SourceServer' :: SourceServer -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
applicationID
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DataReplicationInfo
dataReplicationInfo
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
isArchived
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LaunchedInstance
launchedInstance
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LifeCycle
lifeCycle
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ReplicationType
replicationType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SourceProperties
sourceProperties
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
sourceServerID
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive (HashMap Text Text))
tags
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
vcenterClientID