{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.StepFunctions.DescribeExecution
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Provides all information about a state machine execution, such as the
-- state machine associated with the execution, the execution input and
-- output, and relevant execution metadata. Use this API action to return
-- the Map Run ARN if the execution was dispatched by a Map Run.
--
-- This operation is eventually consistent. The results are best effort and
-- may not reflect very recent updates and changes.
--
-- This API action is not supported by @EXPRESS@ state machine executions
-- unless they were dispatched by a Map Run.
module Amazonka.StepFunctions.DescribeExecution
  ( -- * Creating a Request
    DescribeExecution (..),
    newDescribeExecution,

    -- * Request Lenses
    describeExecution_executionArn,

    -- * Destructuring the Response
    DescribeExecutionResponse (..),
    newDescribeExecutionResponse,

    -- * Response Lenses
    describeExecutionResponse_cause,
    describeExecutionResponse_error,
    describeExecutionResponse_input,
    describeExecutionResponse_inputDetails,
    describeExecutionResponse_mapRunArn,
    describeExecutionResponse_name,
    describeExecutionResponse_output,
    describeExecutionResponse_outputDetails,
    describeExecutionResponse_stopDate,
    describeExecutionResponse_traceHeader,
    describeExecutionResponse_httpStatus,
    describeExecutionResponse_executionArn,
    describeExecutionResponse_stateMachineArn,
    describeExecutionResponse_status,
    describeExecutionResponse_startDate,
  )
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 qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.StepFunctions.Types

-- | /See:/ 'newDescribeExecution' smart constructor.
data DescribeExecution = DescribeExecution'
  { -- | The Amazon Resource Name (ARN) of the execution to describe.
    DescribeExecution -> Text
executionArn :: Prelude.Text
  }
  deriving (DescribeExecution -> DescribeExecution -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeExecution -> DescribeExecution -> Bool
$c/= :: DescribeExecution -> DescribeExecution -> Bool
== :: DescribeExecution -> DescribeExecution -> Bool
$c== :: DescribeExecution -> DescribeExecution -> Bool
Prelude.Eq, ReadPrec [DescribeExecution]
ReadPrec DescribeExecution
Int -> ReadS DescribeExecution
ReadS [DescribeExecution]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeExecution]
$creadListPrec :: ReadPrec [DescribeExecution]
readPrec :: ReadPrec DescribeExecution
$creadPrec :: ReadPrec DescribeExecution
readList :: ReadS [DescribeExecution]
$creadList :: ReadS [DescribeExecution]
readsPrec :: Int -> ReadS DescribeExecution
$creadsPrec :: Int -> ReadS DescribeExecution
Prelude.Read, Int -> DescribeExecution -> ShowS
[DescribeExecution] -> ShowS
DescribeExecution -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeExecution] -> ShowS
$cshowList :: [DescribeExecution] -> ShowS
show :: DescribeExecution -> String
$cshow :: DescribeExecution -> String
showsPrec :: Int -> DescribeExecution -> ShowS
$cshowsPrec :: Int -> DescribeExecution -> ShowS
Prelude.Show, forall x. Rep DescribeExecution x -> DescribeExecution
forall x. DescribeExecution -> Rep DescribeExecution x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeExecution x -> DescribeExecution
$cfrom :: forall x. DescribeExecution -> Rep DescribeExecution x
Prelude.Generic)

-- |
-- Create a value of 'DescribeExecution' 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:
--
-- 'executionArn', 'describeExecution_executionArn' - The Amazon Resource Name (ARN) of the execution to describe.
newDescribeExecution ::
  -- | 'executionArn'
  Prelude.Text ->
  DescribeExecution
newDescribeExecution :: Text -> DescribeExecution
newDescribeExecution Text
pExecutionArn_ =
  DescribeExecution' {$sel:executionArn:DescribeExecution' :: Text
executionArn = Text
pExecutionArn_}

-- | The Amazon Resource Name (ARN) of the execution to describe.
describeExecution_executionArn :: Lens.Lens' DescribeExecution Prelude.Text
describeExecution_executionArn :: Lens' DescribeExecution Text
describeExecution_executionArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExecution' {Text
executionArn :: Text
$sel:executionArn:DescribeExecution' :: DescribeExecution -> Text
executionArn} -> Text
executionArn) (\s :: DescribeExecution
s@DescribeExecution' {} Text
a -> DescribeExecution
s {$sel:executionArn:DescribeExecution' :: Text
executionArn = Text
a} :: DescribeExecution)

instance Core.AWSRequest DescribeExecution where
  type
    AWSResponse DescribeExecution =
      DescribeExecutionResponse
  request :: (Service -> Service)
-> DescribeExecution -> Request DescribeExecution
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeExecution
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeExecution)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe (Sensitive Text)
-> Maybe (Sensitive Text)
-> Maybe (Sensitive Text)
-> Maybe CloudWatchEventsExecutionDataDetails
-> Maybe Text
-> Maybe Text
-> Maybe (Sensitive Text)
-> Maybe CloudWatchEventsExecutionDataDetails
-> Maybe POSIX
-> Maybe Text
-> Int
-> Text
-> Text
-> ExecutionStatus
-> POSIX
-> DescribeExecutionResponse
DescribeExecutionResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"cause")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"error")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"input")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"inputDetails")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"mapRunArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"name")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"output")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"outputDetails")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (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 -> Either String (Maybe a)
Data..?> Key
"traceHeader")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"executionArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"stateMachineArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"status")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"startDate")
      )

instance Prelude.Hashable DescribeExecution where
  hashWithSalt :: Int -> DescribeExecution -> Int
hashWithSalt Int
_salt DescribeExecution' {Text
executionArn :: Text
$sel:executionArn:DescribeExecution' :: DescribeExecution -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
executionArn

instance Prelude.NFData DescribeExecution where
  rnf :: DescribeExecution -> ()
rnf DescribeExecution' {Text
executionArn :: Text
$sel:executionArn:DescribeExecution' :: DescribeExecution -> Text
..} = forall a. NFData a => a -> ()
Prelude.rnf Text
executionArn

instance Data.ToHeaders DescribeExecution where
  toHeaders :: DescribeExecution -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"X-Amz-Target"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"AWSStepFunctions.DescribeExecution" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.0" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON DescribeExecution where
  toJSON :: DescribeExecution -> Value
toJSON DescribeExecution' {Text
executionArn :: Text
$sel:executionArn:DescribeExecution' :: DescribeExecution -> Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [forall a. a -> Maybe a
Prelude.Just (Key
"executionArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
executionArn)]
      )

instance Data.ToPath DescribeExecution where
  toPath :: DescribeExecution -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance Data.ToQuery DescribeExecution where
  toQuery :: DescribeExecution -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newDescribeExecutionResponse' smart constructor.
data DescribeExecutionResponse = DescribeExecutionResponse'
  { -- | The cause string if the state machine execution failed.
    DescribeExecutionResponse -> Maybe (Sensitive Text)
cause :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | The error string if the state machine execution failed.
    DescribeExecutionResponse -> Maybe (Sensitive Text)
error :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | The string that contains the JSON input data of the execution. Length
    -- constraints apply to the payload size, and are expressed as bytes in
    -- UTF-8 encoding.
    DescribeExecutionResponse -> Maybe (Sensitive Text)
input :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    DescribeExecutionResponse
-> Maybe CloudWatchEventsExecutionDataDetails
inputDetails :: Prelude.Maybe CloudWatchEventsExecutionDataDetails,
    -- | The Amazon Resource Name (ARN) that identifies a Map Run, which
    -- dispatched this execution.
    DescribeExecutionResponse -> Maybe Text
mapRunArn :: Prelude.Maybe Prelude.Text,
    -- | The name of the execution.
    --
    -- A name must /not/ contain:
    --
    -- -   white space
    --
    -- -   brackets @\< > { } [ ]@
    --
    -- -   wildcard characters @? *@
    --
    -- -   special characters @\" # % \\ ^ | ~ \` $ & , ; : \/@
    --
    -- -   control characters (@U+0000-001F@, @U+007F-009F@)
    --
    -- To enable logging with CloudWatch Logs, the name should only contain
    -- 0-9, A-Z, a-z, - and _.
    DescribeExecutionResponse -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | The JSON output data of the execution. Length constraints apply to the
    -- payload size, and are expressed as bytes in UTF-8 encoding.
    --
    -- This field is set only if the execution succeeds. If the execution
    -- fails, this field is null.
    DescribeExecutionResponse -> Maybe (Sensitive Text)
output :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    DescribeExecutionResponse
-> Maybe CloudWatchEventsExecutionDataDetails
outputDetails :: Prelude.Maybe CloudWatchEventsExecutionDataDetails,
    -- | If the execution has already ended, the date the execution stopped.
    DescribeExecutionResponse -> Maybe POSIX
stopDate :: Prelude.Maybe Data.POSIX,
    -- | The X-Ray trace header that was passed to the execution.
    DescribeExecutionResponse -> Maybe Text
traceHeader :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeExecutionResponse -> Int
httpStatus :: Prelude.Int,
    -- | The Amazon Resource Name (ARN) that identifies the execution.
    DescribeExecutionResponse -> Text
executionArn :: Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the executed stated machine.
    DescribeExecutionResponse -> Text
stateMachineArn :: Prelude.Text,
    -- | The current status of the execution.
    DescribeExecutionResponse -> ExecutionStatus
status :: ExecutionStatus,
    -- | The date the execution is started.
    DescribeExecutionResponse -> POSIX
startDate :: Data.POSIX
  }
  deriving (DescribeExecutionResponse -> DescribeExecutionResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeExecutionResponse -> DescribeExecutionResponse -> Bool
$c/= :: DescribeExecutionResponse -> DescribeExecutionResponse -> Bool
== :: DescribeExecutionResponse -> DescribeExecutionResponse -> Bool
$c== :: DescribeExecutionResponse -> DescribeExecutionResponse -> Bool
Prelude.Eq, Int -> DescribeExecutionResponse -> ShowS
[DescribeExecutionResponse] -> ShowS
DescribeExecutionResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeExecutionResponse] -> ShowS
$cshowList :: [DescribeExecutionResponse] -> ShowS
show :: DescribeExecutionResponse -> String
$cshow :: DescribeExecutionResponse -> String
showsPrec :: Int -> DescribeExecutionResponse -> ShowS
$cshowsPrec :: Int -> DescribeExecutionResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeExecutionResponse x -> DescribeExecutionResponse
forall x.
DescribeExecutionResponse -> Rep DescribeExecutionResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeExecutionResponse x -> DescribeExecutionResponse
$cfrom :: forall x.
DescribeExecutionResponse -> Rep DescribeExecutionResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeExecutionResponse' 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:
--
-- 'cause', 'describeExecutionResponse_cause' - The cause string if the state machine execution failed.
--
-- 'error', 'describeExecutionResponse_error' - The error string if the state machine execution failed.
--
-- 'input', 'describeExecutionResponse_input' - The string that contains the JSON input data of the execution. Length
-- constraints apply to the payload size, and are expressed as bytes in
-- UTF-8 encoding.
--
-- 'inputDetails', 'describeExecutionResponse_inputDetails' - Undocumented member.
--
-- 'mapRunArn', 'describeExecutionResponse_mapRunArn' - The Amazon Resource Name (ARN) that identifies a Map Run, which
-- dispatched this execution.
--
-- 'name', 'describeExecutionResponse_name' - The name of the execution.
--
-- A name must /not/ contain:
--
-- -   white space
--
-- -   brackets @\< > { } [ ]@
--
-- -   wildcard characters @? *@
--
-- -   special characters @\" # % \\ ^ | ~ \` $ & , ; : \/@
--
-- -   control characters (@U+0000-001F@, @U+007F-009F@)
--
-- To enable logging with CloudWatch Logs, the name should only contain
-- 0-9, A-Z, a-z, - and _.
--
-- 'output', 'describeExecutionResponse_output' - The JSON output data of the execution. Length constraints apply to the
-- payload size, and are expressed as bytes in UTF-8 encoding.
--
-- This field is set only if the execution succeeds. If the execution
-- fails, this field is null.
--
-- 'outputDetails', 'describeExecutionResponse_outputDetails' - Undocumented member.
--
-- 'stopDate', 'describeExecutionResponse_stopDate' - If the execution has already ended, the date the execution stopped.
--
-- 'traceHeader', 'describeExecutionResponse_traceHeader' - The X-Ray trace header that was passed to the execution.
--
-- 'httpStatus', 'describeExecutionResponse_httpStatus' - The response's http status code.
--
-- 'executionArn', 'describeExecutionResponse_executionArn' - The Amazon Resource Name (ARN) that identifies the execution.
--
-- 'stateMachineArn', 'describeExecutionResponse_stateMachineArn' - The Amazon Resource Name (ARN) of the executed stated machine.
--
-- 'status', 'describeExecutionResponse_status' - The current status of the execution.
--
-- 'startDate', 'describeExecutionResponse_startDate' - The date the execution is started.
newDescribeExecutionResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'executionArn'
  Prelude.Text ->
  -- | 'stateMachineArn'
  Prelude.Text ->
  -- | 'status'
  ExecutionStatus ->
  -- | 'startDate'
  Prelude.UTCTime ->
  DescribeExecutionResponse
newDescribeExecutionResponse :: Int
-> Text
-> Text
-> ExecutionStatus
-> UTCTime
-> DescribeExecutionResponse
newDescribeExecutionResponse
  Int
pHttpStatus_
  Text
pExecutionArn_
  Text
pStateMachineArn_
  ExecutionStatus
pStatus_
  UTCTime
pStartDate_ =
    DescribeExecutionResponse'
      { $sel:cause:DescribeExecutionResponse' :: Maybe (Sensitive Text)
cause = forall a. Maybe a
Prelude.Nothing,
        $sel:error:DescribeExecutionResponse' :: Maybe (Sensitive Text)
error = forall a. Maybe a
Prelude.Nothing,
        $sel:input:DescribeExecutionResponse' :: Maybe (Sensitive Text)
input = forall a. Maybe a
Prelude.Nothing,
        $sel:inputDetails:DescribeExecutionResponse' :: Maybe CloudWatchEventsExecutionDataDetails
inputDetails = forall a. Maybe a
Prelude.Nothing,
        $sel:mapRunArn:DescribeExecutionResponse' :: Maybe Text
mapRunArn = forall a. Maybe a
Prelude.Nothing,
        $sel:name:DescribeExecutionResponse' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
        $sel:output:DescribeExecutionResponse' :: Maybe (Sensitive Text)
output = forall a. Maybe a
Prelude.Nothing,
        $sel:outputDetails:DescribeExecutionResponse' :: Maybe CloudWatchEventsExecutionDataDetails
outputDetails = forall a. Maybe a
Prelude.Nothing,
        $sel:stopDate:DescribeExecutionResponse' :: Maybe POSIX
stopDate = forall a. Maybe a
Prelude.Nothing,
        $sel:traceHeader:DescribeExecutionResponse' :: Maybe Text
traceHeader = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DescribeExecutionResponse' :: Int
httpStatus = Int
pHttpStatus_,
        $sel:executionArn:DescribeExecutionResponse' :: Text
executionArn = Text
pExecutionArn_,
        $sel:stateMachineArn:DescribeExecutionResponse' :: Text
stateMachineArn = Text
pStateMachineArn_,
        $sel:status:DescribeExecutionResponse' :: ExecutionStatus
status = ExecutionStatus
pStatus_,
        $sel:startDate:DescribeExecutionResponse' :: POSIX
startDate = forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pStartDate_
      }

-- | The cause string if the state machine execution failed.
describeExecutionResponse_cause :: Lens.Lens' DescribeExecutionResponse (Prelude.Maybe Prelude.Text)
describeExecutionResponse_cause :: Lens' DescribeExecutionResponse (Maybe Text)
describeExecutionResponse_cause = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExecutionResponse' {Maybe (Sensitive Text)
cause :: Maybe (Sensitive Text)
$sel:cause:DescribeExecutionResponse' :: DescribeExecutionResponse -> Maybe (Sensitive Text)
cause} -> Maybe (Sensitive Text)
cause) (\s :: DescribeExecutionResponse
s@DescribeExecutionResponse' {} Maybe (Sensitive Text)
a -> DescribeExecutionResponse
s {$sel:cause:DescribeExecutionResponse' :: Maybe (Sensitive Text)
cause = Maybe (Sensitive Text)
a} :: DescribeExecutionResponse) 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

-- | The error string if the state machine execution failed.
describeExecutionResponse_error :: Lens.Lens' DescribeExecutionResponse (Prelude.Maybe Prelude.Text)
describeExecutionResponse_error :: Lens' DescribeExecutionResponse (Maybe Text)
describeExecutionResponse_error = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExecutionResponse' {Maybe (Sensitive Text)
error :: Maybe (Sensitive Text)
$sel:error:DescribeExecutionResponse' :: DescribeExecutionResponse -> Maybe (Sensitive Text)
error} -> Maybe (Sensitive Text)
error) (\s :: DescribeExecutionResponse
s@DescribeExecutionResponse' {} Maybe (Sensitive Text)
a -> DescribeExecutionResponse
s {$sel:error:DescribeExecutionResponse' :: Maybe (Sensitive Text)
error = Maybe (Sensitive Text)
a} :: DescribeExecutionResponse) 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

-- | The string that contains the JSON input data of the execution. Length
-- constraints apply to the payload size, and are expressed as bytes in
-- UTF-8 encoding.
describeExecutionResponse_input :: Lens.Lens' DescribeExecutionResponse (Prelude.Maybe Prelude.Text)
describeExecutionResponse_input :: Lens' DescribeExecutionResponse (Maybe Text)
describeExecutionResponse_input = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExecutionResponse' {Maybe (Sensitive Text)
input :: Maybe (Sensitive Text)
$sel:input:DescribeExecutionResponse' :: DescribeExecutionResponse -> Maybe (Sensitive Text)
input} -> Maybe (Sensitive Text)
input) (\s :: DescribeExecutionResponse
s@DescribeExecutionResponse' {} Maybe (Sensitive Text)
a -> DescribeExecutionResponse
s {$sel:input:DescribeExecutionResponse' :: Maybe (Sensitive Text)
input = Maybe (Sensitive Text)
a} :: DescribeExecutionResponse) 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

-- | Undocumented member.
describeExecutionResponse_inputDetails :: Lens.Lens' DescribeExecutionResponse (Prelude.Maybe CloudWatchEventsExecutionDataDetails)
describeExecutionResponse_inputDetails :: Lens'
  DescribeExecutionResponse
  (Maybe CloudWatchEventsExecutionDataDetails)
describeExecutionResponse_inputDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExecutionResponse' {Maybe CloudWatchEventsExecutionDataDetails
inputDetails :: Maybe CloudWatchEventsExecutionDataDetails
$sel:inputDetails:DescribeExecutionResponse' :: DescribeExecutionResponse
-> Maybe CloudWatchEventsExecutionDataDetails
inputDetails} -> Maybe CloudWatchEventsExecutionDataDetails
inputDetails) (\s :: DescribeExecutionResponse
s@DescribeExecutionResponse' {} Maybe CloudWatchEventsExecutionDataDetails
a -> DescribeExecutionResponse
s {$sel:inputDetails:DescribeExecutionResponse' :: Maybe CloudWatchEventsExecutionDataDetails
inputDetails = Maybe CloudWatchEventsExecutionDataDetails
a} :: DescribeExecutionResponse)

-- | The Amazon Resource Name (ARN) that identifies a Map Run, which
-- dispatched this execution.
describeExecutionResponse_mapRunArn :: Lens.Lens' DescribeExecutionResponse (Prelude.Maybe Prelude.Text)
describeExecutionResponse_mapRunArn :: Lens' DescribeExecutionResponse (Maybe Text)
describeExecutionResponse_mapRunArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExecutionResponse' {Maybe Text
mapRunArn :: Maybe Text
$sel:mapRunArn:DescribeExecutionResponse' :: DescribeExecutionResponse -> Maybe Text
mapRunArn} -> Maybe Text
mapRunArn) (\s :: DescribeExecutionResponse
s@DescribeExecutionResponse' {} Maybe Text
a -> DescribeExecutionResponse
s {$sel:mapRunArn:DescribeExecutionResponse' :: Maybe Text
mapRunArn = Maybe Text
a} :: DescribeExecutionResponse)

-- | The name of the execution.
--
-- A name must /not/ contain:
--
-- -   white space
--
-- -   brackets @\< > { } [ ]@
--
-- -   wildcard characters @? *@
--
-- -   special characters @\" # % \\ ^ | ~ \` $ & , ; : \/@
--
-- -   control characters (@U+0000-001F@, @U+007F-009F@)
--
-- To enable logging with CloudWatch Logs, the name should only contain
-- 0-9, A-Z, a-z, - and _.
describeExecutionResponse_name :: Lens.Lens' DescribeExecutionResponse (Prelude.Maybe Prelude.Text)
describeExecutionResponse_name :: Lens' DescribeExecutionResponse (Maybe Text)
describeExecutionResponse_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExecutionResponse' {Maybe Text
name :: Maybe Text
$sel:name:DescribeExecutionResponse' :: DescribeExecutionResponse -> Maybe Text
name} -> Maybe Text
name) (\s :: DescribeExecutionResponse
s@DescribeExecutionResponse' {} Maybe Text
a -> DescribeExecutionResponse
s {$sel:name:DescribeExecutionResponse' :: Maybe Text
name = Maybe Text
a} :: DescribeExecutionResponse)

-- | The JSON output data of the execution. Length constraints apply to the
-- payload size, and are expressed as bytes in UTF-8 encoding.
--
-- This field is set only if the execution succeeds. If the execution
-- fails, this field is null.
describeExecutionResponse_output :: Lens.Lens' DescribeExecutionResponse (Prelude.Maybe Prelude.Text)
describeExecutionResponse_output :: Lens' DescribeExecutionResponse (Maybe Text)
describeExecutionResponse_output = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExecutionResponse' {Maybe (Sensitive Text)
output :: Maybe (Sensitive Text)
$sel:output:DescribeExecutionResponse' :: DescribeExecutionResponse -> Maybe (Sensitive Text)
output} -> Maybe (Sensitive Text)
output) (\s :: DescribeExecutionResponse
s@DescribeExecutionResponse' {} Maybe (Sensitive Text)
a -> DescribeExecutionResponse
s {$sel:output:DescribeExecutionResponse' :: Maybe (Sensitive Text)
output = Maybe (Sensitive Text)
a} :: DescribeExecutionResponse) 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

-- | Undocumented member.
describeExecutionResponse_outputDetails :: Lens.Lens' DescribeExecutionResponse (Prelude.Maybe CloudWatchEventsExecutionDataDetails)
describeExecutionResponse_outputDetails :: Lens'
  DescribeExecutionResponse
  (Maybe CloudWatchEventsExecutionDataDetails)
describeExecutionResponse_outputDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExecutionResponse' {Maybe CloudWatchEventsExecutionDataDetails
outputDetails :: Maybe CloudWatchEventsExecutionDataDetails
$sel:outputDetails:DescribeExecutionResponse' :: DescribeExecutionResponse
-> Maybe CloudWatchEventsExecutionDataDetails
outputDetails} -> Maybe CloudWatchEventsExecutionDataDetails
outputDetails) (\s :: DescribeExecutionResponse
s@DescribeExecutionResponse' {} Maybe CloudWatchEventsExecutionDataDetails
a -> DescribeExecutionResponse
s {$sel:outputDetails:DescribeExecutionResponse' :: Maybe CloudWatchEventsExecutionDataDetails
outputDetails = Maybe CloudWatchEventsExecutionDataDetails
a} :: DescribeExecutionResponse)

-- | If the execution has already ended, the date the execution stopped.
describeExecutionResponse_stopDate :: Lens.Lens' DescribeExecutionResponse (Prelude.Maybe Prelude.UTCTime)
describeExecutionResponse_stopDate :: Lens' DescribeExecutionResponse (Maybe UTCTime)
describeExecutionResponse_stopDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExecutionResponse' {Maybe POSIX
stopDate :: Maybe POSIX
$sel:stopDate:DescribeExecutionResponse' :: DescribeExecutionResponse -> Maybe POSIX
stopDate} -> Maybe POSIX
stopDate) (\s :: DescribeExecutionResponse
s@DescribeExecutionResponse' {} Maybe POSIX
a -> DescribeExecutionResponse
s {$sel:stopDate:DescribeExecutionResponse' :: Maybe POSIX
stopDate = Maybe POSIX
a} :: DescribeExecutionResponse) 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 X-Ray trace header that was passed to the execution.
describeExecutionResponse_traceHeader :: Lens.Lens' DescribeExecutionResponse (Prelude.Maybe Prelude.Text)
describeExecutionResponse_traceHeader :: Lens' DescribeExecutionResponse (Maybe Text)
describeExecutionResponse_traceHeader = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExecutionResponse' {Maybe Text
traceHeader :: Maybe Text
$sel:traceHeader:DescribeExecutionResponse' :: DescribeExecutionResponse -> Maybe Text
traceHeader} -> Maybe Text
traceHeader) (\s :: DescribeExecutionResponse
s@DescribeExecutionResponse' {} Maybe Text
a -> DescribeExecutionResponse
s {$sel:traceHeader:DescribeExecutionResponse' :: Maybe Text
traceHeader = Maybe Text
a} :: DescribeExecutionResponse)

-- | The response's http status code.
describeExecutionResponse_httpStatus :: Lens.Lens' DescribeExecutionResponse Prelude.Int
describeExecutionResponse_httpStatus :: Lens' DescribeExecutionResponse Int
describeExecutionResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExecutionResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeExecutionResponse' :: DescribeExecutionResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeExecutionResponse
s@DescribeExecutionResponse' {} Int
a -> DescribeExecutionResponse
s {$sel:httpStatus:DescribeExecutionResponse' :: Int
httpStatus = Int
a} :: DescribeExecutionResponse)

-- | The Amazon Resource Name (ARN) that identifies the execution.
describeExecutionResponse_executionArn :: Lens.Lens' DescribeExecutionResponse Prelude.Text
describeExecutionResponse_executionArn :: Lens' DescribeExecutionResponse Text
describeExecutionResponse_executionArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExecutionResponse' {Text
executionArn :: Text
$sel:executionArn:DescribeExecutionResponse' :: DescribeExecutionResponse -> Text
executionArn} -> Text
executionArn) (\s :: DescribeExecutionResponse
s@DescribeExecutionResponse' {} Text
a -> DescribeExecutionResponse
s {$sel:executionArn:DescribeExecutionResponse' :: Text
executionArn = Text
a} :: DescribeExecutionResponse)

-- | The Amazon Resource Name (ARN) of the executed stated machine.
describeExecutionResponse_stateMachineArn :: Lens.Lens' DescribeExecutionResponse Prelude.Text
describeExecutionResponse_stateMachineArn :: Lens' DescribeExecutionResponse Text
describeExecutionResponse_stateMachineArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExecutionResponse' {Text
stateMachineArn :: Text
$sel:stateMachineArn:DescribeExecutionResponse' :: DescribeExecutionResponse -> Text
stateMachineArn} -> Text
stateMachineArn) (\s :: DescribeExecutionResponse
s@DescribeExecutionResponse' {} Text
a -> DescribeExecutionResponse
s {$sel:stateMachineArn:DescribeExecutionResponse' :: Text
stateMachineArn = Text
a} :: DescribeExecutionResponse)

-- | The current status of the execution.
describeExecutionResponse_status :: Lens.Lens' DescribeExecutionResponse ExecutionStatus
describeExecutionResponse_status :: Lens' DescribeExecutionResponse ExecutionStatus
describeExecutionResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExecutionResponse' {ExecutionStatus
status :: ExecutionStatus
$sel:status:DescribeExecutionResponse' :: DescribeExecutionResponse -> ExecutionStatus
status} -> ExecutionStatus
status) (\s :: DescribeExecutionResponse
s@DescribeExecutionResponse' {} ExecutionStatus
a -> DescribeExecutionResponse
s {$sel:status:DescribeExecutionResponse' :: ExecutionStatus
status = ExecutionStatus
a} :: DescribeExecutionResponse)

-- | The date the execution is started.
describeExecutionResponse_startDate :: Lens.Lens' DescribeExecutionResponse Prelude.UTCTime
describeExecutionResponse_startDate :: Lens' DescribeExecutionResponse UTCTime
describeExecutionResponse_startDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExecutionResponse' {POSIX
startDate :: POSIX
$sel:startDate:DescribeExecutionResponse' :: DescribeExecutionResponse -> POSIX
startDate} -> POSIX
startDate) (\s :: DescribeExecutionResponse
s@DescribeExecutionResponse' {} POSIX
a -> DescribeExecutionResponse
s {$sel:startDate:DescribeExecutionResponse' :: POSIX
startDate = POSIX
a} :: DescribeExecutionResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

instance Prelude.NFData DescribeExecutionResponse where
  rnf :: DescribeExecutionResponse -> ()
rnf DescribeExecutionResponse' {Int
Maybe Text
Maybe (Sensitive Text)
Maybe POSIX
Maybe CloudWatchEventsExecutionDataDetails
Text
POSIX
ExecutionStatus
startDate :: POSIX
status :: ExecutionStatus
stateMachineArn :: Text
executionArn :: Text
httpStatus :: Int
traceHeader :: Maybe Text
stopDate :: Maybe POSIX
outputDetails :: Maybe CloudWatchEventsExecutionDataDetails
output :: Maybe (Sensitive Text)
name :: Maybe Text
mapRunArn :: Maybe Text
inputDetails :: Maybe CloudWatchEventsExecutionDataDetails
input :: Maybe (Sensitive Text)
error :: Maybe (Sensitive Text)
cause :: Maybe (Sensitive Text)
$sel:startDate:DescribeExecutionResponse' :: DescribeExecutionResponse -> POSIX
$sel:status:DescribeExecutionResponse' :: DescribeExecutionResponse -> ExecutionStatus
$sel:stateMachineArn:DescribeExecutionResponse' :: DescribeExecutionResponse -> Text
$sel:executionArn:DescribeExecutionResponse' :: DescribeExecutionResponse -> Text
$sel:httpStatus:DescribeExecutionResponse' :: DescribeExecutionResponse -> Int
$sel:traceHeader:DescribeExecutionResponse' :: DescribeExecutionResponse -> Maybe Text
$sel:stopDate:DescribeExecutionResponse' :: DescribeExecutionResponse -> Maybe POSIX
$sel:outputDetails:DescribeExecutionResponse' :: DescribeExecutionResponse
-> Maybe CloudWatchEventsExecutionDataDetails
$sel:output:DescribeExecutionResponse' :: DescribeExecutionResponse -> Maybe (Sensitive Text)
$sel:name:DescribeExecutionResponse' :: DescribeExecutionResponse -> Maybe Text
$sel:mapRunArn:DescribeExecutionResponse' :: DescribeExecutionResponse -> Maybe Text
$sel:inputDetails:DescribeExecutionResponse' :: DescribeExecutionResponse
-> Maybe CloudWatchEventsExecutionDataDetails
$sel:input:DescribeExecutionResponse' :: DescribeExecutionResponse -> Maybe (Sensitive Text)
$sel:error:DescribeExecutionResponse' :: DescribeExecutionResponse -> Maybe (Sensitive Text)
$sel:cause:DescribeExecutionResponse' :: DescribeExecutionResponse -> Maybe (Sensitive Text)
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
cause
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
error
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
input
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe CloudWatchEventsExecutionDataDetails
inputDetails
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
mapRunArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
output
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe CloudWatchEventsExecutionDataDetails
outputDetails
      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 Text
traceHeader
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
executionArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
stateMachineArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ExecutionStatus
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf POSIX
startDate