{-# 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.DescribeAlgorithm
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns a description of the specified algorithm that is in your
-- account.
module Amazonka.SageMaker.DescribeAlgorithm
  ( -- * Creating a Request
    DescribeAlgorithm (..),
    newDescribeAlgorithm,

    -- * Request Lenses
    describeAlgorithm_algorithmName,

    -- * Destructuring the Response
    DescribeAlgorithmResponse (..),
    newDescribeAlgorithmResponse,

    -- * Response Lenses
    describeAlgorithmResponse_algorithmDescription,
    describeAlgorithmResponse_certifyForMarketplace,
    describeAlgorithmResponse_inferenceSpecification,
    describeAlgorithmResponse_productId,
    describeAlgorithmResponse_validationSpecification,
    describeAlgorithmResponse_httpStatus,
    describeAlgorithmResponse_algorithmName,
    describeAlgorithmResponse_algorithmArn,
    describeAlgorithmResponse_creationTime,
    describeAlgorithmResponse_trainingSpecification,
    describeAlgorithmResponse_algorithmStatus,
    describeAlgorithmResponse_algorithmStatusDetails,
  )
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:/ 'newDescribeAlgorithm' smart constructor.
data DescribeAlgorithm = DescribeAlgorithm'
  { -- | The name of the algorithm to describe.
    DescribeAlgorithm -> Text
algorithmName :: Prelude.Text
  }
  deriving (DescribeAlgorithm -> DescribeAlgorithm -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeAlgorithm -> DescribeAlgorithm -> Bool
$c/= :: DescribeAlgorithm -> DescribeAlgorithm -> Bool
== :: DescribeAlgorithm -> DescribeAlgorithm -> Bool
$c== :: DescribeAlgorithm -> DescribeAlgorithm -> Bool
Prelude.Eq, ReadPrec [DescribeAlgorithm]
ReadPrec DescribeAlgorithm
Int -> ReadS DescribeAlgorithm
ReadS [DescribeAlgorithm]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeAlgorithm]
$creadListPrec :: ReadPrec [DescribeAlgorithm]
readPrec :: ReadPrec DescribeAlgorithm
$creadPrec :: ReadPrec DescribeAlgorithm
readList :: ReadS [DescribeAlgorithm]
$creadList :: ReadS [DescribeAlgorithm]
readsPrec :: Int -> ReadS DescribeAlgorithm
$creadsPrec :: Int -> ReadS DescribeAlgorithm
Prelude.Read, Int -> DescribeAlgorithm -> ShowS
[DescribeAlgorithm] -> ShowS
DescribeAlgorithm -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeAlgorithm] -> ShowS
$cshowList :: [DescribeAlgorithm] -> ShowS
show :: DescribeAlgorithm -> String
$cshow :: DescribeAlgorithm -> String
showsPrec :: Int -> DescribeAlgorithm -> ShowS
$cshowsPrec :: Int -> DescribeAlgorithm -> ShowS
Prelude.Show, forall x. Rep DescribeAlgorithm x -> DescribeAlgorithm
forall x. DescribeAlgorithm -> Rep DescribeAlgorithm x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeAlgorithm x -> DescribeAlgorithm
$cfrom :: forall x. DescribeAlgorithm -> Rep DescribeAlgorithm x
Prelude.Generic)

-- |
-- Create a value of 'DescribeAlgorithm' 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:
--
-- 'algorithmName', 'describeAlgorithm_algorithmName' - The name of the algorithm to describe.
newDescribeAlgorithm ::
  -- | 'algorithmName'
  Prelude.Text ->
  DescribeAlgorithm
newDescribeAlgorithm :: Text -> DescribeAlgorithm
newDescribeAlgorithm Text
pAlgorithmName_ =
  DescribeAlgorithm' {$sel:algorithmName:DescribeAlgorithm' :: Text
algorithmName = Text
pAlgorithmName_}

-- | The name of the algorithm to describe.
describeAlgorithm_algorithmName :: Lens.Lens' DescribeAlgorithm Prelude.Text
describeAlgorithm_algorithmName :: Lens' DescribeAlgorithm Text
describeAlgorithm_algorithmName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAlgorithm' {Text
algorithmName :: Text
$sel:algorithmName:DescribeAlgorithm' :: DescribeAlgorithm -> Text
algorithmName} -> Text
algorithmName) (\s :: DescribeAlgorithm
s@DescribeAlgorithm' {} Text
a -> DescribeAlgorithm
s {$sel:algorithmName:DescribeAlgorithm' :: Text
algorithmName = Text
a} :: DescribeAlgorithm)

instance Core.AWSRequest DescribeAlgorithm where
  type
    AWSResponse DescribeAlgorithm =
      DescribeAlgorithmResponse
  request :: (Service -> Service)
-> DescribeAlgorithm -> Request DescribeAlgorithm
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 DescribeAlgorithm
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeAlgorithm)))
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 Bool
-> Maybe InferenceSpecification
-> Maybe Text
-> Maybe AlgorithmValidationSpecification
-> Int
-> Text
-> Text
-> POSIX
-> TrainingSpecification
-> AlgorithmStatus
-> AlgorithmStatusDetails
-> DescribeAlgorithmResponse
DescribeAlgorithmResponse'
            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
"AlgorithmDescription")
            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
"CertifyForMarketplace")
            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
"InferenceSpecification")
            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
"ProductId")
            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
"ValidationSpecification")
            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))
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"AlgorithmName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"AlgorithmArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String 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 a
Data..:> Key
"TrainingSpecification")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"AlgorithmStatus")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"AlgorithmStatusDetails")
      )

instance Prelude.Hashable DescribeAlgorithm where
  hashWithSalt :: Int -> DescribeAlgorithm -> Int
hashWithSalt Int
_salt DescribeAlgorithm' {Text
algorithmName :: Text
$sel:algorithmName:DescribeAlgorithm' :: DescribeAlgorithm -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
algorithmName

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

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

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

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

-- | /See:/ 'newDescribeAlgorithmResponse' smart constructor.
data DescribeAlgorithmResponse = DescribeAlgorithmResponse'
  { -- | A brief summary about the algorithm.
    DescribeAlgorithmResponse -> Maybe Text
algorithmDescription :: Prelude.Maybe Prelude.Text,
    -- | Whether the algorithm is certified to be listed in Amazon Web Services
    -- Marketplace.
    DescribeAlgorithmResponse -> Maybe Bool
certifyForMarketplace :: Prelude.Maybe Prelude.Bool,
    -- | Details about inference jobs that the algorithm runs.
    DescribeAlgorithmResponse -> Maybe InferenceSpecification
inferenceSpecification :: Prelude.Maybe InferenceSpecification,
    -- | The product identifier of the algorithm.
    DescribeAlgorithmResponse -> Maybe Text
productId :: Prelude.Maybe Prelude.Text,
    -- | Details about configurations for one or more training jobs that
    -- SageMaker runs to test the algorithm.
    DescribeAlgorithmResponse -> Maybe AlgorithmValidationSpecification
validationSpecification :: Prelude.Maybe AlgorithmValidationSpecification,
    -- | The response's http status code.
    DescribeAlgorithmResponse -> Int
httpStatus :: Prelude.Int,
    -- | The name of the algorithm being described.
    DescribeAlgorithmResponse -> Text
algorithmName :: Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the algorithm.
    DescribeAlgorithmResponse -> Text
algorithmArn :: Prelude.Text,
    -- | A timestamp specifying when the algorithm was created.
    DescribeAlgorithmResponse -> POSIX
creationTime :: Data.POSIX,
    -- | Details about training jobs run by this algorithm.
    DescribeAlgorithmResponse -> TrainingSpecification
trainingSpecification :: TrainingSpecification,
    -- | The current status of the algorithm.
    DescribeAlgorithmResponse -> AlgorithmStatus
algorithmStatus :: AlgorithmStatus,
    -- | Details about the current status of the algorithm.
    DescribeAlgorithmResponse -> AlgorithmStatusDetails
algorithmStatusDetails :: AlgorithmStatusDetails
  }
  deriving (DescribeAlgorithmResponse -> DescribeAlgorithmResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeAlgorithmResponse -> DescribeAlgorithmResponse -> Bool
$c/= :: DescribeAlgorithmResponse -> DescribeAlgorithmResponse -> Bool
== :: DescribeAlgorithmResponse -> DescribeAlgorithmResponse -> Bool
$c== :: DescribeAlgorithmResponse -> DescribeAlgorithmResponse -> Bool
Prelude.Eq, ReadPrec [DescribeAlgorithmResponse]
ReadPrec DescribeAlgorithmResponse
Int -> ReadS DescribeAlgorithmResponse
ReadS [DescribeAlgorithmResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeAlgorithmResponse]
$creadListPrec :: ReadPrec [DescribeAlgorithmResponse]
readPrec :: ReadPrec DescribeAlgorithmResponse
$creadPrec :: ReadPrec DescribeAlgorithmResponse
readList :: ReadS [DescribeAlgorithmResponse]
$creadList :: ReadS [DescribeAlgorithmResponse]
readsPrec :: Int -> ReadS DescribeAlgorithmResponse
$creadsPrec :: Int -> ReadS DescribeAlgorithmResponse
Prelude.Read, Int -> DescribeAlgorithmResponse -> ShowS
[DescribeAlgorithmResponse] -> ShowS
DescribeAlgorithmResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeAlgorithmResponse] -> ShowS
$cshowList :: [DescribeAlgorithmResponse] -> ShowS
show :: DescribeAlgorithmResponse -> String
$cshow :: DescribeAlgorithmResponse -> String
showsPrec :: Int -> DescribeAlgorithmResponse -> ShowS
$cshowsPrec :: Int -> DescribeAlgorithmResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeAlgorithmResponse x -> DescribeAlgorithmResponse
forall x.
DescribeAlgorithmResponse -> Rep DescribeAlgorithmResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeAlgorithmResponse x -> DescribeAlgorithmResponse
$cfrom :: forall x.
DescribeAlgorithmResponse -> Rep DescribeAlgorithmResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeAlgorithmResponse' 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:
--
-- 'algorithmDescription', 'describeAlgorithmResponse_algorithmDescription' - A brief summary about the algorithm.
--
-- 'certifyForMarketplace', 'describeAlgorithmResponse_certifyForMarketplace' - Whether the algorithm is certified to be listed in Amazon Web Services
-- Marketplace.
--
-- 'inferenceSpecification', 'describeAlgorithmResponse_inferenceSpecification' - Details about inference jobs that the algorithm runs.
--
-- 'productId', 'describeAlgorithmResponse_productId' - The product identifier of the algorithm.
--
-- 'validationSpecification', 'describeAlgorithmResponse_validationSpecification' - Details about configurations for one or more training jobs that
-- SageMaker runs to test the algorithm.
--
-- 'httpStatus', 'describeAlgorithmResponse_httpStatus' - The response's http status code.
--
-- 'algorithmName', 'describeAlgorithmResponse_algorithmName' - The name of the algorithm being described.
--
-- 'algorithmArn', 'describeAlgorithmResponse_algorithmArn' - The Amazon Resource Name (ARN) of the algorithm.
--
-- 'creationTime', 'describeAlgorithmResponse_creationTime' - A timestamp specifying when the algorithm was created.
--
-- 'trainingSpecification', 'describeAlgorithmResponse_trainingSpecification' - Details about training jobs run by this algorithm.
--
-- 'algorithmStatus', 'describeAlgorithmResponse_algorithmStatus' - The current status of the algorithm.
--
-- 'algorithmStatusDetails', 'describeAlgorithmResponse_algorithmStatusDetails' - Details about the current status of the algorithm.
newDescribeAlgorithmResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'algorithmName'
  Prelude.Text ->
  -- | 'algorithmArn'
  Prelude.Text ->
  -- | 'creationTime'
  Prelude.UTCTime ->
  -- | 'trainingSpecification'
  TrainingSpecification ->
  -- | 'algorithmStatus'
  AlgorithmStatus ->
  -- | 'algorithmStatusDetails'
  AlgorithmStatusDetails ->
  DescribeAlgorithmResponse
newDescribeAlgorithmResponse :: Int
-> Text
-> Text
-> UTCTime
-> TrainingSpecification
-> AlgorithmStatus
-> AlgorithmStatusDetails
-> DescribeAlgorithmResponse
newDescribeAlgorithmResponse
  Int
pHttpStatus_
  Text
pAlgorithmName_
  Text
pAlgorithmArn_
  UTCTime
pCreationTime_
  TrainingSpecification
pTrainingSpecification_
  AlgorithmStatus
pAlgorithmStatus_
  AlgorithmStatusDetails
pAlgorithmStatusDetails_ =
    DescribeAlgorithmResponse'
      { $sel:algorithmDescription:DescribeAlgorithmResponse' :: Maybe Text
algorithmDescription =
          forall a. Maybe a
Prelude.Nothing,
        $sel:certifyForMarketplace:DescribeAlgorithmResponse' :: Maybe Bool
certifyForMarketplace = forall a. Maybe a
Prelude.Nothing,
        $sel:inferenceSpecification:DescribeAlgorithmResponse' :: Maybe InferenceSpecification
inferenceSpecification = forall a. Maybe a
Prelude.Nothing,
        $sel:productId:DescribeAlgorithmResponse' :: Maybe Text
productId = forall a. Maybe a
Prelude.Nothing,
        $sel:validationSpecification:DescribeAlgorithmResponse' :: Maybe AlgorithmValidationSpecification
validationSpecification = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DescribeAlgorithmResponse' :: Int
httpStatus = Int
pHttpStatus_,
        $sel:algorithmName:DescribeAlgorithmResponse' :: Text
algorithmName = Text
pAlgorithmName_,
        $sel:algorithmArn:DescribeAlgorithmResponse' :: Text
algorithmArn = Text
pAlgorithmArn_,
        $sel:creationTime:DescribeAlgorithmResponse' :: POSIX
creationTime = forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pCreationTime_,
        $sel:trainingSpecification:DescribeAlgorithmResponse' :: TrainingSpecification
trainingSpecification = TrainingSpecification
pTrainingSpecification_,
        $sel:algorithmStatus:DescribeAlgorithmResponse' :: AlgorithmStatus
algorithmStatus = AlgorithmStatus
pAlgorithmStatus_,
        $sel:algorithmStatusDetails:DescribeAlgorithmResponse' :: AlgorithmStatusDetails
algorithmStatusDetails =
          AlgorithmStatusDetails
pAlgorithmStatusDetails_
      }

-- | A brief summary about the algorithm.
describeAlgorithmResponse_algorithmDescription :: Lens.Lens' DescribeAlgorithmResponse (Prelude.Maybe Prelude.Text)
describeAlgorithmResponse_algorithmDescription :: Lens' DescribeAlgorithmResponse (Maybe Text)
describeAlgorithmResponse_algorithmDescription = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAlgorithmResponse' {Maybe Text
algorithmDescription :: Maybe Text
$sel:algorithmDescription:DescribeAlgorithmResponse' :: DescribeAlgorithmResponse -> Maybe Text
algorithmDescription} -> Maybe Text
algorithmDescription) (\s :: DescribeAlgorithmResponse
s@DescribeAlgorithmResponse' {} Maybe Text
a -> DescribeAlgorithmResponse
s {$sel:algorithmDescription:DescribeAlgorithmResponse' :: Maybe Text
algorithmDescription = Maybe Text
a} :: DescribeAlgorithmResponse)

-- | Whether the algorithm is certified to be listed in Amazon Web Services
-- Marketplace.
describeAlgorithmResponse_certifyForMarketplace :: Lens.Lens' DescribeAlgorithmResponse (Prelude.Maybe Prelude.Bool)
describeAlgorithmResponse_certifyForMarketplace :: Lens' DescribeAlgorithmResponse (Maybe Bool)
describeAlgorithmResponse_certifyForMarketplace = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAlgorithmResponse' {Maybe Bool
certifyForMarketplace :: Maybe Bool
$sel:certifyForMarketplace:DescribeAlgorithmResponse' :: DescribeAlgorithmResponse -> Maybe Bool
certifyForMarketplace} -> Maybe Bool
certifyForMarketplace) (\s :: DescribeAlgorithmResponse
s@DescribeAlgorithmResponse' {} Maybe Bool
a -> DescribeAlgorithmResponse
s {$sel:certifyForMarketplace:DescribeAlgorithmResponse' :: Maybe Bool
certifyForMarketplace = Maybe Bool
a} :: DescribeAlgorithmResponse)

-- | Details about inference jobs that the algorithm runs.
describeAlgorithmResponse_inferenceSpecification :: Lens.Lens' DescribeAlgorithmResponse (Prelude.Maybe InferenceSpecification)
describeAlgorithmResponse_inferenceSpecification :: Lens' DescribeAlgorithmResponse (Maybe InferenceSpecification)
describeAlgorithmResponse_inferenceSpecification = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAlgorithmResponse' {Maybe InferenceSpecification
inferenceSpecification :: Maybe InferenceSpecification
$sel:inferenceSpecification:DescribeAlgorithmResponse' :: DescribeAlgorithmResponse -> Maybe InferenceSpecification
inferenceSpecification} -> Maybe InferenceSpecification
inferenceSpecification) (\s :: DescribeAlgorithmResponse
s@DescribeAlgorithmResponse' {} Maybe InferenceSpecification
a -> DescribeAlgorithmResponse
s {$sel:inferenceSpecification:DescribeAlgorithmResponse' :: Maybe InferenceSpecification
inferenceSpecification = Maybe InferenceSpecification
a} :: DescribeAlgorithmResponse)

-- | The product identifier of the algorithm.
describeAlgorithmResponse_productId :: Lens.Lens' DescribeAlgorithmResponse (Prelude.Maybe Prelude.Text)
describeAlgorithmResponse_productId :: Lens' DescribeAlgorithmResponse (Maybe Text)
describeAlgorithmResponse_productId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAlgorithmResponse' {Maybe Text
productId :: Maybe Text
$sel:productId:DescribeAlgorithmResponse' :: DescribeAlgorithmResponse -> Maybe Text
productId} -> Maybe Text
productId) (\s :: DescribeAlgorithmResponse
s@DescribeAlgorithmResponse' {} Maybe Text
a -> DescribeAlgorithmResponse
s {$sel:productId:DescribeAlgorithmResponse' :: Maybe Text
productId = Maybe Text
a} :: DescribeAlgorithmResponse)

-- | Details about configurations for one or more training jobs that
-- SageMaker runs to test the algorithm.
describeAlgorithmResponse_validationSpecification :: Lens.Lens' DescribeAlgorithmResponse (Prelude.Maybe AlgorithmValidationSpecification)
describeAlgorithmResponse_validationSpecification :: Lens'
  DescribeAlgorithmResponse (Maybe AlgorithmValidationSpecification)
describeAlgorithmResponse_validationSpecification = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAlgorithmResponse' {Maybe AlgorithmValidationSpecification
validationSpecification :: Maybe AlgorithmValidationSpecification
$sel:validationSpecification:DescribeAlgorithmResponse' :: DescribeAlgorithmResponse -> Maybe AlgorithmValidationSpecification
validationSpecification} -> Maybe AlgorithmValidationSpecification
validationSpecification) (\s :: DescribeAlgorithmResponse
s@DescribeAlgorithmResponse' {} Maybe AlgorithmValidationSpecification
a -> DescribeAlgorithmResponse
s {$sel:validationSpecification:DescribeAlgorithmResponse' :: Maybe AlgorithmValidationSpecification
validationSpecification = Maybe AlgorithmValidationSpecification
a} :: DescribeAlgorithmResponse)

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

-- | The name of the algorithm being described.
describeAlgorithmResponse_algorithmName :: Lens.Lens' DescribeAlgorithmResponse Prelude.Text
describeAlgorithmResponse_algorithmName :: Lens' DescribeAlgorithmResponse Text
describeAlgorithmResponse_algorithmName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAlgorithmResponse' {Text
algorithmName :: Text
$sel:algorithmName:DescribeAlgorithmResponse' :: DescribeAlgorithmResponse -> Text
algorithmName} -> Text
algorithmName) (\s :: DescribeAlgorithmResponse
s@DescribeAlgorithmResponse' {} Text
a -> DescribeAlgorithmResponse
s {$sel:algorithmName:DescribeAlgorithmResponse' :: Text
algorithmName = Text
a} :: DescribeAlgorithmResponse)

-- | The Amazon Resource Name (ARN) of the algorithm.
describeAlgorithmResponse_algorithmArn :: Lens.Lens' DescribeAlgorithmResponse Prelude.Text
describeAlgorithmResponse_algorithmArn :: Lens' DescribeAlgorithmResponse Text
describeAlgorithmResponse_algorithmArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAlgorithmResponse' {Text
algorithmArn :: Text
$sel:algorithmArn:DescribeAlgorithmResponse' :: DescribeAlgorithmResponse -> Text
algorithmArn} -> Text
algorithmArn) (\s :: DescribeAlgorithmResponse
s@DescribeAlgorithmResponse' {} Text
a -> DescribeAlgorithmResponse
s {$sel:algorithmArn:DescribeAlgorithmResponse' :: Text
algorithmArn = Text
a} :: DescribeAlgorithmResponse)

-- | A timestamp specifying when the algorithm was created.
describeAlgorithmResponse_creationTime :: Lens.Lens' DescribeAlgorithmResponse Prelude.UTCTime
describeAlgorithmResponse_creationTime :: Lens' DescribeAlgorithmResponse UTCTime
describeAlgorithmResponse_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAlgorithmResponse' {POSIX
creationTime :: POSIX
$sel:creationTime:DescribeAlgorithmResponse' :: DescribeAlgorithmResponse -> POSIX
creationTime} -> POSIX
creationTime) (\s :: DescribeAlgorithmResponse
s@DescribeAlgorithmResponse' {} POSIX
a -> DescribeAlgorithmResponse
s {$sel:creationTime:DescribeAlgorithmResponse' :: POSIX
creationTime = POSIX
a} :: DescribeAlgorithmResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | Details about training jobs run by this algorithm.
describeAlgorithmResponse_trainingSpecification :: Lens.Lens' DescribeAlgorithmResponse TrainingSpecification
describeAlgorithmResponse_trainingSpecification :: Lens' DescribeAlgorithmResponse TrainingSpecification
describeAlgorithmResponse_trainingSpecification = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAlgorithmResponse' {TrainingSpecification
trainingSpecification :: TrainingSpecification
$sel:trainingSpecification:DescribeAlgorithmResponse' :: DescribeAlgorithmResponse -> TrainingSpecification
trainingSpecification} -> TrainingSpecification
trainingSpecification) (\s :: DescribeAlgorithmResponse
s@DescribeAlgorithmResponse' {} TrainingSpecification
a -> DescribeAlgorithmResponse
s {$sel:trainingSpecification:DescribeAlgorithmResponse' :: TrainingSpecification
trainingSpecification = TrainingSpecification
a} :: DescribeAlgorithmResponse)

-- | The current status of the algorithm.
describeAlgorithmResponse_algorithmStatus :: Lens.Lens' DescribeAlgorithmResponse AlgorithmStatus
describeAlgorithmResponse_algorithmStatus :: Lens' DescribeAlgorithmResponse AlgorithmStatus
describeAlgorithmResponse_algorithmStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAlgorithmResponse' {AlgorithmStatus
algorithmStatus :: AlgorithmStatus
$sel:algorithmStatus:DescribeAlgorithmResponse' :: DescribeAlgorithmResponse -> AlgorithmStatus
algorithmStatus} -> AlgorithmStatus
algorithmStatus) (\s :: DescribeAlgorithmResponse
s@DescribeAlgorithmResponse' {} AlgorithmStatus
a -> DescribeAlgorithmResponse
s {$sel:algorithmStatus:DescribeAlgorithmResponse' :: AlgorithmStatus
algorithmStatus = AlgorithmStatus
a} :: DescribeAlgorithmResponse)

-- | Details about the current status of the algorithm.
describeAlgorithmResponse_algorithmStatusDetails :: Lens.Lens' DescribeAlgorithmResponse AlgorithmStatusDetails
describeAlgorithmResponse_algorithmStatusDetails :: Lens' DescribeAlgorithmResponse AlgorithmStatusDetails
describeAlgorithmResponse_algorithmStatusDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAlgorithmResponse' {AlgorithmStatusDetails
algorithmStatusDetails :: AlgorithmStatusDetails
$sel:algorithmStatusDetails:DescribeAlgorithmResponse' :: DescribeAlgorithmResponse -> AlgorithmStatusDetails
algorithmStatusDetails} -> AlgorithmStatusDetails
algorithmStatusDetails) (\s :: DescribeAlgorithmResponse
s@DescribeAlgorithmResponse' {} AlgorithmStatusDetails
a -> DescribeAlgorithmResponse
s {$sel:algorithmStatusDetails:DescribeAlgorithmResponse' :: AlgorithmStatusDetails
algorithmStatusDetails = AlgorithmStatusDetails
a} :: DescribeAlgorithmResponse)

instance Prelude.NFData DescribeAlgorithmResponse where
  rnf :: DescribeAlgorithmResponse -> ()
rnf DescribeAlgorithmResponse' {Int
Maybe Bool
Maybe Text
Maybe InferenceSpecification
Maybe AlgorithmValidationSpecification
Text
POSIX
AlgorithmStatus
AlgorithmStatusDetails
TrainingSpecification
algorithmStatusDetails :: AlgorithmStatusDetails
algorithmStatus :: AlgorithmStatus
trainingSpecification :: TrainingSpecification
creationTime :: POSIX
algorithmArn :: Text
algorithmName :: Text
httpStatus :: Int
validationSpecification :: Maybe AlgorithmValidationSpecification
productId :: Maybe Text
inferenceSpecification :: Maybe InferenceSpecification
certifyForMarketplace :: Maybe Bool
algorithmDescription :: Maybe Text
$sel:algorithmStatusDetails:DescribeAlgorithmResponse' :: DescribeAlgorithmResponse -> AlgorithmStatusDetails
$sel:algorithmStatus:DescribeAlgorithmResponse' :: DescribeAlgorithmResponse -> AlgorithmStatus
$sel:trainingSpecification:DescribeAlgorithmResponse' :: DescribeAlgorithmResponse -> TrainingSpecification
$sel:creationTime:DescribeAlgorithmResponse' :: DescribeAlgorithmResponse -> POSIX
$sel:algorithmArn:DescribeAlgorithmResponse' :: DescribeAlgorithmResponse -> Text
$sel:algorithmName:DescribeAlgorithmResponse' :: DescribeAlgorithmResponse -> Text
$sel:httpStatus:DescribeAlgorithmResponse' :: DescribeAlgorithmResponse -> Int
$sel:validationSpecification:DescribeAlgorithmResponse' :: DescribeAlgorithmResponse -> Maybe AlgorithmValidationSpecification
$sel:productId:DescribeAlgorithmResponse' :: DescribeAlgorithmResponse -> Maybe Text
$sel:inferenceSpecification:DescribeAlgorithmResponse' :: DescribeAlgorithmResponse -> Maybe InferenceSpecification
$sel:certifyForMarketplace:DescribeAlgorithmResponse' :: DescribeAlgorithmResponse -> Maybe Bool
$sel:algorithmDescription:DescribeAlgorithmResponse' :: DescribeAlgorithmResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
algorithmDescription
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
certifyForMarketplace
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe InferenceSpecification
inferenceSpecification
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
productId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AlgorithmValidationSpecification
validationSpecification
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
algorithmName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
algorithmArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf POSIX
creationTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf TrainingSpecification
trainingSpecification
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf AlgorithmStatus
algorithmStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf AlgorithmStatusDetails
algorithmStatusDetails