{-# 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.DMS.Types.ReplicationTaskStats
-- 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.DMS.Types.ReplicationTaskStats 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

-- | In response to a request by the @DescribeReplicationTasks@ operation,
-- this object provides a collection of statistics about a replication
-- task.
--
-- /See:/ 'newReplicationTaskStats' smart constructor.
data ReplicationTaskStats = ReplicationTaskStats'
  { -- | The elapsed time of the task, in milliseconds.
    ReplicationTaskStats -> Maybe Integer
elapsedTimeMillis :: Prelude.Maybe Prelude.Integer,
    -- | The date the replication task was started either with a fresh start or a
    -- target reload.
    ReplicationTaskStats -> Maybe POSIX
freshStartDate :: Prelude.Maybe Data.POSIX,
    -- | The date the replication task full load was completed.
    ReplicationTaskStats -> Maybe POSIX
fullLoadFinishDate :: Prelude.Maybe Data.POSIX,
    -- | The percent complete for the full load migration task.
    ReplicationTaskStats -> Maybe Int
fullLoadProgressPercent :: Prelude.Maybe Prelude.Int,
    -- | The date the replication task full load was started.
    ReplicationTaskStats -> Maybe POSIX
fullLoadStartDate :: Prelude.Maybe Data.POSIX,
    -- | The date the replication task was started either with a fresh start or a
    -- resume. For more information, see
    -- <https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html#DMS-StartReplicationTask-request-StartReplicationTaskType StartReplicationTaskType>.
    ReplicationTaskStats -> Maybe POSIX
startDate :: Prelude.Maybe Data.POSIX,
    -- | The date the replication task was stopped.
    ReplicationTaskStats -> Maybe POSIX
stopDate :: Prelude.Maybe Data.POSIX,
    -- | The number of errors that have occurred during this task.
    ReplicationTaskStats -> Maybe Int
tablesErrored :: Prelude.Maybe Prelude.Int,
    -- | The number of tables loaded for this task.
    ReplicationTaskStats -> Maybe Int
tablesLoaded :: Prelude.Maybe Prelude.Int,
    -- | The number of tables currently loading for this task.
    ReplicationTaskStats -> Maybe Int
tablesLoading :: Prelude.Maybe Prelude.Int,
    -- | The number of tables queued for this task.
    ReplicationTaskStats -> Maybe Int
tablesQueued :: Prelude.Maybe Prelude.Int
  }
  deriving (ReplicationTaskStats -> ReplicationTaskStats -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ReplicationTaskStats -> ReplicationTaskStats -> Bool
$c/= :: ReplicationTaskStats -> ReplicationTaskStats -> Bool
== :: ReplicationTaskStats -> ReplicationTaskStats -> Bool
$c== :: ReplicationTaskStats -> ReplicationTaskStats -> Bool
Prelude.Eq, ReadPrec [ReplicationTaskStats]
ReadPrec ReplicationTaskStats
Int -> ReadS ReplicationTaskStats
ReadS [ReplicationTaskStats]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ReplicationTaskStats]
$creadListPrec :: ReadPrec [ReplicationTaskStats]
readPrec :: ReadPrec ReplicationTaskStats
$creadPrec :: ReadPrec ReplicationTaskStats
readList :: ReadS [ReplicationTaskStats]
$creadList :: ReadS [ReplicationTaskStats]
readsPrec :: Int -> ReadS ReplicationTaskStats
$creadsPrec :: Int -> ReadS ReplicationTaskStats
Prelude.Read, Int -> ReplicationTaskStats -> ShowS
[ReplicationTaskStats] -> ShowS
ReplicationTaskStats -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ReplicationTaskStats] -> ShowS
$cshowList :: [ReplicationTaskStats] -> ShowS
show :: ReplicationTaskStats -> String
$cshow :: ReplicationTaskStats -> String
showsPrec :: Int -> ReplicationTaskStats -> ShowS
$cshowsPrec :: Int -> ReplicationTaskStats -> ShowS
Prelude.Show, forall x. Rep ReplicationTaskStats x -> ReplicationTaskStats
forall x. ReplicationTaskStats -> Rep ReplicationTaskStats x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ReplicationTaskStats x -> ReplicationTaskStats
$cfrom :: forall x. ReplicationTaskStats -> Rep ReplicationTaskStats x
Prelude.Generic)

-- |
-- Create a value of 'ReplicationTaskStats' 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:
--
-- 'elapsedTimeMillis', 'replicationTaskStats_elapsedTimeMillis' - The elapsed time of the task, in milliseconds.
--
-- 'freshStartDate', 'replicationTaskStats_freshStartDate' - The date the replication task was started either with a fresh start or a
-- target reload.
--
-- 'fullLoadFinishDate', 'replicationTaskStats_fullLoadFinishDate' - The date the replication task full load was completed.
--
-- 'fullLoadProgressPercent', 'replicationTaskStats_fullLoadProgressPercent' - The percent complete for the full load migration task.
--
-- 'fullLoadStartDate', 'replicationTaskStats_fullLoadStartDate' - The date the replication task full load was started.
--
-- 'startDate', 'replicationTaskStats_startDate' - The date the replication task was started either with a fresh start or a
-- resume. For more information, see
-- <https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html#DMS-StartReplicationTask-request-StartReplicationTaskType StartReplicationTaskType>.
--
-- 'stopDate', 'replicationTaskStats_stopDate' - The date the replication task was stopped.
--
-- 'tablesErrored', 'replicationTaskStats_tablesErrored' - The number of errors that have occurred during this task.
--
-- 'tablesLoaded', 'replicationTaskStats_tablesLoaded' - The number of tables loaded for this task.
--
-- 'tablesLoading', 'replicationTaskStats_tablesLoading' - The number of tables currently loading for this task.
--
-- 'tablesQueued', 'replicationTaskStats_tablesQueued' - The number of tables queued for this task.
newReplicationTaskStats ::
  ReplicationTaskStats
newReplicationTaskStats :: ReplicationTaskStats
newReplicationTaskStats =
  ReplicationTaskStats'
    { $sel:elapsedTimeMillis:ReplicationTaskStats' :: Maybe Integer
elapsedTimeMillis =
        forall a. Maybe a
Prelude.Nothing,
      $sel:freshStartDate:ReplicationTaskStats' :: Maybe POSIX
freshStartDate = forall a. Maybe a
Prelude.Nothing,
      $sel:fullLoadFinishDate:ReplicationTaskStats' :: Maybe POSIX
fullLoadFinishDate = forall a. Maybe a
Prelude.Nothing,
      $sel:fullLoadProgressPercent:ReplicationTaskStats' :: Maybe Int
fullLoadProgressPercent = forall a. Maybe a
Prelude.Nothing,
      $sel:fullLoadStartDate:ReplicationTaskStats' :: Maybe POSIX
fullLoadStartDate = forall a. Maybe a
Prelude.Nothing,
      $sel:startDate:ReplicationTaskStats' :: Maybe POSIX
startDate = forall a. Maybe a
Prelude.Nothing,
      $sel:stopDate:ReplicationTaskStats' :: Maybe POSIX
stopDate = forall a. Maybe a
Prelude.Nothing,
      $sel:tablesErrored:ReplicationTaskStats' :: Maybe Int
tablesErrored = forall a. Maybe a
Prelude.Nothing,
      $sel:tablesLoaded:ReplicationTaskStats' :: Maybe Int
tablesLoaded = forall a. Maybe a
Prelude.Nothing,
      $sel:tablesLoading:ReplicationTaskStats' :: Maybe Int
tablesLoading = forall a. Maybe a
Prelude.Nothing,
      $sel:tablesQueued:ReplicationTaskStats' :: Maybe Int
tablesQueued = forall a. Maybe a
Prelude.Nothing
    }

-- | The elapsed time of the task, in milliseconds.
replicationTaskStats_elapsedTimeMillis :: Lens.Lens' ReplicationTaskStats (Prelude.Maybe Prelude.Integer)
replicationTaskStats_elapsedTimeMillis :: Lens' ReplicationTaskStats (Maybe Integer)
replicationTaskStats_elapsedTimeMillis = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplicationTaskStats' {Maybe Integer
elapsedTimeMillis :: Maybe Integer
$sel:elapsedTimeMillis:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe Integer
elapsedTimeMillis} -> Maybe Integer
elapsedTimeMillis) (\s :: ReplicationTaskStats
s@ReplicationTaskStats' {} Maybe Integer
a -> ReplicationTaskStats
s {$sel:elapsedTimeMillis:ReplicationTaskStats' :: Maybe Integer
elapsedTimeMillis = Maybe Integer
a} :: ReplicationTaskStats)

-- | The date the replication task was started either with a fresh start or a
-- target reload.
replicationTaskStats_freshStartDate :: Lens.Lens' ReplicationTaskStats (Prelude.Maybe Prelude.UTCTime)
replicationTaskStats_freshStartDate :: Lens' ReplicationTaskStats (Maybe UTCTime)
replicationTaskStats_freshStartDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplicationTaskStats' {Maybe POSIX
freshStartDate :: Maybe POSIX
$sel:freshStartDate:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe POSIX
freshStartDate} -> Maybe POSIX
freshStartDate) (\s :: ReplicationTaskStats
s@ReplicationTaskStats' {} Maybe POSIX
a -> ReplicationTaskStats
s {$sel:freshStartDate:ReplicationTaskStats' :: Maybe POSIX
freshStartDate = Maybe POSIX
a} :: ReplicationTaskStats) 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 date the replication task full load was completed.
replicationTaskStats_fullLoadFinishDate :: Lens.Lens' ReplicationTaskStats (Prelude.Maybe Prelude.UTCTime)
replicationTaskStats_fullLoadFinishDate :: Lens' ReplicationTaskStats (Maybe UTCTime)
replicationTaskStats_fullLoadFinishDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplicationTaskStats' {Maybe POSIX
fullLoadFinishDate :: Maybe POSIX
$sel:fullLoadFinishDate:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe POSIX
fullLoadFinishDate} -> Maybe POSIX
fullLoadFinishDate) (\s :: ReplicationTaskStats
s@ReplicationTaskStats' {} Maybe POSIX
a -> ReplicationTaskStats
s {$sel:fullLoadFinishDate:ReplicationTaskStats' :: Maybe POSIX
fullLoadFinishDate = Maybe POSIX
a} :: ReplicationTaskStats) 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 percent complete for the full load migration task.
replicationTaskStats_fullLoadProgressPercent :: Lens.Lens' ReplicationTaskStats (Prelude.Maybe Prelude.Int)
replicationTaskStats_fullLoadProgressPercent :: Lens' ReplicationTaskStats (Maybe Int)
replicationTaskStats_fullLoadProgressPercent = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplicationTaskStats' {Maybe Int
fullLoadProgressPercent :: Maybe Int
$sel:fullLoadProgressPercent:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe Int
fullLoadProgressPercent} -> Maybe Int
fullLoadProgressPercent) (\s :: ReplicationTaskStats
s@ReplicationTaskStats' {} Maybe Int
a -> ReplicationTaskStats
s {$sel:fullLoadProgressPercent:ReplicationTaskStats' :: Maybe Int
fullLoadProgressPercent = Maybe Int
a} :: ReplicationTaskStats)

-- | The date the replication task full load was started.
replicationTaskStats_fullLoadStartDate :: Lens.Lens' ReplicationTaskStats (Prelude.Maybe Prelude.UTCTime)
replicationTaskStats_fullLoadStartDate :: Lens' ReplicationTaskStats (Maybe UTCTime)
replicationTaskStats_fullLoadStartDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplicationTaskStats' {Maybe POSIX
fullLoadStartDate :: Maybe POSIX
$sel:fullLoadStartDate:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe POSIX
fullLoadStartDate} -> Maybe POSIX
fullLoadStartDate) (\s :: ReplicationTaskStats
s@ReplicationTaskStats' {} Maybe POSIX
a -> ReplicationTaskStats
s {$sel:fullLoadStartDate:ReplicationTaskStats' :: Maybe POSIX
fullLoadStartDate = Maybe POSIX
a} :: ReplicationTaskStats) 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 date the replication task was started either with a fresh start or a
-- resume. For more information, see
-- <https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html#DMS-StartReplicationTask-request-StartReplicationTaskType StartReplicationTaskType>.
replicationTaskStats_startDate :: Lens.Lens' ReplicationTaskStats (Prelude.Maybe Prelude.UTCTime)
replicationTaskStats_startDate :: Lens' ReplicationTaskStats (Maybe UTCTime)
replicationTaskStats_startDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplicationTaskStats' {Maybe POSIX
startDate :: Maybe POSIX
$sel:startDate:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe POSIX
startDate} -> Maybe POSIX
startDate) (\s :: ReplicationTaskStats
s@ReplicationTaskStats' {} Maybe POSIX
a -> ReplicationTaskStats
s {$sel:startDate:ReplicationTaskStats' :: Maybe POSIX
startDate = Maybe POSIX
a} :: ReplicationTaskStats) 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 date the replication task was stopped.
replicationTaskStats_stopDate :: Lens.Lens' ReplicationTaskStats (Prelude.Maybe Prelude.UTCTime)
replicationTaskStats_stopDate :: Lens' ReplicationTaskStats (Maybe UTCTime)
replicationTaskStats_stopDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplicationTaskStats' {Maybe POSIX
stopDate :: Maybe POSIX
$sel:stopDate:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe POSIX
stopDate} -> Maybe POSIX
stopDate) (\s :: ReplicationTaskStats
s@ReplicationTaskStats' {} Maybe POSIX
a -> ReplicationTaskStats
s {$sel:stopDate:ReplicationTaskStats' :: Maybe POSIX
stopDate = Maybe POSIX
a} :: ReplicationTaskStats) 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 number of errors that have occurred during this task.
replicationTaskStats_tablesErrored :: Lens.Lens' ReplicationTaskStats (Prelude.Maybe Prelude.Int)
replicationTaskStats_tablesErrored :: Lens' ReplicationTaskStats (Maybe Int)
replicationTaskStats_tablesErrored = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplicationTaskStats' {Maybe Int
tablesErrored :: Maybe Int
$sel:tablesErrored:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe Int
tablesErrored} -> Maybe Int
tablesErrored) (\s :: ReplicationTaskStats
s@ReplicationTaskStats' {} Maybe Int
a -> ReplicationTaskStats
s {$sel:tablesErrored:ReplicationTaskStats' :: Maybe Int
tablesErrored = Maybe Int
a} :: ReplicationTaskStats)

-- | The number of tables loaded for this task.
replicationTaskStats_tablesLoaded :: Lens.Lens' ReplicationTaskStats (Prelude.Maybe Prelude.Int)
replicationTaskStats_tablesLoaded :: Lens' ReplicationTaskStats (Maybe Int)
replicationTaskStats_tablesLoaded = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplicationTaskStats' {Maybe Int
tablesLoaded :: Maybe Int
$sel:tablesLoaded:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe Int
tablesLoaded} -> Maybe Int
tablesLoaded) (\s :: ReplicationTaskStats
s@ReplicationTaskStats' {} Maybe Int
a -> ReplicationTaskStats
s {$sel:tablesLoaded:ReplicationTaskStats' :: Maybe Int
tablesLoaded = Maybe Int
a} :: ReplicationTaskStats)

-- | The number of tables currently loading for this task.
replicationTaskStats_tablesLoading :: Lens.Lens' ReplicationTaskStats (Prelude.Maybe Prelude.Int)
replicationTaskStats_tablesLoading :: Lens' ReplicationTaskStats (Maybe Int)
replicationTaskStats_tablesLoading = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplicationTaskStats' {Maybe Int
tablesLoading :: Maybe Int
$sel:tablesLoading:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe Int
tablesLoading} -> Maybe Int
tablesLoading) (\s :: ReplicationTaskStats
s@ReplicationTaskStats' {} Maybe Int
a -> ReplicationTaskStats
s {$sel:tablesLoading:ReplicationTaskStats' :: Maybe Int
tablesLoading = Maybe Int
a} :: ReplicationTaskStats)

-- | The number of tables queued for this task.
replicationTaskStats_tablesQueued :: Lens.Lens' ReplicationTaskStats (Prelude.Maybe Prelude.Int)
replicationTaskStats_tablesQueued :: Lens' ReplicationTaskStats (Maybe Int)
replicationTaskStats_tablesQueued = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplicationTaskStats' {Maybe Int
tablesQueued :: Maybe Int
$sel:tablesQueued:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe Int
tablesQueued} -> Maybe Int
tablesQueued) (\s :: ReplicationTaskStats
s@ReplicationTaskStats' {} Maybe Int
a -> ReplicationTaskStats
s {$sel:tablesQueued:ReplicationTaskStats' :: Maybe Int
tablesQueued = Maybe Int
a} :: ReplicationTaskStats)

instance Data.FromJSON ReplicationTaskStats where
  parseJSON :: Value -> Parser ReplicationTaskStats
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"ReplicationTaskStats"
      ( \Object
x ->
          Maybe Integer
-> Maybe POSIX
-> Maybe POSIX
-> Maybe Int
-> Maybe POSIX
-> Maybe POSIX
-> Maybe POSIX
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> ReplicationTaskStats
ReplicationTaskStats'
            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
"ElapsedTimeMillis")
            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
"FreshStartDate")
            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
"FullLoadFinishDate")
            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
"FullLoadProgressPercent")
            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
"FullLoadStartDate")
            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
"StartDate")
            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
"StopDate")
            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
"TablesErrored")
            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
"TablesLoaded")
            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
"TablesLoading")
            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
"TablesQueued")
      )

instance Prelude.Hashable ReplicationTaskStats where
  hashWithSalt :: Int -> ReplicationTaskStats -> Int
hashWithSalt Int
_salt ReplicationTaskStats' {Maybe Int
Maybe Integer
Maybe POSIX
tablesQueued :: Maybe Int
tablesLoading :: Maybe Int
tablesLoaded :: Maybe Int
tablesErrored :: Maybe Int
stopDate :: Maybe POSIX
startDate :: Maybe POSIX
fullLoadStartDate :: Maybe POSIX
fullLoadProgressPercent :: Maybe Int
fullLoadFinishDate :: Maybe POSIX
freshStartDate :: Maybe POSIX
elapsedTimeMillis :: Maybe Integer
$sel:tablesQueued:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe Int
$sel:tablesLoading:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe Int
$sel:tablesLoaded:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe Int
$sel:tablesErrored:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe Int
$sel:stopDate:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe POSIX
$sel:startDate:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe POSIX
$sel:fullLoadStartDate:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe POSIX
$sel:fullLoadProgressPercent:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe Int
$sel:fullLoadFinishDate:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe POSIX
$sel:freshStartDate:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe POSIX
$sel:elapsedTimeMillis:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe Integer
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Integer
elapsedTimeMillis
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
freshStartDate
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
fullLoadFinishDate
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
fullLoadProgressPercent
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
fullLoadStartDate
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
startDate
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
stopDate
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
tablesErrored
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
tablesLoaded
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
tablesLoading
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
tablesQueued

instance Prelude.NFData ReplicationTaskStats where
  rnf :: ReplicationTaskStats -> ()
rnf ReplicationTaskStats' {Maybe Int
Maybe Integer
Maybe POSIX
tablesQueued :: Maybe Int
tablesLoading :: Maybe Int
tablesLoaded :: Maybe Int
tablesErrored :: Maybe Int
stopDate :: Maybe POSIX
startDate :: Maybe POSIX
fullLoadStartDate :: Maybe POSIX
fullLoadProgressPercent :: Maybe Int
fullLoadFinishDate :: Maybe POSIX
freshStartDate :: Maybe POSIX
elapsedTimeMillis :: Maybe Integer
$sel:tablesQueued:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe Int
$sel:tablesLoading:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe Int
$sel:tablesLoaded:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe Int
$sel:tablesErrored:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe Int
$sel:stopDate:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe POSIX
$sel:startDate:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe POSIX
$sel:fullLoadStartDate:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe POSIX
$sel:fullLoadProgressPercent:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe Int
$sel:fullLoadFinishDate:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe POSIX
$sel:freshStartDate:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe POSIX
$sel:elapsedTimeMillis:ReplicationTaskStats' :: ReplicationTaskStats -> Maybe Integer
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
elapsedTimeMillis
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
freshStartDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
fullLoadFinishDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
fullLoadProgressPercent
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
fullLoadStartDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
startDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
stopDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
tablesErrored
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
tablesLoaded
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
tablesLoading
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
tablesQueued