{-# 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'
  { InferenceExecutionSummary -> Maybe S3Object
customerResultObject :: Prelude.Maybe S3Object,
    -- | Indicates the time reference in the dataset at which the inference
    -- execution stopped.
    InferenceExecutionSummary -> Maybe POSIX
dataEndTime :: Prelude.Maybe Data.POSIX,
    -- | Specifies configuration information for the input data for the inference
    -- scheduler, including delimiter, format, and dataset location.
    InferenceExecutionSummary -> Maybe InferenceInputConfiguration
dataInputConfiguration :: Prelude.Maybe InferenceInputConfiguration,
    -- | Specifies configuration information for the output results from for the
    -- inference execution, including the output Amazon S3 location.
    InferenceExecutionSummary -> Maybe InferenceOutputConfiguration
dataOutputConfiguration :: Prelude.Maybe InferenceOutputConfiguration,
    -- | Indicates the time reference in the dataset at which the inference
    -- execution began.
    InferenceExecutionSummary -> Maybe POSIX
dataStartTime :: Prelude.Maybe Data.POSIX,
    -- | Specifies the reason for failure when an inference execution has failed.
    InferenceExecutionSummary -> Maybe Text
failedReason :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the inference scheduler being used for
    -- the inference execution.
    InferenceExecutionSummary -> Maybe Text
inferenceSchedulerArn :: Prelude.Maybe Prelude.Text,
    -- | The name of the inference scheduler being used for the inference
    -- execution.
    InferenceExecutionSummary -> Maybe Text
inferenceSchedulerName :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the ML model used for the inference
    -- execution.
    InferenceExecutionSummary -> Maybe Text
modelArn :: Prelude.Maybe Prelude.Text,
    -- | The name of the ML model being used for the inference execution.
    InferenceExecutionSummary -> Maybe Text
modelName :: Prelude.Maybe Prelude.Text,
    -- | Indicates the start time at which the inference scheduler began the
    -- specific inference execution.
    InferenceExecutionSummary -> Maybe POSIX
scheduledStartTime :: Prelude.Maybe Data.POSIX,
    -- | Indicates the status of the inference execution.
    InferenceExecutionSummary -> Maybe InferenceExecutionStatus
status :: Prelude.Maybe InferenceExecutionStatus
  }
  deriving (InferenceExecutionSummary -> InferenceExecutionSummary -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: InferenceExecutionSummary -> InferenceExecutionSummary -> Bool
$c/= :: InferenceExecutionSummary -> InferenceExecutionSummary -> Bool
== :: InferenceExecutionSummary -> InferenceExecutionSummary -> Bool
$c== :: InferenceExecutionSummary -> InferenceExecutionSummary -> Bool
Prelude.Eq, ReadPrec [InferenceExecutionSummary]
ReadPrec InferenceExecutionSummary
Int -> ReadS InferenceExecutionSummary
ReadS [InferenceExecutionSummary]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [InferenceExecutionSummary]
$creadListPrec :: ReadPrec [InferenceExecutionSummary]
readPrec :: ReadPrec InferenceExecutionSummary
$creadPrec :: ReadPrec InferenceExecutionSummary
readList :: ReadS [InferenceExecutionSummary]
$creadList :: ReadS [InferenceExecutionSummary]
readsPrec :: Int -> ReadS InferenceExecutionSummary
$creadsPrec :: Int -> ReadS InferenceExecutionSummary
Prelude.Read, Int -> InferenceExecutionSummary -> ShowS
[InferenceExecutionSummary] -> ShowS
InferenceExecutionSummary -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [InferenceExecutionSummary] -> ShowS
$cshowList :: [InferenceExecutionSummary] -> ShowS
show :: InferenceExecutionSummary -> String
$cshow :: InferenceExecutionSummary -> String
showsPrec :: Int -> InferenceExecutionSummary -> ShowS
$cshowsPrec :: Int -> InferenceExecutionSummary -> ShowS
Prelude.Show, forall x.
Rep InferenceExecutionSummary x -> InferenceExecutionSummary
forall x.
InferenceExecutionSummary -> Rep InferenceExecutionSummary x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep InferenceExecutionSummary x -> InferenceExecutionSummary
$cfrom :: forall x.
InferenceExecutionSummary -> Rep InferenceExecutionSummary x
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
newInferenceExecutionSummary =
  InferenceExecutionSummary'
    { $sel:customerResultObject:InferenceExecutionSummary' :: Maybe S3Object
customerResultObject =
        forall a. Maybe a
Prelude.Nothing,
      $sel:dataEndTime:InferenceExecutionSummary' :: Maybe POSIX
dataEndTime = forall a. Maybe a
Prelude.Nothing,
      $sel:dataInputConfiguration:InferenceExecutionSummary' :: Maybe InferenceInputConfiguration
dataInputConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:dataOutputConfiguration:InferenceExecutionSummary' :: Maybe InferenceOutputConfiguration
dataOutputConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:dataStartTime:InferenceExecutionSummary' :: Maybe POSIX
dataStartTime = forall a. Maybe a
Prelude.Nothing,
      $sel:failedReason:InferenceExecutionSummary' :: Maybe Text
failedReason = forall a. Maybe a
Prelude.Nothing,
      $sel:inferenceSchedulerArn:InferenceExecutionSummary' :: Maybe Text
inferenceSchedulerArn = forall a. Maybe a
Prelude.Nothing,
      $sel:inferenceSchedulerName:InferenceExecutionSummary' :: Maybe Text
inferenceSchedulerName = forall a. Maybe a
Prelude.Nothing,
      $sel:modelArn:InferenceExecutionSummary' :: Maybe Text
modelArn = forall a. Maybe a
Prelude.Nothing,
      $sel:modelName:InferenceExecutionSummary' :: Maybe Text
modelName = forall a. Maybe a
Prelude.Nothing,
      $sel:scheduledStartTime:InferenceExecutionSummary' :: Maybe POSIX
scheduledStartTime = forall a. Maybe a
Prelude.Nothing,
      $sel:status:InferenceExecutionSummary' :: Maybe InferenceExecutionStatus
status = forall a. Maybe a
Prelude.Nothing
    }

inferenceExecutionSummary_customerResultObject :: Lens.Lens' InferenceExecutionSummary (Prelude.Maybe S3Object)
inferenceExecutionSummary_customerResultObject :: Lens' InferenceExecutionSummary (Maybe S3Object)
inferenceExecutionSummary_customerResultObject = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InferenceExecutionSummary' {Maybe S3Object
customerResultObject :: Maybe S3Object
$sel:customerResultObject:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe S3Object
customerResultObject} -> Maybe S3Object
customerResultObject) (\s :: InferenceExecutionSummary
s@InferenceExecutionSummary' {} Maybe S3Object
a -> InferenceExecutionSummary
s {$sel:customerResultObject:InferenceExecutionSummary' :: Maybe S3Object
customerResultObject = Maybe S3Object
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' InferenceExecutionSummary (Maybe UTCTime)
inferenceExecutionSummary_dataEndTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InferenceExecutionSummary' {Maybe POSIX
dataEndTime :: Maybe POSIX
$sel:dataEndTime:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe POSIX
dataEndTime} -> Maybe POSIX
dataEndTime) (\s :: InferenceExecutionSummary
s@InferenceExecutionSummary' {} Maybe POSIX
a -> InferenceExecutionSummary
s {$sel:dataEndTime:InferenceExecutionSummary' :: Maybe POSIX
dataEndTime = Maybe POSIX
a} :: InferenceExecutionSummary) 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

-- | 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' InferenceExecutionSummary (Maybe InferenceInputConfiguration)
inferenceExecutionSummary_dataInputConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InferenceExecutionSummary' {Maybe InferenceInputConfiguration
dataInputConfiguration :: Maybe InferenceInputConfiguration
$sel:dataInputConfiguration:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe InferenceInputConfiguration
dataInputConfiguration} -> Maybe InferenceInputConfiguration
dataInputConfiguration) (\s :: InferenceExecutionSummary
s@InferenceExecutionSummary' {} Maybe InferenceInputConfiguration
a -> InferenceExecutionSummary
s {$sel:dataInputConfiguration:InferenceExecutionSummary' :: Maybe InferenceInputConfiguration
dataInputConfiguration = Maybe InferenceInputConfiguration
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'
  InferenceExecutionSummary (Maybe InferenceOutputConfiguration)
inferenceExecutionSummary_dataOutputConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InferenceExecutionSummary' {Maybe InferenceOutputConfiguration
dataOutputConfiguration :: Maybe InferenceOutputConfiguration
$sel:dataOutputConfiguration:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe InferenceOutputConfiguration
dataOutputConfiguration} -> Maybe InferenceOutputConfiguration
dataOutputConfiguration) (\s :: InferenceExecutionSummary
s@InferenceExecutionSummary' {} Maybe InferenceOutputConfiguration
a -> InferenceExecutionSummary
s {$sel:dataOutputConfiguration:InferenceExecutionSummary' :: Maybe InferenceOutputConfiguration
dataOutputConfiguration = Maybe InferenceOutputConfiguration
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' InferenceExecutionSummary (Maybe UTCTime)
inferenceExecutionSummary_dataStartTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InferenceExecutionSummary' {Maybe POSIX
dataStartTime :: Maybe POSIX
$sel:dataStartTime:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe POSIX
dataStartTime} -> Maybe POSIX
dataStartTime) (\s :: InferenceExecutionSummary
s@InferenceExecutionSummary' {} Maybe POSIX
a -> InferenceExecutionSummary
s {$sel:dataStartTime:InferenceExecutionSummary' :: Maybe POSIX
dataStartTime = Maybe POSIX
a} :: InferenceExecutionSummary) 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

-- | Specifies the reason for failure when an inference execution has failed.
inferenceExecutionSummary_failedReason :: Lens.Lens' InferenceExecutionSummary (Prelude.Maybe Prelude.Text)
inferenceExecutionSummary_failedReason :: Lens' InferenceExecutionSummary (Maybe Text)
inferenceExecutionSummary_failedReason = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InferenceExecutionSummary' {Maybe Text
failedReason :: Maybe Text
$sel:failedReason:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe Text
failedReason} -> Maybe Text
failedReason) (\s :: InferenceExecutionSummary
s@InferenceExecutionSummary' {} Maybe Text
a -> InferenceExecutionSummary
s {$sel:failedReason:InferenceExecutionSummary' :: Maybe Text
failedReason = Maybe Text
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' InferenceExecutionSummary (Maybe Text)
inferenceExecutionSummary_inferenceSchedulerArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InferenceExecutionSummary' {Maybe Text
inferenceSchedulerArn :: Maybe Text
$sel:inferenceSchedulerArn:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe Text
inferenceSchedulerArn} -> Maybe Text
inferenceSchedulerArn) (\s :: InferenceExecutionSummary
s@InferenceExecutionSummary' {} Maybe Text
a -> InferenceExecutionSummary
s {$sel:inferenceSchedulerArn:InferenceExecutionSummary' :: Maybe Text
inferenceSchedulerArn = Maybe Text
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' InferenceExecutionSummary (Maybe Text)
inferenceExecutionSummary_inferenceSchedulerName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InferenceExecutionSummary' {Maybe Text
inferenceSchedulerName :: Maybe Text
$sel:inferenceSchedulerName:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe Text
inferenceSchedulerName} -> Maybe Text
inferenceSchedulerName) (\s :: InferenceExecutionSummary
s@InferenceExecutionSummary' {} Maybe Text
a -> InferenceExecutionSummary
s {$sel:inferenceSchedulerName:InferenceExecutionSummary' :: Maybe Text
inferenceSchedulerName = Maybe Text
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' InferenceExecutionSummary (Maybe Text)
inferenceExecutionSummary_modelArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InferenceExecutionSummary' {Maybe Text
modelArn :: Maybe Text
$sel:modelArn:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe Text
modelArn} -> Maybe Text
modelArn) (\s :: InferenceExecutionSummary
s@InferenceExecutionSummary' {} Maybe Text
a -> InferenceExecutionSummary
s {$sel:modelArn:InferenceExecutionSummary' :: Maybe Text
modelArn = Maybe Text
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' InferenceExecutionSummary (Maybe Text)
inferenceExecutionSummary_modelName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InferenceExecutionSummary' {Maybe Text
modelName :: Maybe Text
$sel:modelName:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe Text
modelName} -> Maybe Text
modelName) (\s :: InferenceExecutionSummary
s@InferenceExecutionSummary' {} Maybe Text
a -> InferenceExecutionSummary
s {$sel:modelName:InferenceExecutionSummary' :: Maybe Text
modelName = Maybe Text
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' InferenceExecutionSummary (Maybe UTCTime)
inferenceExecutionSummary_scheduledStartTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InferenceExecutionSummary' {Maybe POSIX
scheduledStartTime :: Maybe POSIX
$sel:scheduledStartTime:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe POSIX
scheduledStartTime} -> Maybe POSIX
scheduledStartTime) (\s :: InferenceExecutionSummary
s@InferenceExecutionSummary' {} Maybe POSIX
a -> InferenceExecutionSummary
s {$sel:scheduledStartTime:InferenceExecutionSummary' :: Maybe POSIX
scheduledStartTime = Maybe POSIX
a} :: InferenceExecutionSummary) 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

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

instance Data.FromJSON InferenceExecutionSummary where
  parseJSON :: Value -> Parser InferenceExecutionSummary
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"InferenceExecutionSummary"
      ( \Object
x ->
          Maybe S3Object
-> Maybe POSIX
-> Maybe InferenceInputConfiguration
-> Maybe InferenceOutputConfiguration
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Maybe InferenceExecutionStatus
-> InferenceExecutionSummary
InferenceExecutionSummary'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CustomerResultObject")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"DataEndTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"DataInputConfiguration")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"DataOutputConfiguration")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"DataStartTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"FailedReason")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"InferenceSchedulerArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"InferenceSchedulerName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ModelArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ModelName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ScheduledStartTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Status")
      )

instance Prelude.Hashable InferenceExecutionSummary where
  hashWithSalt :: Int -> InferenceExecutionSummary -> Int
hashWithSalt Int
_salt InferenceExecutionSummary' {Maybe Text
Maybe POSIX
Maybe InferenceExecutionStatus
Maybe InferenceInputConfiguration
Maybe InferenceOutputConfiguration
Maybe S3Object
status :: Maybe InferenceExecutionStatus
scheduledStartTime :: Maybe POSIX
modelName :: Maybe Text
modelArn :: Maybe Text
inferenceSchedulerName :: Maybe Text
inferenceSchedulerArn :: Maybe Text
failedReason :: Maybe Text
dataStartTime :: Maybe POSIX
dataOutputConfiguration :: Maybe InferenceOutputConfiguration
dataInputConfiguration :: Maybe InferenceInputConfiguration
dataEndTime :: Maybe POSIX
customerResultObject :: Maybe S3Object
$sel:status:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe InferenceExecutionStatus
$sel:scheduledStartTime:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe POSIX
$sel:modelName:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe Text
$sel:modelArn:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe Text
$sel:inferenceSchedulerName:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe Text
$sel:inferenceSchedulerArn:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe Text
$sel:failedReason:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe Text
$sel:dataStartTime:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe POSIX
$sel:dataOutputConfiguration:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe InferenceOutputConfiguration
$sel:dataInputConfiguration:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe InferenceInputConfiguration
$sel:dataEndTime:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe POSIX
$sel:customerResultObject:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe S3Object
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe S3Object
customerResultObject
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
dataEndTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe InferenceInputConfiguration
dataInputConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe InferenceOutputConfiguration
dataOutputConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
dataStartTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
failedReason
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
inferenceSchedulerArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
inferenceSchedulerName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
modelArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
modelName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
scheduledStartTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe InferenceExecutionStatus
status

instance Prelude.NFData InferenceExecutionSummary where
  rnf :: InferenceExecutionSummary -> ()
rnf InferenceExecutionSummary' {Maybe Text
Maybe POSIX
Maybe InferenceExecutionStatus
Maybe InferenceInputConfiguration
Maybe InferenceOutputConfiguration
Maybe S3Object
status :: Maybe InferenceExecutionStatus
scheduledStartTime :: Maybe POSIX
modelName :: Maybe Text
modelArn :: Maybe Text
inferenceSchedulerName :: Maybe Text
inferenceSchedulerArn :: Maybe Text
failedReason :: Maybe Text
dataStartTime :: Maybe POSIX
dataOutputConfiguration :: Maybe InferenceOutputConfiguration
dataInputConfiguration :: Maybe InferenceInputConfiguration
dataEndTime :: Maybe POSIX
customerResultObject :: Maybe S3Object
$sel:status:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe InferenceExecutionStatus
$sel:scheduledStartTime:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe POSIX
$sel:modelName:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe Text
$sel:modelArn:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe Text
$sel:inferenceSchedulerName:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe Text
$sel:inferenceSchedulerArn:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe Text
$sel:failedReason:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe Text
$sel:dataStartTime:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe POSIX
$sel:dataOutputConfiguration:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe InferenceOutputConfiguration
$sel:dataInputConfiguration:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe InferenceInputConfiguration
$sel:dataEndTime:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe POSIX
$sel:customerResultObject:InferenceExecutionSummary' :: InferenceExecutionSummary -> Maybe S3Object
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe S3Object
customerResultObject
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
dataEndTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe InferenceInputConfiguration
dataInputConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe InferenceOutputConfiguration
dataOutputConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
dataStartTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
failedReason
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
inferenceSchedulerArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
inferenceSchedulerName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
modelArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
modelName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
scheduledStartTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe InferenceExecutionStatus
status