{-# 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.DataSync.Types.TaskExecutionResultDetail
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.DataSync.Types.TaskExecutionResultDetail where

import qualified Amazonka.Core as Core
import Amazonka.DataSync.Types.PhaseStatus
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude

-- | Describes the detailed result of a @TaskExecution@ operation. This
-- result includes the time in milliseconds spent in each phase, the status
-- of the task execution, and the errors encountered.
--
-- /See:/ 'newTaskExecutionResultDetail' smart constructor.
data TaskExecutionResultDetail = TaskExecutionResultDetail'
  { -- | The total time in milliseconds that DataSync spent in the PREPARING
    -- phase.
    TaskExecutionResultDetail -> Maybe Natural
prepareDuration :: Prelude.Maybe Prelude.Natural,
    -- | The status of the PREPARING phase.
    TaskExecutionResultDetail -> Maybe PhaseStatus
prepareStatus :: Prelude.Maybe PhaseStatus,
    -- | The status of the VERIFYING phase.
    TaskExecutionResultDetail -> Maybe PhaseStatus
verifyStatus :: Prelude.Maybe PhaseStatus,
    -- | The total time in milliseconds that DataSync spent in the VERIFYING
    -- phase.
    TaskExecutionResultDetail -> Maybe Natural
verifyDuration :: Prelude.Maybe Prelude.Natural,
    -- | The total time in milliseconds that DataSync took to transfer the file
    -- from the source to the destination location.
    TaskExecutionResultDetail -> Maybe Natural
totalDuration :: Prelude.Maybe Prelude.Natural,
    -- | The status of the TRANSFERRING phase.
    TaskExecutionResultDetail -> Maybe PhaseStatus
transferStatus :: Prelude.Maybe PhaseStatus,
    -- | Errors that DataSync encountered during execution of the task. You can
    -- use this error code to help troubleshoot issues.
    TaskExecutionResultDetail -> Maybe Text
errorCode :: Prelude.Maybe Prelude.Text,
    -- | The total time in milliseconds that DataSync spent in the TRANSFERRING
    -- phase.
    TaskExecutionResultDetail -> Maybe Natural
transferDuration :: Prelude.Maybe Prelude.Natural,
    -- | Detailed description of an error that was encountered during the task
    -- execution. You can use this information to help troubleshoot issues.
    TaskExecutionResultDetail -> Maybe Text
errorDetail :: Prelude.Maybe Prelude.Text
  }
  deriving (TaskExecutionResultDetail -> TaskExecutionResultDetail -> Bool
(TaskExecutionResultDetail -> TaskExecutionResultDetail -> Bool)
-> (TaskExecutionResultDetail -> TaskExecutionResultDetail -> Bool)
-> Eq TaskExecutionResultDetail
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TaskExecutionResultDetail -> TaskExecutionResultDetail -> Bool
$c/= :: TaskExecutionResultDetail -> TaskExecutionResultDetail -> Bool
== :: TaskExecutionResultDetail -> TaskExecutionResultDetail -> Bool
$c== :: TaskExecutionResultDetail -> TaskExecutionResultDetail -> Bool
Prelude.Eq, ReadPrec [TaskExecutionResultDetail]
ReadPrec TaskExecutionResultDetail
Int -> ReadS TaskExecutionResultDetail
ReadS [TaskExecutionResultDetail]
(Int -> ReadS TaskExecutionResultDetail)
-> ReadS [TaskExecutionResultDetail]
-> ReadPrec TaskExecutionResultDetail
-> ReadPrec [TaskExecutionResultDetail]
-> Read TaskExecutionResultDetail
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [TaskExecutionResultDetail]
$creadListPrec :: ReadPrec [TaskExecutionResultDetail]
readPrec :: ReadPrec TaskExecutionResultDetail
$creadPrec :: ReadPrec TaskExecutionResultDetail
readList :: ReadS [TaskExecutionResultDetail]
$creadList :: ReadS [TaskExecutionResultDetail]
readsPrec :: Int -> ReadS TaskExecutionResultDetail
$creadsPrec :: Int -> ReadS TaskExecutionResultDetail
Prelude.Read, Int -> TaskExecutionResultDetail -> ShowS
[TaskExecutionResultDetail] -> ShowS
TaskExecutionResultDetail -> String
(Int -> TaskExecutionResultDetail -> ShowS)
-> (TaskExecutionResultDetail -> String)
-> ([TaskExecutionResultDetail] -> ShowS)
-> Show TaskExecutionResultDetail
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TaskExecutionResultDetail] -> ShowS
$cshowList :: [TaskExecutionResultDetail] -> ShowS
show :: TaskExecutionResultDetail -> String
$cshow :: TaskExecutionResultDetail -> String
showsPrec :: Int -> TaskExecutionResultDetail -> ShowS
$cshowsPrec :: Int -> TaskExecutionResultDetail -> ShowS
Prelude.Show, (forall x.
 TaskExecutionResultDetail -> Rep TaskExecutionResultDetail x)
-> (forall x.
    Rep TaskExecutionResultDetail x -> TaskExecutionResultDetail)
-> Generic TaskExecutionResultDetail
forall x.
Rep TaskExecutionResultDetail x -> TaskExecutionResultDetail
forall x.
TaskExecutionResultDetail -> Rep TaskExecutionResultDetail x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep TaskExecutionResultDetail x -> TaskExecutionResultDetail
$cfrom :: forall x.
TaskExecutionResultDetail -> Rep TaskExecutionResultDetail x
Prelude.Generic)

-- |
-- Create a value of 'TaskExecutionResultDetail' 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:
--
-- 'prepareDuration', 'taskExecutionResultDetail_prepareDuration' - The total time in milliseconds that DataSync spent in the PREPARING
-- phase.
--
-- 'prepareStatus', 'taskExecutionResultDetail_prepareStatus' - The status of the PREPARING phase.
--
-- 'verifyStatus', 'taskExecutionResultDetail_verifyStatus' - The status of the VERIFYING phase.
--
-- 'verifyDuration', 'taskExecutionResultDetail_verifyDuration' - The total time in milliseconds that DataSync spent in the VERIFYING
-- phase.
--
-- 'totalDuration', 'taskExecutionResultDetail_totalDuration' - The total time in milliseconds that DataSync took to transfer the file
-- from the source to the destination location.
--
-- 'transferStatus', 'taskExecutionResultDetail_transferStatus' - The status of the TRANSFERRING phase.
--
-- 'errorCode', 'taskExecutionResultDetail_errorCode' - Errors that DataSync encountered during execution of the task. You can
-- use this error code to help troubleshoot issues.
--
-- 'transferDuration', 'taskExecutionResultDetail_transferDuration' - The total time in milliseconds that DataSync spent in the TRANSFERRING
-- phase.
--
-- 'errorDetail', 'taskExecutionResultDetail_errorDetail' - Detailed description of an error that was encountered during the task
-- execution. You can use this information to help troubleshoot issues.
newTaskExecutionResultDetail ::
  TaskExecutionResultDetail
newTaskExecutionResultDetail :: TaskExecutionResultDetail
newTaskExecutionResultDetail =
  TaskExecutionResultDetail' :: Maybe Natural
-> Maybe PhaseStatus
-> Maybe PhaseStatus
-> Maybe Natural
-> Maybe Natural
-> Maybe PhaseStatus
-> Maybe Text
-> Maybe Natural
-> Maybe Text
-> TaskExecutionResultDetail
TaskExecutionResultDetail'
    { $sel:prepareDuration:TaskExecutionResultDetail' :: Maybe Natural
prepareDuration =
        Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:prepareStatus:TaskExecutionResultDetail' :: Maybe PhaseStatus
prepareStatus = Maybe PhaseStatus
forall a. Maybe a
Prelude.Nothing,
      $sel:verifyStatus:TaskExecutionResultDetail' :: Maybe PhaseStatus
verifyStatus = Maybe PhaseStatus
forall a. Maybe a
Prelude.Nothing,
      $sel:verifyDuration:TaskExecutionResultDetail' :: Maybe Natural
verifyDuration = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:totalDuration:TaskExecutionResultDetail' :: Maybe Natural
totalDuration = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:transferStatus:TaskExecutionResultDetail' :: Maybe PhaseStatus
transferStatus = Maybe PhaseStatus
forall a. Maybe a
Prelude.Nothing,
      $sel:errorCode:TaskExecutionResultDetail' :: Maybe Text
errorCode = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:transferDuration:TaskExecutionResultDetail' :: Maybe Natural
transferDuration = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:errorDetail:TaskExecutionResultDetail' :: Maybe Text
errorDetail = Maybe Text
forall a. Maybe a
Prelude.Nothing
    }

-- | The total time in milliseconds that DataSync spent in the PREPARING
-- phase.
taskExecutionResultDetail_prepareDuration :: Lens.Lens' TaskExecutionResultDetail (Prelude.Maybe Prelude.Natural)
taskExecutionResultDetail_prepareDuration :: (Maybe Natural -> f (Maybe Natural))
-> TaskExecutionResultDetail -> f TaskExecutionResultDetail
taskExecutionResultDetail_prepareDuration = (TaskExecutionResultDetail -> Maybe Natural)
-> (TaskExecutionResultDetail
    -> Maybe Natural -> TaskExecutionResultDetail)
-> Lens
     TaskExecutionResultDetail
     TaskExecutionResultDetail
     (Maybe Natural)
     (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TaskExecutionResultDetail' {Maybe Natural
prepareDuration :: Maybe Natural
$sel:prepareDuration:TaskExecutionResultDetail' :: TaskExecutionResultDetail -> Maybe Natural
prepareDuration} -> Maybe Natural
prepareDuration) (\s :: TaskExecutionResultDetail
s@TaskExecutionResultDetail' {} Maybe Natural
a -> TaskExecutionResultDetail
s {$sel:prepareDuration:TaskExecutionResultDetail' :: Maybe Natural
prepareDuration = Maybe Natural
a} :: TaskExecutionResultDetail)

-- | The status of the PREPARING phase.
taskExecutionResultDetail_prepareStatus :: Lens.Lens' TaskExecutionResultDetail (Prelude.Maybe PhaseStatus)
taskExecutionResultDetail_prepareStatus :: (Maybe PhaseStatus -> f (Maybe PhaseStatus))
-> TaskExecutionResultDetail -> f TaskExecutionResultDetail
taskExecutionResultDetail_prepareStatus = (TaskExecutionResultDetail -> Maybe PhaseStatus)
-> (TaskExecutionResultDetail
    -> Maybe PhaseStatus -> TaskExecutionResultDetail)
-> Lens
     TaskExecutionResultDetail
     TaskExecutionResultDetail
     (Maybe PhaseStatus)
     (Maybe PhaseStatus)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TaskExecutionResultDetail' {Maybe PhaseStatus
prepareStatus :: Maybe PhaseStatus
$sel:prepareStatus:TaskExecutionResultDetail' :: TaskExecutionResultDetail -> Maybe PhaseStatus
prepareStatus} -> Maybe PhaseStatus
prepareStatus) (\s :: TaskExecutionResultDetail
s@TaskExecutionResultDetail' {} Maybe PhaseStatus
a -> TaskExecutionResultDetail
s {$sel:prepareStatus:TaskExecutionResultDetail' :: Maybe PhaseStatus
prepareStatus = Maybe PhaseStatus
a} :: TaskExecutionResultDetail)

-- | The status of the VERIFYING phase.
taskExecutionResultDetail_verifyStatus :: Lens.Lens' TaskExecutionResultDetail (Prelude.Maybe PhaseStatus)
taskExecutionResultDetail_verifyStatus :: (Maybe PhaseStatus -> f (Maybe PhaseStatus))
-> TaskExecutionResultDetail -> f TaskExecutionResultDetail
taskExecutionResultDetail_verifyStatus = (TaskExecutionResultDetail -> Maybe PhaseStatus)
-> (TaskExecutionResultDetail
    -> Maybe PhaseStatus -> TaskExecutionResultDetail)
-> Lens
     TaskExecutionResultDetail
     TaskExecutionResultDetail
     (Maybe PhaseStatus)
     (Maybe PhaseStatus)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TaskExecutionResultDetail' {Maybe PhaseStatus
verifyStatus :: Maybe PhaseStatus
$sel:verifyStatus:TaskExecutionResultDetail' :: TaskExecutionResultDetail -> Maybe PhaseStatus
verifyStatus} -> Maybe PhaseStatus
verifyStatus) (\s :: TaskExecutionResultDetail
s@TaskExecutionResultDetail' {} Maybe PhaseStatus
a -> TaskExecutionResultDetail
s {$sel:verifyStatus:TaskExecutionResultDetail' :: Maybe PhaseStatus
verifyStatus = Maybe PhaseStatus
a} :: TaskExecutionResultDetail)

-- | The total time in milliseconds that DataSync spent in the VERIFYING
-- phase.
taskExecutionResultDetail_verifyDuration :: Lens.Lens' TaskExecutionResultDetail (Prelude.Maybe Prelude.Natural)
taskExecutionResultDetail_verifyDuration :: (Maybe Natural -> f (Maybe Natural))
-> TaskExecutionResultDetail -> f TaskExecutionResultDetail
taskExecutionResultDetail_verifyDuration = (TaskExecutionResultDetail -> Maybe Natural)
-> (TaskExecutionResultDetail
    -> Maybe Natural -> TaskExecutionResultDetail)
-> Lens
     TaskExecutionResultDetail
     TaskExecutionResultDetail
     (Maybe Natural)
     (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TaskExecutionResultDetail' {Maybe Natural
verifyDuration :: Maybe Natural
$sel:verifyDuration:TaskExecutionResultDetail' :: TaskExecutionResultDetail -> Maybe Natural
verifyDuration} -> Maybe Natural
verifyDuration) (\s :: TaskExecutionResultDetail
s@TaskExecutionResultDetail' {} Maybe Natural
a -> TaskExecutionResultDetail
s {$sel:verifyDuration:TaskExecutionResultDetail' :: Maybe Natural
verifyDuration = Maybe Natural
a} :: TaskExecutionResultDetail)

-- | The total time in milliseconds that DataSync took to transfer the file
-- from the source to the destination location.
taskExecutionResultDetail_totalDuration :: Lens.Lens' TaskExecutionResultDetail (Prelude.Maybe Prelude.Natural)
taskExecutionResultDetail_totalDuration :: (Maybe Natural -> f (Maybe Natural))
-> TaskExecutionResultDetail -> f TaskExecutionResultDetail
taskExecutionResultDetail_totalDuration = (TaskExecutionResultDetail -> Maybe Natural)
-> (TaskExecutionResultDetail
    -> Maybe Natural -> TaskExecutionResultDetail)
-> Lens
     TaskExecutionResultDetail
     TaskExecutionResultDetail
     (Maybe Natural)
     (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TaskExecutionResultDetail' {Maybe Natural
totalDuration :: Maybe Natural
$sel:totalDuration:TaskExecutionResultDetail' :: TaskExecutionResultDetail -> Maybe Natural
totalDuration} -> Maybe Natural
totalDuration) (\s :: TaskExecutionResultDetail
s@TaskExecutionResultDetail' {} Maybe Natural
a -> TaskExecutionResultDetail
s {$sel:totalDuration:TaskExecutionResultDetail' :: Maybe Natural
totalDuration = Maybe Natural
a} :: TaskExecutionResultDetail)

-- | The status of the TRANSFERRING phase.
taskExecutionResultDetail_transferStatus :: Lens.Lens' TaskExecutionResultDetail (Prelude.Maybe PhaseStatus)
taskExecutionResultDetail_transferStatus :: (Maybe PhaseStatus -> f (Maybe PhaseStatus))
-> TaskExecutionResultDetail -> f TaskExecutionResultDetail
taskExecutionResultDetail_transferStatus = (TaskExecutionResultDetail -> Maybe PhaseStatus)
-> (TaskExecutionResultDetail
    -> Maybe PhaseStatus -> TaskExecutionResultDetail)
-> Lens
     TaskExecutionResultDetail
     TaskExecutionResultDetail
     (Maybe PhaseStatus)
     (Maybe PhaseStatus)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TaskExecutionResultDetail' {Maybe PhaseStatus
transferStatus :: Maybe PhaseStatus
$sel:transferStatus:TaskExecutionResultDetail' :: TaskExecutionResultDetail -> Maybe PhaseStatus
transferStatus} -> Maybe PhaseStatus
transferStatus) (\s :: TaskExecutionResultDetail
s@TaskExecutionResultDetail' {} Maybe PhaseStatus
a -> TaskExecutionResultDetail
s {$sel:transferStatus:TaskExecutionResultDetail' :: Maybe PhaseStatus
transferStatus = Maybe PhaseStatus
a} :: TaskExecutionResultDetail)

-- | Errors that DataSync encountered during execution of the task. You can
-- use this error code to help troubleshoot issues.
taskExecutionResultDetail_errorCode :: Lens.Lens' TaskExecutionResultDetail (Prelude.Maybe Prelude.Text)
taskExecutionResultDetail_errorCode :: (Maybe Text -> f (Maybe Text))
-> TaskExecutionResultDetail -> f TaskExecutionResultDetail
taskExecutionResultDetail_errorCode = (TaskExecutionResultDetail -> Maybe Text)
-> (TaskExecutionResultDetail
    -> Maybe Text -> TaskExecutionResultDetail)
-> Lens
     TaskExecutionResultDetail
     TaskExecutionResultDetail
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TaskExecutionResultDetail' {Maybe Text
errorCode :: Maybe Text
$sel:errorCode:TaskExecutionResultDetail' :: TaskExecutionResultDetail -> Maybe Text
errorCode} -> Maybe Text
errorCode) (\s :: TaskExecutionResultDetail
s@TaskExecutionResultDetail' {} Maybe Text
a -> TaskExecutionResultDetail
s {$sel:errorCode:TaskExecutionResultDetail' :: Maybe Text
errorCode = Maybe Text
a} :: TaskExecutionResultDetail)

-- | The total time in milliseconds that DataSync spent in the TRANSFERRING
-- phase.
taskExecutionResultDetail_transferDuration :: Lens.Lens' TaskExecutionResultDetail (Prelude.Maybe Prelude.Natural)
taskExecutionResultDetail_transferDuration :: (Maybe Natural -> f (Maybe Natural))
-> TaskExecutionResultDetail -> f TaskExecutionResultDetail
taskExecutionResultDetail_transferDuration = (TaskExecutionResultDetail -> Maybe Natural)
-> (TaskExecutionResultDetail
    -> Maybe Natural -> TaskExecutionResultDetail)
-> Lens
     TaskExecutionResultDetail
     TaskExecutionResultDetail
     (Maybe Natural)
     (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TaskExecutionResultDetail' {Maybe Natural
transferDuration :: Maybe Natural
$sel:transferDuration:TaskExecutionResultDetail' :: TaskExecutionResultDetail -> Maybe Natural
transferDuration} -> Maybe Natural
transferDuration) (\s :: TaskExecutionResultDetail
s@TaskExecutionResultDetail' {} Maybe Natural
a -> TaskExecutionResultDetail
s {$sel:transferDuration:TaskExecutionResultDetail' :: Maybe Natural
transferDuration = Maybe Natural
a} :: TaskExecutionResultDetail)

-- | Detailed description of an error that was encountered during the task
-- execution. You can use this information to help troubleshoot issues.
taskExecutionResultDetail_errorDetail :: Lens.Lens' TaskExecutionResultDetail (Prelude.Maybe Prelude.Text)
taskExecutionResultDetail_errorDetail :: (Maybe Text -> f (Maybe Text))
-> TaskExecutionResultDetail -> f TaskExecutionResultDetail
taskExecutionResultDetail_errorDetail = (TaskExecutionResultDetail -> Maybe Text)
-> (TaskExecutionResultDetail
    -> Maybe Text -> TaskExecutionResultDetail)
-> Lens
     TaskExecutionResultDetail
     TaskExecutionResultDetail
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TaskExecutionResultDetail' {Maybe Text
errorDetail :: Maybe Text
$sel:errorDetail:TaskExecutionResultDetail' :: TaskExecutionResultDetail -> Maybe Text
errorDetail} -> Maybe Text
errorDetail) (\s :: TaskExecutionResultDetail
s@TaskExecutionResultDetail' {} Maybe Text
a -> TaskExecutionResultDetail
s {$sel:errorDetail:TaskExecutionResultDetail' :: Maybe Text
errorDetail = Maybe Text
a} :: TaskExecutionResultDetail)

instance Core.FromJSON TaskExecutionResultDetail where
  parseJSON :: Value -> Parser TaskExecutionResultDetail
parseJSON =
    String
-> (Object -> Parser TaskExecutionResultDetail)
-> Value
-> Parser TaskExecutionResultDetail
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"TaskExecutionResultDetail"
      ( \Object
x ->
          Maybe Natural
-> Maybe PhaseStatus
-> Maybe PhaseStatus
-> Maybe Natural
-> Maybe Natural
-> Maybe PhaseStatus
-> Maybe Text
-> Maybe Natural
-> Maybe Text
-> TaskExecutionResultDetail
TaskExecutionResultDetail'
            (Maybe Natural
 -> Maybe PhaseStatus
 -> Maybe PhaseStatus
 -> Maybe Natural
 -> Maybe Natural
 -> Maybe PhaseStatus
 -> Maybe Text
 -> Maybe Natural
 -> Maybe Text
 -> TaskExecutionResultDetail)
-> Parser (Maybe Natural)
-> Parser
     (Maybe PhaseStatus
      -> Maybe PhaseStatus
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe PhaseStatus
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Text
      -> TaskExecutionResultDetail)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Parser (Maybe Natural)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"PrepareDuration")
            Parser
  (Maybe PhaseStatus
   -> Maybe PhaseStatus
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe PhaseStatus
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Text
   -> TaskExecutionResultDetail)
-> Parser (Maybe PhaseStatus)
-> Parser
     (Maybe PhaseStatus
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe PhaseStatus
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Text
      -> TaskExecutionResultDetail)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe PhaseStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"PrepareStatus")
            Parser
  (Maybe PhaseStatus
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe PhaseStatus
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Text
   -> TaskExecutionResultDetail)
-> Parser (Maybe PhaseStatus)
-> Parser
     (Maybe Natural
      -> Maybe Natural
      -> Maybe PhaseStatus
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Text
      -> TaskExecutionResultDetail)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe PhaseStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"VerifyStatus")
            Parser
  (Maybe Natural
   -> Maybe Natural
   -> Maybe PhaseStatus
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Text
   -> TaskExecutionResultDetail)
-> Parser (Maybe Natural)
-> Parser
     (Maybe Natural
      -> Maybe PhaseStatus
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Text
      -> TaskExecutionResultDetail)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Natural)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"VerifyDuration")
            Parser
  (Maybe Natural
   -> Maybe PhaseStatus
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Text
   -> TaskExecutionResultDetail)
-> Parser (Maybe Natural)
-> Parser
     (Maybe PhaseStatus
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Text
      -> TaskExecutionResultDetail)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Natural)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"TotalDuration")
            Parser
  (Maybe PhaseStatus
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Text
   -> TaskExecutionResultDetail)
-> Parser (Maybe PhaseStatus)
-> Parser
     (Maybe Text
      -> Maybe Natural -> Maybe Text -> TaskExecutionResultDetail)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe PhaseStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"TransferStatus")
            Parser
  (Maybe Text
   -> Maybe Natural -> Maybe Text -> TaskExecutionResultDetail)
-> Parser (Maybe Text)
-> Parser
     (Maybe Natural -> Maybe Text -> TaskExecutionResultDetail)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ErrorCode")
            Parser (Maybe Natural -> Maybe Text -> TaskExecutionResultDetail)
-> Parser (Maybe Natural)
-> Parser (Maybe Text -> TaskExecutionResultDetail)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Natural)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"TransferDuration")
            Parser (Maybe Text -> TaskExecutionResultDetail)
-> Parser (Maybe Text) -> Parser TaskExecutionResultDetail
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ErrorDetail")
      )

instance Prelude.Hashable TaskExecutionResultDetail

instance Prelude.NFData TaskExecutionResultDetail