packages feed

amazonka-sagemaker-2.0: gen/Amazonka/SageMaker/Types/FlowDefinitionSummary.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.SageMaker.Types.FlowDefinitionSummary
-- 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.SageMaker.Types.FlowDefinitionSummary 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 Amazonka.SageMaker.Types.FlowDefinitionStatus

-- | Contains summary information about the flow definition.
--
-- /See:/ 'newFlowDefinitionSummary' smart constructor.
data FlowDefinitionSummary = FlowDefinitionSummary'
  { -- | The reason why the flow definition creation failed. A failure reason is
    -- returned only when the flow definition status is @Failed@.
    failureReason :: Prelude.Maybe Prelude.Text,
    -- | The name of the flow definition.
    flowDefinitionName :: Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the flow definition.
    flowDefinitionArn :: Prelude.Text,
    -- | The status of the flow definition. Valid values:
    flowDefinitionStatus :: FlowDefinitionStatus,
    -- | The timestamp when SageMaker created the flow definition.
    creationTime :: Data.POSIX
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'FlowDefinitionSummary' 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:
--
-- 'failureReason', 'flowDefinitionSummary_failureReason' - The reason why the flow definition creation failed. A failure reason is
-- returned only when the flow definition status is @Failed@.
--
-- 'flowDefinitionName', 'flowDefinitionSummary_flowDefinitionName' - The name of the flow definition.
--
-- 'flowDefinitionArn', 'flowDefinitionSummary_flowDefinitionArn' - The Amazon Resource Name (ARN) of the flow definition.
--
-- 'flowDefinitionStatus', 'flowDefinitionSummary_flowDefinitionStatus' - The status of the flow definition. Valid values:
--
-- 'creationTime', 'flowDefinitionSummary_creationTime' - The timestamp when SageMaker created the flow definition.
newFlowDefinitionSummary ::
  -- | 'flowDefinitionName'
  Prelude.Text ->
  -- | 'flowDefinitionArn'
  Prelude.Text ->
  -- | 'flowDefinitionStatus'
  FlowDefinitionStatus ->
  -- | 'creationTime'
  Prelude.UTCTime ->
  FlowDefinitionSummary
newFlowDefinitionSummary
  pFlowDefinitionName_
  pFlowDefinitionArn_
  pFlowDefinitionStatus_
  pCreationTime_ =
    FlowDefinitionSummary'
      { failureReason =
          Prelude.Nothing,
        flowDefinitionName = pFlowDefinitionName_,
        flowDefinitionArn = pFlowDefinitionArn_,
        flowDefinitionStatus = pFlowDefinitionStatus_,
        creationTime = Data._Time Lens.# pCreationTime_
      }

-- | The reason why the flow definition creation failed. A failure reason is
-- returned only when the flow definition status is @Failed@.
flowDefinitionSummary_failureReason :: Lens.Lens' FlowDefinitionSummary (Prelude.Maybe Prelude.Text)
flowDefinitionSummary_failureReason = Lens.lens (\FlowDefinitionSummary' {failureReason} -> failureReason) (\s@FlowDefinitionSummary' {} a -> s {failureReason = a} :: FlowDefinitionSummary)

-- | The name of the flow definition.
flowDefinitionSummary_flowDefinitionName :: Lens.Lens' FlowDefinitionSummary Prelude.Text
flowDefinitionSummary_flowDefinitionName = Lens.lens (\FlowDefinitionSummary' {flowDefinitionName} -> flowDefinitionName) (\s@FlowDefinitionSummary' {} a -> s {flowDefinitionName = a} :: FlowDefinitionSummary)

-- | The Amazon Resource Name (ARN) of the flow definition.
flowDefinitionSummary_flowDefinitionArn :: Lens.Lens' FlowDefinitionSummary Prelude.Text
flowDefinitionSummary_flowDefinitionArn = Lens.lens (\FlowDefinitionSummary' {flowDefinitionArn} -> flowDefinitionArn) (\s@FlowDefinitionSummary' {} a -> s {flowDefinitionArn = a} :: FlowDefinitionSummary)

-- | The status of the flow definition. Valid values:
flowDefinitionSummary_flowDefinitionStatus :: Lens.Lens' FlowDefinitionSummary FlowDefinitionStatus
flowDefinitionSummary_flowDefinitionStatus = Lens.lens (\FlowDefinitionSummary' {flowDefinitionStatus} -> flowDefinitionStatus) (\s@FlowDefinitionSummary' {} a -> s {flowDefinitionStatus = a} :: FlowDefinitionSummary)

-- | The timestamp when SageMaker created the flow definition.
flowDefinitionSummary_creationTime :: Lens.Lens' FlowDefinitionSummary Prelude.UTCTime
flowDefinitionSummary_creationTime = Lens.lens (\FlowDefinitionSummary' {creationTime} -> creationTime) (\s@FlowDefinitionSummary' {} a -> s {creationTime = a} :: FlowDefinitionSummary) Prelude.. Data._Time

instance Data.FromJSON FlowDefinitionSummary where
  parseJSON =
    Data.withObject
      "FlowDefinitionSummary"
      ( \x ->
          FlowDefinitionSummary'
            Prelude.<$> (x Data..:? "FailureReason")
            Prelude.<*> (x Data..: "FlowDefinitionName")
            Prelude.<*> (x Data..: "FlowDefinitionArn")
            Prelude.<*> (x Data..: "FlowDefinitionStatus")
            Prelude.<*> (x Data..: "CreationTime")
      )

instance Prelude.Hashable FlowDefinitionSummary where
  hashWithSalt _salt FlowDefinitionSummary' {..} =
    _salt
      `Prelude.hashWithSalt` failureReason
      `Prelude.hashWithSalt` flowDefinitionName
      `Prelude.hashWithSalt` flowDefinitionArn
      `Prelude.hashWithSalt` flowDefinitionStatus
      `Prelude.hashWithSalt` creationTime

instance Prelude.NFData FlowDefinitionSummary where
  rnf FlowDefinitionSummary' {..} =
    Prelude.rnf failureReason
      `Prelude.seq` Prelude.rnf flowDefinitionName
      `Prelude.seq` Prelude.rnf flowDefinitionArn
      `Prelude.seq` Prelude.rnf flowDefinitionStatus
      `Prelude.seq` Prelude.rnf creationTime