{-# 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-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.FraudDetector.Types.ModelVersionDetail where

import qualified Amazonka.Core as Core
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 qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude

-- | The details of the model version.
--
-- /See:/ 'newModelVersionDetail' smart constructor.
data ModelVersionDetail = ModelVersionDetail'
  { -- | The status of the model version.
    ModelVersionDetail -> Maybe Text
status :: Prelude.Maybe Prelude.Text,
    -- | The model type.
    ModelVersionDetail -> Maybe ModelTypeEnum
modelType :: Prelude.Maybe ModelTypeEnum,
    -- | 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 version ARN.
    ModelVersionDetail -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | The model version training data source.
    ModelVersionDetail -> Maybe TrainingDataSourceEnum
trainingDataSource :: Prelude.Maybe TrainingDataSourceEnum,
    -- | 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 model version number.
    ModelVersionDetail -> Maybe Text
modelVersionNumber :: Prelude.Maybe Prelude.Text,
    -- | The training results.
    ModelVersionDetail -> Maybe TrainingResult
trainingResult :: Prelude.Maybe TrainingResult,
    -- | The training data schema.
    ModelVersionDetail -> Maybe TrainingDataSchema
trainingDataSchema :: Prelude.Maybe TrainingDataSchema
  }
  deriving (ModelVersionDetail -> ModelVersionDetail -> Bool
(ModelVersionDetail -> ModelVersionDetail -> Bool)
-> (ModelVersionDetail -> ModelVersionDetail -> Bool)
-> Eq ModelVersionDetail
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]
(Int -> ReadS ModelVersionDetail)
-> ReadS [ModelVersionDetail]
-> ReadPrec ModelVersionDetail
-> ReadPrec [ModelVersionDetail]
-> Read 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
(Int -> ModelVersionDetail -> ShowS)
-> (ModelVersionDetail -> String)
-> ([ModelVersionDetail] -> ShowS)
-> Show ModelVersionDetail
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. ModelVersionDetail -> Rep ModelVersionDetail x)
-> (forall x. Rep ModelVersionDetail x -> ModelVersionDetail)
-> Generic ModelVersionDetail
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:
--
-- 'status', 'modelVersionDetail_status' - The status of the model version.
--
-- 'modelType', 'modelVersionDetail_modelType' - The model type.
--
-- 'lastUpdatedTime', 'modelVersionDetail_lastUpdatedTime' - The timestamp when the model was last updated.
--
-- 'modelId', 'modelVersionDetail_modelId' - The model ID.
--
-- 'arn', 'modelVersionDetail_arn' - The model version ARN.
--
-- 'trainingDataSource', 'modelVersionDetail_trainingDataSource' - The model version training data source.
--
-- '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@.
--
-- 'modelVersionNumber', 'modelVersionDetail_modelVersionNumber' - The model version number.
--
-- 'trainingResult', 'modelVersionDetail_trainingResult' - The training results.
--
-- 'trainingDataSchema', 'modelVersionDetail_trainingDataSchema' - The training data schema.
newModelVersionDetail ::
  ModelVersionDetail
newModelVersionDetail :: ModelVersionDetail
newModelVersionDetail =
  ModelVersionDetail' :: Maybe Text
-> Maybe ModelTypeEnum
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe TrainingDataSourceEnum
-> Maybe Text
-> Maybe ExternalEventsDetail
-> Maybe IngestedEventsDetail
-> Maybe Text
-> Maybe TrainingResult
-> Maybe TrainingDataSchema
-> ModelVersionDetail
ModelVersionDetail'
    { $sel:status:ModelVersionDetail' :: Maybe Text
status = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:modelType:ModelVersionDetail' :: Maybe ModelTypeEnum
modelType = Maybe ModelTypeEnum
forall a. Maybe a
Prelude.Nothing,
      $sel:lastUpdatedTime:ModelVersionDetail' :: Maybe Text
lastUpdatedTime = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:modelId:ModelVersionDetail' :: Maybe Text
modelId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:arn:ModelVersionDetail' :: Maybe Text
arn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:trainingDataSource:ModelVersionDetail' :: Maybe TrainingDataSourceEnum
trainingDataSource = Maybe TrainingDataSourceEnum
forall a. Maybe a
Prelude.Nothing,
      $sel:createdTime:ModelVersionDetail' :: Maybe Text
createdTime = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:externalEventsDetail:ModelVersionDetail' :: Maybe ExternalEventsDetail
externalEventsDetail = Maybe ExternalEventsDetail
forall a. Maybe a
Prelude.Nothing,
      $sel:ingestedEventsDetail:ModelVersionDetail' :: Maybe IngestedEventsDetail
ingestedEventsDetail = Maybe IngestedEventsDetail
forall a. Maybe a
Prelude.Nothing,
      $sel:modelVersionNumber:ModelVersionDetail' :: Maybe Text
modelVersionNumber = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:trainingResult:ModelVersionDetail' :: Maybe TrainingResult
trainingResult = Maybe TrainingResult
forall a. Maybe a
Prelude.Nothing,
      $sel:trainingDataSchema:ModelVersionDetail' :: Maybe TrainingDataSchema
trainingDataSchema = Maybe TrainingDataSchema
forall a. Maybe a
Prelude.Nothing
    }

-- | The status of the model version.
modelVersionDetail_status :: Lens.Lens' ModelVersionDetail (Prelude.Maybe Prelude.Text)
modelVersionDetail_status :: (Maybe Text -> f (Maybe Text))
-> ModelVersionDetail -> f ModelVersionDetail
modelVersionDetail_status = (ModelVersionDetail -> Maybe Text)
-> (ModelVersionDetail -> Maybe Text -> ModelVersionDetail)
-> Lens
     ModelVersionDetail ModelVersionDetail (Maybe Text) (Maybe Text)
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 model type.
modelVersionDetail_modelType :: Lens.Lens' ModelVersionDetail (Prelude.Maybe ModelTypeEnum)
modelVersionDetail_modelType :: (Maybe ModelTypeEnum -> f (Maybe ModelTypeEnum))
-> ModelVersionDetail -> f ModelVersionDetail
modelVersionDetail_modelType = (ModelVersionDetail -> Maybe ModelTypeEnum)
-> (ModelVersionDetail
    -> Maybe ModelTypeEnum -> ModelVersionDetail)
-> Lens
     ModelVersionDetail
     ModelVersionDetail
     (Maybe ModelTypeEnum)
     (Maybe ModelTypeEnum)
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 timestamp when the model was last updated.
modelVersionDetail_lastUpdatedTime :: Lens.Lens' ModelVersionDetail (Prelude.Maybe Prelude.Text)
modelVersionDetail_lastUpdatedTime :: (Maybe Text -> f (Maybe Text))
-> ModelVersionDetail -> f ModelVersionDetail
modelVersionDetail_lastUpdatedTime = (ModelVersionDetail -> Maybe Text)
-> (ModelVersionDetail -> Maybe Text -> ModelVersionDetail)
-> Lens
     ModelVersionDetail ModelVersionDetail (Maybe Text) (Maybe Text)
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 :: (Maybe Text -> f (Maybe Text))
-> ModelVersionDetail -> f ModelVersionDetail
modelVersionDetail_modelId = (ModelVersionDetail -> Maybe Text)
-> (ModelVersionDetail -> Maybe Text -> ModelVersionDetail)
-> Lens
     ModelVersionDetail ModelVersionDetail (Maybe Text) (Maybe Text)
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 version ARN.
modelVersionDetail_arn :: Lens.Lens' ModelVersionDetail (Prelude.Maybe Prelude.Text)
modelVersionDetail_arn :: (Maybe Text -> f (Maybe Text))
-> ModelVersionDetail -> f ModelVersionDetail
modelVersionDetail_arn = (ModelVersionDetail -> Maybe Text)
-> (ModelVersionDetail -> Maybe Text -> ModelVersionDetail)
-> Lens
     ModelVersionDetail ModelVersionDetail (Maybe Text) (Maybe Text)
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 model version training data source.
modelVersionDetail_trainingDataSource :: Lens.Lens' ModelVersionDetail (Prelude.Maybe TrainingDataSourceEnum)
modelVersionDetail_trainingDataSource :: (Maybe TrainingDataSourceEnum -> f (Maybe TrainingDataSourceEnum))
-> ModelVersionDetail -> f ModelVersionDetail
modelVersionDetail_trainingDataSource = (ModelVersionDetail -> Maybe TrainingDataSourceEnum)
-> (ModelVersionDetail
    -> Maybe TrainingDataSourceEnum -> ModelVersionDetail)
-> Lens
     ModelVersionDetail
     ModelVersionDetail
     (Maybe TrainingDataSourceEnum)
     (Maybe TrainingDataSourceEnum)
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 timestamp when the model was created.
modelVersionDetail_createdTime :: Lens.Lens' ModelVersionDetail (Prelude.Maybe Prelude.Text)
modelVersionDetail_createdTime :: (Maybe Text -> f (Maybe Text))
-> ModelVersionDetail -> f ModelVersionDetail
modelVersionDetail_createdTime = (ModelVersionDetail -> Maybe Text)
-> (ModelVersionDetail -> Maybe Text -> ModelVersionDetail)
-> Lens
     ModelVersionDetail ModelVersionDetail (Maybe Text) (Maybe Text)
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 :: (Maybe ExternalEventsDetail -> f (Maybe ExternalEventsDetail))
-> ModelVersionDetail -> f ModelVersionDetail
modelVersionDetail_externalEventsDetail = (ModelVersionDetail -> Maybe ExternalEventsDetail)
-> (ModelVersionDetail
    -> Maybe ExternalEventsDetail -> ModelVersionDetail)
-> Lens
     ModelVersionDetail
     ModelVersionDetail
     (Maybe ExternalEventsDetail)
     (Maybe 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 :: (Maybe IngestedEventsDetail -> f (Maybe IngestedEventsDetail))
-> ModelVersionDetail -> f ModelVersionDetail
modelVersionDetail_ingestedEventsDetail = (ModelVersionDetail -> Maybe IngestedEventsDetail)
-> (ModelVersionDetail
    -> Maybe IngestedEventsDetail -> ModelVersionDetail)
-> Lens
     ModelVersionDetail
     ModelVersionDetail
     (Maybe IngestedEventsDetail)
     (Maybe 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 model version number.
modelVersionDetail_modelVersionNumber :: Lens.Lens' ModelVersionDetail (Prelude.Maybe Prelude.Text)
modelVersionDetail_modelVersionNumber :: (Maybe Text -> f (Maybe Text))
-> ModelVersionDetail -> f ModelVersionDetail
modelVersionDetail_modelVersionNumber = (ModelVersionDetail -> Maybe Text)
-> (ModelVersionDetail -> Maybe Text -> ModelVersionDetail)
-> Lens
     ModelVersionDetail ModelVersionDetail (Maybe Text) (Maybe Text)
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 training results.
modelVersionDetail_trainingResult :: Lens.Lens' ModelVersionDetail (Prelude.Maybe TrainingResult)
modelVersionDetail_trainingResult :: (Maybe TrainingResult -> f (Maybe TrainingResult))
-> ModelVersionDetail -> f ModelVersionDetail
modelVersionDetail_trainingResult = (ModelVersionDetail -> Maybe TrainingResult)
-> (ModelVersionDetail
    -> Maybe TrainingResult -> ModelVersionDetail)
-> Lens
     ModelVersionDetail
     ModelVersionDetail
     (Maybe TrainingResult)
     (Maybe 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 data schema.
modelVersionDetail_trainingDataSchema :: Lens.Lens' ModelVersionDetail (Prelude.Maybe TrainingDataSchema)
modelVersionDetail_trainingDataSchema :: (Maybe TrainingDataSchema -> f (Maybe TrainingDataSchema))
-> ModelVersionDetail -> f ModelVersionDetail
modelVersionDetail_trainingDataSchema = (ModelVersionDetail -> Maybe TrainingDataSchema)
-> (ModelVersionDetail
    -> Maybe TrainingDataSchema -> ModelVersionDetail)
-> Lens
     ModelVersionDetail
     ModelVersionDetail
     (Maybe TrainingDataSchema)
     (Maybe 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)

instance Core.FromJSON ModelVersionDetail where
  parseJSON :: Value -> Parser ModelVersionDetail
parseJSON =
    String
-> (Object -> Parser ModelVersionDetail)
-> Value
-> Parser ModelVersionDetail
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"ModelVersionDetail"
      ( \Object
x ->
          Maybe Text
-> Maybe ModelTypeEnum
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe TrainingDataSourceEnum
-> Maybe Text
-> Maybe ExternalEventsDetail
-> Maybe IngestedEventsDetail
-> Maybe Text
-> Maybe TrainingResult
-> Maybe TrainingDataSchema
-> ModelVersionDetail
ModelVersionDetail'
            (Maybe Text
 -> Maybe ModelTypeEnum
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe TrainingDataSourceEnum
 -> Maybe Text
 -> Maybe ExternalEventsDetail
 -> Maybe IngestedEventsDetail
 -> Maybe Text
 -> Maybe TrainingResult
 -> Maybe TrainingDataSchema
 -> ModelVersionDetail)
-> Parser (Maybe Text)
-> Parser
     (Maybe ModelTypeEnum
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe TrainingDataSourceEnum
      -> Maybe Text
      -> Maybe ExternalEventsDetail
      -> Maybe IngestedEventsDetail
      -> Maybe Text
      -> Maybe TrainingResult
      -> Maybe TrainingDataSchema
      -> ModelVersionDetail)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"status")
            Parser
  (Maybe ModelTypeEnum
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe TrainingDataSourceEnum
   -> Maybe Text
   -> Maybe ExternalEventsDetail
   -> Maybe IngestedEventsDetail
   -> Maybe Text
   -> Maybe TrainingResult
   -> Maybe TrainingDataSchema
   -> ModelVersionDetail)
-> Parser (Maybe ModelTypeEnum)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe TrainingDataSourceEnum
      -> Maybe Text
      -> Maybe ExternalEventsDetail
      -> Maybe IngestedEventsDetail
      -> Maybe Text
      -> Maybe TrainingResult
      -> Maybe TrainingDataSchema
      -> ModelVersionDetail)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe ModelTypeEnum)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"modelType")
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe TrainingDataSourceEnum
   -> Maybe Text
   -> Maybe ExternalEventsDetail
   -> Maybe IngestedEventsDetail
   -> Maybe Text
   -> Maybe TrainingResult
   -> Maybe TrainingDataSchema
   -> ModelVersionDetail)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe TrainingDataSourceEnum
      -> Maybe Text
      -> Maybe ExternalEventsDetail
      -> Maybe IngestedEventsDetail
      -> Maybe Text
      -> Maybe TrainingResult
      -> Maybe TrainingDataSchema
      -> ModelVersionDetail)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"lastUpdatedTime")
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe TrainingDataSourceEnum
   -> Maybe Text
   -> Maybe ExternalEventsDetail
   -> Maybe IngestedEventsDetail
   -> Maybe Text
   -> Maybe TrainingResult
   -> Maybe TrainingDataSchema
   -> ModelVersionDetail)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe TrainingDataSourceEnum
      -> Maybe Text
      -> Maybe ExternalEventsDetail
      -> Maybe IngestedEventsDetail
      -> Maybe Text
      -> Maybe TrainingResult
      -> Maybe TrainingDataSchema
      -> ModelVersionDetail)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"modelId")
            Parser
  (Maybe Text
   -> Maybe TrainingDataSourceEnum
   -> Maybe Text
   -> Maybe ExternalEventsDetail
   -> Maybe IngestedEventsDetail
   -> Maybe Text
   -> Maybe TrainingResult
   -> Maybe TrainingDataSchema
   -> ModelVersionDetail)
-> Parser (Maybe Text)
-> Parser
     (Maybe TrainingDataSourceEnum
      -> Maybe Text
      -> Maybe ExternalEventsDetail
      -> Maybe IngestedEventsDetail
      -> Maybe Text
      -> Maybe TrainingResult
      -> Maybe TrainingDataSchema
      -> ModelVersionDetail)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"arn")
            Parser
  (Maybe TrainingDataSourceEnum
   -> Maybe Text
   -> Maybe ExternalEventsDetail
   -> Maybe IngestedEventsDetail
   -> Maybe Text
   -> Maybe TrainingResult
   -> Maybe TrainingDataSchema
   -> ModelVersionDetail)
-> Parser (Maybe TrainingDataSourceEnum)
-> Parser
     (Maybe Text
      -> Maybe ExternalEventsDetail
      -> Maybe IngestedEventsDetail
      -> Maybe Text
      -> Maybe TrainingResult
      -> Maybe TrainingDataSchema
      -> ModelVersionDetail)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe TrainingDataSourceEnum)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"trainingDataSource")
            Parser
  (Maybe Text
   -> Maybe ExternalEventsDetail
   -> Maybe IngestedEventsDetail
   -> Maybe Text
   -> Maybe TrainingResult
   -> Maybe TrainingDataSchema
   -> ModelVersionDetail)
-> Parser (Maybe Text)
-> Parser
     (Maybe ExternalEventsDetail
      -> Maybe IngestedEventsDetail
      -> Maybe Text
      -> Maybe TrainingResult
      -> Maybe TrainingDataSchema
      -> ModelVersionDetail)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"createdTime")
            Parser
  (Maybe ExternalEventsDetail
   -> Maybe IngestedEventsDetail
   -> Maybe Text
   -> Maybe TrainingResult
   -> Maybe TrainingDataSchema
   -> ModelVersionDetail)
-> Parser (Maybe ExternalEventsDetail)
-> Parser
     (Maybe IngestedEventsDetail
      -> Maybe Text
      -> Maybe TrainingResult
      -> Maybe TrainingDataSchema
      -> ModelVersionDetail)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe ExternalEventsDetail)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"externalEventsDetail")
            Parser
  (Maybe IngestedEventsDetail
   -> Maybe Text
   -> Maybe TrainingResult
   -> Maybe TrainingDataSchema
   -> ModelVersionDetail)
-> Parser (Maybe IngestedEventsDetail)
-> Parser
     (Maybe Text
      -> Maybe TrainingResult
      -> Maybe TrainingDataSchema
      -> ModelVersionDetail)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe IngestedEventsDetail)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ingestedEventsDetail")
            Parser
  (Maybe Text
   -> Maybe TrainingResult
   -> Maybe TrainingDataSchema
   -> ModelVersionDetail)
-> Parser (Maybe Text)
-> Parser
     (Maybe TrainingResult
      -> Maybe TrainingDataSchema -> ModelVersionDetail)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"modelVersionNumber")
            Parser
  (Maybe TrainingResult
   -> Maybe TrainingDataSchema -> ModelVersionDetail)
-> Parser (Maybe TrainingResult)
-> Parser (Maybe TrainingDataSchema -> ModelVersionDetail)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe TrainingResult)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"trainingResult")
            Parser (Maybe TrainingDataSchema -> ModelVersionDetail)
-> Parser (Maybe TrainingDataSchema) -> Parser ModelVersionDetail
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe TrainingDataSchema)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"trainingDataSchema")
      )

instance Prelude.Hashable ModelVersionDetail

instance Prelude.NFData ModelVersionDetail