{-# 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.DescribeImage
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Describes a SageMaker image.
module Amazonka.SageMaker.DescribeImage
  ( -- * Creating a Request
    DescribeImage (..),
    newDescribeImage,

    -- * Request Lenses
    describeImage_imageName,

    -- * Destructuring the Response
    DescribeImageResponse (..),
    newDescribeImageResponse,

    -- * Response Lenses
    describeImageResponse_creationTime,
    describeImageResponse_description,
    describeImageResponse_displayName,
    describeImageResponse_failureReason,
    describeImageResponse_imageArn,
    describeImageResponse_imageName,
    describeImageResponse_imageStatus,
    describeImageResponse_lastModifiedTime,
    describeImageResponse_roleArn,
    describeImageResponse_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:/ 'newDescribeImage' smart constructor.
data DescribeImage = DescribeImage'
  { -- | The name of the image to describe.
    DescribeImage -> Text
imageName :: Prelude.Text
  }
  deriving (DescribeImage -> DescribeImage -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeImage -> DescribeImage -> Bool
$c/= :: DescribeImage -> DescribeImage -> Bool
== :: DescribeImage -> DescribeImage -> Bool
$c== :: DescribeImage -> DescribeImage -> Bool
Prelude.Eq, ReadPrec [DescribeImage]
ReadPrec DescribeImage
Int -> ReadS DescribeImage
ReadS [DescribeImage]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeImage]
$creadListPrec :: ReadPrec [DescribeImage]
readPrec :: ReadPrec DescribeImage
$creadPrec :: ReadPrec DescribeImage
readList :: ReadS [DescribeImage]
$creadList :: ReadS [DescribeImage]
readsPrec :: Int -> ReadS DescribeImage
$creadsPrec :: Int -> ReadS DescribeImage
Prelude.Read, Int -> DescribeImage -> ShowS
[DescribeImage] -> ShowS
DescribeImage -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeImage] -> ShowS
$cshowList :: [DescribeImage] -> ShowS
show :: DescribeImage -> String
$cshow :: DescribeImage -> String
showsPrec :: Int -> DescribeImage -> ShowS
$cshowsPrec :: Int -> DescribeImage -> ShowS
Prelude.Show, forall x. Rep DescribeImage x -> DescribeImage
forall x. DescribeImage -> Rep DescribeImage x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeImage x -> DescribeImage
$cfrom :: forall x. DescribeImage -> Rep DescribeImage x
Prelude.Generic)

-- |
-- Create a value of 'DescribeImage' 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:
--
-- 'imageName', 'describeImage_imageName' - The name of the image to describe.
newDescribeImage ::
  -- | 'imageName'
  Prelude.Text ->
  DescribeImage
newDescribeImage :: Text -> DescribeImage
newDescribeImage Text
pImageName_ =
  DescribeImage' {$sel:imageName:DescribeImage' :: Text
imageName = Text
pImageName_}

-- | The name of the image to describe.
describeImage_imageName :: Lens.Lens' DescribeImage Prelude.Text
describeImage_imageName :: Lens' DescribeImage Text
describeImage_imageName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeImage' {Text
imageName :: Text
$sel:imageName:DescribeImage' :: DescribeImage -> Text
imageName} -> Text
imageName) (\s :: DescribeImage
s@DescribeImage' {} Text
a -> DescribeImage
s {$sel:imageName:DescribeImage' :: Text
imageName = Text
a} :: DescribeImage)

instance Core.AWSRequest DescribeImage where
  type
    AWSResponse DescribeImage =
      DescribeImageResponse
  request :: (Service -> Service) -> DescribeImage -> Request DescribeImage
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 DescribeImage
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribeImage)))
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 POSIX
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe ImageStatus
-> Maybe POSIX
-> Maybe Text
-> Int
-> DescribeImageResponse
DescribeImageResponse'
            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
"CreationTime")
            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
"Description")
            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
"DisplayName")
            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
"FailureReason")
            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
"ImageArn")
            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
"ImageName")
            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
"ImageStatus")
            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
"LastModifiedTime")
            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
"RoleArn")
            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 DescribeImage where
  hashWithSalt :: Int -> DescribeImage -> Int
hashWithSalt Int
_salt DescribeImage' {Text
imageName :: Text
$sel:imageName:DescribeImage' :: DescribeImage -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
imageName

instance Prelude.NFData DescribeImage where
  rnf :: DescribeImage -> ()
rnf DescribeImage' {Text
imageName :: Text
$sel:imageName:DescribeImage' :: DescribeImage -> Text
..} = forall a. NFData a => a -> ()
Prelude.rnf Text
imageName

instance Data.ToHeaders DescribeImage where
  toHeaders :: DescribeImage -> 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
"SageMaker.DescribeImage" :: 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 DescribeImage where
  toJSON :: DescribeImage -> Value
toJSON DescribeImage' {Text
imageName :: Text
$sel:imageName:DescribeImage' :: DescribeImage -> Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [forall a. a -> Maybe a
Prelude.Just (Key
"ImageName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
imageName)]
      )

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

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

-- | /See:/ 'newDescribeImageResponse' smart constructor.
data DescribeImageResponse = DescribeImageResponse'
  { -- | When the image was created.
    DescribeImageResponse -> Maybe POSIX
creationTime :: Prelude.Maybe Data.POSIX,
    -- | The description of the image.
    DescribeImageResponse -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The name of the image as displayed.
    DescribeImageResponse -> Maybe Text
displayName :: Prelude.Maybe Prelude.Text,
    -- | When a create, update, or delete operation fails, the reason for the
    -- failure.
    DescribeImageResponse -> Maybe Text
failureReason :: Prelude.Maybe Prelude.Text,
    -- | The ARN of the image.
    DescribeImageResponse -> Maybe Text
imageArn :: Prelude.Maybe Prelude.Text,
    -- | The name of the image.
    DescribeImageResponse -> Maybe Text
imageName :: Prelude.Maybe Prelude.Text,
    -- | The status of the image.
    DescribeImageResponse -> Maybe ImageStatus
imageStatus :: Prelude.Maybe ImageStatus,
    -- | When the image was last modified.
    DescribeImageResponse -> Maybe POSIX
lastModifiedTime :: Prelude.Maybe Data.POSIX,
    -- | The ARN of the IAM role that enables Amazon SageMaker to perform tasks
    -- on your behalf.
    DescribeImageResponse -> Maybe Text
roleArn :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeImageResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeImageResponse -> DescribeImageResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeImageResponse -> DescribeImageResponse -> Bool
$c/= :: DescribeImageResponse -> DescribeImageResponse -> Bool
== :: DescribeImageResponse -> DescribeImageResponse -> Bool
$c== :: DescribeImageResponse -> DescribeImageResponse -> Bool
Prelude.Eq, ReadPrec [DescribeImageResponse]
ReadPrec DescribeImageResponse
Int -> ReadS DescribeImageResponse
ReadS [DescribeImageResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeImageResponse]
$creadListPrec :: ReadPrec [DescribeImageResponse]
readPrec :: ReadPrec DescribeImageResponse
$creadPrec :: ReadPrec DescribeImageResponse
readList :: ReadS [DescribeImageResponse]
$creadList :: ReadS [DescribeImageResponse]
readsPrec :: Int -> ReadS DescribeImageResponse
$creadsPrec :: Int -> ReadS DescribeImageResponse
Prelude.Read, Int -> DescribeImageResponse -> ShowS
[DescribeImageResponse] -> ShowS
DescribeImageResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeImageResponse] -> ShowS
$cshowList :: [DescribeImageResponse] -> ShowS
show :: DescribeImageResponse -> String
$cshow :: DescribeImageResponse -> String
showsPrec :: Int -> DescribeImageResponse -> ShowS
$cshowsPrec :: Int -> DescribeImageResponse -> ShowS
Prelude.Show, forall x. Rep DescribeImageResponse x -> DescribeImageResponse
forall x. DescribeImageResponse -> Rep DescribeImageResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeImageResponse x -> DescribeImageResponse
$cfrom :: forall x. DescribeImageResponse -> Rep DescribeImageResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeImageResponse' 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:
--
-- 'creationTime', 'describeImageResponse_creationTime' - When the image was created.
--
-- 'description', 'describeImageResponse_description' - The description of the image.
--
-- 'displayName', 'describeImageResponse_displayName' - The name of the image as displayed.
--
-- 'failureReason', 'describeImageResponse_failureReason' - When a create, update, or delete operation fails, the reason for the
-- failure.
--
-- 'imageArn', 'describeImageResponse_imageArn' - The ARN of the image.
--
-- 'imageName', 'describeImageResponse_imageName' - The name of the image.
--
-- 'imageStatus', 'describeImageResponse_imageStatus' - The status of the image.
--
-- 'lastModifiedTime', 'describeImageResponse_lastModifiedTime' - When the image was last modified.
--
-- 'roleArn', 'describeImageResponse_roleArn' - The ARN of the IAM role that enables Amazon SageMaker to perform tasks
-- on your behalf.
--
-- 'httpStatus', 'describeImageResponse_httpStatus' - The response's http status code.
newDescribeImageResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeImageResponse
newDescribeImageResponse :: Int -> DescribeImageResponse
newDescribeImageResponse Int
pHttpStatus_ =
  DescribeImageResponse'
    { $sel:creationTime:DescribeImageResponse' :: Maybe POSIX
creationTime =
        forall a. Maybe a
Prelude.Nothing,
      $sel:description:DescribeImageResponse' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:displayName:DescribeImageResponse' :: Maybe Text
displayName = forall a. Maybe a
Prelude.Nothing,
      $sel:failureReason:DescribeImageResponse' :: Maybe Text
failureReason = forall a. Maybe a
Prelude.Nothing,
      $sel:imageArn:DescribeImageResponse' :: Maybe Text
imageArn = forall a. Maybe a
Prelude.Nothing,
      $sel:imageName:DescribeImageResponse' :: Maybe Text
imageName = forall a. Maybe a
Prelude.Nothing,
      $sel:imageStatus:DescribeImageResponse' :: Maybe ImageStatus
imageStatus = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedTime:DescribeImageResponse' :: Maybe POSIX
lastModifiedTime = forall a. Maybe a
Prelude.Nothing,
      $sel:roleArn:DescribeImageResponse' :: Maybe Text
roleArn = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeImageResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | When the image was created.
describeImageResponse_creationTime :: Lens.Lens' DescribeImageResponse (Prelude.Maybe Prelude.UTCTime)
describeImageResponse_creationTime :: Lens' DescribeImageResponse (Maybe UTCTime)
describeImageResponse_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeImageResponse' {Maybe POSIX
creationTime :: Maybe POSIX
$sel:creationTime:DescribeImageResponse' :: DescribeImageResponse -> Maybe POSIX
creationTime} -> Maybe POSIX
creationTime) (\s :: DescribeImageResponse
s@DescribeImageResponse' {} Maybe POSIX
a -> DescribeImageResponse
s {$sel:creationTime:DescribeImageResponse' :: Maybe POSIX
creationTime = Maybe POSIX
a} :: DescribeImageResponse) 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 description of the image.
describeImageResponse_description :: Lens.Lens' DescribeImageResponse (Prelude.Maybe Prelude.Text)
describeImageResponse_description :: Lens' DescribeImageResponse (Maybe Text)
describeImageResponse_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeImageResponse' {Maybe Text
description :: Maybe Text
$sel:description:DescribeImageResponse' :: DescribeImageResponse -> Maybe Text
description} -> Maybe Text
description) (\s :: DescribeImageResponse
s@DescribeImageResponse' {} Maybe Text
a -> DescribeImageResponse
s {$sel:description:DescribeImageResponse' :: Maybe Text
description = Maybe Text
a} :: DescribeImageResponse)

-- | The name of the image as displayed.
describeImageResponse_displayName :: Lens.Lens' DescribeImageResponse (Prelude.Maybe Prelude.Text)
describeImageResponse_displayName :: Lens' DescribeImageResponse (Maybe Text)
describeImageResponse_displayName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeImageResponse' {Maybe Text
displayName :: Maybe Text
$sel:displayName:DescribeImageResponse' :: DescribeImageResponse -> Maybe Text
displayName} -> Maybe Text
displayName) (\s :: DescribeImageResponse
s@DescribeImageResponse' {} Maybe Text
a -> DescribeImageResponse
s {$sel:displayName:DescribeImageResponse' :: Maybe Text
displayName = Maybe Text
a} :: DescribeImageResponse)

-- | When a create, update, or delete operation fails, the reason for the
-- failure.
describeImageResponse_failureReason :: Lens.Lens' DescribeImageResponse (Prelude.Maybe Prelude.Text)
describeImageResponse_failureReason :: Lens' DescribeImageResponse (Maybe Text)
describeImageResponse_failureReason = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeImageResponse' {Maybe Text
failureReason :: Maybe Text
$sel:failureReason:DescribeImageResponse' :: DescribeImageResponse -> Maybe Text
failureReason} -> Maybe Text
failureReason) (\s :: DescribeImageResponse
s@DescribeImageResponse' {} Maybe Text
a -> DescribeImageResponse
s {$sel:failureReason:DescribeImageResponse' :: Maybe Text
failureReason = Maybe Text
a} :: DescribeImageResponse)

-- | The ARN of the image.
describeImageResponse_imageArn :: Lens.Lens' DescribeImageResponse (Prelude.Maybe Prelude.Text)
describeImageResponse_imageArn :: Lens' DescribeImageResponse (Maybe Text)
describeImageResponse_imageArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeImageResponse' {Maybe Text
imageArn :: Maybe Text
$sel:imageArn:DescribeImageResponse' :: DescribeImageResponse -> Maybe Text
imageArn} -> Maybe Text
imageArn) (\s :: DescribeImageResponse
s@DescribeImageResponse' {} Maybe Text
a -> DescribeImageResponse
s {$sel:imageArn:DescribeImageResponse' :: Maybe Text
imageArn = Maybe Text
a} :: DescribeImageResponse)

-- | The name of the image.
describeImageResponse_imageName :: Lens.Lens' DescribeImageResponse (Prelude.Maybe Prelude.Text)
describeImageResponse_imageName :: Lens' DescribeImageResponse (Maybe Text)
describeImageResponse_imageName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeImageResponse' {Maybe Text
imageName :: Maybe Text
$sel:imageName:DescribeImageResponse' :: DescribeImageResponse -> Maybe Text
imageName} -> Maybe Text
imageName) (\s :: DescribeImageResponse
s@DescribeImageResponse' {} Maybe Text
a -> DescribeImageResponse
s {$sel:imageName:DescribeImageResponse' :: Maybe Text
imageName = Maybe Text
a} :: DescribeImageResponse)

-- | The status of the image.
describeImageResponse_imageStatus :: Lens.Lens' DescribeImageResponse (Prelude.Maybe ImageStatus)
describeImageResponse_imageStatus :: Lens' DescribeImageResponse (Maybe ImageStatus)
describeImageResponse_imageStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeImageResponse' {Maybe ImageStatus
imageStatus :: Maybe ImageStatus
$sel:imageStatus:DescribeImageResponse' :: DescribeImageResponse -> Maybe ImageStatus
imageStatus} -> Maybe ImageStatus
imageStatus) (\s :: DescribeImageResponse
s@DescribeImageResponse' {} Maybe ImageStatus
a -> DescribeImageResponse
s {$sel:imageStatus:DescribeImageResponse' :: Maybe ImageStatus
imageStatus = Maybe ImageStatus
a} :: DescribeImageResponse)

-- | When the image was last modified.
describeImageResponse_lastModifiedTime :: Lens.Lens' DescribeImageResponse (Prelude.Maybe Prelude.UTCTime)
describeImageResponse_lastModifiedTime :: Lens' DescribeImageResponse (Maybe UTCTime)
describeImageResponse_lastModifiedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeImageResponse' {Maybe POSIX
lastModifiedTime :: Maybe POSIX
$sel:lastModifiedTime:DescribeImageResponse' :: DescribeImageResponse -> Maybe POSIX
lastModifiedTime} -> Maybe POSIX
lastModifiedTime) (\s :: DescribeImageResponse
s@DescribeImageResponse' {} Maybe POSIX
a -> DescribeImageResponse
s {$sel:lastModifiedTime:DescribeImageResponse' :: Maybe POSIX
lastModifiedTime = Maybe POSIX
a} :: DescribeImageResponse) 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 ARN of the IAM role that enables Amazon SageMaker to perform tasks
-- on your behalf.
describeImageResponse_roleArn :: Lens.Lens' DescribeImageResponse (Prelude.Maybe Prelude.Text)
describeImageResponse_roleArn :: Lens' DescribeImageResponse (Maybe Text)
describeImageResponse_roleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeImageResponse' {Maybe Text
roleArn :: Maybe Text
$sel:roleArn:DescribeImageResponse' :: DescribeImageResponse -> Maybe Text
roleArn} -> Maybe Text
roleArn) (\s :: DescribeImageResponse
s@DescribeImageResponse' {} Maybe Text
a -> DescribeImageResponse
s {$sel:roleArn:DescribeImageResponse' :: Maybe Text
roleArn = Maybe Text
a} :: DescribeImageResponse)

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

instance Prelude.NFData DescribeImageResponse where
  rnf :: DescribeImageResponse -> ()
rnf DescribeImageResponse' {Int
Maybe Text
Maybe POSIX
Maybe ImageStatus
httpStatus :: Int
roleArn :: Maybe Text
lastModifiedTime :: Maybe POSIX
imageStatus :: Maybe ImageStatus
imageName :: Maybe Text
imageArn :: Maybe Text
failureReason :: Maybe Text
displayName :: Maybe Text
description :: Maybe Text
creationTime :: Maybe POSIX
$sel:httpStatus:DescribeImageResponse' :: DescribeImageResponse -> Int
$sel:roleArn:DescribeImageResponse' :: DescribeImageResponse -> Maybe Text
$sel:lastModifiedTime:DescribeImageResponse' :: DescribeImageResponse -> Maybe POSIX
$sel:imageStatus:DescribeImageResponse' :: DescribeImageResponse -> Maybe ImageStatus
$sel:imageName:DescribeImageResponse' :: DescribeImageResponse -> Maybe Text
$sel:imageArn:DescribeImageResponse' :: DescribeImageResponse -> Maybe Text
$sel:failureReason:DescribeImageResponse' :: DescribeImageResponse -> Maybe Text
$sel:displayName:DescribeImageResponse' :: DescribeImageResponse -> Maybe Text
$sel:description:DescribeImageResponse' :: DescribeImageResponse -> Maybe Text
$sel:creationTime:DescribeImageResponse' :: DescribeImageResponse -> Maybe POSIX
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
creationTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` 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
displayName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
failureReason
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
imageArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
imageName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ImageStatus
imageStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastModifiedTime
      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 Int
httpStatus