{-# 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.FraudDetector.UpdateModelVersion
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Updates a model version. Updating a model version retrains an existing
-- model version using updated training data and produces a new minor
-- version of the model. You can update the training data set location and
-- data access role attributes using this action. This action creates and
-- trains a new minor version of the model, for example version 1.01, 1.02,
-- 1.03.
module Amazonka.FraudDetector.UpdateModelVersion
  ( -- * Creating a Request
    UpdateModelVersion (..),
    newUpdateModelVersion,

    -- * Request Lenses
    updateModelVersion_externalEventsDetail,
    updateModelVersion_ingestedEventsDetail,
    updateModelVersion_tags,
    updateModelVersion_modelId,
    updateModelVersion_modelType,
    updateModelVersion_majorVersionNumber,

    -- * Destructuring the Response
    UpdateModelVersionResponse (..),
    newUpdateModelVersionResponse,

    -- * Response Lenses
    updateModelVersionResponse_modelId,
    updateModelVersionResponse_modelType,
    updateModelVersionResponse_modelVersionNumber,
    updateModelVersionResponse_status,
    updateModelVersionResponse_httpStatus,
  )
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
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newUpdateModelVersion' smart constructor.
data UpdateModelVersion = UpdateModelVersion'
  { -- | The details of the external events data used for training the model
    -- version. Required if @trainingDataSource@ is @EXTERNAL_EVENTS@.
    UpdateModelVersion -> Maybe ExternalEventsDetail
externalEventsDetail :: Prelude.Maybe ExternalEventsDetail,
    -- | The details of the ingested event used for training the model version.
    -- Required if your @trainingDataSource@ is @INGESTED_EVENTS@.
    UpdateModelVersion -> Maybe IngestedEventsDetail
ingestedEventsDetail :: Prelude.Maybe IngestedEventsDetail,
    -- | A collection of key and value pairs.
    UpdateModelVersion -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
    -- | The model ID.
    UpdateModelVersion -> Text
modelId :: Prelude.Text,
    -- | The model type.
    UpdateModelVersion -> ModelTypeEnum
modelType :: ModelTypeEnum,
    -- | The major version number.
    UpdateModelVersion -> Text
majorVersionNumber :: Prelude.Text
  }
  deriving (UpdateModelVersion -> UpdateModelVersion -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateModelVersion -> UpdateModelVersion -> Bool
$c/= :: UpdateModelVersion -> UpdateModelVersion -> Bool
== :: UpdateModelVersion -> UpdateModelVersion -> Bool
$c== :: UpdateModelVersion -> UpdateModelVersion -> Bool
Prelude.Eq, ReadPrec [UpdateModelVersion]
ReadPrec UpdateModelVersion
Int -> ReadS UpdateModelVersion
ReadS [UpdateModelVersion]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateModelVersion]
$creadListPrec :: ReadPrec [UpdateModelVersion]
readPrec :: ReadPrec UpdateModelVersion
$creadPrec :: ReadPrec UpdateModelVersion
readList :: ReadS [UpdateModelVersion]
$creadList :: ReadS [UpdateModelVersion]
readsPrec :: Int -> ReadS UpdateModelVersion
$creadsPrec :: Int -> ReadS UpdateModelVersion
Prelude.Read, Int -> UpdateModelVersion -> ShowS
[UpdateModelVersion] -> ShowS
UpdateModelVersion -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateModelVersion] -> ShowS
$cshowList :: [UpdateModelVersion] -> ShowS
show :: UpdateModelVersion -> String
$cshow :: UpdateModelVersion -> String
showsPrec :: Int -> UpdateModelVersion -> ShowS
$cshowsPrec :: Int -> UpdateModelVersion -> ShowS
Prelude.Show, forall x. Rep UpdateModelVersion x -> UpdateModelVersion
forall x. UpdateModelVersion -> Rep UpdateModelVersion x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateModelVersion x -> UpdateModelVersion
$cfrom :: forall x. UpdateModelVersion -> Rep UpdateModelVersion x
Prelude.Generic)

-- |
-- Create a value of 'UpdateModelVersion' 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:
--
-- 'externalEventsDetail', 'updateModelVersion_externalEventsDetail' - The details of the external events data used for training the model
-- version. Required if @trainingDataSource@ is @EXTERNAL_EVENTS@.
--
-- 'ingestedEventsDetail', 'updateModelVersion_ingestedEventsDetail' - The details of the ingested event used for training the model version.
-- Required if your @trainingDataSource@ is @INGESTED_EVENTS@.
--
-- 'tags', 'updateModelVersion_tags' - A collection of key and value pairs.
--
-- 'modelId', 'updateModelVersion_modelId' - The model ID.
--
-- 'modelType', 'updateModelVersion_modelType' - The model type.
--
-- 'majorVersionNumber', 'updateModelVersion_majorVersionNumber' - The major version number.
newUpdateModelVersion ::
  -- | 'modelId'
  Prelude.Text ->
  -- | 'modelType'
  ModelTypeEnum ->
  -- | 'majorVersionNumber'
  Prelude.Text ->
  UpdateModelVersion
newUpdateModelVersion :: Text -> ModelTypeEnum -> Text -> UpdateModelVersion
newUpdateModelVersion
  Text
pModelId_
  ModelTypeEnum
pModelType_
  Text
pMajorVersionNumber_ =
    UpdateModelVersion'
      { $sel:externalEventsDetail:UpdateModelVersion' :: Maybe ExternalEventsDetail
externalEventsDetail =
          forall a. Maybe a
Prelude.Nothing,
        $sel:ingestedEventsDetail:UpdateModelVersion' :: Maybe IngestedEventsDetail
ingestedEventsDetail = forall a. Maybe a
Prelude.Nothing,
        $sel:tags:UpdateModelVersion' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
        $sel:modelId:UpdateModelVersion' :: Text
modelId = Text
pModelId_,
        $sel:modelType:UpdateModelVersion' :: ModelTypeEnum
modelType = ModelTypeEnum
pModelType_,
        $sel:majorVersionNumber:UpdateModelVersion' :: Text
majorVersionNumber = Text
pMajorVersionNumber_
      }

-- | The details of the external events data used for training the model
-- version. Required if @trainingDataSource@ is @EXTERNAL_EVENTS@.
updateModelVersion_externalEventsDetail :: Lens.Lens' UpdateModelVersion (Prelude.Maybe ExternalEventsDetail)
updateModelVersion_externalEventsDetail :: Lens' UpdateModelVersion (Maybe ExternalEventsDetail)
updateModelVersion_externalEventsDetail = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateModelVersion' {Maybe ExternalEventsDetail
externalEventsDetail :: Maybe ExternalEventsDetail
$sel:externalEventsDetail:UpdateModelVersion' :: UpdateModelVersion -> Maybe ExternalEventsDetail
externalEventsDetail} -> Maybe ExternalEventsDetail
externalEventsDetail) (\s :: UpdateModelVersion
s@UpdateModelVersion' {} Maybe ExternalEventsDetail
a -> UpdateModelVersion
s {$sel:externalEventsDetail:UpdateModelVersion' :: Maybe ExternalEventsDetail
externalEventsDetail = Maybe ExternalEventsDetail
a} :: UpdateModelVersion)

-- | The details of the ingested event used for training the model version.
-- Required if your @trainingDataSource@ is @INGESTED_EVENTS@.
updateModelVersion_ingestedEventsDetail :: Lens.Lens' UpdateModelVersion (Prelude.Maybe IngestedEventsDetail)
updateModelVersion_ingestedEventsDetail :: Lens' UpdateModelVersion (Maybe IngestedEventsDetail)
updateModelVersion_ingestedEventsDetail = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateModelVersion' {Maybe IngestedEventsDetail
ingestedEventsDetail :: Maybe IngestedEventsDetail
$sel:ingestedEventsDetail:UpdateModelVersion' :: UpdateModelVersion -> Maybe IngestedEventsDetail
ingestedEventsDetail} -> Maybe IngestedEventsDetail
ingestedEventsDetail) (\s :: UpdateModelVersion
s@UpdateModelVersion' {} Maybe IngestedEventsDetail
a -> UpdateModelVersion
s {$sel:ingestedEventsDetail:UpdateModelVersion' :: Maybe IngestedEventsDetail
ingestedEventsDetail = Maybe IngestedEventsDetail
a} :: UpdateModelVersion)

-- | A collection of key and value pairs.
updateModelVersion_tags :: Lens.Lens' UpdateModelVersion (Prelude.Maybe [Tag])
updateModelVersion_tags :: Lens' UpdateModelVersion (Maybe [Tag])
updateModelVersion_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateModelVersion' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:UpdateModelVersion' :: UpdateModelVersion -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: UpdateModelVersion
s@UpdateModelVersion' {} Maybe [Tag]
a -> UpdateModelVersion
s {$sel:tags:UpdateModelVersion' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: UpdateModelVersion) 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

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

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

-- | The major version number.
updateModelVersion_majorVersionNumber :: Lens.Lens' UpdateModelVersion Prelude.Text
updateModelVersion_majorVersionNumber :: Lens' UpdateModelVersion Text
updateModelVersion_majorVersionNumber = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateModelVersion' {Text
majorVersionNumber :: Text
$sel:majorVersionNumber:UpdateModelVersion' :: UpdateModelVersion -> Text
majorVersionNumber} -> Text
majorVersionNumber) (\s :: UpdateModelVersion
s@UpdateModelVersion' {} Text
a -> UpdateModelVersion
s {$sel:majorVersionNumber:UpdateModelVersion' :: Text
majorVersionNumber = Text
a} :: UpdateModelVersion)

instance Core.AWSRequest UpdateModelVersion where
  type
    AWSResponse UpdateModelVersion =
      UpdateModelVersionResponse
  request :: (Service -> Service)
-> UpdateModelVersion -> Request UpdateModelVersion
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 UpdateModelVersion
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse UpdateModelVersion)))
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 ModelTypeEnum
-> Maybe Text
-> Maybe Text
-> Int
-> UpdateModelVersionResponse
UpdateModelVersionResponse'
            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
"modelId")
            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
"modelType")
            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
"modelVersionNumber")
            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 UpdateModelVersion where
  hashWithSalt :: Int -> UpdateModelVersion -> Int
hashWithSalt Int
_salt UpdateModelVersion' {Maybe [Tag]
Maybe ExternalEventsDetail
Maybe IngestedEventsDetail
Text
ModelTypeEnum
majorVersionNumber :: Text
modelType :: ModelTypeEnum
modelId :: Text
tags :: Maybe [Tag]
ingestedEventsDetail :: Maybe IngestedEventsDetail
externalEventsDetail :: Maybe ExternalEventsDetail
$sel:majorVersionNumber:UpdateModelVersion' :: UpdateModelVersion -> Text
$sel:modelType:UpdateModelVersion' :: UpdateModelVersion -> ModelTypeEnum
$sel:modelId:UpdateModelVersion' :: UpdateModelVersion -> Text
$sel:tags:UpdateModelVersion' :: UpdateModelVersion -> Maybe [Tag]
$sel:ingestedEventsDetail:UpdateModelVersion' :: UpdateModelVersion -> Maybe IngestedEventsDetail
$sel:externalEventsDetail:UpdateModelVersion' :: UpdateModelVersion -> Maybe ExternalEventsDetail
..} =
    Int
_salt
      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 [Tag]
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
modelId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ModelTypeEnum
modelType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
majorVersionNumber

instance Prelude.NFData UpdateModelVersion where
  rnf :: UpdateModelVersion -> ()
rnf UpdateModelVersion' {Maybe [Tag]
Maybe ExternalEventsDetail
Maybe IngestedEventsDetail
Text
ModelTypeEnum
majorVersionNumber :: Text
modelType :: ModelTypeEnum
modelId :: Text
tags :: Maybe [Tag]
ingestedEventsDetail :: Maybe IngestedEventsDetail
externalEventsDetail :: Maybe ExternalEventsDetail
$sel:majorVersionNumber:UpdateModelVersion' :: UpdateModelVersion -> Text
$sel:modelType:UpdateModelVersion' :: UpdateModelVersion -> ModelTypeEnum
$sel:modelId:UpdateModelVersion' :: UpdateModelVersion -> Text
$sel:tags:UpdateModelVersion' :: UpdateModelVersion -> Maybe [Tag]
$sel:ingestedEventsDetail:UpdateModelVersion' :: UpdateModelVersion -> Maybe IngestedEventsDetail
$sel:externalEventsDetail:UpdateModelVersion' :: UpdateModelVersion -> Maybe ExternalEventsDetail
..} =
    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 [Tag]
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
modelId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ModelTypeEnum
modelType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
majorVersionNumber

instance Data.ToHeaders UpdateModelVersion where
  toHeaders :: UpdateModelVersion -> 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
"AWSHawksNestServiceFacade.UpdateModelVersion" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON UpdateModelVersion where
  toJSON :: UpdateModelVersion -> Value
toJSON UpdateModelVersion' {Maybe [Tag]
Maybe ExternalEventsDetail
Maybe IngestedEventsDetail
Text
ModelTypeEnum
majorVersionNumber :: Text
modelType :: ModelTypeEnum
modelId :: Text
tags :: Maybe [Tag]
ingestedEventsDetail :: Maybe IngestedEventsDetail
externalEventsDetail :: Maybe ExternalEventsDetail
$sel:majorVersionNumber:UpdateModelVersion' :: UpdateModelVersion -> Text
$sel:modelType:UpdateModelVersion' :: UpdateModelVersion -> ModelTypeEnum
$sel:modelId:UpdateModelVersion' :: UpdateModelVersion -> Text
$sel:tags:UpdateModelVersion' :: UpdateModelVersion -> Maybe [Tag]
$sel:ingestedEventsDetail:UpdateModelVersion' :: UpdateModelVersion -> Maybe IngestedEventsDetail
$sel:externalEventsDetail:UpdateModelVersion' :: UpdateModelVersion -> Maybe ExternalEventsDetail
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"externalEventsDetail" 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 ExternalEventsDetail
externalEventsDetail,
            (Key
"ingestedEventsDetail" 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 IngestedEventsDetail
ingestedEventsDetail,
            (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,
            forall a. a -> Maybe a
Prelude.Just (Key
"modelId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
modelId),
            forall a. a -> Maybe a
Prelude.Just (Key
"modelType" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= ModelTypeEnum
modelType),
            forall a. a -> Maybe a
Prelude.Just
              (Key
"majorVersionNumber" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
majorVersionNumber)
          ]
      )

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

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

-- | /See:/ 'newUpdateModelVersionResponse' smart constructor.
data UpdateModelVersionResponse = UpdateModelVersionResponse'
  { -- | The model ID.
    UpdateModelVersionResponse -> Maybe Text
modelId :: Prelude.Maybe Prelude.Text,
    -- | The model type.
    UpdateModelVersionResponse -> Maybe ModelTypeEnum
modelType :: Prelude.Maybe ModelTypeEnum,
    -- | The model version number of the model version updated.
    UpdateModelVersionResponse -> Maybe Text
modelVersionNumber :: Prelude.Maybe Prelude.Text,
    -- | The status of the updated model version.
    UpdateModelVersionResponse -> Maybe Text
status :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    UpdateModelVersionResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (UpdateModelVersionResponse -> UpdateModelVersionResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateModelVersionResponse -> UpdateModelVersionResponse -> Bool
$c/= :: UpdateModelVersionResponse -> UpdateModelVersionResponse -> Bool
== :: UpdateModelVersionResponse -> UpdateModelVersionResponse -> Bool
$c== :: UpdateModelVersionResponse -> UpdateModelVersionResponse -> Bool
Prelude.Eq, ReadPrec [UpdateModelVersionResponse]
ReadPrec UpdateModelVersionResponse
Int -> ReadS UpdateModelVersionResponse
ReadS [UpdateModelVersionResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateModelVersionResponse]
$creadListPrec :: ReadPrec [UpdateModelVersionResponse]
readPrec :: ReadPrec UpdateModelVersionResponse
$creadPrec :: ReadPrec UpdateModelVersionResponse
readList :: ReadS [UpdateModelVersionResponse]
$creadList :: ReadS [UpdateModelVersionResponse]
readsPrec :: Int -> ReadS UpdateModelVersionResponse
$creadsPrec :: Int -> ReadS UpdateModelVersionResponse
Prelude.Read, Int -> UpdateModelVersionResponse -> ShowS
[UpdateModelVersionResponse] -> ShowS
UpdateModelVersionResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateModelVersionResponse] -> ShowS
$cshowList :: [UpdateModelVersionResponse] -> ShowS
show :: UpdateModelVersionResponse -> String
$cshow :: UpdateModelVersionResponse -> String
showsPrec :: Int -> UpdateModelVersionResponse -> ShowS
$cshowsPrec :: Int -> UpdateModelVersionResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateModelVersionResponse x -> UpdateModelVersionResponse
forall x.
UpdateModelVersionResponse -> Rep UpdateModelVersionResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateModelVersionResponse x -> UpdateModelVersionResponse
$cfrom :: forall x.
UpdateModelVersionResponse -> Rep UpdateModelVersionResponse x
Prelude.Generic)

-- |
-- Create a value of 'UpdateModelVersionResponse' 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:
--
-- 'modelId', 'updateModelVersionResponse_modelId' - The model ID.
--
-- 'modelType', 'updateModelVersionResponse_modelType' - The model type.
--
-- 'modelVersionNumber', 'updateModelVersionResponse_modelVersionNumber' - The model version number of the model version updated.
--
-- 'status', 'updateModelVersionResponse_status' - The status of the updated model version.
--
-- 'httpStatus', 'updateModelVersionResponse_httpStatus' - The response's http status code.
newUpdateModelVersionResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  UpdateModelVersionResponse
newUpdateModelVersionResponse :: Int -> UpdateModelVersionResponse
newUpdateModelVersionResponse Int
pHttpStatus_ =
  UpdateModelVersionResponse'
    { $sel:modelId:UpdateModelVersionResponse' :: Maybe Text
modelId =
        forall a. Maybe a
Prelude.Nothing,
      $sel:modelType:UpdateModelVersionResponse' :: Maybe ModelTypeEnum
modelType = forall a. Maybe a
Prelude.Nothing,
      $sel:modelVersionNumber:UpdateModelVersionResponse' :: Maybe Text
modelVersionNumber = forall a. Maybe a
Prelude.Nothing,
      $sel:status:UpdateModelVersionResponse' :: Maybe Text
status = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:UpdateModelVersionResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

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

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

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

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

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

instance Prelude.NFData UpdateModelVersionResponse where
  rnf :: UpdateModelVersionResponse -> ()
rnf UpdateModelVersionResponse' {Int
Maybe Text
Maybe ModelTypeEnum
httpStatus :: Int
status :: Maybe Text
modelVersionNumber :: Maybe Text
modelType :: Maybe ModelTypeEnum
modelId :: Maybe Text
$sel:httpStatus:UpdateModelVersionResponse' :: UpdateModelVersionResponse -> Int
$sel:status:UpdateModelVersionResponse' :: UpdateModelVersionResponse -> Maybe Text
$sel:modelVersionNumber:UpdateModelVersionResponse' :: UpdateModelVersionResponse -> Maybe Text
$sel:modelType:UpdateModelVersionResponse' :: UpdateModelVersionResponse -> Maybe ModelTypeEnum
$sel:modelId:UpdateModelVersionResponse' :: UpdateModelVersionResponse -> Maybe Text
..} =
    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 Int
httpStatus