{-# 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.Glue.UpdateMLTransform
-- 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 an existing machine learning transform. Call this operation to
-- tune the algorithm parameters to achieve better results.
--
-- After calling this operation, you can call the
-- @StartMLEvaluationTaskRun@ operation to assess how well your new
-- parameters achieved your goals (such as improving the quality of your
-- machine learning transform, or making it more cost-effective).
module Amazonka.Glue.UpdateMLTransform
  ( -- * Creating a Request
    UpdateMLTransform (..),
    newUpdateMLTransform,

    -- * Request Lenses
    updateMLTransform_description,
    updateMLTransform_glueVersion,
    updateMLTransform_maxCapacity,
    updateMLTransform_maxRetries,
    updateMLTransform_name,
    updateMLTransform_numberOfWorkers,
    updateMLTransform_parameters,
    updateMLTransform_role,
    updateMLTransform_timeout,
    updateMLTransform_workerType,
    updateMLTransform_transformId,

    -- * Destructuring the Response
    UpdateMLTransformResponse (..),
    newUpdateMLTransformResponse,

    -- * Response Lenses
    updateMLTransformResponse_transformId,
    updateMLTransformResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Glue.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newUpdateMLTransform' smart constructor.
data UpdateMLTransform = UpdateMLTransform'
  { -- | A description of the transform. The default is an empty string.
    UpdateMLTransform -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | This value determines which version of Glue this machine learning
    -- transform is compatible with. Glue 1.0 is recommended for most
    -- customers. If the value is not set, the Glue compatibility defaults to
    -- Glue 0.9. For more information, see
    -- <https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions Glue Versions>
    -- in the developer guide.
    UpdateMLTransform -> Maybe Text
glueVersion :: Prelude.Maybe Prelude.Text,
    -- | The number of Glue data processing units (DPUs) that are allocated to
    -- task runs for this transform. You can allocate from 2 to 100 DPUs; the
    -- default is 10. A DPU is a relative measure of processing power that
    -- consists of 4 vCPUs of compute capacity and 16 GB of memory. For more
    -- information, see the
    -- <https://aws.amazon.com/glue/pricing/ Glue pricing page>.
    --
    -- When the @WorkerType@ field is set to a value other than @Standard@, the
    -- @MaxCapacity@ field is set automatically and becomes read-only.
    UpdateMLTransform -> Maybe Double
maxCapacity :: Prelude.Maybe Prelude.Double,
    -- | The maximum number of times to retry a task for this transform after a
    -- task run fails.
    UpdateMLTransform -> Maybe Int
maxRetries :: Prelude.Maybe Prelude.Int,
    -- | The unique name that you gave the transform when you created it.
    UpdateMLTransform -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | The number of workers of a defined @workerType@ that are allocated when
    -- this task runs.
    UpdateMLTransform -> Maybe Int
numberOfWorkers :: Prelude.Maybe Prelude.Int,
    -- | The configuration parameters that are specific to the transform type
    -- (algorithm) used. Conditionally dependent on the transform type.
    UpdateMLTransform -> Maybe TransformParameters
parameters :: Prelude.Maybe TransformParameters,
    -- | The name or Amazon Resource Name (ARN) of the IAM role with the required
    -- permissions.
    UpdateMLTransform -> Maybe Text
role' :: Prelude.Maybe Prelude.Text,
    -- | The timeout for a task run for this transform in minutes. This is the
    -- maximum time that a task run for this transform can consume resources
    -- before it is terminated and enters @TIMEOUT@ status. The default is
    -- 2,880 minutes (48 hours).
    UpdateMLTransform -> Maybe Natural
timeout :: Prelude.Maybe Prelude.Natural,
    -- | The type of predefined worker that is allocated when this task runs.
    -- Accepts a value of Standard, G.1X, or G.2X.
    --
    -- -   For the @Standard@ worker type, each worker provides 4 vCPU, 16 GB
    --     of memory and a 50GB disk, and 2 executors per worker.
    --
    -- -   For the @G.1X@ worker type, each worker provides 4 vCPU, 16 GB of
    --     memory and a 64GB disk, and 1 executor per worker.
    --
    -- -   For the @G.2X@ worker type, each worker provides 8 vCPU, 32 GB of
    --     memory and a 128GB disk, and 1 executor per worker.
    UpdateMLTransform -> Maybe WorkerType
workerType :: Prelude.Maybe WorkerType,
    -- | A unique identifier that was generated when the transform was created.
    UpdateMLTransform -> Text
transformId :: Prelude.Text
  }
  deriving (UpdateMLTransform -> UpdateMLTransform -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateMLTransform -> UpdateMLTransform -> Bool
$c/= :: UpdateMLTransform -> UpdateMLTransform -> Bool
== :: UpdateMLTransform -> UpdateMLTransform -> Bool
$c== :: UpdateMLTransform -> UpdateMLTransform -> Bool
Prelude.Eq, ReadPrec [UpdateMLTransform]
ReadPrec UpdateMLTransform
Int -> ReadS UpdateMLTransform
ReadS [UpdateMLTransform]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateMLTransform]
$creadListPrec :: ReadPrec [UpdateMLTransform]
readPrec :: ReadPrec UpdateMLTransform
$creadPrec :: ReadPrec UpdateMLTransform
readList :: ReadS [UpdateMLTransform]
$creadList :: ReadS [UpdateMLTransform]
readsPrec :: Int -> ReadS UpdateMLTransform
$creadsPrec :: Int -> ReadS UpdateMLTransform
Prelude.Read, Int -> UpdateMLTransform -> ShowS
[UpdateMLTransform] -> ShowS
UpdateMLTransform -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateMLTransform] -> ShowS
$cshowList :: [UpdateMLTransform] -> ShowS
show :: UpdateMLTransform -> String
$cshow :: UpdateMLTransform -> String
showsPrec :: Int -> UpdateMLTransform -> ShowS
$cshowsPrec :: Int -> UpdateMLTransform -> ShowS
Prelude.Show, forall x. Rep UpdateMLTransform x -> UpdateMLTransform
forall x. UpdateMLTransform -> Rep UpdateMLTransform x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateMLTransform x -> UpdateMLTransform
$cfrom :: forall x. UpdateMLTransform -> Rep UpdateMLTransform x
Prelude.Generic)

-- |
-- Create a value of 'UpdateMLTransform' 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:
--
-- 'description', 'updateMLTransform_description' - A description of the transform. The default is an empty string.
--
-- 'glueVersion', 'updateMLTransform_glueVersion' - This value determines which version of Glue this machine learning
-- transform is compatible with. Glue 1.0 is recommended for most
-- customers. If the value is not set, the Glue compatibility defaults to
-- Glue 0.9. For more information, see
-- <https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions Glue Versions>
-- in the developer guide.
--
-- 'maxCapacity', 'updateMLTransform_maxCapacity' - The number of Glue data processing units (DPUs) that are allocated to
-- task runs for this transform. You can allocate from 2 to 100 DPUs; the
-- default is 10. A DPU is a relative measure of processing power that
-- consists of 4 vCPUs of compute capacity and 16 GB of memory. For more
-- information, see the
-- <https://aws.amazon.com/glue/pricing/ Glue pricing page>.
--
-- When the @WorkerType@ field is set to a value other than @Standard@, the
-- @MaxCapacity@ field is set automatically and becomes read-only.
--
-- 'maxRetries', 'updateMLTransform_maxRetries' - The maximum number of times to retry a task for this transform after a
-- task run fails.
--
-- 'name', 'updateMLTransform_name' - The unique name that you gave the transform when you created it.
--
-- 'numberOfWorkers', 'updateMLTransform_numberOfWorkers' - The number of workers of a defined @workerType@ that are allocated when
-- this task runs.
--
-- 'parameters', 'updateMLTransform_parameters' - The configuration parameters that are specific to the transform type
-- (algorithm) used. Conditionally dependent on the transform type.
--
-- 'role'', 'updateMLTransform_role' - The name or Amazon Resource Name (ARN) of the IAM role with the required
-- permissions.
--
-- 'timeout', 'updateMLTransform_timeout' - The timeout for a task run for this transform in minutes. This is the
-- maximum time that a task run for this transform can consume resources
-- before it is terminated and enters @TIMEOUT@ status. The default is
-- 2,880 minutes (48 hours).
--
-- 'workerType', 'updateMLTransform_workerType' - The type of predefined worker that is allocated when this task runs.
-- Accepts a value of Standard, G.1X, or G.2X.
--
-- -   For the @Standard@ worker type, each worker provides 4 vCPU, 16 GB
--     of memory and a 50GB disk, and 2 executors per worker.
--
-- -   For the @G.1X@ worker type, each worker provides 4 vCPU, 16 GB of
--     memory and a 64GB disk, and 1 executor per worker.
--
-- -   For the @G.2X@ worker type, each worker provides 8 vCPU, 32 GB of
--     memory and a 128GB disk, and 1 executor per worker.
--
-- 'transformId', 'updateMLTransform_transformId' - A unique identifier that was generated when the transform was created.
newUpdateMLTransform ::
  -- | 'transformId'
  Prelude.Text ->
  UpdateMLTransform
newUpdateMLTransform :: Text -> UpdateMLTransform
newUpdateMLTransform Text
pTransformId_ =
  UpdateMLTransform'
    { $sel:description:UpdateMLTransform' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:glueVersion:UpdateMLTransform' :: Maybe Text
glueVersion = forall a. Maybe a
Prelude.Nothing,
      $sel:maxCapacity:UpdateMLTransform' :: Maybe Double
maxCapacity = forall a. Maybe a
Prelude.Nothing,
      $sel:maxRetries:UpdateMLTransform' :: Maybe Int
maxRetries = forall a. Maybe a
Prelude.Nothing,
      $sel:name:UpdateMLTransform' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:numberOfWorkers:UpdateMLTransform' :: Maybe Int
numberOfWorkers = forall a. Maybe a
Prelude.Nothing,
      $sel:parameters:UpdateMLTransform' :: Maybe TransformParameters
parameters = forall a. Maybe a
Prelude.Nothing,
      $sel:role':UpdateMLTransform' :: Maybe Text
role' = forall a. Maybe a
Prelude.Nothing,
      $sel:timeout:UpdateMLTransform' :: Maybe Natural
timeout = forall a. Maybe a
Prelude.Nothing,
      $sel:workerType:UpdateMLTransform' :: Maybe WorkerType
workerType = forall a. Maybe a
Prelude.Nothing,
      $sel:transformId:UpdateMLTransform' :: Text
transformId = Text
pTransformId_
    }

-- | A description of the transform. The default is an empty string.
updateMLTransform_description :: Lens.Lens' UpdateMLTransform (Prelude.Maybe Prelude.Text)
updateMLTransform_description :: Lens' UpdateMLTransform (Maybe Text)
updateMLTransform_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateMLTransform' {Maybe Text
description :: Maybe Text
$sel:description:UpdateMLTransform' :: UpdateMLTransform -> Maybe Text
description} -> Maybe Text
description) (\s :: UpdateMLTransform
s@UpdateMLTransform' {} Maybe Text
a -> UpdateMLTransform
s {$sel:description:UpdateMLTransform' :: Maybe Text
description = Maybe Text
a} :: UpdateMLTransform)

-- | This value determines which version of Glue this machine learning
-- transform is compatible with. Glue 1.0 is recommended for most
-- customers. If the value is not set, the Glue compatibility defaults to
-- Glue 0.9. For more information, see
-- <https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions Glue Versions>
-- in the developer guide.
updateMLTransform_glueVersion :: Lens.Lens' UpdateMLTransform (Prelude.Maybe Prelude.Text)
updateMLTransform_glueVersion :: Lens' UpdateMLTransform (Maybe Text)
updateMLTransform_glueVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateMLTransform' {Maybe Text
glueVersion :: Maybe Text
$sel:glueVersion:UpdateMLTransform' :: UpdateMLTransform -> Maybe Text
glueVersion} -> Maybe Text
glueVersion) (\s :: UpdateMLTransform
s@UpdateMLTransform' {} Maybe Text
a -> UpdateMLTransform
s {$sel:glueVersion:UpdateMLTransform' :: Maybe Text
glueVersion = Maybe Text
a} :: UpdateMLTransform)

-- | The number of Glue data processing units (DPUs) that are allocated to
-- task runs for this transform. You can allocate from 2 to 100 DPUs; the
-- default is 10. A DPU is a relative measure of processing power that
-- consists of 4 vCPUs of compute capacity and 16 GB of memory. For more
-- information, see the
-- <https://aws.amazon.com/glue/pricing/ Glue pricing page>.
--
-- When the @WorkerType@ field is set to a value other than @Standard@, the
-- @MaxCapacity@ field is set automatically and becomes read-only.
updateMLTransform_maxCapacity :: Lens.Lens' UpdateMLTransform (Prelude.Maybe Prelude.Double)
updateMLTransform_maxCapacity :: Lens' UpdateMLTransform (Maybe Double)
updateMLTransform_maxCapacity = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateMLTransform' {Maybe Double
maxCapacity :: Maybe Double
$sel:maxCapacity:UpdateMLTransform' :: UpdateMLTransform -> Maybe Double
maxCapacity} -> Maybe Double
maxCapacity) (\s :: UpdateMLTransform
s@UpdateMLTransform' {} Maybe Double
a -> UpdateMLTransform
s {$sel:maxCapacity:UpdateMLTransform' :: Maybe Double
maxCapacity = Maybe Double
a} :: UpdateMLTransform)

-- | The maximum number of times to retry a task for this transform after a
-- task run fails.
updateMLTransform_maxRetries :: Lens.Lens' UpdateMLTransform (Prelude.Maybe Prelude.Int)
updateMLTransform_maxRetries :: Lens' UpdateMLTransform (Maybe Int)
updateMLTransform_maxRetries = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateMLTransform' {Maybe Int
maxRetries :: Maybe Int
$sel:maxRetries:UpdateMLTransform' :: UpdateMLTransform -> Maybe Int
maxRetries} -> Maybe Int
maxRetries) (\s :: UpdateMLTransform
s@UpdateMLTransform' {} Maybe Int
a -> UpdateMLTransform
s {$sel:maxRetries:UpdateMLTransform' :: Maybe Int
maxRetries = Maybe Int
a} :: UpdateMLTransform)

-- | The unique name that you gave the transform when you created it.
updateMLTransform_name :: Lens.Lens' UpdateMLTransform (Prelude.Maybe Prelude.Text)
updateMLTransform_name :: Lens' UpdateMLTransform (Maybe Text)
updateMLTransform_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateMLTransform' {Maybe Text
name :: Maybe Text
$sel:name:UpdateMLTransform' :: UpdateMLTransform -> Maybe Text
name} -> Maybe Text
name) (\s :: UpdateMLTransform
s@UpdateMLTransform' {} Maybe Text
a -> UpdateMLTransform
s {$sel:name:UpdateMLTransform' :: Maybe Text
name = Maybe Text
a} :: UpdateMLTransform)

-- | The number of workers of a defined @workerType@ that are allocated when
-- this task runs.
updateMLTransform_numberOfWorkers :: Lens.Lens' UpdateMLTransform (Prelude.Maybe Prelude.Int)
updateMLTransform_numberOfWorkers :: Lens' UpdateMLTransform (Maybe Int)
updateMLTransform_numberOfWorkers = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateMLTransform' {Maybe Int
numberOfWorkers :: Maybe Int
$sel:numberOfWorkers:UpdateMLTransform' :: UpdateMLTransform -> Maybe Int
numberOfWorkers} -> Maybe Int
numberOfWorkers) (\s :: UpdateMLTransform
s@UpdateMLTransform' {} Maybe Int
a -> UpdateMLTransform
s {$sel:numberOfWorkers:UpdateMLTransform' :: Maybe Int
numberOfWorkers = Maybe Int
a} :: UpdateMLTransform)

-- | The configuration parameters that are specific to the transform type
-- (algorithm) used. Conditionally dependent on the transform type.
updateMLTransform_parameters :: Lens.Lens' UpdateMLTransform (Prelude.Maybe TransformParameters)
updateMLTransform_parameters :: Lens' UpdateMLTransform (Maybe TransformParameters)
updateMLTransform_parameters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateMLTransform' {Maybe TransformParameters
parameters :: Maybe TransformParameters
$sel:parameters:UpdateMLTransform' :: UpdateMLTransform -> Maybe TransformParameters
parameters} -> Maybe TransformParameters
parameters) (\s :: UpdateMLTransform
s@UpdateMLTransform' {} Maybe TransformParameters
a -> UpdateMLTransform
s {$sel:parameters:UpdateMLTransform' :: Maybe TransformParameters
parameters = Maybe TransformParameters
a} :: UpdateMLTransform)

-- | The name or Amazon Resource Name (ARN) of the IAM role with the required
-- permissions.
updateMLTransform_role :: Lens.Lens' UpdateMLTransform (Prelude.Maybe Prelude.Text)
updateMLTransform_role :: Lens' UpdateMLTransform (Maybe Text)
updateMLTransform_role = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateMLTransform' {Maybe Text
role' :: Maybe Text
$sel:role':UpdateMLTransform' :: UpdateMLTransform -> Maybe Text
role'} -> Maybe Text
role') (\s :: UpdateMLTransform
s@UpdateMLTransform' {} Maybe Text
a -> UpdateMLTransform
s {$sel:role':UpdateMLTransform' :: Maybe Text
role' = Maybe Text
a} :: UpdateMLTransform)

-- | The timeout for a task run for this transform in minutes. This is the
-- maximum time that a task run for this transform can consume resources
-- before it is terminated and enters @TIMEOUT@ status. The default is
-- 2,880 minutes (48 hours).
updateMLTransform_timeout :: Lens.Lens' UpdateMLTransform (Prelude.Maybe Prelude.Natural)
updateMLTransform_timeout :: Lens' UpdateMLTransform (Maybe Natural)
updateMLTransform_timeout = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateMLTransform' {Maybe Natural
timeout :: Maybe Natural
$sel:timeout:UpdateMLTransform' :: UpdateMLTransform -> Maybe Natural
timeout} -> Maybe Natural
timeout) (\s :: UpdateMLTransform
s@UpdateMLTransform' {} Maybe Natural
a -> UpdateMLTransform
s {$sel:timeout:UpdateMLTransform' :: Maybe Natural
timeout = Maybe Natural
a} :: UpdateMLTransform)

-- | The type of predefined worker that is allocated when this task runs.
-- Accepts a value of Standard, G.1X, or G.2X.
--
-- -   For the @Standard@ worker type, each worker provides 4 vCPU, 16 GB
--     of memory and a 50GB disk, and 2 executors per worker.
--
-- -   For the @G.1X@ worker type, each worker provides 4 vCPU, 16 GB of
--     memory and a 64GB disk, and 1 executor per worker.
--
-- -   For the @G.2X@ worker type, each worker provides 8 vCPU, 32 GB of
--     memory and a 128GB disk, and 1 executor per worker.
updateMLTransform_workerType :: Lens.Lens' UpdateMLTransform (Prelude.Maybe WorkerType)
updateMLTransform_workerType :: Lens' UpdateMLTransform (Maybe WorkerType)
updateMLTransform_workerType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateMLTransform' {Maybe WorkerType
workerType :: Maybe WorkerType
$sel:workerType:UpdateMLTransform' :: UpdateMLTransform -> Maybe WorkerType
workerType} -> Maybe WorkerType
workerType) (\s :: UpdateMLTransform
s@UpdateMLTransform' {} Maybe WorkerType
a -> UpdateMLTransform
s {$sel:workerType:UpdateMLTransform' :: Maybe WorkerType
workerType = Maybe WorkerType
a} :: UpdateMLTransform)

-- | A unique identifier that was generated when the transform was created.
updateMLTransform_transformId :: Lens.Lens' UpdateMLTransform Prelude.Text
updateMLTransform_transformId :: Lens' UpdateMLTransform Text
updateMLTransform_transformId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateMLTransform' {Text
transformId :: Text
$sel:transformId:UpdateMLTransform' :: UpdateMLTransform -> Text
transformId} -> Text
transformId) (\s :: UpdateMLTransform
s@UpdateMLTransform' {} Text
a -> UpdateMLTransform
s {$sel:transformId:UpdateMLTransform' :: Text
transformId = Text
a} :: UpdateMLTransform)

instance Core.AWSRequest UpdateMLTransform where
  type
    AWSResponse UpdateMLTransform =
      UpdateMLTransformResponse
  request :: (Service -> Service)
-> UpdateMLTransform -> Request UpdateMLTransform
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 UpdateMLTransform
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse UpdateMLTransform)))
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 -> Int -> UpdateMLTransformResponse
UpdateMLTransformResponse'
            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
"TransformId")
            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 UpdateMLTransform where
  hashWithSalt :: Int -> UpdateMLTransform -> Int
hashWithSalt Int
_salt UpdateMLTransform' {Maybe Double
Maybe Int
Maybe Natural
Maybe Text
Maybe TransformParameters
Maybe WorkerType
Text
transformId :: Text
workerType :: Maybe WorkerType
timeout :: Maybe Natural
role' :: Maybe Text
parameters :: Maybe TransformParameters
numberOfWorkers :: Maybe Int
name :: Maybe Text
maxRetries :: Maybe Int
maxCapacity :: Maybe Double
glueVersion :: Maybe Text
description :: Maybe Text
$sel:transformId:UpdateMLTransform' :: UpdateMLTransform -> Text
$sel:workerType:UpdateMLTransform' :: UpdateMLTransform -> Maybe WorkerType
$sel:timeout:UpdateMLTransform' :: UpdateMLTransform -> Maybe Natural
$sel:role':UpdateMLTransform' :: UpdateMLTransform -> Maybe Text
$sel:parameters:UpdateMLTransform' :: UpdateMLTransform -> Maybe TransformParameters
$sel:numberOfWorkers:UpdateMLTransform' :: UpdateMLTransform -> Maybe Int
$sel:name:UpdateMLTransform' :: UpdateMLTransform -> Maybe Text
$sel:maxRetries:UpdateMLTransform' :: UpdateMLTransform -> Maybe Int
$sel:maxCapacity:UpdateMLTransform' :: UpdateMLTransform -> Maybe Double
$sel:glueVersion:UpdateMLTransform' :: UpdateMLTransform -> Maybe Text
$sel:description:UpdateMLTransform' :: UpdateMLTransform -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
glueVersion
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Double
maxCapacity
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
maxRetries
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
numberOfWorkers
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TransformParameters
parameters
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
role'
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
timeout
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe WorkerType
workerType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
transformId

instance Prelude.NFData UpdateMLTransform where
  rnf :: UpdateMLTransform -> ()
rnf UpdateMLTransform' {Maybe Double
Maybe Int
Maybe Natural
Maybe Text
Maybe TransformParameters
Maybe WorkerType
Text
transformId :: Text
workerType :: Maybe WorkerType
timeout :: Maybe Natural
role' :: Maybe Text
parameters :: Maybe TransformParameters
numberOfWorkers :: Maybe Int
name :: Maybe Text
maxRetries :: Maybe Int
maxCapacity :: Maybe Double
glueVersion :: Maybe Text
description :: Maybe Text
$sel:transformId:UpdateMLTransform' :: UpdateMLTransform -> Text
$sel:workerType:UpdateMLTransform' :: UpdateMLTransform -> Maybe WorkerType
$sel:timeout:UpdateMLTransform' :: UpdateMLTransform -> Maybe Natural
$sel:role':UpdateMLTransform' :: UpdateMLTransform -> Maybe Text
$sel:parameters:UpdateMLTransform' :: UpdateMLTransform -> Maybe TransformParameters
$sel:numberOfWorkers:UpdateMLTransform' :: UpdateMLTransform -> Maybe Int
$sel:name:UpdateMLTransform' :: UpdateMLTransform -> Maybe Text
$sel:maxRetries:UpdateMLTransform' :: UpdateMLTransform -> Maybe Int
$sel:maxCapacity:UpdateMLTransform' :: UpdateMLTransform -> Maybe Double
$sel:glueVersion:UpdateMLTransform' :: UpdateMLTransform -> Maybe Text
$sel:description:UpdateMLTransform' :: UpdateMLTransform -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
glueVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Double
maxCapacity
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
maxRetries
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
numberOfWorkers
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TransformParameters
parameters
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
role'
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
timeout
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe WorkerType
workerType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
transformId

instance Data.ToHeaders UpdateMLTransform where
  toHeaders :: UpdateMLTransform -> 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
"AWSGlue.UpdateMLTransform" :: 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 UpdateMLTransform where
  toJSON :: UpdateMLTransform -> Value
toJSON UpdateMLTransform' {Maybe Double
Maybe Int
Maybe Natural
Maybe Text
Maybe TransformParameters
Maybe WorkerType
Text
transformId :: Text
workerType :: Maybe WorkerType
timeout :: Maybe Natural
role' :: Maybe Text
parameters :: Maybe TransformParameters
numberOfWorkers :: Maybe Int
name :: Maybe Text
maxRetries :: Maybe Int
maxCapacity :: Maybe Double
glueVersion :: Maybe Text
description :: Maybe Text
$sel:transformId:UpdateMLTransform' :: UpdateMLTransform -> Text
$sel:workerType:UpdateMLTransform' :: UpdateMLTransform -> Maybe WorkerType
$sel:timeout:UpdateMLTransform' :: UpdateMLTransform -> Maybe Natural
$sel:role':UpdateMLTransform' :: UpdateMLTransform -> Maybe Text
$sel:parameters:UpdateMLTransform' :: UpdateMLTransform -> Maybe TransformParameters
$sel:numberOfWorkers:UpdateMLTransform' :: UpdateMLTransform -> Maybe Int
$sel:name:UpdateMLTransform' :: UpdateMLTransform -> Maybe Text
$sel:maxRetries:UpdateMLTransform' :: UpdateMLTransform -> Maybe Int
$sel:maxCapacity:UpdateMLTransform' :: UpdateMLTransform -> Maybe Double
$sel:glueVersion:UpdateMLTransform' :: UpdateMLTransform -> Maybe Text
$sel:description:UpdateMLTransform' :: UpdateMLTransform -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"Description" 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
description,
            (Key
"GlueVersion" 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
glueVersion,
            (Key
"MaxCapacity" 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 Double
maxCapacity,
            (Key
"MaxRetries" 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 Int
maxRetries,
            (Key
"Name" 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
name,
            (Key
"NumberOfWorkers" 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 Int
numberOfWorkers,
            (Key
"Parameters" 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 TransformParameters
parameters,
            (Key
"Role" 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
role',
            (Key
"Timeout" 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 Natural
timeout,
            (Key
"WorkerType" 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 WorkerType
workerType,
            forall a. a -> Maybe a
Prelude.Just (Key
"TransformId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
transformId)
          ]
      )

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

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

-- | /See:/ 'newUpdateMLTransformResponse' smart constructor.
data UpdateMLTransformResponse = UpdateMLTransformResponse'
  { -- | The unique identifier for the transform that was updated.
    UpdateMLTransformResponse -> Maybe Text
transformId :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    UpdateMLTransformResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (UpdateMLTransformResponse -> UpdateMLTransformResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateMLTransformResponse -> UpdateMLTransformResponse -> Bool
$c/= :: UpdateMLTransformResponse -> UpdateMLTransformResponse -> Bool
== :: UpdateMLTransformResponse -> UpdateMLTransformResponse -> Bool
$c== :: UpdateMLTransformResponse -> UpdateMLTransformResponse -> Bool
Prelude.Eq, ReadPrec [UpdateMLTransformResponse]
ReadPrec UpdateMLTransformResponse
Int -> ReadS UpdateMLTransformResponse
ReadS [UpdateMLTransformResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateMLTransformResponse]
$creadListPrec :: ReadPrec [UpdateMLTransformResponse]
readPrec :: ReadPrec UpdateMLTransformResponse
$creadPrec :: ReadPrec UpdateMLTransformResponse
readList :: ReadS [UpdateMLTransformResponse]
$creadList :: ReadS [UpdateMLTransformResponse]
readsPrec :: Int -> ReadS UpdateMLTransformResponse
$creadsPrec :: Int -> ReadS UpdateMLTransformResponse
Prelude.Read, Int -> UpdateMLTransformResponse -> ShowS
[UpdateMLTransformResponse] -> ShowS
UpdateMLTransformResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateMLTransformResponse] -> ShowS
$cshowList :: [UpdateMLTransformResponse] -> ShowS
show :: UpdateMLTransformResponse -> String
$cshow :: UpdateMLTransformResponse -> String
showsPrec :: Int -> UpdateMLTransformResponse -> ShowS
$cshowsPrec :: Int -> UpdateMLTransformResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateMLTransformResponse x -> UpdateMLTransformResponse
forall x.
UpdateMLTransformResponse -> Rep UpdateMLTransformResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateMLTransformResponse x -> UpdateMLTransformResponse
$cfrom :: forall x.
UpdateMLTransformResponse -> Rep UpdateMLTransformResponse x
Prelude.Generic)

-- |
-- Create a value of 'UpdateMLTransformResponse' 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:
--
-- 'transformId', 'updateMLTransformResponse_transformId' - The unique identifier for the transform that was updated.
--
-- 'httpStatus', 'updateMLTransformResponse_httpStatus' - The response's http status code.
newUpdateMLTransformResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  UpdateMLTransformResponse
newUpdateMLTransformResponse :: Int -> UpdateMLTransformResponse
newUpdateMLTransformResponse Int
pHttpStatus_ =
  UpdateMLTransformResponse'
    { $sel:transformId:UpdateMLTransformResponse' :: Maybe Text
transformId =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:UpdateMLTransformResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The unique identifier for the transform that was updated.
updateMLTransformResponse_transformId :: Lens.Lens' UpdateMLTransformResponse (Prelude.Maybe Prelude.Text)
updateMLTransformResponse_transformId :: Lens' UpdateMLTransformResponse (Maybe Text)
updateMLTransformResponse_transformId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateMLTransformResponse' {Maybe Text
transformId :: Maybe Text
$sel:transformId:UpdateMLTransformResponse' :: UpdateMLTransformResponse -> Maybe Text
transformId} -> Maybe Text
transformId) (\s :: UpdateMLTransformResponse
s@UpdateMLTransformResponse' {} Maybe Text
a -> UpdateMLTransformResponse
s {$sel:transformId:UpdateMLTransformResponse' :: Maybe Text
transformId = Maybe Text
a} :: UpdateMLTransformResponse)

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

instance Prelude.NFData UpdateMLTransformResponse where
  rnf :: UpdateMLTransformResponse -> ()
rnf UpdateMLTransformResponse' {Int
Maybe Text
httpStatus :: Int
transformId :: Maybe Text
$sel:httpStatus:UpdateMLTransformResponse' :: UpdateMLTransformResponse -> Int
$sel:transformId:UpdateMLTransformResponse' :: UpdateMLTransformResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
transformId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus