amazonka-sagemaker-2.0: gen/Amazonka/SageMaker/UpdateImageVersion.hs
{-# 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.SageMaker.UpdateImageVersion
-- 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 the properties of a SageMaker image version.
module Amazonka.SageMaker.UpdateImageVersion
( -- * Creating a Request
UpdateImageVersion (..),
newUpdateImageVersion,
-- * Request Lenses
updateImageVersion_alias,
updateImageVersion_aliasesToAdd,
updateImageVersion_aliasesToDelete,
updateImageVersion_horovod,
updateImageVersion_jobType,
updateImageVersion_mLFramework,
updateImageVersion_processor,
updateImageVersion_programmingLang,
updateImageVersion_releaseNotes,
updateImageVersion_vendorGuidance,
updateImageVersion_version,
updateImageVersion_imageName,
-- * Destructuring the Response
UpdateImageVersionResponse (..),
newUpdateImageVersionResponse,
-- * Response Lenses
updateImageVersionResponse_imageVersionArn,
updateImageVersionResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.SageMaker.Types
-- | /See:/ 'newUpdateImageVersion' smart constructor.
data UpdateImageVersion = UpdateImageVersion'
{ -- | The alias of the image version.
alias :: Prelude.Maybe Prelude.Text,
-- | A list of aliases to add.
aliasesToAdd :: Prelude.Maybe [Prelude.Text],
-- | A list of aliases to delete.
aliasesToDelete :: Prelude.Maybe [Prelude.Text],
-- | Indicates Horovod compatibility.
horovod :: Prelude.Maybe Prelude.Bool,
-- | Indicates SageMaker job type compatibility.
--
-- - @TRAINING@: The image version is compatible with SageMaker training
-- jobs.
--
-- - @INFERENCE@: The image version is compatible with SageMaker
-- inference jobs.
--
-- - @NOTEBOOK_KERNEL@: The image version is compatible with SageMaker
-- notebook kernels.
jobType :: Prelude.Maybe JobType,
-- | The machine learning framework vended in the image version.
mLFramework :: Prelude.Maybe Prelude.Text,
-- | Indicates CPU or GPU compatibility.
--
-- - @CPU@: The image version is compatible with CPU.
--
-- - @GPU@: The image version is compatible with GPU.
processor :: Prelude.Maybe Processor,
-- | The supported programming language and its version.
programmingLang :: Prelude.Maybe Prelude.Text,
-- | The maintainer description of the image version.
releaseNotes :: Prelude.Maybe Prelude.Text,
-- | The availability of the image version specified by the maintainer.
--
-- - @NOT_PROVIDED@: The maintainers did not provide a status for image
-- version stability.
--
-- - @STABLE@: The image version is stable.
--
-- - @TO_BE_ARCHIVED@: The image version is set to be archived. Custom
-- image versions that are set to be archived are automatically
-- archived after three months.
--
-- - @ARCHIVED@: The image version is archived. Archived image versions
-- are not searchable and are no longer actively supported.
vendorGuidance :: Prelude.Maybe VendorGuidance,
-- | The version of the image.
version :: Prelude.Maybe Prelude.Natural,
-- | The name of the image.
imageName :: Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'UpdateImageVersion' 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:
--
-- 'alias', 'updateImageVersion_alias' - The alias of the image version.
--
-- 'aliasesToAdd', 'updateImageVersion_aliasesToAdd' - A list of aliases to add.
--
-- 'aliasesToDelete', 'updateImageVersion_aliasesToDelete' - A list of aliases to delete.
--
-- 'horovod', 'updateImageVersion_horovod' - Indicates Horovod compatibility.
--
-- 'jobType', 'updateImageVersion_jobType' - Indicates SageMaker job type compatibility.
--
-- - @TRAINING@: The image version is compatible with SageMaker training
-- jobs.
--
-- - @INFERENCE@: The image version is compatible with SageMaker
-- inference jobs.
--
-- - @NOTEBOOK_KERNEL@: The image version is compatible with SageMaker
-- notebook kernels.
--
-- 'mLFramework', 'updateImageVersion_mLFramework' - The machine learning framework vended in the image version.
--
-- 'processor', 'updateImageVersion_processor' - Indicates CPU or GPU compatibility.
--
-- - @CPU@: The image version is compatible with CPU.
--
-- - @GPU@: The image version is compatible with GPU.
--
-- 'programmingLang', 'updateImageVersion_programmingLang' - The supported programming language and its version.
--
-- 'releaseNotes', 'updateImageVersion_releaseNotes' - The maintainer description of the image version.
--
-- 'vendorGuidance', 'updateImageVersion_vendorGuidance' - The availability of the image version specified by the maintainer.
--
-- - @NOT_PROVIDED@: The maintainers did not provide a status for image
-- version stability.
--
-- - @STABLE@: The image version is stable.
--
-- - @TO_BE_ARCHIVED@: The image version is set to be archived. Custom
-- image versions that are set to be archived are automatically
-- archived after three months.
--
-- - @ARCHIVED@: The image version is archived. Archived image versions
-- are not searchable and are no longer actively supported.
--
-- 'version', 'updateImageVersion_version' - The version of the image.
--
-- 'imageName', 'updateImageVersion_imageName' - The name of the image.
newUpdateImageVersion ::
-- | 'imageName'
Prelude.Text ->
UpdateImageVersion
newUpdateImageVersion pImageName_ =
UpdateImageVersion'
{ alias = Prelude.Nothing,
aliasesToAdd = Prelude.Nothing,
aliasesToDelete = Prelude.Nothing,
horovod = Prelude.Nothing,
jobType = Prelude.Nothing,
mLFramework = Prelude.Nothing,
processor = Prelude.Nothing,
programmingLang = Prelude.Nothing,
releaseNotes = Prelude.Nothing,
vendorGuidance = Prelude.Nothing,
version = Prelude.Nothing,
imageName = pImageName_
}
-- | The alias of the image version.
updateImageVersion_alias :: Lens.Lens' UpdateImageVersion (Prelude.Maybe Prelude.Text)
updateImageVersion_alias = Lens.lens (\UpdateImageVersion' {alias} -> alias) (\s@UpdateImageVersion' {} a -> s {alias = a} :: UpdateImageVersion)
-- | A list of aliases to add.
updateImageVersion_aliasesToAdd :: Lens.Lens' UpdateImageVersion (Prelude.Maybe [Prelude.Text])
updateImageVersion_aliasesToAdd = Lens.lens (\UpdateImageVersion' {aliasesToAdd} -> aliasesToAdd) (\s@UpdateImageVersion' {} a -> s {aliasesToAdd = a} :: UpdateImageVersion) Prelude.. Lens.mapping Lens.coerced
-- | A list of aliases to delete.
updateImageVersion_aliasesToDelete :: Lens.Lens' UpdateImageVersion (Prelude.Maybe [Prelude.Text])
updateImageVersion_aliasesToDelete = Lens.lens (\UpdateImageVersion' {aliasesToDelete} -> aliasesToDelete) (\s@UpdateImageVersion' {} a -> s {aliasesToDelete = a} :: UpdateImageVersion) Prelude.. Lens.mapping Lens.coerced
-- | Indicates Horovod compatibility.
updateImageVersion_horovod :: Lens.Lens' UpdateImageVersion (Prelude.Maybe Prelude.Bool)
updateImageVersion_horovod = Lens.lens (\UpdateImageVersion' {horovod} -> horovod) (\s@UpdateImageVersion' {} a -> s {horovod = a} :: UpdateImageVersion)
-- | Indicates SageMaker job type compatibility.
--
-- - @TRAINING@: The image version is compatible with SageMaker training
-- jobs.
--
-- - @INFERENCE@: The image version is compatible with SageMaker
-- inference jobs.
--
-- - @NOTEBOOK_KERNEL@: The image version is compatible with SageMaker
-- notebook kernels.
updateImageVersion_jobType :: Lens.Lens' UpdateImageVersion (Prelude.Maybe JobType)
updateImageVersion_jobType = Lens.lens (\UpdateImageVersion' {jobType} -> jobType) (\s@UpdateImageVersion' {} a -> s {jobType = a} :: UpdateImageVersion)
-- | The machine learning framework vended in the image version.
updateImageVersion_mLFramework :: Lens.Lens' UpdateImageVersion (Prelude.Maybe Prelude.Text)
updateImageVersion_mLFramework = Lens.lens (\UpdateImageVersion' {mLFramework} -> mLFramework) (\s@UpdateImageVersion' {} a -> s {mLFramework = a} :: UpdateImageVersion)
-- | Indicates CPU or GPU compatibility.
--
-- - @CPU@: The image version is compatible with CPU.
--
-- - @GPU@: The image version is compatible with GPU.
updateImageVersion_processor :: Lens.Lens' UpdateImageVersion (Prelude.Maybe Processor)
updateImageVersion_processor = Lens.lens (\UpdateImageVersion' {processor} -> processor) (\s@UpdateImageVersion' {} a -> s {processor = a} :: UpdateImageVersion)
-- | The supported programming language and its version.
updateImageVersion_programmingLang :: Lens.Lens' UpdateImageVersion (Prelude.Maybe Prelude.Text)
updateImageVersion_programmingLang = Lens.lens (\UpdateImageVersion' {programmingLang} -> programmingLang) (\s@UpdateImageVersion' {} a -> s {programmingLang = a} :: UpdateImageVersion)
-- | The maintainer description of the image version.
updateImageVersion_releaseNotes :: Lens.Lens' UpdateImageVersion (Prelude.Maybe Prelude.Text)
updateImageVersion_releaseNotes = Lens.lens (\UpdateImageVersion' {releaseNotes} -> releaseNotes) (\s@UpdateImageVersion' {} a -> s {releaseNotes = a} :: UpdateImageVersion)
-- | The availability of the image version specified by the maintainer.
--
-- - @NOT_PROVIDED@: The maintainers did not provide a status for image
-- version stability.
--
-- - @STABLE@: The image version is stable.
--
-- - @TO_BE_ARCHIVED@: The image version is set to be archived. Custom
-- image versions that are set to be archived are automatically
-- archived after three months.
--
-- - @ARCHIVED@: The image version is archived. Archived image versions
-- are not searchable and are no longer actively supported.
updateImageVersion_vendorGuidance :: Lens.Lens' UpdateImageVersion (Prelude.Maybe VendorGuidance)
updateImageVersion_vendorGuidance = Lens.lens (\UpdateImageVersion' {vendorGuidance} -> vendorGuidance) (\s@UpdateImageVersion' {} a -> s {vendorGuidance = a} :: UpdateImageVersion)
-- | The version of the image.
updateImageVersion_version :: Lens.Lens' UpdateImageVersion (Prelude.Maybe Prelude.Natural)
updateImageVersion_version = Lens.lens (\UpdateImageVersion' {version} -> version) (\s@UpdateImageVersion' {} a -> s {version = a} :: UpdateImageVersion)
-- | The name of the image.
updateImageVersion_imageName :: Lens.Lens' UpdateImageVersion Prelude.Text
updateImageVersion_imageName = Lens.lens (\UpdateImageVersion' {imageName} -> imageName) (\s@UpdateImageVersion' {} a -> s {imageName = a} :: UpdateImageVersion)
instance Core.AWSRequest UpdateImageVersion where
type
AWSResponse UpdateImageVersion =
UpdateImageVersionResponse
request overrides =
Request.postJSON (overrides defaultService)
response =
Response.receiveJSON
( \s h x ->
UpdateImageVersionResponse'
Prelude.<$> (x Data..?> "ImageVersionArn")
Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
)
instance Prelude.Hashable UpdateImageVersion where
hashWithSalt _salt UpdateImageVersion' {..} =
_salt
`Prelude.hashWithSalt` alias
`Prelude.hashWithSalt` aliasesToAdd
`Prelude.hashWithSalt` aliasesToDelete
`Prelude.hashWithSalt` horovod
`Prelude.hashWithSalt` jobType
`Prelude.hashWithSalt` mLFramework
`Prelude.hashWithSalt` processor
`Prelude.hashWithSalt` programmingLang
`Prelude.hashWithSalt` releaseNotes
`Prelude.hashWithSalt` vendorGuidance
`Prelude.hashWithSalt` version
`Prelude.hashWithSalt` imageName
instance Prelude.NFData UpdateImageVersion where
rnf UpdateImageVersion' {..} =
Prelude.rnf alias
`Prelude.seq` Prelude.rnf aliasesToAdd
`Prelude.seq` Prelude.rnf aliasesToDelete
`Prelude.seq` Prelude.rnf horovod
`Prelude.seq` Prelude.rnf jobType
`Prelude.seq` Prelude.rnf mLFramework
`Prelude.seq` Prelude.rnf processor
`Prelude.seq` Prelude.rnf programmingLang
`Prelude.seq` Prelude.rnf releaseNotes
`Prelude.seq` Prelude.rnf vendorGuidance
`Prelude.seq` Prelude.rnf version
`Prelude.seq` Prelude.rnf imageName
instance Data.ToHeaders UpdateImageVersion where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "X-Amz-Target"
Data.=# ( "SageMaker.UpdateImageVersion" ::
Prelude.ByteString
),
"Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON UpdateImageVersion where
toJSON UpdateImageVersion' {..} =
Data.object
( Prelude.catMaybes
[ ("Alias" Data..=) Prelude.<$> alias,
("AliasesToAdd" Data..=) Prelude.<$> aliasesToAdd,
("AliasesToDelete" Data..=)
Prelude.<$> aliasesToDelete,
("Horovod" Data..=) Prelude.<$> horovod,
("JobType" Data..=) Prelude.<$> jobType,
("MLFramework" Data..=) Prelude.<$> mLFramework,
("Processor" Data..=) Prelude.<$> processor,
("ProgrammingLang" Data..=)
Prelude.<$> programmingLang,
("ReleaseNotes" Data..=) Prelude.<$> releaseNotes,
("VendorGuidance" Data..=)
Prelude.<$> vendorGuidance,
("Version" Data..=) Prelude.<$> version,
Prelude.Just ("ImageName" Data..= imageName)
]
)
instance Data.ToPath UpdateImageVersion where
toPath = Prelude.const "/"
instance Data.ToQuery UpdateImageVersion where
toQuery = Prelude.const Prelude.mempty
-- | /See:/ 'newUpdateImageVersionResponse' smart constructor.
data UpdateImageVersionResponse = UpdateImageVersionResponse'
{ -- | The ARN of the image version.
imageVersionArn :: Prelude.Maybe Prelude.Text,
-- | The response's http status code.
httpStatus :: Prelude.Int
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'UpdateImageVersionResponse' 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:
--
-- 'imageVersionArn', 'updateImageVersionResponse_imageVersionArn' - The ARN of the image version.
--
-- 'httpStatus', 'updateImageVersionResponse_httpStatus' - The response's http status code.
newUpdateImageVersionResponse ::
-- | 'httpStatus'
Prelude.Int ->
UpdateImageVersionResponse
newUpdateImageVersionResponse pHttpStatus_ =
UpdateImageVersionResponse'
{ imageVersionArn =
Prelude.Nothing,
httpStatus = pHttpStatus_
}
-- | The ARN of the image version.
updateImageVersionResponse_imageVersionArn :: Lens.Lens' UpdateImageVersionResponse (Prelude.Maybe Prelude.Text)
updateImageVersionResponse_imageVersionArn = Lens.lens (\UpdateImageVersionResponse' {imageVersionArn} -> imageVersionArn) (\s@UpdateImageVersionResponse' {} a -> s {imageVersionArn = a} :: UpdateImageVersionResponse)
-- | The response's http status code.
updateImageVersionResponse_httpStatus :: Lens.Lens' UpdateImageVersionResponse Prelude.Int
updateImageVersionResponse_httpStatus = Lens.lens (\UpdateImageVersionResponse' {httpStatus} -> httpStatus) (\s@UpdateImageVersionResponse' {} a -> s {httpStatus = a} :: UpdateImageVersionResponse)
instance Prelude.NFData UpdateImageVersionResponse where
rnf UpdateImageVersionResponse' {..} =
Prelude.rnf imageVersionArn
`Prelude.seq` Prelude.rnf httpStatus