packages feed

amazonka-lookoutequipment-2.0: gen/Amazonka/LookoutEquipment/Types/InferenceExecutionSummary.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.LookoutEquipment.Types.InferenceExecutionSummary
-- 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.LookoutEquipment.Types.InferenceExecutionSummary where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.LookoutEquipment.Types.InferenceExecutionStatus
import Amazonka.LookoutEquipment.Types.InferenceInputConfiguration
import Amazonka.LookoutEquipment.Types.InferenceOutputConfiguration
import Amazonka.LookoutEquipment.Types.S3Object
import qualified Amazonka.Prelude as Prelude

-- | Contains information about the specific inference execution, including
-- input and output data configuration, inference scheduling information,
-- status, and so on.
--
-- /See:/ 'newInferenceExecutionSummary' smart constructor.
data InferenceExecutionSummary = InferenceExecutionSummary'
  { customerResultObject :: Prelude.Maybe S3Object,
    -- | Indicates the time reference in the dataset at which the inference
    -- execution stopped.
    dataEndTime :: Prelude.Maybe Data.POSIX,
    -- | Specifies configuration information for the input data for the inference
    -- scheduler, including delimiter, format, and dataset location.
    dataInputConfiguration :: Prelude.Maybe InferenceInputConfiguration,
    -- | Specifies configuration information for the output results from for the
    -- inference execution, including the output Amazon S3 location.
    dataOutputConfiguration :: Prelude.Maybe InferenceOutputConfiguration,
    -- | Indicates the time reference in the dataset at which the inference
    -- execution began.
    dataStartTime :: Prelude.Maybe Data.POSIX,
    -- | Specifies the reason for failure when an inference execution has failed.
    failedReason :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the inference scheduler being used for
    -- the inference execution.
    inferenceSchedulerArn :: Prelude.Maybe Prelude.Text,
    -- | The name of the inference scheduler being used for the inference
    -- execution.
    inferenceSchedulerName :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the ML model used for the inference
    -- execution.
    modelArn :: Prelude.Maybe Prelude.Text,
    -- | The name of the ML model being used for the inference execution.
    modelName :: Prelude.Maybe Prelude.Text,
    -- | Indicates the start time at which the inference scheduler began the
    -- specific inference execution.
    scheduledStartTime :: Prelude.Maybe Data.POSIX,
    -- | Indicates the status of the inference execution.
    status :: Prelude.Maybe InferenceExecutionStatus
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'InferenceExecutionSummary' 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:
--
-- 'customerResultObject', 'inferenceExecutionSummary_customerResultObject' -
--
-- 'dataEndTime', 'inferenceExecutionSummary_dataEndTime' - Indicates the time reference in the dataset at which the inference
-- execution stopped.
--
-- 'dataInputConfiguration', 'inferenceExecutionSummary_dataInputConfiguration' - Specifies configuration information for the input data for the inference
-- scheduler, including delimiter, format, and dataset location.
--
-- 'dataOutputConfiguration', 'inferenceExecutionSummary_dataOutputConfiguration' - Specifies configuration information for the output results from for the
-- inference execution, including the output Amazon S3 location.
--
-- 'dataStartTime', 'inferenceExecutionSummary_dataStartTime' - Indicates the time reference in the dataset at which the inference
-- execution began.
--
-- 'failedReason', 'inferenceExecutionSummary_failedReason' - Specifies the reason for failure when an inference execution has failed.
--
-- 'inferenceSchedulerArn', 'inferenceExecutionSummary_inferenceSchedulerArn' - The Amazon Resource Name (ARN) of the inference scheduler being used for
-- the inference execution.
--
-- 'inferenceSchedulerName', 'inferenceExecutionSummary_inferenceSchedulerName' - The name of the inference scheduler being used for the inference
-- execution.
--
-- 'modelArn', 'inferenceExecutionSummary_modelArn' - The Amazon Resource Name (ARN) of the ML model used for the inference
-- execution.
--
-- 'modelName', 'inferenceExecutionSummary_modelName' - The name of the ML model being used for the inference execution.
--
-- 'scheduledStartTime', 'inferenceExecutionSummary_scheduledStartTime' - Indicates the start time at which the inference scheduler began the
-- specific inference execution.
--
-- 'status', 'inferenceExecutionSummary_status' - Indicates the status of the inference execution.
newInferenceExecutionSummary ::
  InferenceExecutionSummary
newInferenceExecutionSummary =
  InferenceExecutionSummary'
    { customerResultObject =
        Prelude.Nothing,
      dataEndTime = Prelude.Nothing,
      dataInputConfiguration = Prelude.Nothing,
      dataOutputConfiguration = Prelude.Nothing,
      dataStartTime = Prelude.Nothing,
      failedReason = Prelude.Nothing,
      inferenceSchedulerArn = Prelude.Nothing,
      inferenceSchedulerName = Prelude.Nothing,
      modelArn = Prelude.Nothing,
      modelName = Prelude.Nothing,
      scheduledStartTime = Prelude.Nothing,
      status = Prelude.Nothing
    }

inferenceExecutionSummary_customerResultObject :: Lens.Lens' InferenceExecutionSummary (Prelude.Maybe S3Object)
inferenceExecutionSummary_customerResultObject = Lens.lens (\InferenceExecutionSummary' {customerResultObject} -> customerResultObject) (\s@InferenceExecutionSummary' {} a -> s {customerResultObject = a} :: InferenceExecutionSummary)

-- | Indicates the time reference in the dataset at which the inference
-- execution stopped.
inferenceExecutionSummary_dataEndTime :: Lens.Lens' InferenceExecutionSummary (Prelude.Maybe Prelude.UTCTime)
inferenceExecutionSummary_dataEndTime = Lens.lens (\InferenceExecutionSummary' {dataEndTime} -> dataEndTime) (\s@InferenceExecutionSummary' {} a -> s {dataEndTime = a} :: InferenceExecutionSummary) Prelude.. Lens.mapping Data._Time

-- | Specifies configuration information for the input data for the inference
-- scheduler, including delimiter, format, and dataset location.
inferenceExecutionSummary_dataInputConfiguration :: Lens.Lens' InferenceExecutionSummary (Prelude.Maybe InferenceInputConfiguration)
inferenceExecutionSummary_dataInputConfiguration = Lens.lens (\InferenceExecutionSummary' {dataInputConfiguration} -> dataInputConfiguration) (\s@InferenceExecutionSummary' {} a -> s {dataInputConfiguration = a} :: InferenceExecutionSummary)

-- | Specifies configuration information for the output results from for the
-- inference execution, including the output Amazon S3 location.
inferenceExecutionSummary_dataOutputConfiguration :: Lens.Lens' InferenceExecutionSummary (Prelude.Maybe InferenceOutputConfiguration)
inferenceExecutionSummary_dataOutputConfiguration = Lens.lens (\InferenceExecutionSummary' {dataOutputConfiguration} -> dataOutputConfiguration) (\s@InferenceExecutionSummary' {} a -> s {dataOutputConfiguration = a} :: InferenceExecutionSummary)

-- | Indicates the time reference in the dataset at which the inference
-- execution began.
inferenceExecutionSummary_dataStartTime :: Lens.Lens' InferenceExecutionSummary (Prelude.Maybe Prelude.UTCTime)
inferenceExecutionSummary_dataStartTime = Lens.lens (\InferenceExecutionSummary' {dataStartTime} -> dataStartTime) (\s@InferenceExecutionSummary' {} a -> s {dataStartTime = a} :: InferenceExecutionSummary) Prelude.. Lens.mapping Data._Time

-- | Specifies the reason for failure when an inference execution has failed.
inferenceExecutionSummary_failedReason :: Lens.Lens' InferenceExecutionSummary (Prelude.Maybe Prelude.Text)
inferenceExecutionSummary_failedReason = Lens.lens (\InferenceExecutionSummary' {failedReason} -> failedReason) (\s@InferenceExecutionSummary' {} a -> s {failedReason = a} :: InferenceExecutionSummary)

-- | The Amazon Resource Name (ARN) of the inference scheduler being used for
-- the inference execution.
inferenceExecutionSummary_inferenceSchedulerArn :: Lens.Lens' InferenceExecutionSummary (Prelude.Maybe Prelude.Text)
inferenceExecutionSummary_inferenceSchedulerArn = Lens.lens (\InferenceExecutionSummary' {inferenceSchedulerArn} -> inferenceSchedulerArn) (\s@InferenceExecutionSummary' {} a -> s {inferenceSchedulerArn = a} :: InferenceExecutionSummary)

-- | The name of the inference scheduler being used for the inference
-- execution.
inferenceExecutionSummary_inferenceSchedulerName :: Lens.Lens' InferenceExecutionSummary (Prelude.Maybe Prelude.Text)
inferenceExecutionSummary_inferenceSchedulerName = Lens.lens (\InferenceExecutionSummary' {inferenceSchedulerName} -> inferenceSchedulerName) (\s@InferenceExecutionSummary' {} a -> s {inferenceSchedulerName = a} :: InferenceExecutionSummary)

-- | The Amazon Resource Name (ARN) of the ML model used for the inference
-- execution.
inferenceExecutionSummary_modelArn :: Lens.Lens' InferenceExecutionSummary (Prelude.Maybe Prelude.Text)
inferenceExecutionSummary_modelArn = Lens.lens (\InferenceExecutionSummary' {modelArn} -> modelArn) (\s@InferenceExecutionSummary' {} a -> s {modelArn = a} :: InferenceExecutionSummary)

-- | The name of the ML model being used for the inference execution.
inferenceExecutionSummary_modelName :: Lens.Lens' InferenceExecutionSummary (Prelude.Maybe Prelude.Text)
inferenceExecutionSummary_modelName = Lens.lens (\InferenceExecutionSummary' {modelName} -> modelName) (\s@InferenceExecutionSummary' {} a -> s {modelName = a} :: InferenceExecutionSummary)

-- | Indicates the start time at which the inference scheduler began the
-- specific inference execution.
inferenceExecutionSummary_scheduledStartTime :: Lens.Lens' InferenceExecutionSummary (Prelude.Maybe Prelude.UTCTime)
inferenceExecutionSummary_scheduledStartTime = Lens.lens (\InferenceExecutionSummary' {scheduledStartTime} -> scheduledStartTime) (\s@InferenceExecutionSummary' {} a -> s {scheduledStartTime = a} :: InferenceExecutionSummary) Prelude.. Lens.mapping Data._Time

-- | Indicates the status of the inference execution.
inferenceExecutionSummary_status :: Lens.Lens' InferenceExecutionSummary (Prelude.Maybe InferenceExecutionStatus)
inferenceExecutionSummary_status = Lens.lens (\InferenceExecutionSummary' {status} -> status) (\s@InferenceExecutionSummary' {} a -> s {status = a} :: InferenceExecutionSummary)

instance Data.FromJSON InferenceExecutionSummary where
  parseJSON =
    Data.withObject
      "InferenceExecutionSummary"
      ( \x ->
          InferenceExecutionSummary'
            Prelude.<$> (x Data..:? "CustomerResultObject")
            Prelude.<*> (x Data..:? "DataEndTime")
            Prelude.<*> (x Data..:? "DataInputConfiguration")
            Prelude.<*> (x Data..:? "DataOutputConfiguration")
            Prelude.<*> (x Data..:? "DataStartTime")
            Prelude.<*> (x Data..:? "FailedReason")
            Prelude.<*> (x Data..:? "InferenceSchedulerArn")
            Prelude.<*> (x Data..:? "InferenceSchedulerName")
            Prelude.<*> (x Data..:? "ModelArn")
            Prelude.<*> (x Data..:? "ModelName")
            Prelude.<*> (x Data..:? "ScheduledStartTime")
            Prelude.<*> (x Data..:? "Status")
      )

instance Prelude.Hashable InferenceExecutionSummary where
  hashWithSalt _salt InferenceExecutionSummary' {..} =
    _salt
      `Prelude.hashWithSalt` customerResultObject
      `Prelude.hashWithSalt` dataEndTime
      `Prelude.hashWithSalt` dataInputConfiguration
      `Prelude.hashWithSalt` dataOutputConfiguration
      `Prelude.hashWithSalt` dataStartTime
      `Prelude.hashWithSalt` failedReason
      `Prelude.hashWithSalt` inferenceSchedulerArn
      `Prelude.hashWithSalt` inferenceSchedulerName
      `Prelude.hashWithSalt` modelArn
      `Prelude.hashWithSalt` modelName
      `Prelude.hashWithSalt` scheduledStartTime
      `Prelude.hashWithSalt` status

instance Prelude.NFData InferenceExecutionSummary where
  rnf InferenceExecutionSummary' {..} =
    Prelude.rnf customerResultObject
      `Prelude.seq` Prelude.rnf dataEndTime
      `Prelude.seq` Prelude.rnf dataInputConfiguration
      `Prelude.seq` Prelude.rnf dataOutputConfiguration
      `Prelude.seq` Prelude.rnf dataStartTime
      `Prelude.seq` Prelude.rnf failedReason
      `Prelude.seq` Prelude.rnf inferenceSchedulerArn
      `Prelude.seq` Prelude.rnf inferenceSchedulerName
      `Prelude.seq` Prelude.rnf modelArn
      `Prelude.seq` Prelude.rnf modelName
      `Prelude.seq` Prelude.rnf scheduledStartTime
      `Prelude.seq` Prelude.rnf status