{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# 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.CreateModel
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Creates an ML model for data inference.
--
-- A machine-learning (ML) model is a mathematical model that finds
-- patterns in your data. In Amazon Lookout for Equipment, the model learns
-- the patterns of normal behavior and detects abnormal behavior that could
-- be potential equipment failure (or maintenance events). The models are
-- made by analyzing normal data and abnormalities in machine behavior that
-- have already occurred.
--
-- Your model is trained using a portion of the data from your dataset and
-- uses that data to learn patterns of normal behavior and abnormal
-- patterns that lead to equipment failure. Another portion of the data is
-- used to evaluate the model\'s accuracy.
module Amazonka.LookoutEquipment.CreateModel
  ( -- * Creating a Request
    CreateModel (..),
    newCreateModel,

    -- * Request Lenses
    createModel_dataPreProcessingConfiguration,
    createModel_datasetSchema,
    createModel_evaluationDataEndTime,
    createModel_evaluationDataStartTime,
    createModel_labelsInputConfiguration,
    createModel_offCondition,
    createModel_roleArn,
    createModel_serverSideKmsKeyId,
    createModel_tags,
    createModel_trainingDataEndTime,
    createModel_trainingDataStartTime,
    createModel_modelName,
    createModel_datasetName,
    createModel_clientToken,

    -- * Destructuring the Response
    CreateModelResponse (..),
    newCreateModelResponse,

    -- * Response Lenses
    createModelResponse_modelArn,
    createModelResponse_status,
    createModelResponse_httpStatus,
  )
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
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newCreateModel' smart constructor.
data CreateModel = CreateModel'
  { -- | The configuration is the @TargetSamplingRate@, which is the sampling
    -- rate of the data after post processing by Amazon Lookout for Equipment.
    -- For example, if you provide data that has been collected at a 1 second
    -- level and you want the system to resample the data at a 1 minute rate
    -- before training, the @TargetSamplingRate@ is 1 minute.
    --
    -- When providing a value for the @TargetSamplingRate@, you must attach the
    -- prefix \"PT\" to the rate you want. The value for a 1 second rate is
    -- therefore /PT1S/, the value for a 15 minute rate is /PT15M/, and the
    -- value for a 1 hour rate is /PT1H/
    CreateModel -> Maybe DataPreProcessingConfiguration
dataPreProcessingConfiguration :: Prelude.Maybe DataPreProcessingConfiguration,
    -- | The data schema for the ML model being created.
    CreateModel -> Maybe DatasetSchema
datasetSchema :: Prelude.Maybe DatasetSchema,
    -- | Indicates the time reference in the dataset that should be used to end
    -- the subset of evaluation data for the ML model.
    CreateModel -> Maybe POSIX
evaluationDataEndTime :: Prelude.Maybe Data.POSIX,
    -- | Indicates the time reference in the dataset that should be used to begin
    -- the subset of evaluation data for the ML model.
    CreateModel -> Maybe POSIX
evaluationDataStartTime :: Prelude.Maybe Data.POSIX,
    -- | The input configuration for the labels being used for the ML model
    -- that\'s being created.
    CreateModel -> Maybe LabelsInputConfiguration
labelsInputConfiguration :: Prelude.Maybe LabelsInputConfiguration,
    -- | Indicates that the asset associated with this sensor has been shut off.
    -- As long as this condition is met, Lookout for Equipment will not use
    -- data from this asset for training, evaluation, or inference.
    CreateModel -> Maybe Text
offCondition :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of a role with permission to access the
    -- data source being used to create the ML model.
    CreateModel -> Maybe Text
roleArn :: Prelude.Maybe Prelude.Text,
    -- | Provides the identifier of the KMS key used to encrypt model data by
    -- Amazon Lookout for Equipment.
    CreateModel -> Maybe Text
serverSideKmsKeyId :: Prelude.Maybe Prelude.Text,
    -- | Any tags associated with the ML model being created.
    CreateModel -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
    -- | Indicates the time reference in the dataset that should be used to end
    -- the subset of training data for the ML model.
    CreateModel -> Maybe POSIX
trainingDataEndTime :: Prelude.Maybe Data.POSIX,
    -- | Indicates the time reference in the dataset that should be used to begin
    -- the subset of training data for the ML model.
    CreateModel -> Maybe POSIX
trainingDataStartTime :: Prelude.Maybe Data.POSIX,
    -- | The name for the ML model to be created.
    CreateModel -> Text
modelName :: Prelude.Text,
    -- | The name of the dataset for the ML model being created.
    CreateModel -> Text
datasetName :: Prelude.Text,
    -- | A unique identifier for the request. If you do not set the client
    -- request token, Amazon Lookout for Equipment generates one.
    CreateModel -> Text
clientToken :: Prelude.Text
  }
  deriving (CreateModel -> CreateModel -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateModel -> CreateModel -> Bool
$c/= :: CreateModel -> CreateModel -> Bool
== :: CreateModel -> CreateModel -> Bool
$c== :: CreateModel -> CreateModel -> Bool
Prelude.Eq, ReadPrec [CreateModel]
ReadPrec CreateModel
Int -> ReadS CreateModel
ReadS [CreateModel]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateModel]
$creadListPrec :: ReadPrec [CreateModel]
readPrec :: ReadPrec CreateModel
$creadPrec :: ReadPrec CreateModel
readList :: ReadS [CreateModel]
$creadList :: ReadS [CreateModel]
readsPrec :: Int -> ReadS CreateModel
$creadsPrec :: Int -> ReadS CreateModel
Prelude.Read, Int -> CreateModel -> ShowS
[CreateModel] -> ShowS
CreateModel -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateModel] -> ShowS
$cshowList :: [CreateModel] -> ShowS
show :: CreateModel -> String
$cshow :: CreateModel -> String
showsPrec :: Int -> CreateModel -> ShowS
$cshowsPrec :: Int -> CreateModel -> ShowS
Prelude.Show, forall x. Rep CreateModel x -> CreateModel
forall x. CreateModel -> Rep CreateModel x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateModel x -> CreateModel
$cfrom :: forall x. CreateModel -> Rep CreateModel x
Prelude.Generic)

-- |
-- Create a value of 'CreateModel' 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:
--
-- 'dataPreProcessingConfiguration', 'createModel_dataPreProcessingConfiguration' - The configuration is the @TargetSamplingRate@, which is the sampling
-- rate of the data after post processing by Amazon Lookout for Equipment.
-- For example, if you provide data that has been collected at a 1 second
-- level and you want the system to resample the data at a 1 minute rate
-- before training, the @TargetSamplingRate@ is 1 minute.
--
-- When providing a value for the @TargetSamplingRate@, you must attach the
-- prefix \"PT\" to the rate you want. The value for a 1 second rate is
-- therefore /PT1S/, the value for a 15 minute rate is /PT15M/, and the
-- value for a 1 hour rate is /PT1H/
--
-- 'datasetSchema', 'createModel_datasetSchema' - The data schema for the ML model being created.
--
-- 'evaluationDataEndTime', 'createModel_evaluationDataEndTime' - Indicates the time reference in the dataset that should be used to end
-- the subset of evaluation data for the ML model.
--
-- 'evaluationDataStartTime', 'createModel_evaluationDataStartTime' - Indicates the time reference in the dataset that should be used to begin
-- the subset of evaluation data for the ML model.
--
-- 'labelsInputConfiguration', 'createModel_labelsInputConfiguration' - The input configuration for the labels being used for the ML model
-- that\'s being created.
--
-- 'offCondition', 'createModel_offCondition' - Indicates that the asset associated with this sensor has been shut off.
-- As long as this condition is met, Lookout for Equipment will not use
-- data from this asset for training, evaluation, or inference.
--
-- 'roleArn', 'createModel_roleArn' - The Amazon Resource Name (ARN) of a role with permission to access the
-- data source being used to create the ML model.
--
-- 'serverSideKmsKeyId', 'createModel_serverSideKmsKeyId' - Provides the identifier of the KMS key used to encrypt model data by
-- Amazon Lookout for Equipment.
--
-- 'tags', 'createModel_tags' - Any tags associated with the ML model being created.
--
-- 'trainingDataEndTime', 'createModel_trainingDataEndTime' - Indicates the time reference in the dataset that should be used to end
-- the subset of training data for the ML model.
--
-- 'trainingDataStartTime', 'createModel_trainingDataStartTime' - Indicates the time reference in the dataset that should be used to begin
-- the subset of training data for the ML model.
--
-- 'modelName', 'createModel_modelName' - The name for the ML model to be created.
--
-- 'datasetName', 'createModel_datasetName' - The name of the dataset for the ML model being created.
--
-- 'clientToken', 'createModel_clientToken' - A unique identifier for the request. If you do not set the client
-- request token, Amazon Lookout for Equipment generates one.
newCreateModel ::
  -- | 'modelName'
  Prelude.Text ->
  -- | 'datasetName'
  Prelude.Text ->
  -- | 'clientToken'
  Prelude.Text ->
  CreateModel
newCreateModel :: Text -> Text -> Text -> CreateModel
newCreateModel
  Text
pModelName_
  Text
pDatasetName_
  Text
pClientToken_ =
    CreateModel'
      { $sel:dataPreProcessingConfiguration:CreateModel' :: Maybe DataPreProcessingConfiguration
dataPreProcessingConfiguration =
          forall a. Maybe a
Prelude.Nothing,
        $sel:datasetSchema:CreateModel' :: Maybe DatasetSchema
datasetSchema = forall a. Maybe a
Prelude.Nothing,
        $sel:evaluationDataEndTime:CreateModel' :: Maybe POSIX
evaluationDataEndTime = forall a. Maybe a
Prelude.Nothing,
        $sel:evaluationDataStartTime:CreateModel' :: Maybe POSIX
evaluationDataStartTime = forall a. Maybe a
Prelude.Nothing,
        $sel:labelsInputConfiguration:CreateModel' :: Maybe LabelsInputConfiguration
labelsInputConfiguration = forall a. Maybe a
Prelude.Nothing,
        $sel:offCondition:CreateModel' :: Maybe Text
offCondition = forall a. Maybe a
Prelude.Nothing,
        $sel:roleArn:CreateModel' :: Maybe Text
roleArn = forall a. Maybe a
Prelude.Nothing,
        $sel:serverSideKmsKeyId:CreateModel' :: Maybe Text
serverSideKmsKeyId = forall a. Maybe a
Prelude.Nothing,
        $sel:tags:CreateModel' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
        $sel:trainingDataEndTime:CreateModel' :: Maybe POSIX
trainingDataEndTime = forall a. Maybe a
Prelude.Nothing,
        $sel:trainingDataStartTime:CreateModel' :: Maybe POSIX
trainingDataStartTime = forall a. Maybe a
Prelude.Nothing,
        $sel:modelName:CreateModel' :: Text
modelName = Text
pModelName_,
        $sel:datasetName:CreateModel' :: Text
datasetName = Text
pDatasetName_,
        $sel:clientToken:CreateModel' :: Text
clientToken = Text
pClientToken_
      }

-- | The configuration is the @TargetSamplingRate@, which is the sampling
-- rate of the data after post processing by Amazon Lookout for Equipment.
-- For example, if you provide data that has been collected at a 1 second
-- level and you want the system to resample the data at a 1 minute rate
-- before training, the @TargetSamplingRate@ is 1 minute.
--
-- When providing a value for the @TargetSamplingRate@, you must attach the
-- prefix \"PT\" to the rate you want. The value for a 1 second rate is
-- therefore /PT1S/, the value for a 15 minute rate is /PT15M/, and the
-- value for a 1 hour rate is /PT1H/
createModel_dataPreProcessingConfiguration :: Lens.Lens' CreateModel (Prelude.Maybe DataPreProcessingConfiguration)
createModel_dataPreProcessingConfiguration :: Lens' CreateModel (Maybe DataPreProcessingConfiguration)
createModel_dataPreProcessingConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateModel' {Maybe DataPreProcessingConfiguration
dataPreProcessingConfiguration :: Maybe DataPreProcessingConfiguration
$sel:dataPreProcessingConfiguration:CreateModel' :: CreateModel -> Maybe DataPreProcessingConfiguration
dataPreProcessingConfiguration} -> Maybe DataPreProcessingConfiguration
dataPreProcessingConfiguration) (\s :: CreateModel
s@CreateModel' {} Maybe DataPreProcessingConfiguration
a -> CreateModel
s {$sel:dataPreProcessingConfiguration:CreateModel' :: Maybe DataPreProcessingConfiguration
dataPreProcessingConfiguration = Maybe DataPreProcessingConfiguration
a} :: CreateModel)

-- | The data schema for the ML model being created.
createModel_datasetSchema :: Lens.Lens' CreateModel (Prelude.Maybe DatasetSchema)
createModel_datasetSchema :: Lens' CreateModel (Maybe DatasetSchema)
createModel_datasetSchema = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateModel' {Maybe DatasetSchema
datasetSchema :: Maybe DatasetSchema
$sel:datasetSchema:CreateModel' :: CreateModel -> Maybe DatasetSchema
datasetSchema} -> Maybe DatasetSchema
datasetSchema) (\s :: CreateModel
s@CreateModel' {} Maybe DatasetSchema
a -> CreateModel
s {$sel:datasetSchema:CreateModel' :: Maybe DatasetSchema
datasetSchema = Maybe DatasetSchema
a} :: CreateModel)

-- | Indicates the time reference in the dataset that should be used to end
-- the subset of evaluation data for the ML model.
createModel_evaluationDataEndTime :: Lens.Lens' CreateModel (Prelude.Maybe Prelude.UTCTime)
createModel_evaluationDataEndTime :: Lens' CreateModel (Maybe UTCTime)
createModel_evaluationDataEndTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateModel' {Maybe POSIX
evaluationDataEndTime :: Maybe POSIX
$sel:evaluationDataEndTime:CreateModel' :: CreateModel -> Maybe POSIX
evaluationDataEndTime} -> Maybe POSIX
evaluationDataEndTime) (\s :: CreateModel
s@CreateModel' {} Maybe POSIX
a -> CreateModel
s {$sel:evaluationDataEndTime:CreateModel' :: Maybe POSIX
evaluationDataEndTime = Maybe POSIX
a} :: CreateModel) 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 time reference in the dataset that should be used to begin
-- the subset of evaluation data for the ML model.
createModel_evaluationDataStartTime :: Lens.Lens' CreateModel (Prelude.Maybe Prelude.UTCTime)
createModel_evaluationDataStartTime :: Lens' CreateModel (Maybe UTCTime)
createModel_evaluationDataStartTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateModel' {Maybe POSIX
evaluationDataStartTime :: Maybe POSIX
$sel:evaluationDataStartTime:CreateModel' :: CreateModel -> Maybe POSIX
evaluationDataStartTime} -> Maybe POSIX
evaluationDataStartTime) (\s :: CreateModel
s@CreateModel' {} Maybe POSIX
a -> CreateModel
s {$sel:evaluationDataStartTime:CreateModel' :: Maybe POSIX
evaluationDataStartTime = Maybe POSIX
a} :: CreateModel) 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

-- | The input configuration for the labels being used for the ML model
-- that\'s being created.
createModel_labelsInputConfiguration :: Lens.Lens' CreateModel (Prelude.Maybe LabelsInputConfiguration)
createModel_labelsInputConfiguration :: Lens' CreateModel (Maybe LabelsInputConfiguration)
createModel_labelsInputConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateModel' {Maybe LabelsInputConfiguration
labelsInputConfiguration :: Maybe LabelsInputConfiguration
$sel:labelsInputConfiguration:CreateModel' :: CreateModel -> Maybe LabelsInputConfiguration
labelsInputConfiguration} -> Maybe LabelsInputConfiguration
labelsInputConfiguration) (\s :: CreateModel
s@CreateModel' {} Maybe LabelsInputConfiguration
a -> CreateModel
s {$sel:labelsInputConfiguration:CreateModel' :: Maybe LabelsInputConfiguration
labelsInputConfiguration = Maybe LabelsInputConfiguration
a} :: CreateModel)

-- | Indicates that the asset associated with this sensor has been shut off.
-- As long as this condition is met, Lookout for Equipment will not use
-- data from this asset for training, evaluation, or inference.
createModel_offCondition :: Lens.Lens' CreateModel (Prelude.Maybe Prelude.Text)
createModel_offCondition :: Lens' CreateModel (Maybe Text)
createModel_offCondition = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateModel' {Maybe Text
offCondition :: Maybe Text
$sel:offCondition:CreateModel' :: CreateModel -> Maybe Text
offCondition} -> Maybe Text
offCondition) (\s :: CreateModel
s@CreateModel' {} Maybe Text
a -> CreateModel
s {$sel:offCondition:CreateModel' :: Maybe Text
offCondition = Maybe Text
a} :: CreateModel)

-- | The Amazon Resource Name (ARN) of a role with permission to access the
-- data source being used to create the ML model.
createModel_roleArn :: Lens.Lens' CreateModel (Prelude.Maybe Prelude.Text)
createModel_roleArn :: Lens' CreateModel (Maybe Text)
createModel_roleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateModel' {Maybe Text
roleArn :: Maybe Text
$sel:roleArn:CreateModel' :: CreateModel -> Maybe Text
roleArn} -> Maybe Text
roleArn) (\s :: CreateModel
s@CreateModel' {} Maybe Text
a -> CreateModel
s {$sel:roleArn:CreateModel' :: Maybe Text
roleArn = Maybe Text
a} :: CreateModel)

-- | Provides the identifier of the KMS key used to encrypt model data by
-- Amazon Lookout for Equipment.
createModel_serverSideKmsKeyId :: Lens.Lens' CreateModel (Prelude.Maybe Prelude.Text)
createModel_serverSideKmsKeyId :: Lens' CreateModel (Maybe Text)
createModel_serverSideKmsKeyId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateModel' {Maybe Text
serverSideKmsKeyId :: Maybe Text
$sel:serverSideKmsKeyId:CreateModel' :: CreateModel -> Maybe Text
serverSideKmsKeyId} -> Maybe Text
serverSideKmsKeyId) (\s :: CreateModel
s@CreateModel' {} Maybe Text
a -> CreateModel
s {$sel:serverSideKmsKeyId:CreateModel' :: Maybe Text
serverSideKmsKeyId = Maybe Text
a} :: CreateModel)

-- | Any tags associated with the ML model being created.
createModel_tags :: Lens.Lens' CreateModel (Prelude.Maybe [Tag])
createModel_tags :: Lens' CreateModel (Maybe [Tag])
createModel_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateModel' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:CreateModel' :: CreateModel -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: CreateModel
s@CreateModel' {} Maybe [Tag]
a -> CreateModel
s {$sel:tags:CreateModel' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: CreateModel) 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 s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Indicates the time reference in the dataset that should be used to end
-- the subset of training data for the ML model.
createModel_trainingDataEndTime :: Lens.Lens' CreateModel (Prelude.Maybe Prelude.UTCTime)
createModel_trainingDataEndTime :: Lens' CreateModel (Maybe UTCTime)
createModel_trainingDataEndTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateModel' {Maybe POSIX
trainingDataEndTime :: Maybe POSIX
$sel:trainingDataEndTime:CreateModel' :: CreateModel -> Maybe POSIX
trainingDataEndTime} -> Maybe POSIX
trainingDataEndTime) (\s :: CreateModel
s@CreateModel' {} Maybe POSIX
a -> CreateModel
s {$sel:trainingDataEndTime:CreateModel' :: Maybe POSIX
trainingDataEndTime = Maybe POSIX
a} :: CreateModel) 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 time reference in the dataset that should be used to begin
-- the subset of training data for the ML model.
createModel_trainingDataStartTime :: Lens.Lens' CreateModel (Prelude.Maybe Prelude.UTCTime)
createModel_trainingDataStartTime :: Lens' CreateModel (Maybe UTCTime)
createModel_trainingDataStartTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateModel' {Maybe POSIX
trainingDataStartTime :: Maybe POSIX
$sel:trainingDataStartTime:CreateModel' :: CreateModel -> Maybe POSIX
trainingDataStartTime} -> Maybe POSIX
trainingDataStartTime) (\s :: CreateModel
s@CreateModel' {} Maybe POSIX
a -> CreateModel
s {$sel:trainingDataStartTime:CreateModel' :: Maybe POSIX
trainingDataStartTime = Maybe POSIX
a} :: CreateModel) 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

-- | The name for the ML model to be created.
createModel_modelName :: Lens.Lens' CreateModel Prelude.Text
createModel_modelName :: Lens' CreateModel Text
createModel_modelName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateModel' {Text
modelName :: Text
$sel:modelName:CreateModel' :: CreateModel -> Text
modelName} -> Text
modelName) (\s :: CreateModel
s@CreateModel' {} Text
a -> CreateModel
s {$sel:modelName:CreateModel' :: Text
modelName = Text
a} :: CreateModel)

-- | The name of the dataset for the ML model being created.
createModel_datasetName :: Lens.Lens' CreateModel Prelude.Text
createModel_datasetName :: Lens' CreateModel Text
createModel_datasetName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateModel' {Text
datasetName :: Text
$sel:datasetName:CreateModel' :: CreateModel -> Text
datasetName} -> Text
datasetName) (\s :: CreateModel
s@CreateModel' {} Text
a -> CreateModel
s {$sel:datasetName:CreateModel' :: Text
datasetName = Text
a} :: CreateModel)

-- | A unique identifier for the request. If you do not set the client
-- request token, Amazon Lookout for Equipment generates one.
createModel_clientToken :: Lens.Lens' CreateModel Prelude.Text
createModel_clientToken :: Lens' CreateModel Text
createModel_clientToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateModel' {Text
clientToken :: Text
$sel:clientToken:CreateModel' :: CreateModel -> Text
clientToken} -> Text
clientToken) (\s :: CreateModel
s@CreateModel' {} Text
a -> CreateModel
s {$sel:clientToken:CreateModel' :: Text
clientToken = Text
a} :: CreateModel)

instance Core.AWSRequest CreateModel where
  type AWSResponse CreateModel = CreateModelResponse
  request :: (Service -> Service) -> CreateModel -> Request CreateModel
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy CreateModel
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateModel)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text -> Maybe ModelStatus -> Int -> CreateModelResponse
CreateModelResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (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 -> Either String (Maybe a)
Data..?> Key
"Status")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable CreateModel where
  hashWithSalt :: Int -> CreateModel -> Int
hashWithSalt Int
_salt CreateModel' {Maybe [Tag]
Maybe Text
Maybe POSIX
Maybe DatasetSchema
Maybe LabelsInputConfiguration
Maybe DataPreProcessingConfiguration
Text
clientToken :: Text
datasetName :: Text
modelName :: Text
trainingDataStartTime :: Maybe POSIX
trainingDataEndTime :: Maybe POSIX
tags :: Maybe [Tag]
serverSideKmsKeyId :: Maybe Text
roleArn :: Maybe Text
offCondition :: Maybe Text
labelsInputConfiguration :: Maybe LabelsInputConfiguration
evaluationDataStartTime :: Maybe POSIX
evaluationDataEndTime :: Maybe POSIX
datasetSchema :: Maybe DatasetSchema
dataPreProcessingConfiguration :: Maybe DataPreProcessingConfiguration
$sel:clientToken:CreateModel' :: CreateModel -> Text
$sel:datasetName:CreateModel' :: CreateModel -> Text
$sel:modelName:CreateModel' :: CreateModel -> Text
$sel:trainingDataStartTime:CreateModel' :: CreateModel -> Maybe POSIX
$sel:trainingDataEndTime:CreateModel' :: CreateModel -> Maybe POSIX
$sel:tags:CreateModel' :: CreateModel -> Maybe [Tag]
$sel:serverSideKmsKeyId:CreateModel' :: CreateModel -> Maybe Text
$sel:roleArn:CreateModel' :: CreateModel -> Maybe Text
$sel:offCondition:CreateModel' :: CreateModel -> Maybe Text
$sel:labelsInputConfiguration:CreateModel' :: CreateModel -> Maybe LabelsInputConfiguration
$sel:evaluationDataStartTime:CreateModel' :: CreateModel -> Maybe POSIX
$sel:evaluationDataEndTime:CreateModel' :: CreateModel -> Maybe POSIX
$sel:datasetSchema:CreateModel' :: CreateModel -> Maybe DatasetSchema
$sel:dataPreProcessingConfiguration:CreateModel' :: CreateModel -> Maybe DataPreProcessingConfiguration
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DataPreProcessingConfiguration
dataPreProcessingConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DatasetSchema
datasetSchema
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
evaluationDataEndTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
evaluationDataStartTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LabelsInputConfiguration
labelsInputConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
offCondition
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
roleArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
serverSideKmsKeyId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
trainingDataEndTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
trainingDataStartTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
modelName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
datasetName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
clientToken

instance Prelude.NFData CreateModel where
  rnf :: CreateModel -> ()
rnf CreateModel' {Maybe [Tag]
Maybe Text
Maybe POSIX
Maybe DatasetSchema
Maybe LabelsInputConfiguration
Maybe DataPreProcessingConfiguration
Text
clientToken :: Text
datasetName :: Text
modelName :: Text
trainingDataStartTime :: Maybe POSIX
trainingDataEndTime :: Maybe POSIX
tags :: Maybe [Tag]
serverSideKmsKeyId :: Maybe Text
roleArn :: Maybe Text
offCondition :: Maybe Text
labelsInputConfiguration :: Maybe LabelsInputConfiguration
evaluationDataStartTime :: Maybe POSIX
evaluationDataEndTime :: Maybe POSIX
datasetSchema :: Maybe DatasetSchema
dataPreProcessingConfiguration :: Maybe DataPreProcessingConfiguration
$sel:clientToken:CreateModel' :: CreateModel -> Text
$sel:datasetName:CreateModel' :: CreateModel -> Text
$sel:modelName:CreateModel' :: CreateModel -> Text
$sel:trainingDataStartTime:CreateModel' :: CreateModel -> Maybe POSIX
$sel:trainingDataEndTime:CreateModel' :: CreateModel -> Maybe POSIX
$sel:tags:CreateModel' :: CreateModel -> Maybe [Tag]
$sel:serverSideKmsKeyId:CreateModel' :: CreateModel -> Maybe Text
$sel:roleArn:CreateModel' :: CreateModel -> Maybe Text
$sel:offCondition:CreateModel' :: CreateModel -> Maybe Text
$sel:labelsInputConfiguration:CreateModel' :: CreateModel -> Maybe LabelsInputConfiguration
$sel:evaluationDataStartTime:CreateModel' :: CreateModel -> Maybe POSIX
$sel:evaluationDataEndTime:CreateModel' :: CreateModel -> Maybe POSIX
$sel:datasetSchema:CreateModel' :: CreateModel -> Maybe DatasetSchema
$sel:dataPreProcessingConfiguration:CreateModel' :: CreateModel -> Maybe DataPreProcessingConfiguration
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe DataPreProcessingConfiguration
dataPreProcessingConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DatasetSchema
datasetSchema
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
evaluationDataEndTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
evaluationDataStartTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LabelsInputConfiguration
labelsInputConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
offCondition
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
roleArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
serverSideKmsKeyId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Tag]
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
trainingDataEndTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
trainingDataStartTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
modelName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
datasetName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
clientToken

instance Data.ToHeaders CreateModel where
  toHeaders :: CreateModel -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"X-Amz-Target"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"AWSLookoutEquipmentFrontendService.CreateModel" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.0" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON CreateModel where
  toJSON :: CreateModel -> Value
toJSON CreateModel' {Maybe [Tag]
Maybe Text
Maybe POSIX
Maybe DatasetSchema
Maybe LabelsInputConfiguration
Maybe DataPreProcessingConfiguration
Text
clientToken :: Text
datasetName :: Text
modelName :: Text
trainingDataStartTime :: Maybe POSIX
trainingDataEndTime :: Maybe POSIX
tags :: Maybe [Tag]
serverSideKmsKeyId :: Maybe Text
roleArn :: Maybe Text
offCondition :: Maybe Text
labelsInputConfiguration :: Maybe LabelsInputConfiguration
evaluationDataStartTime :: Maybe POSIX
evaluationDataEndTime :: Maybe POSIX
datasetSchema :: Maybe DatasetSchema
dataPreProcessingConfiguration :: Maybe DataPreProcessingConfiguration
$sel:clientToken:CreateModel' :: CreateModel -> Text
$sel:datasetName:CreateModel' :: CreateModel -> Text
$sel:modelName:CreateModel' :: CreateModel -> Text
$sel:trainingDataStartTime:CreateModel' :: CreateModel -> Maybe POSIX
$sel:trainingDataEndTime:CreateModel' :: CreateModel -> Maybe POSIX
$sel:tags:CreateModel' :: CreateModel -> Maybe [Tag]
$sel:serverSideKmsKeyId:CreateModel' :: CreateModel -> Maybe Text
$sel:roleArn:CreateModel' :: CreateModel -> Maybe Text
$sel:offCondition:CreateModel' :: CreateModel -> Maybe Text
$sel:labelsInputConfiguration:CreateModel' :: CreateModel -> Maybe LabelsInputConfiguration
$sel:evaluationDataStartTime:CreateModel' :: CreateModel -> Maybe POSIX
$sel:evaluationDataEndTime:CreateModel' :: CreateModel -> Maybe POSIX
$sel:datasetSchema:CreateModel' :: CreateModel -> Maybe DatasetSchema
$sel:dataPreProcessingConfiguration:CreateModel' :: CreateModel -> Maybe DataPreProcessingConfiguration
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"DataPreProcessingConfiguration" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DataPreProcessingConfiguration
dataPreProcessingConfiguration,
            (Key
"DatasetSchema" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DatasetSchema
datasetSchema,
            (Key
"EvaluationDataEndTime" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe POSIX
evaluationDataEndTime,
            (Key
"EvaluationDataStartTime" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe POSIX
evaluationDataStartTime,
            (Key
"LabelsInputConfiguration" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe LabelsInputConfiguration
labelsInputConfiguration,
            (Key
"OffCondition" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
offCondition,
            (Key
"RoleArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
roleArn,
            (Key
"ServerSideKmsKeyId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
serverSideKmsKeyId,
            (Key
"Tags" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Tag]
tags,
            (Key
"TrainingDataEndTime" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe POSIX
trainingDataEndTime,
            (Key
"TrainingDataStartTime" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe POSIX
trainingDataStartTime,
            forall a. a -> Maybe a
Prelude.Just (Key
"ModelName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
modelName),
            forall a. a -> Maybe a
Prelude.Just (Key
"DatasetName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
datasetName),
            forall a. a -> Maybe a
Prelude.Just (Key
"ClientToken" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
clientToken)
          ]
      )

instance Data.ToPath CreateModel where
  toPath :: CreateModel -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance Data.ToQuery CreateModel where
  toQuery :: CreateModel -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newCreateModelResponse' smart constructor.
data CreateModelResponse = CreateModelResponse'
  { -- | The Amazon Resource Name (ARN) of the model being created.
    CreateModelResponse -> Maybe Text
modelArn :: Prelude.Maybe Prelude.Text,
    -- | Indicates the status of the @CreateModel@ operation.
    CreateModelResponse -> Maybe ModelStatus
status :: Prelude.Maybe ModelStatus,
    -- | The response's http status code.
    CreateModelResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (CreateModelResponse -> CreateModelResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateModelResponse -> CreateModelResponse -> Bool
$c/= :: CreateModelResponse -> CreateModelResponse -> Bool
== :: CreateModelResponse -> CreateModelResponse -> Bool
$c== :: CreateModelResponse -> CreateModelResponse -> Bool
Prelude.Eq, ReadPrec [CreateModelResponse]
ReadPrec CreateModelResponse
Int -> ReadS CreateModelResponse
ReadS [CreateModelResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateModelResponse]
$creadListPrec :: ReadPrec [CreateModelResponse]
readPrec :: ReadPrec CreateModelResponse
$creadPrec :: ReadPrec CreateModelResponse
readList :: ReadS [CreateModelResponse]
$creadList :: ReadS [CreateModelResponse]
readsPrec :: Int -> ReadS CreateModelResponse
$creadsPrec :: Int -> ReadS CreateModelResponse
Prelude.Read, Int -> CreateModelResponse -> ShowS
[CreateModelResponse] -> ShowS
CreateModelResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateModelResponse] -> ShowS
$cshowList :: [CreateModelResponse] -> ShowS
show :: CreateModelResponse -> String
$cshow :: CreateModelResponse -> String
showsPrec :: Int -> CreateModelResponse -> ShowS
$cshowsPrec :: Int -> CreateModelResponse -> ShowS
Prelude.Show, forall x. Rep CreateModelResponse x -> CreateModelResponse
forall x. CreateModelResponse -> Rep CreateModelResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateModelResponse x -> CreateModelResponse
$cfrom :: forall x. CreateModelResponse -> Rep CreateModelResponse x
Prelude.Generic)

-- |
-- Create a value of 'CreateModelResponse' 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:
--
-- 'modelArn', 'createModelResponse_modelArn' - The Amazon Resource Name (ARN) of the model being created.
--
-- 'status', 'createModelResponse_status' - Indicates the status of the @CreateModel@ operation.
--
-- 'httpStatus', 'createModelResponse_httpStatus' - The response's http status code.
newCreateModelResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  CreateModelResponse
newCreateModelResponse :: Int -> CreateModelResponse
newCreateModelResponse Int
pHttpStatus_ =
  CreateModelResponse'
    { $sel:modelArn:CreateModelResponse' :: Maybe Text
modelArn = forall a. Maybe a
Prelude.Nothing,
      $sel:status:CreateModelResponse' :: Maybe ModelStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:CreateModelResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The Amazon Resource Name (ARN) of the model being created.
createModelResponse_modelArn :: Lens.Lens' CreateModelResponse (Prelude.Maybe Prelude.Text)
createModelResponse_modelArn :: Lens' CreateModelResponse (Maybe Text)
createModelResponse_modelArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateModelResponse' {Maybe Text
modelArn :: Maybe Text
$sel:modelArn:CreateModelResponse' :: CreateModelResponse -> Maybe Text
modelArn} -> Maybe Text
modelArn) (\s :: CreateModelResponse
s@CreateModelResponse' {} Maybe Text
a -> CreateModelResponse
s {$sel:modelArn:CreateModelResponse' :: Maybe Text
modelArn = Maybe Text
a} :: CreateModelResponse)

-- | Indicates the status of the @CreateModel@ operation.
createModelResponse_status :: Lens.Lens' CreateModelResponse (Prelude.Maybe ModelStatus)
createModelResponse_status :: Lens' CreateModelResponse (Maybe ModelStatus)
createModelResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateModelResponse' {Maybe ModelStatus
status :: Maybe ModelStatus
$sel:status:CreateModelResponse' :: CreateModelResponse -> Maybe ModelStatus
status} -> Maybe ModelStatus
status) (\s :: CreateModelResponse
s@CreateModelResponse' {} Maybe ModelStatus
a -> CreateModelResponse
s {$sel:status:CreateModelResponse' :: Maybe ModelStatus
status = Maybe ModelStatus
a} :: CreateModelResponse)

-- | The response's http status code.
createModelResponse_httpStatus :: Lens.Lens' CreateModelResponse Prelude.Int
createModelResponse_httpStatus :: Lens' CreateModelResponse Int
createModelResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateModelResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateModelResponse' :: CreateModelResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateModelResponse
s@CreateModelResponse' {} Int
a -> CreateModelResponse
s {$sel:httpStatus:CreateModelResponse' :: Int
httpStatus = Int
a} :: CreateModelResponse)

instance Prelude.NFData CreateModelResponse where
  rnf :: CreateModelResponse -> ()
rnf CreateModelResponse' {Int
Maybe Text
Maybe ModelStatus
httpStatus :: Int
status :: Maybe ModelStatus
modelArn :: Maybe Text
$sel:httpStatus:CreateModelResponse' :: CreateModelResponse -> Int
$sel:status:CreateModelResponse' :: CreateModelResponse -> Maybe ModelStatus
$sel:modelArn:CreateModelResponse' :: CreateModelResponse -> Maybe Text
..} =
    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 ModelStatus
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus