{-# 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.MGN.Types.SourceServer
-- 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.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

-- | /See:/ 'newSourceServer' smart constructor.
data SourceServer = SourceServer'
  { -- | Source server application ID.
    SourceServer -> Maybe Text
applicationID :: Prelude.Maybe Prelude.Text,
    -- | Source server ARN.
    SourceServer -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | Source server data replication info.
    SourceServer -> Maybe DataReplicationInfo
dataReplicationInfo :: Prelude.Maybe DataReplicationInfo,
    -- | Source server archived status.
    SourceServer -> Maybe Bool
isArchived :: Prelude.Maybe Prelude.Bool,
    -- | Source server launched instance.
    SourceServer -> Maybe LaunchedInstance
launchedInstance :: Prelude.Maybe LaunchedInstance,
    -- | Source server lifecycle state.
    SourceServer -> Maybe LifeCycle
lifeCycle :: Prelude.Maybe LifeCycle,
    -- | Source server replication type.
    SourceServer -> Maybe ReplicationType
replicationType :: Prelude.Maybe ReplicationType,
    -- | Source server properties.
    SourceServer -> Maybe SourceProperties
sourceProperties :: Prelude.Maybe SourceProperties,
    -- | Source server ID.
    SourceServer -> Maybe Text
sourceServerID :: Prelude.Maybe Prelude.Text,
    -- | Source server Tags.
    SourceServer -> Maybe (Sensitive (HashMap Text Text))
tags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),
    -- | Source server vCenter client id.
    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)

-- |
-- Create a value of 'SourceServer' 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:
--
-- 'applicationID', 'sourceServer_applicationID' - Source server application ID.
--
-- 'arn', 'sourceServer_arn' - Source server ARN.
--
-- 'dataReplicationInfo', 'sourceServer_dataReplicationInfo' - Source server data replication info.
--
-- 'isArchived', 'sourceServer_isArchived' - Source server archived status.
--
-- 'launchedInstance', 'sourceServer_launchedInstance' - Source server launched instance.
--
-- 'lifeCycle', 'sourceServer_lifeCycle' - Source server lifecycle state.
--
-- 'replicationType', 'sourceServer_replicationType' - Source server replication type.
--
-- 'sourceProperties', 'sourceServer_sourceProperties' - Source server properties.
--
-- 'sourceServerID', 'sourceServer_sourceServerID' - Source server ID.
--
-- 'tags', 'sourceServer_tags' - Source server Tags.
--
-- 'vcenterClientID', 'sourceServer_vcenterClientID' - Source server vCenter client id.
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
    }

-- | Source server application ID.
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)

-- | Source server ARN.
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)

-- | Source server data replication info.
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)

-- | Source server archived status.
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)

-- | Source server launched instance.
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)

-- | Source server lifecycle state.
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)

-- | Source server replication type.
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)

-- | Source server properties.
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)

-- | Source server ID.
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)

-- | Source server Tags.
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)

-- | Source server vCenter client id.
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