{-# 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.SMS.Types.ReplicationRun
-- 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.SMS.Types.ReplicationRun where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import Amazonka.SMS.Types.ReplicationRunStageDetails
import Amazonka.SMS.Types.ReplicationRunState
import Amazonka.SMS.Types.ReplicationRunType

-- | Represents a replication run.
--
-- /See:/ 'newReplicationRun' smart constructor.
data ReplicationRun = ReplicationRun'
  { -- | The ID of the Amazon Machine Image (AMI) from the replication run.
    ReplicationRun -> Maybe Text
amiId :: Prelude.Maybe Prelude.Text,
    -- | The completion time of the last replication run.
    ReplicationRun -> Maybe POSIX
completedTime :: Prelude.Maybe Data.POSIX,
    -- | The description of the replication run.
    ReplicationRun -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | Indicates whether the replication run should produce an encrypted AMI.
    ReplicationRun -> Maybe Bool
encrypted :: Prelude.Maybe Prelude.Bool,
    -- | The ID of the KMS key for replication jobs that produce encrypted AMIs.
    -- This value can be any of the following:
    --
    -- -   KMS key ID
    --
    -- -   KMS key alias
    --
    -- -   ARN referring to the KMS key ID
    --
    -- -   ARN referring to the KMS key alias
    --
    -- If encrypted is /true/ but a KMS key ID is not specified, the
    -- customer\'s default KMS key for Amazon EBS is used.
    ReplicationRun -> Maybe Text
kmsKeyId :: Prelude.Maybe Prelude.Text,
    -- | The ID of the replication run.
    ReplicationRun -> Maybe Text
replicationRunId :: Prelude.Maybe Prelude.Text,
    -- | The start time of the next replication run.
    ReplicationRun -> Maybe POSIX
scheduledStartTime :: Prelude.Maybe Data.POSIX,
    -- | Details about the current stage of the replication run.
    ReplicationRun -> Maybe ReplicationRunStageDetails
stageDetails :: Prelude.Maybe ReplicationRunStageDetails,
    -- | The state of the replication run.
    ReplicationRun -> Maybe ReplicationRunState
state :: Prelude.Maybe ReplicationRunState,
    -- | The description of the current status of the replication job.
    ReplicationRun -> Maybe Text
statusMessage :: Prelude.Maybe Prelude.Text,
    -- | The type of replication run.
    ReplicationRun -> Maybe ReplicationRunType
type' :: Prelude.Maybe ReplicationRunType
  }
  deriving (ReplicationRun -> ReplicationRun -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ReplicationRun -> ReplicationRun -> Bool
$c/= :: ReplicationRun -> ReplicationRun -> Bool
== :: ReplicationRun -> ReplicationRun -> Bool
$c== :: ReplicationRun -> ReplicationRun -> Bool
Prelude.Eq, ReadPrec [ReplicationRun]
ReadPrec ReplicationRun
Int -> ReadS ReplicationRun
ReadS [ReplicationRun]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ReplicationRun]
$creadListPrec :: ReadPrec [ReplicationRun]
readPrec :: ReadPrec ReplicationRun
$creadPrec :: ReadPrec ReplicationRun
readList :: ReadS [ReplicationRun]
$creadList :: ReadS [ReplicationRun]
readsPrec :: Int -> ReadS ReplicationRun
$creadsPrec :: Int -> ReadS ReplicationRun
Prelude.Read, Int -> ReplicationRun -> ShowS
[ReplicationRun] -> ShowS
ReplicationRun -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ReplicationRun] -> ShowS
$cshowList :: [ReplicationRun] -> ShowS
show :: ReplicationRun -> String
$cshow :: ReplicationRun -> String
showsPrec :: Int -> ReplicationRun -> ShowS
$cshowsPrec :: Int -> ReplicationRun -> ShowS
Prelude.Show, forall x. Rep ReplicationRun x -> ReplicationRun
forall x. ReplicationRun -> Rep ReplicationRun x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ReplicationRun x -> ReplicationRun
$cfrom :: forall x. ReplicationRun -> Rep ReplicationRun x
Prelude.Generic)

-- |
-- Create a value of 'ReplicationRun' 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:
--
-- 'amiId', 'replicationRun_amiId' - The ID of the Amazon Machine Image (AMI) from the replication run.
--
-- 'completedTime', 'replicationRun_completedTime' - The completion time of the last replication run.
--
-- 'description', 'replicationRun_description' - The description of the replication run.
--
-- 'encrypted', 'replicationRun_encrypted' - Indicates whether the replication run should produce an encrypted AMI.
--
-- 'kmsKeyId', 'replicationRun_kmsKeyId' - The ID of the KMS key for replication jobs that produce encrypted AMIs.
-- This value can be any of the following:
--
-- -   KMS key ID
--
-- -   KMS key alias
--
-- -   ARN referring to the KMS key ID
--
-- -   ARN referring to the KMS key alias
--
-- If encrypted is /true/ but a KMS key ID is not specified, the
-- customer\'s default KMS key for Amazon EBS is used.
--
-- 'replicationRunId', 'replicationRun_replicationRunId' - The ID of the replication run.
--
-- 'scheduledStartTime', 'replicationRun_scheduledStartTime' - The start time of the next replication run.
--
-- 'stageDetails', 'replicationRun_stageDetails' - Details about the current stage of the replication run.
--
-- 'state', 'replicationRun_state' - The state of the replication run.
--
-- 'statusMessage', 'replicationRun_statusMessage' - The description of the current status of the replication job.
--
-- 'type'', 'replicationRun_type' - The type of replication run.
newReplicationRun ::
  ReplicationRun
newReplicationRun :: ReplicationRun
newReplicationRun =
  ReplicationRun'
    { $sel:amiId:ReplicationRun' :: Maybe Text
amiId = forall a. Maybe a
Prelude.Nothing,
      $sel:completedTime:ReplicationRun' :: Maybe POSIX
completedTime = forall a. Maybe a
Prelude.Nothing,
      $sel:description:ReplicationRun' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:encrypted:ReplicationRun' :: Maybe Bool
encrypted = forall a. Maybe a
Prelude.Nothing,
      $sel:kmsKeyId:ReplicationRun' :: Maybe Text
kmsKeyId = forall a. Maybe a
Prelude.Nothing,
      $sel:replicationRunId:ReplicationRun' :: Maybe Text
replicationRunId = forall a. Maybe a
Prelude.Nothing,
      $sel:scheduledStartTime:ReplicationRun' :: Maybe POSIX
scheduledStartTime = forall a. Maybe a
Prelude.Nothing,
      $sel:stageDetails:ReplicationRun' :: Maybe ReplicationRunStageDetails
stageDetails = forall a. Maybe a
Prelude.Nothing,
      $sel:state:ReplicationRun' :: Maybe ReplicationRunState
state = forall a. Maybe a
Prelude.Nothing,
      $sel:statusMessage:ReplicationRun' :: Maybe Text
statusMessage = forall a. Maybe a
Prelude.Nothing,
      $sel:type':ReplicationRun' :: Maybe ReplicationRunType
type' = forall a. Maybe a
Prelude.Nothing
    }

-- | The ID of the Amazon Machine Image (AMI) from the replication run.
replicationRun_amiId :: Lens.Lens' ReplicationRun (Prelude.Maybe Prelude.Text)
replicationRun_amiId :: Lens' ReplicationRun (Maybe Text)
replicationRun_amiId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplicationRun' {Maybe Text
amiId :: Maybe Text
$sel:amiId:ReplicationRun' :: ReplicationRun -> Maybe Text
amiId} -> Maybe Text
amiId) (\s :: ReplicationRun
s@ReplicationRun' {} Maybe Text
a -> ReplicationRun
s {$sel:amiId:ReplicationRun' :: Maybe Text
amiId = Maybe Text
a} :: ReplicationRun)

-- | The completion time of the last replication run.
replicationRun_completedTime :: Lens.Lens' ReplicationRun (Prelude.Maybe Prelude.UTCTime)
replicationRun_completedTime :: Lens' ReplicationRun (Maybe UTCTime)
replicationRun_completedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplicationRun' {Maybe POSIX
completedTime :: Maybe POSIX
$sel:completedTime:ReplicationRun' :: ReplicationRun -> Maybe POSIX
completedTime} -> Maybe POSIX
completedTime) (\s :: ReplicationRun
s@ReplicationRun' {} Maybe POSIX
a -> ReplicationRun
s {$sel:completedTime:ReplicationRun' :: Maybe POSIX
completedTime = Maybe POSIX
a} :: ReplicationRun) 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

-- | The description of the replication run.
replicationRun_description :: Lens.Lens' ReplicationRun (Prelude.Maybe Prelude.Text)
replicationRun_description :: Lens' ReplicationRun (Maybe Text)
replicationRun_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplicationRun' {Maybe Text
description :: Maybe Text
$sel:description:ReplicationRun' :: ReplicationRun -> Maybe Text
description} -> Maybe Text
description) (\s :: ReplicationRun
s@ReplicationRun' {} Maybe Text
a -> ReplicationRun
s {$sel:description:ReplicationRun' :: Maybe Text
description = Maybe Text
a} :: ReplicationRun)

-- | Indicates whether the replication run should produce an encrypted AMI.
replicationRun_encrypted :: Lens.Lens' ReplicationRun (Prelude.Maybe Prelude.Bool)
replicationRun_encrypted :: Lens' ReplicationRun (Maybe Bool)
replicationRun_encrypted = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplicationRun' {Maybe Bool
encrypted :: Maybe Bool
$sel:encrypted:ReplicationRun' :: ReplicationRun -> Maybe Bool
encrypted} -> Maybe Bool
encrypted) (\s :: ReplicationRun
s@ReplicationRun' {} Maybe Bool
a -> ReplicationRun
s {$sel:encrypted:ReplicationRun' :: Maybe Bool
encrypted = Maybe Bool
a} :: ReplicationRun)

-- | The ID of the KMS key for replication jobs that produce encrypted AMIs.
-- This value can be any of the following:
--
-- -   KMS key ID
--
-- -   KMS key alias
--
-- -   ARN referring to the KMS key ID
--
-- -   ARN referring to the KMS key alias
--
-- If encrypted is /true/ but a KMS key ID is not specified, the
-- customer\'s default KMS key for Amazon EBS is used.
replicationRun_kmsKeyId :: Lens.Lens' ReplicationRun (Prelude.Maybe Prelude.Text)
replicationRun_kmsKeyId :: Lens' ReplicationRun (Maybe Text)
replicationRun_kmsKeyId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplicationRun' {Maybe Text
kmsKeyId :: Maybe Text
$sel:kmsKeyId:ReplicationRun' :: ReplicationRun -> Maybe Text
kmsKeyId} -> Maybe Text
kmsKeyId) (\s :: ReplicationRun
s@ReplicationRun' {} Maybe Text
a -> ReplicationRun
s {$sel:kmsKeyId:ReplicationRun' :: Maybe Text
kmsKeyId = Maybe Text
a} :: ReplicationRun)

-- | The ID of the replication run.
replicationRun_replicationRunId :: Lens.Lens' ReplicationRun (Prelude.Maybe Prelude.Text)
replicationRun_replicationRunId :: Lens' ReplicationRun (Maybe Text)
replicationRun_replicationRunId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplicationRun' {Maybe Text
replicationRunId :: Maybe Text
$sel:replicationRunId:ReplicationRun' :: ReplicationRun -> Maybe Text
replicationRunId} -> Maybe Text
replicationRunId) (\s :: ReplicationRun
s@ReplicationRun' {} Maybe Text
a -> ReplicationRun
s {$sel:replicationRunId:ReplicationRun' :: Maybe Text
replicationRunId = Maybe Text
a} :: ReplicationRun)

-- | The start time of the next replication run.
replicationRun_scheduledStartTime :: Lens.Lens' ReplicationRun (Prelude.Maybe Prelude.UTCTime)
replicationRun_scheduledStartTime :: Lens' ReplicationRun (Maybe UTCTime)
replicationRun_scheduledStartTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplicationRun' {Maybe POSIX
scheduledStartTime :: Maybe POSIX
$sel:scheduledStartTime:ReplicationRun' :: ReplicationRun -> Maybe POSIX
scheduledStartTime} -> Maybe POSIX
scheduledStartTime) (\s :: ReplicationRun
s@ReplicationRun' {} Maybe POSIX
a -> ReplicationRun
s {$sel:scheduledStartTime:ReplicationRun' :: Maybe POSIX
scheduledStartTime = Maybe POSIX
a} :: ReplicationRun) 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

-- | Details about the current stage of the replication run.
replicationRun_stageDetails :: Lens.Lens' ReplicationRun (Prelude.Maybe ReplicationRunStageDetails)
replicationRun_stageDetails :: Lens' ReplicationRun (Maybe ReplicationRunStageDetails)
replicationRun_stageDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplicationRun' {Maybe ReplicationRunStageDetails
stageDetails :: Maybe ReplicationRunStageDetails
$sel:stageDetails:ReplicationRun' :: ReplicationRun -> Maybe ReplicationRunStageDetails
stageDetails} -> Maybe ReplicationRunStageDetails
stageDetails) (\s :: ReplicationRun
s@ReplicationRun' {} Maybe ReplicationRunStageDetails
a -> ReplicationRun
s {$sel:stageDetails:ReplicationRun' :: Maybe ReplicationRunStageDetails
stageDetails = Maybe ReplicationRunStageDetails
a} :: ReplicationRun)

-- | The state of the replication run.
replicationRun_state :: Lens.Lens' ReplicationRun (Prelude.Maybe ReplicationRunState)
replicationRun_state :: Lens' ReplicationRun (Maybe ReplicationRunState)
replicationRun_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplicationRun' {Maybe ReplicationRunState
state :: Maybe ReplicationRunState
$sel:state:ReplicationRun' :: ReplicationRun -> Maybe ReplicationRunState
state} -> Maybe ReplicationRunState
state) (\s :: ReplicationRun
s@ReplicationRun' {} Maybe ReplicationRunState
a -> ReplicationRun
s {$sel:state:ReplicationRun' :: Maybe ReplicationRunState
state = Maybe ReplicationRunState
a} :: ReplicationRun)

-- | The description of the current status of the replication job.
replicationRun_statusMessage :: Lens.Lens' ReplicationRun (Prelude.Maybe Prelude.Text)
replicationRun_statusMessage :: Lens' ReplicationRun (Maybe Text)
replicationRun_statusMessage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplicationRun' {Maybe Text
statusMessage :: Maybe Text
$sel:statusMessage:ReplicationRun' :: ReplicationRun -> Maybe Text
statusMessage} -> Maybe Text
statusMessage) (\s :: ReplicationRun
s@ReplicationRun' {} Maybe Text
a -> ReplicationRun
s {$sel:statusMessage:ReplicationRun' :: Maybe Text
statusMessage = Maybe Text
a} :: ReplicationRun)

-- | The type of replication run.
replicationRun_type :: Lens.Lens' ReplicationRun (Prelude.Maybe ReplicationRunType)
replicationRun_type :: Lens' ReplicationRun (Maybe ReplicationRunType)
replicationRun_type = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplicationRun' {Maybe ReplicationRunType
type' :: Maybe ReplicationRunType
$sel:type':ReplicationRun' :: ReplicationRun -> Maybe ReplicationRunType
type'} -> Maybe ReplicationRunType
type') (\s :: ReplicationRun
s@ReplicationRun' {} Maybe ReplicationRunType
a -> ReplicationRun
s {$sel:type':ReplicationRun' :: Maybe ReplicationRunType
type' = Maybe ReplicationRunType
a} :: ReplicationRun)

instance Data.FromJSON ReplicationRun where
  parseJSON :: Value -> Parser ReplicationRun
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"ReplicationRun"
      ( \Object
x ->
          Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Maybe ReplicationRunStageDetails
-> Maybe ReplicationRunState
-> Maybe Text
-> Maybe ReplicationRunType
-> ReplicationRun
ReplicationRun'
            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
"amiId")
            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
"completedTime")
            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
"description")
            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
"encrypted")
            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
"kmsKeyId")
            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
"replicationRunId")
            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
"scheduledStartTime")
            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
"stageDetails")
            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
"state")
            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
"statusMessage")
            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
"type")
      )

instance Prelude.Hashable ReplicationRun where
  hashWithSalt :: Int -> ReplicationRun -> Int
hashWithSalt Int
_salt ReplicationRun' {Maybe Bool
Maybe Text
Maybe POSIX
Maybe ReplicationRunStageDetails
Maybe ReplicationRunState
Maybe ReplicationRunType
type' :: Maybe ReplicationRunType
statusMessage :: Maybe Text
state :: Maybe ReplicationRunState
stageDetails :: Maybe ReplicationRunStageDetails
scheduledStartTime :: Maybe POSIX
replicationRunId :: Maybe Text
kmsKeyId :: Maybe Text
encrypted :: Maybe Bool
description :: Maybe Text
completedTime :: Maybe POSIX
amiId :: Maybe Text
$sel:type':ReplicationRun' :: ReplicationRun -> Maybe ReplicationRunType
$sel:statusMessage:ReplicationRun' :: ReplicationRun -> Maybe Text
$sel:state:ReplicationRun' :: ReplicationRun -> Maybe ReplicationRunState
$sel:stageDetails:ReplicationRun' :: ReplicationRun -> Maybe ReplicationRunStageDetails
$sel:scheduledStartTime:ReplicationRun' :: ReplicationRun -> Maybe POSIX
$sel:replicationRunId:ReplicationRun' :: ReplicationRun -> Maybe Text
$sel:kmsKeyId:ReplicationRun' :: ReplicationRun -> Maybe Text
$sel:encrypted:ReplicationRun' :: ReplicationRun -> Maybe Bool
$sel:description:ReplicationRun' :: ReplicationRun -> Maybe Text
$sel:completedTime:ReplicationRun' :: ReplicationRun -> Maybe POSIX
$sel:amiId:ReplicationRun' :: ReplicationRun -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
amiId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
completedTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
encrypted
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
kmsKeyId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
replicationRunId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
scheduledStartTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ReplicationRunStageDetails
stageDetails
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ReplicationRunState
state
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
statusMessage
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ReplicationRunType
type'

instance Prelude.NFData ReplicationRun where
  rnf :: ReplicationRun -> ()
rnf ReplicationRun' {Maybe Bool
Maybe Text
Maybe POSIX
Maybe ReplicationRunStageDetails
Maybe ReplicationRunState
Maybe ReplicationRunType
type' :: Maybe ReplicationRunType
statusMessage :: Maybe Text
state :: Maybe ReplicationRunState
stageDetails :: Maybe ReplicationRunStageDetails
scheduledStartTime :: Maybe POSIX
replicationRunId :: Maybe Text
kmsKeyId :: Maybe Text
encrypted :: Maybe Bool
description :: Maybe Text
completedTime :: Maybe POSIX
amiId :: Maybe Text
$sel:type':ReplicationRun' :: ReplicationRun -> Maybe ReplicationRunType
$sel:statusMessage:ReplicationRun' :: ReplicationRun -> Maybe Text
$sel:state:ReplicationRun' :: ReplicationRun -> Maybe ReplicationRunState
$sel:stageDetails:ReplicationRun' :: ReplicationRun -> Maybe ReplicationRunStageDetails
$sel:scheduledStartTime:ReplicationRun' :: ReplicationRun -> Maybe POSIX
$sel:replicationRunId:ReplicationRun' :: ReplicationRun -> Maybe Text
$sel:kmsKeyId:ReplicationRun' :: ReplicationRun -> Maybe Text
$sel:encrypted:ReplicationRun' :: ReplicationRun -> Maybe Bool
$sel:description:ReplicationRun' :: ReplicationRun -> Maybe Text
$sel:completedTime:ReplicationRun' :: ReplicationRun -> Maybe POSIX
$sel:amiId:ReplicationRun' :: ReplicationRun -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
amiId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
completedTime
      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 Bool
encrypted
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
kmsKeyId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
replicationRunId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
scheduledStartTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ReplicationRunStageDetails
stageDetails
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ReplicationRunState
state
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
statusMessage
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ReplicationRunType
type'