packages feed

amazonka-stepfunctions-2.0: gen/Amazonka/StepFunctions/Types/MapRunItemCounts.hs

{-# 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.StepFunctions.Types.MapRunItemCounts
-- 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.StepFunctions.Types.MapRunItemCounts 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

-- | Contains details about items that were processed in all of the child
-- workflow executions that were started by a Map Run.
--
-- /See:/ 'newMapRunItemCounts' smart constructor.
data MapRunItemCounts = MapRunItemCounts'
  { -- | The total number of items to process in child workflow executions that
    -- haven\'t started running yet.
    pending :: Prelude.Natural,
    -- | The total number of items being processed in child workflow executions
    -- that are currently in-progress.
    running :: Prelude.Natural,
    -- | The total number of items processed in child workflow executions that
    -- have completed successfully.
    succeeded :: Prelude.Natural,
    -- | The total number of items processed in child workflow executions that
    -- have failed.
    failed :: Prelude.Natural,
    -- | The total number of items processed in child workflow executions that
    -- have timed out.
    timedOut :: Prelude.Natural,
    -- | The total number of items processed in child workflow executions that
    -- were either stopped by the user or by Step Functions, because the Map
    -- Run failed.
    aborted :: Prelude.Natural,
    -- | The total number of items processed in all the child workflow executions
    -- started by a Map Run.
    total :: Prelude.Natural,
    -- | Returns the count of items whose results were written by @ResultWriter@.
    -- For more information, see
    -- <https://docs.aws.amazon.com/step-functions/latest/dg/input-output-resultwriter.html ResultWriter>
    -- in the /Step Functions Developer Guide/.
    resultsWritten :: Prelude.Natural
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'MapRunItemCounts' 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:
--
-- 'pending', 'mapRunItemCounts_pending' - The total number of items to process in child workflow executions that
-- haven\'t started running yet.
--
-- 'running', 'mapRunItemCounts_running' - The total number of items being processed in child workflow executions
-- that are currently in-progress.
--
-- 'succeeded', 'mapRunItemCounts_succeeded' - The total number of items processed in child workflow executions that
-- have completed successfully.
--
-- 'failed', 'mapRunItemCounts_failed' - The total number of items processed in child workflow executions that
-- have failed.
--
-- 'timedOut', 'mapRunItemCounts_timedOut' - The total number of items processed in child workflow executions that
-- have timed out.
--
-- 'aborted', 'mapRunItemCounts_aborted' - The total number of items processed in child workflow executions that
-- were either stopped by the user or by Step Functions, because the Map
-- Run failed.
--
-- 'total', 'mapRunItemCounts_total' - The total number of items processed in all the child workflow executions
-- started by a Map Run.
--
-- 'resultsWritten', 'mapRunItemCounts_resultsWritten' - Returns the count of items whose results were written by @ResultWriter@.
-- For more information, see
-- <https://docs.aws.amazon.com/step-functions/latest/dg/input-output-resultwriter.html ResultWriter>
-- in the /Step Functions Developer Guide/.
newMapRunItemCounts ::
  -- | 'pending'
  Prelude.Natural ->
  -- | 'running'
  Prelude.Natural ->
  -- | 'succeeded'
  Prelude.Natural ->
  -- | 'failed'
  Prelude.Natural ->
  -- | 'timedOut'
  Prelude.Natural ->
  -- | 'aborted'
  Prelude.Natural ->
  -- | 'total'
  Prelude.Natural ->
  -- | 'resultsWritten'
  Prelude.Natural ->
  MapRunItemCounts
newMapRunItemCounts
  pPending_
  pRunning_
  pSucceeded_
  pFailed_
  pTimedOut_
  pAborted_
  pTotal_
  pResultsWritten_ =
    MapRunItemCounts'
      { pending = pPending_,
        running = pRunning_,
        succeeded = pSucceeded_,
        failed = pFailed_,
        timedOut = pTimedOut_,
        aborted = pAborted_,
        total = pTotal_,
        resultsWritten = pResultsWritten_
      }

-- | The total number of items to process in child workflow executions that
-- haven\'t started running yet.
mapRunItemCounts_pending :: Lens.Lens' MapRunItemCounts Prelude.Natural
mapRunItemCounts_pending = Lens.lens (\MapRunItemCounts' {pending} -> pending) (\s@MapRunItemCounts' {} a -> s {pending = a} :: MapRunItemCounts)

-- | The total number of items being processed in child workflow executions
-- that are currently in-progress.
mapRunItemCounts_running :: Lens.Lens' MapRunItemCounts Prelude.Natural
mapRunItemCounts_running = Lens.lens (\MapRunItemCounts' {running} -> running) (\s@MapRunItemCounts' {} a -> s {running = a} :: MapRunItemCounts)

-- | The total number of items processed in child workflow executions that
-- have completed successfully.
mapRunItemCounts_succeeded :: Lens.Lens' MapRunItemCounts Prelude.Natural
mapRunItemCounts_succeeded = Lens.lens (\MapRunItemCounts' {succeeded} -> succeeded) (\s@MapRunItemCounts' {} a -> s {succeeded = a} :: MapRunItemCounts)

-- | The total number of items processed in child workflow executions that
-- have failed.
mapRunItemCounts_failed :: Lens.Lens' MapRunItemCounts Prelude.Natural
mapRunItemCounts_failed = Lens.lens (\MapRunItemCounts' {failed} -> failed) (\s@MapRunItemCounts' {} a -> s {failed = a} :: MapRunItemCounts)

-- | The total number of items processed in child workflow executions that
-- have timed out.
mapRunItemCounts_timedOut :: Lens.Lens' MapRunItemCounts Prelude.Natural
mapRunItemCounts_timedOut = Lens.lens (\MapRunItemCounts' {timedOut} -> timedOut) (\s@MapRunItemCounts' {} a -> s {timedOut = a} :: MapRunItemCounts)

-- | The total number of items processed in child workflow executions that
-- were either stopped by the user or by Step Functions, because the Map
-- Run failed.
mapRunItemCounts_aborted :: Lens.Lens' MapRunItemCounts Prelude.Natural
mapRunItemCounts_aborted = Lens.lens (\MapRunItemCounts' {aborted} -> aborted) (\s@MapRunItemCounts' {} a -> s {aborted = a} :: MapRunItemCounts)

-- | The total number of items processed in all the child workflow executions
-- started by a Map Run.
mapRunItemCounts_total :: Lens.Lens' MapRunItemCounts Prelude.Natural
mapRunItemCounts_total = Lens.lens (\MapRunItemCounts' {total} -> total) (\s@MapRunItemCounts' {} a -> s {total = a} :: MapRunItemCounts)

-- | Returns the count of items whose results were written by @ResultWriter@.
-- For more information, see
-- <https://docs.aws.amazon.com/step-functions/latest/dg/input-output-resultwriter.html ResultWriter>
-- in the /Step Functions Developer Guide/.
mapRunItemCounts_resultsWritten :: Lens.Lens' MapRunItemCounts Prelude.Natural
mapRunItemCounts_resultsWritten = Lens.lens (\MapRunItemCounts' {resultsWritten} -> resultsWritten) (\s@MapRunItemCounts' {} a -> s {resultsWritten = a} :: MapRunItemCounts)

instance Data.FromJSON MapRunItemCounts where
  parseJSON =
    Data.withObject
      "MapRunItemCounts"
      ( \x ->
          MapRunItemCounts'
            Prelude.<$> (x Data..: "pending")
            Prelude.<*> (x Data..: "running")
            Prelude.<*> (x Data..: "succeeded")
            Prelude.<*> (x Data..: "failed")
            Prelude.<*> (x Data..: "timedOut")
            Prelude.<*> (x Data..: "aborted")
            Prelude.<*> (x Data..: "total")
            Prelude.<*> (x Data..: "resultsWritten")
      )

instance Prelude.Hashable MapRunItemCounts where
  hashWithSalt _salt MapRunItemCounts' {..} =
    _salt
      `Prelude.hashWithSalt` pending
      `Prelude.hashWithSalt` running
      `Prelude.hashWithSalt` succeeded
      `Prelude.hashWithSalt` failed
      `Prelude.hashWithSalt` timedOut
      `Prelude.hashWithSalt` aborted
      `Prelude.hashWithSalt` total
      `Prelude.hashWithSalt` resultsWritten

instance Prelude.NFData MapRunItemCounts where
  rnf MapRunItemCounts' {..} =
    Prelude.rnf pending
      `Prelude.seq` Prelude.rnf running
      `Prelude.seq` Prelude.rnf succeeded
      `Prelude.seq` Prelude.rnf failed
      `Prelude.seq` Prelude.rnf timedOut
      `Prelude.seq` Prelude.rnf aborted
      `Prelude.seq` Prelude.rnf total
      `Prelude.seq` Prelude.rnf resultsWritten