{-# 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.FraudDetector.Types.ModelVersionDetail
-- 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.FraudDetector.Types.ModelVersionDetail where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.FraudDetector.Types.ExternalEventsDetail
import Amazonka.FraudDetector.Types.IngestedEventsDetail
import Amazonka.FraudDetector.Types.ModelTypeEnum
import Amazonka.FraudDetector.Types.TrainingDataSchema
import Amazonka.FraudDetector.Types.TrainingDataSourceEnum
import Amazonka.FraudDetector.Types.TrainingResult
import Amazonka.FraudDetector.Types.TrainingResultV2
import qualified Amazonka.Prelude as Prelude

-- | The details of the model version.
--
-- /See:/ 'newModelVersionDetail' smart constructor.
data ModelVersionDetail = ModelVersionDetail'
  { -- | The model version ARN.
    ModelVersionDetail -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | The timestamp when the model was created.
    ModelVersionDetail -> Maybe Text
createdTime :: Prelude.Maybe Prelude.Text,
    -- | The external events data details. This will be populated if the
    -- @trainingDataSource@ for the model version is specified as
    -- @EXTERNAL_EVENTS@.
    ModelVersionDetail -> Maybe ExternalEventsDetail
externalEventsDetail :: Prelude.Maybe ExternalEventsDetail,
    -- | The ingested events data details. This will be populated if the
    -- @trainingDataSource@ for the model version is specified as
    -- @INGESTED_EVENTS@.
    ModelVersionDetail -> Maybe IngestedEventsDetail
ingestedEventsDetail :: Prelude.Maybe IngestedEventsDetail,
    -- | The timestamp when the model was last updated.
    ModelVersionDetail -> Maybe Text
lastUpdatedTime :: Prelude.Maybe Prelude.Text,
    -- | The model ID.
    ModelVersionDetail -> Maybe Text
modelId :: Prelude.Maybe Prelude.Text,
    -- | The model type.
    ModelVersionDetail -> Maybe ModelTypeEnum
modelType :: Prelude.Maybe ModelTypeEnum,
    -- | The model version number.
    ModelVersionDetail -> Maybe Text
modelVersionNumber :: Prelude.Maybe Prelude.Text,
    -- | The status of the model version.
    ModelVersionDetail -> Maybe Text
status :: Prelude.Maybe Prelude.Text,
    -- | The training data schema.
    ModelVersionDetail -> Maybe TrainingDataSchema
trainingDataSchema :: Prelude.Maybe TrainingDataSchema,
    -- | The model version training data source.
    ModelVersionDetail -> Maybe TrainingDataSourceEnum
trainingDataSource :: Prelude.Maybe TrainingDataSourceEnum,
    -- | The training results.
    ModelVersionDetail -> Maybe TrainingResult
trainingResult :: Prelude.Maybe TrainingResult,
    -- | The training result details. The details include the relative importance
    -- of the variables.
    ModelVersionDetail -> Maybe TrainingResultV2
trainingResultV2 :: Prelude.Maybe TrainingResultV2
  }
  deriving (ModelVersionDetail -> ModelVersionDetail -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ModelVersionDetail -> ModelVersionDetail -> Bool
$c/= :: ModelVersionDetail -> ModelVersionDetail -> Bool
== :: ModelVersionDetail -> ModelVersionDetail -> Bool
$c== :: ModelVersionDetail -> ModelVersionDetail -> Bool
Prelude.Eq, ReadPrec [ModelVersionDetail]
ReadPrec ModelVersionDetail
Int -> ReadS ModelVersionDetail
ReadS [ModelVersionDetail]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ModelVersionDetail]
$creadListPrec :: ReadPrec [ModelVersionDetail]
readPrec :: ReadPrec ModelVersionDetail
$creadPrec :: ReadPrec ModelVersionDetail
readList :: ReadS [ModelVersionDetail]
$creadList :: ReadS [ModelVersionDetail]
readsPrec :: Int -> ReadS ModelVersionDetail
$creadsPrec :: Int -> ReadS ModelVersionDetail
Prelude.Read, Int -> ModelVersionDetail -> ShowS
[ModelVersionDetail] -> ShowS
ModelVersionDetail -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ModelVersionDetail] -> ShowS
$cshowList :: [ModelVersionDetail] -> ShowS
show :: ModelVersionDetail -> String
$cshow :: ModelVersionDetail -> String
showsPrec :: Int -> ModelVersionDetail -> ShowS
$cshowsPrec :: Int -> ModelVersionDetail -> ShowS
Prelude.Show, forall x. Rep ModelVersionDetail x -> ModelVersionDetail
forall x. ModelVersionDetail -> Rep ModelVersionDetail x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ModelVersionDetail x -> ModelVersionDetail
$cfrom :: forall x. ModelVersionDetail -> Rep ModelVersionDetail x
Prelude.Generic)

-- |
-- Create a value of 'ModelVersionDetail' 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:
--
-- 'arn', 'modelVersionDetail_arn' - The model version ARN.
--
-- 'createdTime', 'modelVersionDetail_createdTime' - The timestamp when the model was created.
--
-- 'externalEventsDetail', 'modelVersionDetail_externalEventsDetail' - The external events data details. This will be populated if the
-- @trainingDataSource@ for the model version is specified as
-- @EXTERNAL_EVENTS@.
--
-- 'ingestedEventsDetail', 'modelVersionDetail_ingestedEventsDetail' - The ingested events data details. This will be populated if the
-- @trainingDataSource@ for the model version is specified as
-- @INGESTED_EVENTS@.
--
-- 'lastUpdatedTime', 'modelVersionDetail_lastUpdatedTime' - The timestamp when the model was last updated.
--
-- 'modelId', 'modelVersionDetail_modelId' - The model ID.
--
-- 'modelType', 'modelVersionDetail_modelType' - The model type.
--
-- 'modelVersionNumber', 'modelVersionDetail_modelVersionNumber' - The model version number.
--
-- 'status', 'modelVersionDetail_status' - The status of the model version.
--
-- 'trainingDataSchema', 'modelVersionDetail_trainingDataSchema' - The training data schema.
--
-- 'trainingDataSource', 'modelVersionDetail_trainingDataSource' - The model version training data source.
--
-- 'trainingResult', 'modelVersionDetail_trainingResult' - The training results.
--
-- 'trainingResultV2', 'modelVersionDetail_trainingResultV2' - The training result details. The details include the relative importance
-- of the variables.
newModelVersionDetail ::
  ModelVersionDetail
newModelVersionDetail :: ModelVersionDetail
newModelVersionDetail =
  ModelVersionDetail'
    { $sel:arn:ModelVersionDetail' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
      $sel:createdTime:ModelVersionDetail' :: Maybe Text
createdTime = forall a. Maybe a
Prelude.Nothing,
      $sel:externalEventsDetail:ModelVersionDetail' :: Maybe ExternalEventsDetail
externalEventsDetail = forall a. Maybe a
Prelude.Nothing,
      $sel:ingestedEventsDetail:ModelVersionDetail' :: Maybe IngestedEventsDetail
ingestedEventsDetail = forall a. Maybe a
Prelude.Nothing,
      $sel:lastUpdatedTime:ModelVersionDetail' :: Maybe Text
lastUpdatedTime = forall a. Maybe a
Prelude.Nothing,
      $sel:modelId:ModelVersionDetail' :: Maybe Text
modelId = forall a. Maybe a
Prelude.Nothing,
      $sel:modelType:ModelVersionDetail' :: Maybe ModelTypeEnum
modelType = forall a. Maybe a
Prelude.Nothing,
      $sel:modelVersionNumber:ModelVersionDetail' :: Maybe Text
modelVersionNumber = forall a. Maybe a
Prelude.Nothing,
      $sel:status:ModelVersionDetail' :: Maybe Text
status = forall a. Maybe a
Prelude.Nothing,
      $sel:trainingDataSchema:ModelVersionDetail' :: Maybe TrainingDataSchema
trainingDataSchema = forall a. Maybe a
Prelude.Nothing,
      $sel:trainingDataSource:ModelVersionDetail' :: Maybe TrainingDataSourceEnum
trainingDataSource = forall a. Maybe a
Prelude.Nothing,
      $sel:trainingResult:ModelVersionDetail' :: Maybe TrainingResult
trainingResult = forall a. Maybe a
Prelude.Nothing,
      $sel:trainingResultV2:ModelVersionDetail' :: Maybe TrainingResultV2
trainingResultV2 = forall a. Maybe a
Prelude.Nothing
    }

-- | The model version ARN.
modelVersionDetail_arn :: Lens.Lens' ModelVersionDetail (Prelude.Maybe Prelude.Text)
modelVersionDetail_arn :: Lens' ModelVersionDetail (Maybe Text)
modelVersionDetail_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelVersionDetail' {Maybe Text
arn :: Maybe Text
$sel:arn:ModelVersionDetail' :: ModelVersionDetail -> Maybe Text
arn} -> Maybe Text
arn) (\s :: ModelVersionDetail
s@ModelVersionDetail' {} Maybe Text
a -> ModelVersionDetail
s {$sel:arn:ModelVersionDetail' :: Maybe Text
arn = Maybe Text
a} :: ModelVersionDetail)

-- | The timestamp when the model was created.
modelVersionDetail_createdTime :: Lens.Lens' ModelVersionDetail (Prelude.Maybe Prelude.Text)
modelVersionDetail_createdTime :: Lens' ModelVersionDetail (Maybe Text)
modelVersionDetail_createdTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelVersionDetail' {Maybe Text
createdTime :: Maybe Text
$sel:createdTime:ModelVersionDetail' :: ModelVersionDetail -> Maybe Text
createdTime} -> Maybe Text
createdTime) (\s :: ModelVersionDetail
s@ModelVersionDetail' {} Maybe Text
a -> ModelVersionDetail
s {$sel:createdTime:ModelVersionDetail' :: Maybe Text
createdTime = Maybe Text
a} :: ModelVersionDetail)

-- | The external events data details. This will be populated if the
-- @trainingDataSource@ for the model version is specified as
-- @EXTERNAL_EVENTS@.
modelVersionDetail_externalEventsDetail :: Lens.Lens' ModelVersionDetail (Prelude.Maybe ExternalEventsDetail)
modelVersionDetail_externalEventsDetail :: Lens' ModelVersionDetail (Maybe ExternalEventsDetail)
modelVersionDetail_externalEventsDetail = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelVersionDetail' {Maybe ExternalEventsDetail
externalEventsDetail :: Maybe ExternalEventsDetail
$sel:externalEventsDetail:ModelVersionDetail' :: ModelVersionDetail -> Maybe ExternalEventsDetail
externalEventsDetail} -> Maybe ExternalEventsDetail
externalEventsDetail) (\s :: ModelVersionDetail
s@ModelVersionDetail' {} Maybe ExternalEventsDetail
a -> ModelVersionDetail
s {$sel:externalEventsDetail:ModelVersionDetail' :: Maybe ExternalEventsDetail
externalEventsDetail = Maybe ExternalEventsDetail
a} :: ModelVersionDetail)

-- | The ingested events data details. This will be populated if the
-- @trainingDataSource@ for the model version is specified as
-- @INGESTED_EVENTS@.
modelVersionDetail_ingestedEventsDetail :: Lens.Lens' ModelVersionDetail (Prelude.Maybe IngestedEventsDetail)
modelVersionDetail_ingestedEventsDetail :: Lens' ModelVersionDetail (Maybe IngestedEventsDetail)
modelVersionDetail_ingestedEventsDetail = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelVersionDetail' {Maybe IngestedEventsDetail
ingestedEventsDetail :: Maybe IngestedEventsDetail
$sel:ingestedEventsDetail:ModelVersionDetail' :: ModelVersionDetail -> Maybe IngestedEventsDetail
ingestedEventsDetail} -> Maybe IngestedEventsDetail
ingestedEventsDetail) (\s :: ModelVersionDetail
s@ModelVersionDetail' {} Maybe IngestedEventsDetail
a -> ModelVersionDetail
s {$sel:ingestedEventsDetail:ModelVersionDetail' :: Maybe IngestedEventsDetail
ingestedEventsDetail = Maybe IngestedEventsDetail
a} :: ModelVersionDetail)

-- | The timestamp when the model was last updated.
modelVersionDetail_lastUpdatedTime :: Lens.Lens' ModelVersionDetail (Prelude.Maybe Prelude.Text)
modelVersionDetail_lastUpdatedTime :: Lens' ModelVersionDetail (Maybe Text)
modelVersionDetail_lastUpdatedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelVersionDetail' {Maybe Text
lastUpdatedTime :: Maybe Text
$sel:lastUpdatedTime:ModelVersionDetail' :: ModelVersionDetail -> Maybe Text
lastUpdatedTime} -> Maybe Text
lastUpdatedTime) (\s :: ModelVersionDetail
s@ModelVersionDetail' {} Maybe Text
a -> ModelVersionDetail
s {$sel:lastUpdatedTime:ModelVersionDetail' :: Maybe Text
lastUpdatedTime = Maybe Text
a} :: ModelVersionDetail)

-- | The model ID.
modelVersionDetail_modelId :: Lens.Lens' ModelVersionDetail (Prelude.Maybe Prelude.Text)
modelVersionDetail_modelId :: Lens' ModelVersionDetail (Maybe Text)
modelVersionDetail_modelId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelVersionDetail' {Maybe Text
modelId :: Maybe Text
$sel:modelId:ModelVersionDetail' :: ModelVersionDetail -> Maybe Text
modelId} -> Maybe Text
modelId) (\s :: ModelVersionDetail
s@ModelVersionDetail' {} Maybe Text
a -> ModelVersionDetail
s {$sel:modelId:ModelVersionDetail' :: Maybe Text
modelId = Maybe Text
a} :: ModelVersionDetail)

-- | The model type.
modelVersionDetail_modelType :: Lens.Lens' ModelVersionDetail (Prelude.Maybe ModelTypeEnum)
modelVersionDetail_modelType :: Lens' ModelVersionDetail (Maybe ModelTypeEnum)
modelVersionDetail_modelType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelVersionDetail' {Maybe ModelTypeEnum
modelType :: Maybe ModelTypeEnum
$sel:modelType:ModelVersionDetail' :: ModelVersionDetail -> Maybe ModelTypeEnum
modelType} -> Maybe ModelTypeEnum
modelType) (\s :: ModelVersionDetail
s@ModelVersionDetail' {} Maybe ModelTypeEnum
a -> ModelVersionDetail
s {$sel:modelType:ModelVersionDetail' :: Maybe ModelTypeEnum
modelType = Maybe ModelTypeEnum
a} :: ModelVersionDetail)

-- | The model version number.
modelVersionDetail_modelVersionNumber :: Lens.Lens' ModelVersionDetail (Prelude.Maybe Prelude.Text)
modelVersionDetail_modelVersionNumber :: Lens' ModelVersionDetail (Maybe Text)
modelVersionDetail_modelVersionNumber = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelVersionDetail' {Maybe Text
modelVersionNumber :: Maybe Text
$sel:modelVersionNumber:ModelVersionDetail' :: ModelVersionDetail -> Maybe Text
modelVersionNumber} -> Maybe Text
modelVersionNumber) (\s :: ModelVersionDetail
s@ModelVersionDetail' {} Maybe Text
a -> ModelVersionDetail
s {$sel:modelVersionNumber:ModelVersionDetail' :: Maybe Text
modelVersionNumber = Maybe Text
a} :: ModelVersionDetail)

-- | The status of the model version.
modelVersionDetail_status :: Lens.Lens' ModelVersionDetail (Prelude.Maybe Prelude.Text)
modelVersionDetail_status :: Lens' ModelVersionDetail (Maybe Text)
modelVersionDetail_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelVersionDetail' {Maybe Text
status :: Maybe Text
$sel:status:ModelVersionDetail' :: ModelVersionDetail -> Maybe Text
status} -> Maybe Text
status) (\s :: ModelVersionDetail
s@ModelVersionDetail' {} Maybe Text
a -> ModelVersionDetail
s {$sel:status:ModelVersionDetail' :: Maybe Text
status = Maybe Text
a} :: ModelVersionDetail)

-- | The training data schema.
modelVersionDetail_trainingDataSchema :: Lens.Lens' ModelVersionDetail (Prelude.Maybe TrainingDataSchema)
modelVersionDetail_trainingDataSchema :: Lens' ModelVersionDetail (Maybe TrainingDataSchema)
modelVersionDetail_trainingDataSchema = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelVersionDetail' {Maybe TrainingDataSchema
trainingDataSchema :: Maybe TrainingDataSchema
$sel:trainingDataSchema:ModelVersionDetail' :: ModelVersionDetail -> Maybe TrainingDataSchema
trainingDataSchema} -> Maybe TrainingDataSchema
trainingDataSchema) (\s :: ModelVersionDetail
s@ModelVersionDetail' {} Maybe TrainingDataSchema
a -> ModelVersionDetail
s {$sel:trainingDataSchema:ModelVersionDetail' :: Maybe TrainingDataSchema
trainingDataSchema = Maybe TrainingDataSchema
a} :: ModelVersionDetail)

-- | The model version training data source.
modelVersionDetail_trainingDataSource :: Lens.Lens' ModelVersionDetail (Prelude.Maybe TrainingDataSourceEnum)
modelVersionDetail_trainingDataSource :: Lens' ModelVersionDetail (Maybe TrainingDataSourceEnum)
modelVersionDetail_trainingDataSource = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelVersionDetail' {Maybe TrainingDataSourceEnum
trainingDataSource :: Maybe TrainingDataSourceEnum
$sel:trainingDataSource:ModelVersionDetail' :: ModelVersionDetail -> Maybe TrainingDataSourceEnum
trainingDataSource} -> Maybe TrainingDataSourceEnum
trainingDataSource) (\s :: ModelVersionDetail
s@ModelVersionDetail' {} Maybe TrainingDataSourceEnum
a -> ModelVersionDetail
s {$sel:trainingDataSource:ModelVersionDetail' :: Maybe TrainingDataSourceEnum
trainingDataSource = Maybe TrainingDataSourceEnum
a} :: ModelVersionDetail)

-- | The training results.
modelVersionDetail_trainingResult :: Lens.Lens' ModelVersionDetail (Prelude.Maybe TrainingResult)
modelVersionDetail_trainingResult :: Lens' ModelVersionDetail (Maybe TrainingResult)
modelVersionDetail_trainingResult = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelVersionDetail' {Maybe TrainingResult
trainingResult :: Maybe TrainingResult
$sel:trainingResult:ModelVersionDetail' :: ModelVersionDetail -> Maybe TrainingResult
trainingResult} -> Maybe TrainingResult
trainingResult) (\s :: ModelVersionDetail
s@ModelVersionDetail' {} Maybe TrainingResult
a -> ModelVersionDetail
s {$sel:trainingResult:ModelVersionDetail' :: Maybe TrainingResult
trainingResult = Maybe TrainingResult
a} :: ModelVersionDetail)

-- | The training result details. The details include the relative importance
-- of the variables.
modelVersionDetail_trainingResultV2 :: Lens.Lens' ModelVersionDetail (Prelude.Maybe TrainingResultV2)
modelVersionDetail_trainingResultV2 :: Lens' ModelVersionDetail (Maybe TrainingResultV2)
modelVersionDetail_trainingResultV2 = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelVersionDetail' {Maybe TrainingResultV2
trainingResultV2 :: Maybe TrainingResultV2
$sel:trainingResultV2:ModelVersionDetail' :: ModelVersionDetail -> Maybe TrainingResultV2
trainingResultV2} -> Maybe TrainingResultV2
trainingResultV2) (\s :: ModelVersionDetail
s@ModelVersionDetail' {} Maybe TrainingResultV2
a -> ModelVersionDetail
s {$sel:trainingResultV2:ModelVersionDetail' :: Maybe TrainingResultV2
trainingResultV2 = Maybe TrainingResultV2
a} :: ModelVersionDetail)

instance Data.FromJSON ModelVersionDetail where
  parseJSON :: Value -> Parser ModelVersionDetail
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"ModelVersionDetail"
      ( \Object
x ->
          Maybe Text
-> Maybe Text
-> Maybe ExternalEventsDetail
-> Maybe IngestedEventsDetail
-> Maybe Text
-> Maybe Text
-> Maybe ModelTypeEnum
-> Maybe Text
-> Maybe Text
-> Maybe TrainingDataSchema
-> Maybe TrainingDataSourceEnum
-> Maybe TrainingResult
-> Maybe TrainingResultV2
-> ModelVersionDetail
ModelVersionDetail'
            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
"arn")
            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
"createdTime")
            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
"externalEventsDetail")
            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
"ingestedEventsDetail")
            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
"lastUpdatedTime")
            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
"modelId")
            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
"modelType")
            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
"modelVersionNumber")
            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")
            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
"trainingDataSchema")
            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
"trainingDataSource")
            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
"trainingResult")
            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
"trainingResultV2")
      )

instance Prelude.Hashable ModelVersionDetail where
  hashWithSalt :: Int -> ModelVersionDetail -> Int
hashWithSalt Int
_salt ModelVersionDetail' {Maybe Text
Maybe ExternalEventsDetail
Maybe IngestedEventsDetail
Maybe ModelTypeEnum
Maybe TrainingDataSourceEnum
Maybe TrainingDataSchema
Maybe TrainingResultV2
Maybe TrainingResult
trainingResultV2 :: Maybe TrainingResultV2
trainingResult :: Maybe TrainingResult
trainingDataSource :: Maybe TrainingDataSourceEnum
trainingDataSchema :: Maybe TrainingDataSchema
status :: Maybe Text
modelVersionNumber :: Maybe Text
modelType :: Maybe ModelTypeEnum
modelId :: Maybe Text
lastUpdatedTime :: Maybe Text
ingestedEventsDetail :: Maybe IngestedEventsDetail
externalEventsDetail :: Maybe ExternalEventsDetail
createdTime :: Maybe Text
arn :: Maybe Text
$sel:trainingResultV2:ModelVersionDetail' :: ModelVersionDetail -> Maybe TrainingResultV2
$sel:trainingResult:ModelVersionDetail' :: ModelVersionDetail -> Maybe TrainingResult
$sel:trainingDataSource:ModelVersionDetail' :: ModelVersionDetail -> Maybe TrainingDataSourceEnum
$sel:trainingDataSchema:ModelVersionDetail' :: ModelVersionDetail -> Maybe TrainingDataSchema
$sel:status:ModelVersionDetail' :: ModelVersionDetail -> Maybe Text
$sel:modelVersionNumber:ModelVersionDetail' :: ModelVersionDetail -> Maybe Text
$sel:modelType:ModelVersionDetail' :: ModelVersionDetail -> Maybe ModelTypeEnum
$sel:modelId:ModelVersionDetail' :: ModelVersionDetail -> Maybe Text
$sel:lastUpdatedTime:ModelVersionDetail' :: ModelVersionDetail -> Maybe Text
$sel:ingestedEventsDetail:ModelVersionDetail' :: ModelVersionDetail -> Maybe IngestedEventsDetail
$sel:externalEventsDetail:ModelVersionDetail' :: ModelVersionDetail -> Maybe ExternalEventsDetail
$sel:createdTime:ModelVersionDetail' :: ModelVersionDetail -> Maybe Text
$sel:arn:ModelVersionDetail' :: ModelVersionDetail -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
arn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
createdTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ExternalEventsDetail
externalEventsDetail
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe IngestedEventsDetail
ingestedEventsDetail
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
lastUpdatedTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
modelId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ModelTypeEnum
modelType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
modelVersionNumber
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
status
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TrainingDataSchema
trainingDataSchema
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TrainingDataSourceEnum
trainingDataSource
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TrainingResult
trainingResult
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TrainingResultV2
trainingResultV2

instance Prelude.NFData ModelVersionDetail where
  rnf :: ModelVersionDetail -> ()
rnf ModelVersionDetail' {Maybe Text
Maybe ExternalEventsDetail
Maybe IngestedEventsDetail
Maybe ModelTypeEnum
Maybe TrainingDataSourceEnum
Maybe TrainingDataSchema
Maybe TrainingResultV2
Maybe TrainingResult
trainingResultV2 :: Maybe TrainingResultV2
trainingResult :: Maybe TrainingResult
trainingDataSource :: Maybe TrainingDataSourceEnum
trainingDataSchema :: Maybe TrainingDataSchema
status :: Maybe Text
modelVersionNumber :: Maybe Text
modelType :: Maybe ModelTypeEnum
modelId :: Maybe Text
lastUpdatedTime :: Maybe Text
ingestedEventsDetail :: Maybe IngestedEventsDetail
externalEventsDetail :: Maybe ExternalEventsDetail
createdTime :: Maybe Text
arn :: Maybe Text
$sel:trainingResultV2:ModelVersionDetail' :: ModelVersionDetail -> Maybe TrainingResultV2
$sel:trainingResult:ModelVersionDetail' :: ModelVersionDetail -> Maybe TrainingResult
$sel:trainingDataSource:ModelVersionDetail' :: ModelVersionDetail -> Maybe TrainingDataSourceEnum
$sel:trainingDataSchema:ModelVersionDetail' :: ModelVersionDetail -> Maybe TrainingDataSchema
$sel:status:ModelVersionDetail' :: ModelVersionDetail -> Maybe Text
$sel:modelVersionNumber:ModelVersionDetail' :: ModelVersionDetail -> Maybe Text
$sel:modelType:ModelVersionDetail' :: ModelVersionDetail -> Maybe ModelTypeEnum
$sel:modelId:ModelVersionDetail' :: ModelVersionDetail -> Maybe Text
$sel:lastUpdatedTime:ModelVersionDetail' :: ModelVersionDetail -> Maybe Text
$sel:ingestedEventsDetail:ModelVersionDetail' :: ModelVersionDetail -> Maybe IngestedEventsDetail
$sel:externalEventsDetail:ModelVersionDetail' :: ModelVersionDetail -> Maybe ExternalEventsDetail
$sel:createdTime:ModelVersionDetail' :: ModelVersionDetail -> Maybe Text
$sel:arn:ModelVersionDetail' :: ModelVersionDetail -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
createdTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ExternalEventsDetail
externalEventsDetail
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe IngestedEventsDetail
ingestedEventsDetail
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
lastUpdatedTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
modelId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ModelTypeEnum
modelType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
modelVersionNumber
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TrainingDataSchema
trainingDataSchema
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TrainingDataSourceEnum
trainingDataSource
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TrainingResult
trainingResult
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TrainingResultV2
trainingResultV2