{-# 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.Transfer.ListExecutions
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Lists all executions for the specified workflow.
--
-- This operation returns paginated results.
module Amazonka.Transfer.ListExecutions
  ( -- * Creating a Request
    ListExecutions (..),
    newListExecutions,

    -- * Request Lenses
    listExecutions_maxResults,
    listExecutions_nextToken,
    listExecutions_workflowId,

    -- * Destructuring the Response
    ListExecutionsResponse (..),
    newListExecutionsResponse,

    -- * Response Lenses
    listExecutionsResponse_nextToken,
    listExecutionsResponse_httpStatus,
    listExecutionsResponse_workflowId,
    listExecutionsResponse_executions,
  )
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.Transfer.Types

-- | /See:/ 'newListExecutions' smart constructor.
data ListExecutions = ListExecutions'
  { -- | Specifies the maximum number of executions to return.
    ListExecutions -> Maybe Natural
maxResults :: Prelude.Maybe Prelude.Natural,
    -- | @ListExecutions@ returns the @NextToken@ parameter in the output. You
    -- can then pass the @NextToken@ parameter in a subsequent command to
    -- continue listing additional executions.
    --
    -- This is useful for pagination, for instance. If you have 100 executions
    -- for a workflow, you might only want to list first 10. If so, call the
    -- API by specifying the @max-results@:
    --
    -- @aws transfer list-executions --max-results 10@
    --
    -- This returns details for the first 10 executions, as well as the pointer
    -- (@NextToken@) to the eleventh execution. You can now call the API again,
    -- supplying the @NextToken@ value you received:
    --
    -- @aws transfer list-executions --max-results 10 --next-token $somePointerReturnedFromPreviousListResult@
    --
    -- This call returns the next 10 executions, the 11th through the 20th. You
    -- can then repeat the call until the details for all 100 executions have
    -- been returned.
    ListExecutions -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | A unique identifier for the workflow.
    ListExecutions -> Text
workflowId :: Prelude.Text
  }
  deriving (ListExecutions -> ListExecutions -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListExecutions -> ListExecutions -> Bool
$c/= :: ListExecutions -> ListExecutions -> Bool
== :: ListExecutions -> ListExecutions -> Bool
$c== :: ListExecutions -> ListExecutions -> Bool
Prelude.Eq, ReadPrec [ListExecutions]
ReadPrec ListExecutions
Int -> ReadS ListExecutions
ReadS [ListExecutions]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListExecutions]
$creadListPrec :: ReadPrec [ListExecutions]
readPrec :: ReadPrec ListExecutions
$creadPrec :: ReadPrec ListExecutions
readList :: ReadS [ListExecutions]
$creadList :: ReadS [ListExecutions]
readsPrec :: Int -> ReadS ListExecutions
$creadsPrec :: Int -> ReadS ListExecutions
Prelude.Read, Int -> ListExecutions -> ShowS
[ListExecutions] -> ShowS
ListExecutions -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListExecutions] -> ShowS
$cshowList :: [ListExecutions] -> ShowS
show :: ListExecutions -> String
$cshow :: ListExecutions -> String
showsPrec :: Int -> ListExecutions -> ShowS
$cshowsPrec :: Int -> ListExecutions -> ShowS
Prelude.Show, forall x. Rep ListExecutions x -> ListExecutions
forall x. ListExecutions -> Rep ListExecutions x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ListExecutions x -> ListExecutions
$cfrom :: forall x. ListExecutions -> Rep ListExecutions x
Prelude.Generic)

-- |
-- Create a value of 'ListExecutions' 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:
--
-- 'maxResults', 'listExecutions_maxResults' - Specifies the maximum number of executions to return.
--
-- 'nextToken', 'listExecutions_nextToken' - @ListExecutions@ returns the @NextToken@ parameter in the output. You
-- can then pass the @NextToken@ parameter in a subsequent command to
-- continue listing additional executions.
--
-- This is useful for pagination, for instance. If you have 100 executions
-- for a workflow, you might only want to list first 10. If so, call the
-- API by specifying the @max-results@:
--
-- @aws transfer list-executions --max-results 10@
--
-- This returns details for the first 10 executions, as well as the pointer
-- (@NextToken@) to the eleventh execution. You can now call the API again,
-- supplying the @NextToken@ value you received:
--
-- @aws transfer list-executions --max-results 10 --next-token $somePointerReturnedFromPreviousListResult@
--
-- This call returns the next 10 executions, the 11th through the 20th. You
-- can then repeat the call until the details for all 100 executions have
-- been returned.
--
-- 'workflowId', 'listExecutions_workflowId' - A unique identifier for the workflow.
newListExecutions ::
  -- | 'workflowId'
  Prelude.Text ->
  ListExecutions
newListExecutions :: Text -> ListExecutions
newListExecutions Text
pWorkflowId_ =
  ListExecutions'
    { $sel:maxResults:ListExecutions' :: Maybe Natural
maxResults = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:ListExecutions' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:workflowId:ListExecutions' :: Text
workflowId = Text
pWorkflowId_
    }

-- | Specifies the maximum number of executions to return.
listExecutions_maxResults :: Lens.Lens' ListExecutions (Prelude.Maybe Prelude.Natural)
listExecutions_maxResults :: Lens' ListExecutions (Maybe Natural)
listExecutions_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListExecutions' {Maybe Natural
maxResults :: Maybe Natural
$sel:maxResults:ListExecutions' :: ListExecutions -> Maybe Natural
maxResults} -> Maybe Natural
maxResults) (\s :: ListExecutions
s@ListExecutions' {} Maybe Natural
a -> ListExecutions
s {$sel:maxResults:ListExecutions' :: Maybe Natural
maxResults = Maybe Natural
a} :: ListExecutions)

-- | @ListExecutions@ returns the @NextToken@ parameter in the output. You
-- can then pass the @NextToken@ parameter in a subsequent command to
-- continue listing additional executions.
--
-- This is useful for pagination, for instance. If you have 100 executions
-- for a workflow, you might only want to list first 10. If so, call the
-- API by specifying the @max-results@:
--
-- @aws transfer list-executions --max-results 10@
--
-- This returns details for the first 10 executions, as well as the pointer
-- (@NextToken@) to the eleventh execution. You can now call the API again,
-- supplying the @NextToken@ value you received:
--
-- @aws transfer list-executions --max-results 10 --next-token $somePointerReturnedFromPreviousListResult@
--
-- This call returns the next 10 executions, the 11th through the 20th. You
-- can then repeat the call until the details for all 100 executions have
-- been returned.
listExecutions_nextToken :: Lens.Lens' ListExecutions (Prelude.Maybe Prelude.Text)
listExecutions_nextToken :: Lens' ListExecutions (Maybe Text)
listExecutions_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListExecutions' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListExecutions' :: ListExecutions -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListExecutions
s@ListExecutions' {} Maybe Text
a -> ListExecutions
s {$sel:nextToken:ListExecutions' :: Maybe Text
nextToken = Maybe Text
a} :: ListExecutions)

-- | A unique identifier for the workflow.
listExecutions_workflowId :: Lens.Lens' ListExecutions Prelude.Text
listExecutions_workflowId :: Lens' ListExecutions Text
listExecutions_workflowId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListExecutions' {Text
workflowId :: Text
$sel:workflowId:ListExecutions' :: ListExecutions -> Text
workflowId} -> Text
workflowId) (\s :: ListExecutions
s@ListExecutions' {} Text
a -> ListExecutions
s {$sel:workflowId:ListExecutions' :: Text
workflowId = Text
a} :: ListExecutions)

instance Core.AWSPager ListExecutions where
  page :: ListExecutions
-> AWSResponse ListExecutions -> Maybe ListExecutions
page ListExecutions
rq AWSResponse ListExecutions
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse ListExecutions
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListExecutionsResponse (Maybe Text)
listExecutionsResponse_nextToken
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        (AWSResponse ListExecutions
rs forall s a. s -> Getting a s a -> a
Lens.^. Lens' ListExecutionsResponse [ListedExecution]
listExecutionsResponse_executions) =
        forall a. Maybe a
Prelude.Nothing
    | Bool
Prelude.otherwise =
        forall a. a -> Maybe a
Prelude.Just
          forall a b. (a -> b) -> a -> b
Prelude.$ ListExecutions
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' ListExecutions (Maybe Text)
listExecutions_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse ListExecutions
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListExecutionsResponse (Maybe Text)
listExecutionsResponse_nextToken
          forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just

instance Core.AWSRequest ListExecutions where
  type
    AWSResponse ListExecutions =
      ListExecutionsResponse
  request :: (Service -> Service) -> ListExecutions -> Request ListExecutions
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 ListExecutions
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse ListExecutions)))
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 Text
-> Int -> Text -> [ListedExecution] -> ListExecutionsResponse
ListExecutionsResponse'
            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
"NextToken")
            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
"WorkflowId")
            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
"Executions" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
      )

instance Prelude.Hashable ListExecutions where
  hashWithSalt :: Int -> ListExecutions -> Int
hashWithSalt Int
_salt ListExecutions' {Maybe Natural
Maybe Text
Text
workflowId :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
$sel:workflowId:ListExecutions' :: ListExecutions -> Text
$sel:nextToken:ListExecutions' :: ListExecutions -> Maybe Text
$sel:maxResults:ListExecutions' :: ListExecutions -> Maybe Natural
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
maxResults
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
workflowId

instance Prelude.NFData ListExecutions where
  rnf :: ListExecutions -> ()
rnf ListExecutions' {Maybe Natural
Maybe Text
Text
workflowId :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
$sel:workflowId:ListExecutions' :: ListExecutions -> Text
$sel:nextToken:ListExecutions' :: ListExecutions -> Maybe Text
$sel:maxResults:ListExecutions' :: ListExecutions -> Maybe Natural
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
maxResults
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
workflowId

instance Data.ToHeaders ListExecutions where
  toHeaders :: ListExecutions -> 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
"TransferService.ListExecutions" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON ListExecutions where
  toJSON :: ListExecutions -> Value
toJSON ListExecutions' {Maybe Natural
Maybe Text
Text
workflowId :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
$sel:workflowId:ListExecutions' :: ListExecutions -> Text
$sel:nextToken:ListExecutions' :: ListExecutions -> Maybe Text
$sel:maxResults:ListExecutions' :: ListExecutions -> Maybe Natural
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"MaxResults" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
maxResults,
            (Key
"NextToken" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
nextToken,
            forall a. a -> Maybe a
Prelude.Just (Key
"WorkflowId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
workflowId)
          ]
      )

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

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

-- | /See:/ 'newListExecutionsResponse' smart constructor.
data ListExecutionsResponse = ListExecutionsResponse'
  { -- | @ListExecutions@ returns the @NextToken@ parameter in the output. You
    -- can then pass the @NextToken@ parameter in a subsequent command to
    -- continue listing additional executions.
    ListExecutionsResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    ListExecutionsResponse -> Int
httpStatus :: Prelude.Int,
    -- | A unique identifier for the workflow.
    ListExecutionsResponse -> Text
workflowId :: Prelude.Text,
    -- | Returns the details for each execution.
    --
    -- -   __NextToken__: returned from a call to several APIs, you can use
    --     pass it to a subsequent command to continue listing additional
    --     executions.
    --
    -- -   __StartTime__: timestamp indicating when the execution began.
    --
    -- -   __Executions__: details of the execution, including the execution
    --     ID, initial file location, and Service metadata.
    --
    -- -   __Status__: one of the following values: @IN_PROGRESS@, @COMPLETED@,
    --     @EXCEPTION@, @HANDLING_EXEPTION@.
    ListExecutionsResponse -> [ListedExecution]
executions :: [ListedExecution]
  }
  deriving (ListExecutionsResponse -> ListExecutionsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListExecutionsResponse -> ListExecutionsResponse -> Bool
$c/= :: ListExecutionsResponse -> ListExecutionsResponse -> Bool
== :: ListExecutionsResponse -> ListExecutionsResponse -> Bool
$c== :: ListExecutionsResponse -> ListExecutionsResponse -> Bool
Prelude.Eq, ReadPrec [ListExecutionsResponse]
ReadPrec ListExecutionsResponse
Int -> ReadS ListExecutionsResponse
ReadS [ListExecutionsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListExecutionsResponse]
$creadListPrec :: ReadPrec [ListExecutionsResponse]
readPrec :: ReadPrec ListExecutionsResponse
$creadPrec :: ReadPrec ListExecutionsResponse
readList :: ReadS [ListExecutionsResponse]
$creadList :: ReadS [ListExecutionsResponse]
readsPrec :: Int -> ReadS ListExecutionsResponse
$creadsPrec :: Int -> ReadS ListExecutionsResponse
Prelude.Read, Int -> ListExecutionsResponse -> ShowS
[ListExecutionsResponse] -> ShowS
ListExecutionsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListExecutionsResponse] -> ShowS
$cshowList :: [ListExecutionsResponse] -> ShowS
show :: ListExecutionsResponse -> String
$cshow :: ListExecutionsResponse -> String
showsPrec :: Int -> ListExecutionsResponse -> ShowS
$cshowsPrec :: Int -> ListExecutionsResponse -> ShowS
Prelude.Show, forall x. Rep ListExecutionsResponse x -> ListExecutionsResponse
forall x. ListExecutionsResponse -> Rep ListExecutionsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ListExecutionsResponse x -> ListExecutionsResponse
$cfrom :: forall x. ListExecutionsResponse -> Rep ListExecutionsResponse x
Prelude.Generic)

-- |
-- Create a value of 'ListExecutionsResponse' 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:
--
-- 'nextToken', 'listExecutionsResponse_nextToken' - @ListExecutions@ returns the @NextToken@ parameter in the output. You
-- can then pass the @NextToken@ parameter in a subsequent command to
-- continue listing additional executions.
--
-- 'httpStatus', 'listExecutionsResponse_httpStatus' - The response's http status code.
--
-- 'workflowId', 'listExecutionsResponse_workflowId' - A unique identifier for the workflow.
--
-- 'executions', 'listExecutionsResponse_executions' - Returns the details for each execution.
--
-- -   __NextToken__: returned from a call to several APIs, you can use
--     pass it to a subsequent command to continue listing additional
--     executions.
--
-- -   __StartTime__: timestamp indicating when the execution began.
--
-- -   __Executions__: details of the execution, including the execution
--     ID, initial file location, and Service metadata.
--
-- -   __Status__: one of the following values: @IN_PROGRESS@, @COMPLETED@,
--     @EXCEPTION@, @HANDLING_EXEPTION@.
newListExecutionsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'workflowId'
  Prelude.Text ->
  ListExecutionsResponse
newListExecutionsResponse :: Int -> Text -> ListExecutionsResponse
newListExecutionsResponse Int
pHttpStatus_ Text
pWorkflowId_ =
  ListExecutionsResponse'
    { $sel:nextToken:ListExecutionsResponse' :: Maybe Text
nextToken =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ListExecutionsResponse' :: Int
httpStatus = Int
pHttpStatus_,
      $sel:workflowId:ListExecutionsResponse' :: Text
workflowId = Text
pWorkflowId_,
      $sel:executions:ListExecutionsResponse' :: [ListedExecution]
executions = forall a. Monoid a => a
Prelude.mempty
    }

-- | @ListExecutions@ returns the @NextToken@ parameter in the output. You
-- can then pass the @NextToken@ parameter in a subsequent command to
-- continue listing additional executions.
listExecutionsResponse_nextToken :: Lens.Lens' ListExecutionsResponse (Prelude.Maybe Prelude.Text)
listExecutionsResponse_nextToken :: Lens' ListExecutionsResponse (Maybe Text)
listExecutionsResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListExecutionsResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListExecutionsResponse' :: ListExecutionsResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListExecutionsResponse
s@ListExecutionsResponse' {} Maybe Text
a -> ListExecutionsResponse
s {$sel:nextToken:ListExecutionsResponse' :: Maybe Text
nextToken = Maybe Text
a} :: ListExecutionsResponse)

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

-- | A unique identifier for the workflow.
listExecutionsResponse_workflowId :: Lens.Lens' ListExecutionsResponse Prelude.Text
listExecutionsResponse_workflowId :: Lens' ListExecutionsResponse Text
listExecutionsResponse_workflowId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListExecutionsResponse' {Text
workflowId :: Text
$sel:workflowId:ListExecutionsResponse' :: ListExecutionsResponse -> Text
workflowId} -> Text
workflowId) (\s :: ListExecutionsResponse
s@ListExecutionsResponse' {} Text
a -> ListExecutionsResponse
s {$sel:workflowId:ListExecutionsResponse' :: Text
workflowId = Text
a} :: ListExecutionsResponse)

-- | Returns the details for each execution.
--
-- -   __NextToken__: returned from a call to several APIs, you can use
--     pass it to a subsequent command to continue listing additional
--     executions.
--
-- -   __StartTime__: timestamp indicating when the execution began.
--
-- -   __Executions__: details of the execution, including the execution
--     ID, initial file location, and Service metadata.
--
-- -   __Status__: one of the following values: @IN_PROGRESS@, @COMPLETED@,
--     @EXCEPTION@, @HANDLING_EXEPTION@.
listExecutionsResponse_executions :: Lens.Lens' ListExecutionsResponse [ListedExecution]
listExecutionsResponse_executions :: Lens' ListExecutionsResponse [ListedExecution]
listExecutionsResponse_executions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListExecutionsResponse' {[ListedExecution]
executions :: [ListedExecution]
$sel:executions:ListExecutionsResponse' :: ListExecutionsResponse -> [ListedExecution]
executions} -> [ListedExecution]
executions) (\s :: ListExecutionsResponse
s@ListExecutionsResponse' {} [ListedExecution]
a -> ListExecutionsResponse
s {$sel:executions:ListExecutionsResponse' :: [ListedExecution]
executions = [ListedExecution]
a} :: ListExecutionsResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

instance Prelude.NFData ListExecutionsResponse where
  rnf :: ListExecutionsResponse -> ()
rnf ListExecutionsResponse' {Int
[ListedExecution]
Maybe Text
Text
executions :: [ListedExecution]
workflowId :: Text
httpStatus :: Int
nextToken :: Maybe Text
$sel:executions:ListExecutionsResponse' :: ListExecutionsResponse -> [ListedExecution]
$sel:workflowId:ListExecutionsResponse' :: ListExecutionsResponse -> Text
$sel:httpStatus:ListExecutionsResponse' :: ListExecutionsResponse -> Int
$sel:nextToken:ListExecutionsResponse' :: ListExecutionsResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      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
workflowId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf [ListedExecution]
executions