amazonka-sagemaker-2.0: gen/Amazonka/SageMaker/Types/ImageVersion.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Amazonka.SageMaker.Types.ImageVersion
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.SageMaker.Types.ImageVersion 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 Amazonka.SageMaker.Types.ImageVersionStatus
-- | A version of a SageMaker @Image@. A version represents an existing
-- container image.
--
-- /See:/ 'newImageVersion' smart constructor.
data ImageVersion = ImageVersion'
{ -- | When a create or delete operation fails, the reason for the failure.
failureReason :: Prelude.Maybe Prelude.Text,
-- | When the version was created.
creationTime :: Data.POSIX,
-- | The ARN of the image the version is based on.
imageArn :: Prelude.Text,
-- | The ARN of the version.
imageVersionArn :: Prelude.Text,
-- | The status of the version.
imageVersionStatus :: ImageVersionStatus,
-- | When the version was last modified.
lastModifiedTime :: Data.POSIX,
-- | The version number.
version :: Prelude.Natural
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'ImageVersion' 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:
--
-- 'failureReason', 'imageVersion_failureReason' - When a create or delete operation fails, the reason for the failure.
--
-- 'creationTime', 'imageVersion_creationTime' - When the version was created.
--
-- 'imageArn', 'imageVersion_imageArn' - The ARN of the image the version is based on.
--
-- 'imageVersionArn', 'imageVersion_imageVersionArn' - The ARN of the version.
--
-- 'imageVersionStatus', 'imageVersion_imageVersionStatus' - The status of the version.
--
-- 'lastModifiedTime', 'imageVersion_lastModifiedTime' - When the version was last modified.
--
-- 'version', 'imageVersion_version' - The version number.
newImageVersion ::
-- | 'creationTime'
Prelude.UTCTime ->
-- | 'imageArn'
Prelude.Text ->
-- | 'imageVersionArn'
Prelude.Text ->
-- | 'imageVersionStatus'
ImageVersionStatus ->
-- | 'lastModifiedTime'
Prelude.UTCTime ->
-- | 'version'
Prelude.Natural ->
ImageVersion
newImageVersion
pCreationTime_
pImageArn_
pImageVersionArn_
pImageVersionStatus_
pLastModifiedTime_
pVersion_ =
ImageVersion'
{ failureReason = Prelude.Nothing,
creationTime = Data._Time Lens.# pCreationTime_,
imageArn = pImageArn_,
imageVersionArn = pImageVersionArn_,
imageVersionStatus = pImageVersionStatus_,
lastModifiedTime =
Data._Time Lens.# pLastModifiedTime_,
version = pVersion_
}
-- | When a create or delete operation fails, the reason for the failure.
imageVersion_failureReason :: Lens.Lens' ImageVersion (Prelude.Maybe Prelude.Text)
imageVersion_failureReason = Lens.lens (\ImageVersion' {failureReason} -> failureReason) (\s@ImageVersion' {} a -> s {failureReason = a} :: ImageVersion)
-- | When the version was created.
imageVersion_creationTime :: Lens.Lens' ImageVersion Prelude.UTCTime
imageVersion_creationTime = Lens.lens (\ImageVersion' {creationTime} -> creationTime) (\s@ImageVersion' {} a -> s {creationTime = a} :: ImageVersion) Prelude.. Data._Time
-- | The ARN of the image the version is based on.
imageVersion_imageArn :: Lens.Lens' ImageVersion Prelude.Text
imageVersion_imageArn = Lens.lens (\ImageVersion' {imageArn} -> imageArn) (\s@ImageVersion' {} a -> s {imageArn = a} :: ImageVersion)
-- | The ARN of the version.
imageVersion_imageVersionArn :: Lens.Lens' ImageVersion Prelude.Text
imageVersion_imageVersionArn = Lens.lens (\ImageVersion' {imageVersionArn} -> imageVersionArn) (\s@ImageVersion' {} a -> s {imageVersionArn = a} :: ImageVersion)
-- | The status of the version.
imageVersion_imageVersionStatus :: Lens.Lens' ImageVersion ImageVersionStatus
imageVersion_imageVersionStatus = Lens.lens (\ImageVersion' {imageVersionStatus} -> imageVersionStatus) (\s@ImageVersion' {} a -> s {imageVersionStatus = a} :: ImageVersion)
-- | When the version was last modified.
imageVersion_lastModifiedTime :: Lens.Lens' ImageVersion Prelude.UTCTime
imageVersion_lastModifiedTime = Lens.lens (\ImageVersion' {lastModifiedTime} -> lastModifiedTime) (\s@ImageVersion' {} a -> s {lastModifiedTime = a} :: ImageVersion) Prelude.. Data._Time
-- | The version number.
imageVersion_version :: Lens.Lens' ImageVersion Prelude.Natural
imageVersion_version = Lens.lens (\ImageVersion' {version} -> version) (\s@ImageVersion' {} a -> s {version = a} :: ImageVersion)
instance Data.FromJSON ImageVersion where
parseJSON =
Data.withObject
"ImageVersion"
( \x ->
ImageVersion'
Prelude.<$> (x Data..:? "FailureReason")
Prelude.<*> (x Data..: "CreationTime")
Prelude.<*> (x Data..: "ImageArn")
Prelude.<*> (x Data..: "ImageVersionArn")
Prelude.<*> (x Data..: "ImageVersionStatus")
Prelude.<*> (x Data..: "LastModifiedTime")
Prelude.<*> (x Data..: "Version")
)
instance Prelude.Hashable ImageVersion where
hashWithSalt _salt ImageVersion' {..} =
_salt
`Prelude.hashWithSalt` failureReason
`Prelude.hashWithSalt` creationTime
`Prelude.hashWithSalt` imageArn
`Prelude.hashWithSalt` imageVersionArn
`Prelude.hashWithSalt` imageVersionStatus
`Prelude.hashWithSalt` lastModifiedTime
`Prelude.hashWithSalt` version
instance Prelude.NFData ImageVersion where
rnf ImageVersion' {..} =
Prelude.rnf failureReason
`Prelude.seq` Prelude.rnf creationTime
`Prelude.seq` Prelude.rnf imageArn
`Prelude.seq` Prelude.rnf imageVersionArn
`Prelude.seq` Prelude.rnf imageVersionStatus
`Prelude.seq` Prelude.rnf lastModifiedTime
`Prelude.seq` Prelude.rnf version