{-# 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.DescribeInferenceExperiment
-- 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 details about an inference experiment.
module Amazonka.SageMaker.DescribeInferenceExperiment
  ( -- * Creating a Request
    DescribeInferenceExperiment (..),
    newDescribeInferenceExperiment,

    -- * Request Lenses
    describeInferenceExperiment_name,

    -- * Destructuring the Response
    DescribeInferenceExperimentResponse (..),
    newDescribeInferenceExperimentResponse,

    -- * Response Lenses
    describeInferenceExperimentResponse_completionTime,
    describeInferenceExperimentResponse_creationTime,
    describeInferenceExperimentResponse_dataStorageConfig,
    describeInferenceExperimentResponse_description,
    describeInferenceExperimentResponse_kmsKey,
    describeInferenceExperimentResponse_lastModifiedTime,
    describeInferenceExperimentResponse_roleArn,
    describeInferenceExperimentResponse_schedule,
    describeInferenceExperimentResponse_shadowModeConfig,
    describeInferenceExperimentResponse_statusReason,
    describeInferenceExperimentResponse_httpStatus,
    describeInferenceExperimentResponse_arn,
    describeInferenceExperimentResponse_name,
    describeInferenceExperimentResponse_type,
    describeInferenceExperimentResponse_status,
    describeInferenceExperimentResponse_endpointMetadata,
    describeInferenceExperimentResponse_modelVariants,
  )
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:/ 'newDescribeInferenceExperiment' smart constructor.
data DescribeInferenceExperiment = DescribeInferenceExperiment'
  { -- | The name of the inference experiment to describe.
    DescribeInferenceExperiment -> Text
name :: Prelude.Text
  }
  deriving (DescribeInferenceExperiment -> DescribeInferenceExperiment -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeInferenceExperiment -> DescribeInferenceExperiment -> Bool
$c/= :: DescribeInferenceExperiment -> DescribeInferenceExperiment -> Bool
== :: DescribeInferenceExperiment -> DescribeInferenceExperiment -> Bool
$c== :: DescribeInferenceExperiment -> DescribeInferenceExperiment -> Bool
Prelude.Eq, ReadPrec [DescribeInferenceExperiment]
ReadPrec DescribeInferenceExperiment
Int -> ReadS DescribeInferenceExperiment
ReadS [DescribeInferenceExperiment]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeInferenceExperiment]
$creadListPrec :: ReadPrec [DescribeInferenceExperiment]
readPrec :: ReadPrec DescribeInferenceExperiment
$creadPrec :: ReadPrec DescribeInferenceExperiment
readList :: ReadS [DescribeInferenceExperiment]
$creadList :: ReadS [DescribeInferenceExperiment]
readsPrec :: Int -> ReadS DescribeInferenceExperiment
$creadsPrec :: Int -> ReadS DescribeInferenceExperiment
Prelude.Read, Int -> DescribeInferenceExperiment -> ShowS
[DescribeInferenceExperiment] -> ShowS
DescribeInferenceExperiment -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeInferenceExperiment] -> ShowS
$cshowList :: [DescribeInferenceExperiment] -> ShowS
show :: DescribeInferenceExperiment -> String
$cshow :: DescribeInferenceExperiment -> String
showsPrec :: Int -> DescribeInferenceExperiment -> ShowS
$cshowsPrec :: Int -> DescribeInferenceExperiment -> ShowS
Prelude.Show, forall x.
Rep DescribeInferenceExperiment x -> DescribeInferenceExperiment
forall x.
DescribeInferenceExperiment -> Rep DescribeInferenceExperiment x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeInferenceExperiment x -> DescribeInferenceExperiment
$cfrom :: forall x.
DescribeInferenceExperiment -> Rep DescribeInferenceExperiment x
Prelude.Generic)

-- |
-- Create a value of 'DescribeInferenceExperiment' 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:
--
-- 'name', 'describeInferenceExperiment_name' - The name of the inference experiment to describe.
newDescribeInferenceExperiment ::
  -- | 'name'
  Prelude.Text ->
  DescribeInferenceExperiment
newDescribeInferenceExperiment :: Text -> DescribeInferenceExperiment
newDescribeInferenceExperiment Text
pName_ =
  DescribeInferenceExperiment' {$sel:name:DescribeInferenceExperiment' :: Text
name = Text
pName_}

-- | The name of the inference experiment to describe.
describeInferenceExperiment_name :: Lens.Lens' DescribeInferenceExperiment Prelude.Text
describeInferenceExperiment_name :: Lens' DescribeInferenceExperiment Text
describeInferenceExperiment_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeInferenceExperiment' {Text
name :: Text
$sel:name:DescribeInferenceExperiment' :: DescribeInferenceExperiment -> Text
name} -> Text
name) (\s :: DescribeInferenceExperiment
s@DescribeInferenceExperiment' {} Text
a -> DescribeInferenceExperiment
s {$sel:name:DescribeInferenceExperiment' :: Text
name = Text
a} :: DescribeInferenceExperiment)

instance Core.AWSRequest DescribeInferenceExperiment where
  type
    AWSResponse DescribeInferenceExperiment =
      DescribeInferenceExperimentResponse
  request :: (Service -> Service)
-> DescribeInferenceExperiment
-> Request DescribeInferenceExperiment
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 DescribeInferenceExperiment
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeInferenceExperiment)))
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 POSIX
-> Maybe InferenceExperimentDataStorageConfig
-> Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe InferenceExperimentSchedule
-> Maybe ShadowModeConfig
-> Maybe Text
-> Int
-> Text
-> Text
-> InferenceExperimentType
-> InferenceExperimentStatus
-> EndpointMetadata
-> [ModelVariantConfigSummary]
-> DescribeInferenceExperimentResponse
DescribeInferenceExperimentResponse'
            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
"CompletionTime")
            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
"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
"DataStorageConfig")
            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
"KmsKey")
            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.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"Schedule")
            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
"ShadowModeConfig")
            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
"StatusReason")
            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
"Arn")
            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
"Name")
            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
"Type")
            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
"Status")
            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
"EndpointMetadata")
            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
"ModelVariants" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
      )

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

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

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

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

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

-- | /See:/ 'newDescribeInferenceExperimentResponse' smart constructor.
data DescribeInferenceExperimentResponse = DescribeInferenceExperimentResponse'
  { -- | The timestamp at which the inference experiment was completed.
    DescribeInferenceExperimentResponse -> Maybe POSIX
completionTime :: Prelude.Maybe Data.POSIX,
    -- | The timestamp at which you created the inference experiment.
    DescribeInferenceExperimentResponse -> Maybe POSIX
creationTime :: Prelude.Maybe Data.POSIX,
    -- | The Amazon S3 location and configuration for storing inference request
    -- and response data.
    DescribeInferenceExperimentResponse
-> Maybe InferenceExperimentDataStorageConfig
dataStorageConfig :: Prelude.Maybe InferenceExperimentDataStorageConfig,
    -- | The description of the inference experiment.
    DescribeInferenceExperimentResponse -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Web Services Key Management Service (Amazon Web Services KMS)
    -- key that Amazon SageMaker uses to encrypt data on the storage volume
    -- attached to the ML compute instance that hosts the endpoint. For more
    -- information, see CreateInferenceExperimentRequest$KmsKey.
    DescribeInferenceExperimentResponse -> Maybe Text
kmsKey :: Prelude.Maybe Prelude.Text,
    -- | The timestamp at which you last modified the inference experiment.
    DescribeInferenceExperimentResponse -> Maybe POSIX
lastModifiedTime :: Prelude.Maybe Data.POSIX,
    -- | The ARN of the IAM role that Amazon SageMaker can assume to access model
    -- artifacts and container images, and manage Amazon SageMaker Inference
    -- endpoints for model deployment.
    DescribeInferenceExperimentResponse -> Maybe Text
roleArn :: Prelude.Maybe Prelude.Text,
    -- | The duration for which the inference experiment ran or will run.
    DescribeInferenceExperimentResponse
-> Maybe InferenceExperimentSchedule
schedule :: Prelude.Maybe InferenceExperimentSchedule,
    -- | The configuration of @ShadowMode@ inference experiment type, which shows
    -- the production variant that takes all the inference requests, and the
    -- shadow variant to which Amazon SageMaker replicates a percentage of the
    -- inference requests. For the shadow variant it also shows the percentage
    -- of requests that Amazon SageMaker replicates.
    DescribeInferenceExperimentResponse -> Maybe ShadowModeConfig
shadowModeConfig :: Prelude.Maybe ShadowModeConfig,
    -- | The error message or client-specified @Reason@ from the
    -- StopInferenceExperiment API, that explains the status of the inference
    -- experiment.
    DescribeInferenceExperimentResponse -> Maybe Text
statusReason :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeInferenceExperimentResponse -> Int
httpStatus :: Prelude.Int,
    -- | The ARN of the inference experiment being described.
    DescribeInferenceExperimentResponse -> Text
arn :: Prelude.Text,
    -- | The name of the inference experiment.
    DescribeInferenceExperimentResponse -> Text
name :: Prelude.Text,
    -- | The type of the inference experiment.
    DescribeInferenceExperimentResponse -> InferenceExperimentType
type' :: InferenceExperimentType,
    -- | The status of the inference experiment. The following are the possible
    -- statuses for an inference experiment:
    --
    -- -   @Creating@ - Amazon SageMaker is creating your experiment.
    --
    -- -   @Created@ - Amazon SageMaker has finished the creation of your
    --     experiment and will begin the experiment at the scheduled time.
    --
    -- -   @Updating@ - When you make changes to your experiment, your
    --     experiment shows as updating.
    --
    -- -   @Starting@ - Amazon SageMaker is beginning your experiment.
    --
    -- -   @Running@ - Your experiment is in progress.
    --
    -- -   @Stopping@ - Amazon SageMaker is stopping your experiment.
    --
    -- -   @Completed@ - Your experiment has completed.
    --
    -- -   @Cancelled@ - When you conclude your experiment early using the
    --     StopInferenceExperiment API, or if any operation fails with an
    --     unexpected error, it shows as cancelled.
    DescribeInferenceExperimentResponse -> InferenceExperimentStatus
status :: InferenceExperimentStatus,
    -- | The metadata of the endpoint on which the inference experiment ran.
    DescribeInferenceExperimentResponse -> EndpointMetadata
endpointMetadata :: EndpointMetadata,
    -- | An array of @ModelVariantConfigSummary@ objects. There is one for each
    -- variant in the inference experiment. Each @ModelVariantConfigSummary@
    -- object in the array describes the infrastructure configuration for
    -- deploying the corresponding variant.
    DescribeInferenceExperimentResponse -> [ModelVariantConfigSummary]
modelVariants :: [ModelVariantConfigSummary]
  }
  deriving (DescribeInferenceExperimentResponse
-> DescribeInferenceExperimentResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeInferenceExperimentResponse
-> DescribeInferenceExperimentResponse -> Bool
$c/= :: DescribeInferenceExperimentResponse
-> DescribeInferenceExperimentResponse -> Bool
== :: DescribeInferenceExperimentResponse
-> DescribeInferenceExperimentResponse -> Bool
$c== :: DescribeInferenceExperimentResponse
-> DescribeInferenceExperimentResponse -> Bool
Prelude.Eq, ReadPrec [DescribeInferenceExperimentResponse]
ReadPrec DescribeInferenceExperimentResponse
Int -> ReadS DescribeInferenceExperimentResponse
ReadS [DescribeInferenceExperimentResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeInferenceExperimentResponse]
$creadListPrec :: ReadPrec [DescribeInferenceExperimentResponse]
readPrec :: ReadPrec DescribeInferenceExperimentResponse
$creadPrec :: ReadPrec DescribeInferenceExperimentResponse
readList :: ReadS [DescribeInferenceExperimentResponse]
$creadList :: ReadS [DescribeInferenceExperimentResponse]
readsPrec :: Int -> ReadS DescribeInferenceExperimentResponse
$creadsPrec :: Int -> ReadS DescribeInferenceExperimentResponse
Prelude.Read, Int -> DescribeInferenceExperimentResponse -> ShowS
[DescribeInferenceExperimentResponse] -> ShowS
DescribeInferenceExperimentResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeInferenceExperimentResponse] -> ShowS
$cshowList :: [DescribeInferenceExperimentResponse] -> ShowS
show :: DescribeInferenceExperimentResponse -> String
$cshow :: DescribeInferenceExperimentResponse -> String
showsPrec :: Int -> DescribeInferenceExperimentResponse -> ShowS
$cshowsPrec :: Int -> DescribeInferenceExperimentResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeInferenceExperimentResponse x
-> DescribeInferenceExperimentResponse
forall x.
DescribeInferenceExperimentResponse
-> Rep DescribeInferenceExperimentResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeInferenceExperimentResponse x
-> DescribeInferenceExperimentResponse
$cfrom :: forall x.
DescribeInferenceExperimentResponse
-> Rep DescribeInferenceExperimentResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeInferenceExperimentResponse' 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:
--
-- 'completionTime', 'describeInferenceExperimentResponse_completionTime' - The timestamp at which the inference experiment was completed.
--
-- 'creationTime', 'describeInferenceExperimentResponse_creationTime' - The timestamp at which you created the inference experiment.
--
-- 'dataStorageConfig', 'describeInferenceExperimentResponse_dataStorageConfig' - The Amazon S3 location and configuration for storing inference request
-- and response data.
--
-- 'description', 'describeInferenceExperimentResponse_description' - The description of the inference experiment.
--
-- 'kmsKey', 'describeInferenceExperimentResponse_kmsKey' - The Amazon Web Services Key Management Service (Amazon Web Services KMS)
-- key that Amazon SageMaker uses to encrypt data on the storage volume
-- attached to the ML compute instance that hosts the endpoint. For more
-- information, see CreateInferenceExperimentRequest$KmsKey.
--
-- 'lastModifiedTime', 'describeInferenceExperimentResponse_lastModifiedTime' - The timestamp at which you last modified the inference experiment.
--
-- 'roleArn', 'describeInferenceExperimentResponse_roleArn' - The ARN of the IAM role that Amazon SageMaker can assume to access model
-- artifacts and container images, and manage Amazon SageMaker Inference
-- endpoints for model deployment.
--
-- 'schedule', 'describeInferenceExperimentResponse_schedule' - The duration for which the inference experiment ran or will run.
--
-- 'shadowModeConfig', 'describeInferenceExperimentResponse_shadowModeConfig' - The configuration of @ShadowMode@ inference experiment type, which shows
-- the production variant that takes all the inference requests, and the
-- shadow variant to which Amazon SageMaker replicates a percentage of the
-- inference requests. For the shadow variant it also shows the percentage
-- of requests that Amazon SageMaker replicates.
--
-- 'statusReason', 'describeInferenceExperimentResponse_statusReason' - The error message or client-specified @Reason@ from the
-- StopInferenceExperiment API, that explains the status of the inference
-- experiment.
--
-- 'httpStatus', 'describeInferenceExperimentResponse_httpStatus' - The response's http status code.
--
-- 'arn', 'describeInferenceExperimentResponse_arn' - The ARN of the inference experiment being described.
--
-- 'name', 'describeInferenceExperimentResponse_name' - The name of the inference experiment.
--
-- 'type'', 'describeInferenceExperimentResponse_type' - The type of the inference experiment.
--
-- 'status', 'describeInferenceExperimentResponse_status' - The status of the inference experiment. The following are the possible
-- statuses for an inference experiment:
--
-- -   @Creating@ - Amazon SageMaker is creating your experiment.
--
-- -   @Created@ - Amazon SageMaker has finished the creation of your
--     experiment and will begin the experiment at the scheduled time.
--
-- -   @Updating@ - When you make changes to your experiment, your
--     experiment shows as updating.
--
-- -   @Starting@ - Amazon SageMaker is beginning your experiment.
--
-- -   @Running@ - Your experiment is in progress.
--
-- -   @Stopping@ - Amazon SageMaker is stopping your experiment.
--
-- -   @Completed@ - Your experiment has completed.
--
-- -   @Cancelled@ - When you conclude your experiment early using the
--     StopInferenceExperiment API, or if any operation fails with an
--     unexpected error, it shows as cancelled.
--
-- 'endpointMetadata', 'describeInferenceExperimentResponse_endpointMetadata' - The metadata of the endpoint on which the inference experiment ran.
--
-- 'modelVariants', 'describeInferenceExperimentResponse_modelVariants' - An array of @ModelVariantConfigSummary@ objects. There is one for each
-- variant in the inference experiment. Each @ModelVariantConfigSummary@
-- object in the array describes the infrastructure configuration for
-- deploying the corresponding variant.
newDescribeInferenceExperimentResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'arn'
  Prelude.Text ->
  -- | 'name'
  Prelude.Text ->
  -- | 'type''
  InferenceExperimentType ->
  -- | 'status'
  InferenceExperimentStatus ->
  -- | 'endpointMetadata'
  EndpointMetadata ->
  DescribeInferenceExperimentResponse
newDescribeInferenceExperimentResponse :: Int
-> Text
-> Text
-> InferenceExperimentType
-> InferenceExperimentStatus
-> EndpointMetadata
-> DescribeInferenceExperimentResponse
newDescribeInferenceExperimentResponse
  Int
pHttpStatus_
  Text
pArn_
  Text
pName_
  InferenceExperimentType
pType_
  InferenceExperimentStatus
pStatus_
  EndpointMetadata
pEndpointMetadata_ =
    DescribeInferenceExperimentResponse'
      { $sel:completionTime:DescribeInferenceExperimentResponse' :: Maybe POSIX
completionTime =
          forall a. Maybe a
Prelude.Nothing,
        $sel:creationTime:DescribeInferenceExperimentResponse' :: Maybe POSIX
creationTime = forall a. Maybe a
Prelude.Nothing,
        $sel:dataStorageConfig:DescribeInferenceExperimentResponse' :: Maybe InferenceExperimentDataStorageConfig
dataStorageConfig = forall a. Maybe a
Prelude.Nothing,
        $sel:description:DescribeInferenceExperimentResponse' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
        $sel:kmsKey:DescribeInferenceExperimentResponse' :: Maybe Text
kmsKey = forall a. Maybe a
Prelude.Nothing,
        $sel:lastModifiedTime:DescribeInferenceExperimentResponse' :: Maybe POSIX
lastModifiedTime = forall a. Maybe a
Prelude.Nothing,
        $sel:roleArn:DescribeInferenceExperimentResponse' :: Maybe Text
roleArn = forall a. Maybe a
Prelude.Nothing,
        $sel:schedule:DescribeInferenceExperimentResponse' :: Maybe InferenceExperimentSchedule
schedule = forall a. Maybe a
Prelude.Nothing,
        $sel:shadowModeConfig:DescribeInferenceExperimentResponse' :: Maybe ShadowModeConfig
shadowModeConfig = forall a. Maybe a
Prelude.Nothing,
        $sel:statusReason:DescribeInferenceExperimentResponse' :: Maybe Text
statusReason = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DescribeInferenceExperimentResponse' :: Int
httpStatus = Int
pHttpStatus_,
        $sel:arn:DescribeInferenceExperimentResponse' :: Text
arn = Text
pArn_,
        $sel:name:DescribeInferenceExperimentResponse' :: Text
name = Text
pName_,
        $sel:type':DescribeInferenceExperimentResponse' :: InferenceExperimentType
type' = InferenceExperimentType
pType_,
        $sel:status:DescribeInferenceExperimentResponse' :: InferenceExperimentStatus
status = InferenceExperimentStatus
pStatus_,
        $sel:endpointMetadata:DescribeInferenceExperimentResponse' :: EndpointMetadata
endpointMetadata = EndpointMetadata
pEndpointMetadata_,
        $sel:modelVariants:DescribeInferenceExperimentResponse' :: [ModelVariantConfigSummary]
modelVariants = forall a. Monoid a => a
Prelude.mempty
      }

-- | The timestamp at which the inference experiment was completed.
describeInferenceExperimentResponse_completionTime :: Lens.Lens' DescribeInferenceExperimentResponse (Prelude.Maybe Prelude.UTCTime)
describeInferenceExperimentResponse_completionTime :: Lens' DescribeInferenceExperimentResponse (Maybe UTCTime)
describeInferenceExperimentResponse_completionTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeInferenceExperimentResponse' {Maybe POSIX
completionTime :: Maybe POSIX
$sel:completionTime:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse -> Maybe POSIX
completionTime} -> Maybe POSIX
completionTime) (\s :: DescribeInferenceExperimentResponse
s@DescribeInferenceExperimentResponse' {} Maybe POSIX
a -> DescribeInferenceExperimentResponse
s {$sel:completionTime:DescribeInferenceExperimentResponse' :: Maybe POSIX
completionTime = Maybe POSIX
a} :: DescribeInferenceExperimentResponse) 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 timestamp at which you created the inference experiment.
describeInferenceExperimentResponse_creationTime :: Lens.Lens' DescribeInferenceExperimentResponse (Prelude.Maybe Prelude.UTCTime)
describeInferenceExperimentResponse_creationTime :: Lens' DescribeInferenceExperimentResponse (Maybe UTCTime)
describeInferenceExperimentResponse_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeInferenceExperimentResponse' {Maybe POSIX
creationTime :: Maybe POSIX
$sel:creationTime:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse -> Maybe POSIX
creationTime} -> Maybe POSIX
creationTime) (\s :: DescribeInferenceExperimentResponse
s@DescribeInferenceExperimentResponse' {} Maybe POSIX
a -> DescribeInferenceExperimentResponse
s {$sel:creationTime:DescribeInferenceExperimentResponse' :: Maybe POSIX
creationTime = Maybe POSIX
a} :: DescribeInferenceExperimentResponse) 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 Amazon S3 location and configuration for storing inference request
-- and response data.
describeInferenceExperimentResponse_dataStorageConfig :: Lens.Lens' DescribeInferenceExperimentResponse (Prelude.Maybe InferenceExperimentDataStorageConfig)
describeInferenceExperimentResponse_dataStorageConfig :: Lens'
  DescribeInferenceExperimentResponse
  (Maybe InferenceExperimentDataStorageConfig)
describeInferenceExperimentResponse_dataStorageConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeInferenceExperimentResponse' {Maybe InferenceExperimentDataStorageConfig
dataStorageConfig :: Maybe InferenceExperimentDataStorageConfig
$sel:dataStorageConfig:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse
-> Maybe InferenceExperimentDataStorageConfig
dataStorageConfig} -> Maybe InferenceExperimentDataStorageConfig
dataStorageConfig) (\s :: DescribeInferenceExperimentResponse
s@DescribeInferenceExperimentResponse' {} Maybe InferenceExperimentDataStorageConfig
a -> DescribeInferenceExperimentResponse
s {$sel:dataStorageConfig:DescribeInferenceExperimentResponse' :: Maybe InferenceExperimentDataStorageConfig
dataStorageConfig = Maybe InferenceExperimentDataStorageConfig
a} :: DescribeInferenceExperimentResponse)

-- | The description of the inference experiment.
describeInferenceExperimentResponse_description :: Lens.Lens' DescribeInferenceExperimentResponse (Prelude.Maybe Prelude.Text)
describeInferenceExperimentResponse_description :: Lens' DescribeInferenceExperimentResponse (Maybe Text)
describeInferenceExperimentResponse_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeInferenceExperimentResponse' {Maybe Text
description :: Maybe Text
$sel:description:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse -> Maybe Text
description} -> Maybe Text
description) (\s :: DescribeInferenceExperimentResponse
s@DescribeInferenceExperimentResponse' {} Maybe Text
a -> DescribeInferenceExperimentResponse
s {$sel:description:DescribeInferenceExperimentResponse' :: Maybe Text
description = Maybe Text
a} :: DescribeInferenceExperimentResponse)

-- | The Amazon Web Services Key Management Service (Amazon Web Services KMS)
-- key that Amazon SageMaker uses to encrypt data on the storage volume
-- attached to the ML compute instance that hosts the endpoint. For more
-- information, see CreateInferenceExperimentRequest$KmsKey.
describeInferenceExperimentResponse_kmsKey :: Lens.Lens' DescribeInferenceExperimentResponse (Prelude.Maybe Prelude.Text)
describeInferenceExperimentResponse_kmsKey :: Lens' DescribeInferenceExperimentResponse (Maybe Text)
describeInferenceExperimentResponse_kmsKey = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeInferenceExperimentResponse' {Maybe Text
kmsKey :: Maybe Text
$sel:kmsKey:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse -> Maybe Text
kmsKey} -> Maybe Text
kmsKey) (\s :: DescribeInferenceExperimentResponse
s@DescribeInferenceExperimentResponse' {} Maybe Text
a -> DescribeInferenceExperimentResponse
s {$sel:kmsKey:DescribeInferenceExperimentResponse' :: Maybe Text
kmsKey = Maybe Text
a} :: DescribeInferenceExperimentResponse)

-- | The timestamp at which you last modified the inference experiment.
describeInferenceExperimentResponse_lastModifiedTime :: Lens.Lens' DescribeInferenceExperimentResponse (Prelude.Maybe Prelude.UTCTime)
describeInferenceExperimentResponse_lastModifiedTime :: Lens' DescribeInferenceExperimentResponse (Maybe UTCTime)
describeInferenceExperimentResponse_lastModifiedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeInferenceExperimentResponse' {Maybe POSIX
lastModifiedTime :: Maybe POSIX
$sel:lastModifiedTime:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse -> Maybe POSIX
lastModifiedTime} -> Maybe POSIX
lastModifiedTime) (\s :: DescribeInferenceExperimentResponse
s@DescribeInferenceExperimentResponse' {} Maybe POSIX
a -> DescribeInferenceExperimentResponse
s {$sel:lastModifiedTime:DescribeInferenceExperimentResponse' :: Maybe POSIX
lastModifiedTime = Maybe POSIX
a} :: DescribeInferenceExperimentResponse) 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 Amazon SageMaker can assume to access model
-- artifacts and container images, and manage Amazon SageMaker Inference
-- endpoints for model deployment.
describeInferenceExperimentResponse_roleArn :: Lens.Lens' DescribeInferenceExperimentResponse (Prelude.Maybe Prelude.Text)
describeInferenceExperimentResponse_roleArn :: Lens' DescribeInferenceExperimentResponse (Maybe Text)
describeInferenceExperimentResponse_roleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeInferenceExperimentResponse' {Maybe Text
roleArn :: Maybe Text
$sel:roleArn:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse -> Maybe Text
roleArn} -> Maybe Text
roleArn) (\s :: DescribeInferenceExperimentResponse
s@DescribeInferenceExperimentResponse' {} Maybe Text
a -> DescribeInferenceExperimentResponse
s {$sel:roleArn:DescribeInferenceExperimentResponse' :: Maybe Text
roleArn = Maybe Text
a} :: DescribeInferenceExperimentResponse)

-- | The duration for which the inference experiment ran or will run.
describeInferenceExperimentResponse_schedule :: Lens.Lens' DescribeInferenceExperimentResponse (Prelude.Maybe InferenceExperimentSchedule)
describeInferenceExperimentResponse_schedule :: Lens'
  DescribeInferenceExperimentResponse
  (Maybe InferenceExperimentSchedule)
describeInferenceExperimentResponse_schedule = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeInferenceExperimentResponse' {Maybe InferenceExperimentSchedule
schedule :: Maybe InferenceExperimentSchedule
$sel:schedule:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse
-> Maybe InferenceExperimentSchedule
schedule} -> Maybe InferenceExperimentSchedule
schedule) (\s :: DescribeInferenceExperimentResponse
s@DescribeInferenceExperimentResponse' {} Maybe InferenceExperimentSchedule
a -> DescribeInferenceExperimentResponse
s {$sel:schedule:DescribeInferenceExperimentResponse' :: Maybe InferenceExperimentSchedule
schedule = Maybe InferenceExperimentSchedule
a} :: DescribeInferenceExperimentResponse)

-- | The configuration of @ShadowMode@ inference experiment type, which shows
-- the production variant that takes all the inference requests, and the
-- shadow variant to which Amazon SageMaker replicates a percentage of the
-- inference requests. For the shadow variant it also shows the percentage
-- of requests that Amazon SageMaker replicates.
describeInferenceExperimentResponse_shadowModeConfig :: Lens.Lens' DescribeInferenceExperimentResponse (Prelude.Maybe ShadowModeConfig)
describeInferenceExperimentResponse_shadowModeConfig :: Lens' DescribeInferenceExperimentResponse (Maybe ShadowModeConfig)
describeInferenceExperimentResponse_shadowModeConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeInferenceExperimentResponse' {Maybe ShadowModeConfig
shadowModeConfig :: Maybe ShadowModeConfig
$sel:shadowModeConfig:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse -> Maybe ShadowModeConfig
shadowModeConfig} -> Maybe ShadowModeConfig
shadowModeConfig) (\s :: DescribeInferenceExperimentResponse
s@DescribeInferenceExperimentResponse' {} Maybe ShadowModeConfig
a -> DescribeInferenceExperimentResponse
s {$sel:shadowModeConfig:DescribeInferenceExperimentResponse' :: Maybe ShadowModeConfig
shadowModeConfig = Maybe ShadowModeConfig
a} :: DescribeInferenceExperimentResponse)

-- | The error message or client-specified @Reason@ from the
-- StopInferenceExperiment API, that explains the status of the inference
-- experiment.
describeInferenceExperimentResponse_statusReason :: Lens.Lens' DescribeInferenceExperimentResponse (Prelude.Maybe Prelude.Text)
describeInferenceExperimentResponse_statusReason :: Lens' DescribeInferenceExperimentResponse (Maybe Text)
describeInferenceExperimentResponse_statusReason = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeInferenceExperimentResponse' {Maybe Text
statusReason :: Maybe Text
$sel:statusReason:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse -> Maybe Text
statusReason} -> Maybe Text
statusReason) (\s :: DescribeInferenceExperimentResponse
s@DescribeInferenceExperimentResponse' {} Maybe Text
a -> DescribeInferenceExperimentResponse
s {$sel:statusReason:DescribeInferenceExperimentResponse' :: Maybe Text
statusReason = Maybe Text
a} :: DescribeInferenceExperimentResponse)

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

-- | The ARN of the inference experiment being described.
describeInferenceExperimentResponse_arn :: Lens.Lens' DescribeInferenceExperimentResponse Prelude.Text
describeInferenceExperimentResponse_arn :: Lens' DescribeInferenceExperimentResponse Text
describeInferenceExperimentResponse_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeInferenceExperimentResponse' {Text
arn :: Text
$sel:arn:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse -> Text
arn} -> Text
arn) (\s :: DescribeInferenceExperimentResponse
s@DescribeInferenceExperimentResponse' {} Text
a -> DescribeInferenceExperimentResponse
s {$sel:arn:DescribeInferenceExperimentResponse' :: Text
arn = Text
a} :: DescribeInferenceExperimentResponse)

-- | The name of the inference experiment.
describeInferenceExperimentResponse_name :: Lens.Lens' DescribeInferenceExperimentResponse Prelude.Text
describeInferenceExperimentResponse_name :: Lens' DescribeInferenceExperimentResponse Text
describeInferenceExperimentResponse_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeInferenceExperimentResponse' {Text
name :: Text
$sel:name:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse -> Text
name} -> Text
name) (\s :: DescribeInferenceExperimentResponse
s@DescribeInferenceExperimentResponse' {} Text
a -> DescribeInferenceExperimentResponse
s {$sel:name:DescribeInferenceExperimentResponse' :: Text
name = Text
a} :: DescribeInferenceExperimentResponse)

-- | The type of the inference experiment.
describeInferenceExperimentResponse_type :: Lens.Lens' DescribeInferenceExperimentResponse InferenceExperimentType
describeInferenceExperimentResponse_type :: Lens' DescribeInferenceExperimentResponse InferenceExperimentType
describeInferenceExperimentResponse_type = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeInferenceExperimentResponse' {InferenceExperimentType
type' :: InferenceExperimentType
$sel:type':DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse -> InferenceExperimentType
type'} -> InferenceExperimentType
type') (\s :: DescribeInferenceExperimentResponse
s@DescribeInferenceExperimentResponse' {} InferenceExperimentType
a -> DescribeInferenceExperimentResponse
s {$sel:type':DescribeInferenceExperimentResponse' :: InferenceExperimentType
type' = InferenceExperimentType
a} :: DescribeInferenceExperimentResponse)

-- | The status of the inference experiment. The following are the possible
-- statuses for an inference experiment:
--
-- -   @Creating@ - Amazon SageMaker is creating your experiment.
--
-- -   @Created@ - Amazon SageMaker has finished the creation of your
--     experiment and will begin the experiment at the scheduled time.
--
-- -   @Updating@ - When you make changes to your experiment, your
--     experiment shows as updating.
--
-- -   @Starting@ - Amazon SageMaker is beginning your experiment.
--
-- -   @Running@ - Your experiment is in progress.
--
-- -   @Stopping@ - Amazon SageMaker is stopping your experiment.
--
-- -   @Completed@ - Your experiment has completed.
--
-- -   @Cancelled@ - When you conclude your experiment early using the
--     StopInferenceExperiment API, or if any operation fails with an
--     unexpected error, it shows as cancelled.
describeInferenceExperimentResponse_status :: Lens.Lens' DescribeInferenceExperimentResponse InferenceExperimentStatus
describeInferenceExperimentResponse_status :: Lens' DescribeInferenceExperimentResponse InferenceExperimentStatus
describeInferenceExperimentResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeInferenceExperimentResponse' {InferenceExperimentStatus
status :: InferenceExperimentStatus
$sel:status:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse -> InferenceExperimentStatus
status} -> InferenceExperimentStatus
status) (\s :: DescribeInferenceExperimentResponse
s@DescribeInferenceExperimentResponse' {} InferenceExperimentStatus
a -> DescribeInferenceExperimentResponse
s {$sel:status:DescribeInferenceExperimentResponse' :: InferenceExperimentStatus
status = InferenceExperimentStatus
a} :: DescribeInferenceExperimentResponse)

-- | The metadata of the endpoint on which the inference experiment ran.
describeInferenceExperimentResponse_endpointMetadata :: Lens.Lens' DescribeInferenceExperimentResponse EndpointMetadata
describeInferenceExperimentResponse_endpointMetadata :: Lens' DescribeInferenceExperimentResponse EndpointMetadata
describeInferenceExperimentResponse_endpointMetadata = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeInferenceExperimentResponse' {EndpointMetadata
endpointMetadata :: EndpointMetadata
$sel:endpointMetadata:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse -> EndpointMetadata
endpointMetadata} -> EndpointMetadata
endpointMetadata) (\s :: DescribeInferenceExperimentResponse
s@DescribeInferenceExperimentResponse' {} EndpointMetadata
a -> DescribeInferenceExperimentResponse
s {$sel:endpointMetadata:DescribeInferenceExperimentResponse' :: EndpointMetadata
endpointMetadata = EndpointMetadata
a} :: DescribeInferenceExperimentResponse)

-- | An array of @ModelVariantConfigSummary@ objects. There is one for each
-- variant in the inference experiment. Each @ModelVariantConfigSummary@
-- object in the array describes the infrastructure configuration for
-- deploying the corresponding variant.
describeInferenceExperimentResponse_modelVariants :: Lens.Lens' DescribeInferenceExperimentResponse [ModelVariantConfigSummary]
describeInferenceExperimentResponse_modelVariants :: Lens'
  DescribeInferenceExperimentResponse [ModelVariantConfigSummary]
describeInferenceExperimentResponse_modelVariants = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeInferenceExperimentResponse' {[ModelVariantConfigSummary]
modelVariants :: [ModelVariantConfigSummary]
$sel:modelVariants:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse -> [ModelVariantConfigSummary]
modelVariants} -> [ModelVariantConfigSummary]
modelVariants) (\s :: DescribeInferenceExperimentResponse
s@DescribeInferenceExperimentResponse' {} [ModelVariantConfigSummary]
a -> DescribeInferenceExperimentResponse
s {$sel:modelVariants:DescribeInferenceExperimentResponse' :: [ModelVariantConfigSummary]
modelVariants = [ModelVariantConfigSummary]
a} :: DescribeInferenceExperimentResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

instance
  Prelude.NFData
    DescribeInferenceExperimentResponse
  where
  rnf :: DescribeInferenceExperimentResponse -> ()
rnf DescribeInferenceExperimentResponse' {Int
[ModelVariantConfigSummary]
Maybe Text
Maybe POSIX
Maybe InferenceExperimentDataStorageConfig
Maybe InferenceExperimentSchedule
Maybe ShadowModeConfig
Text
EndpointMetadata
InferenceExperimentStatus
InferenceExperimentType
modelVariants :: [ModelVariantConfigSummary]
endpointMetadata :: EndpointMetadata
status :: InferenceExperimentStatus
type' :: InferenceExperimentType
name :: Text
arn :: Text
httpStatus :: Int
statusReason :: Maybe Text
shadowModeConfig :: Maybe ShadowModeConfig
schedule :: Maybe InferenceExperimentSchedule
roleArn :: Maybe Text
lastModifiedTime :: Maybe POSIX
kmsKey :: Maybe Text
description :: Maybe Text
dataStorageConfig :: Maybe InferenceExperimentDataStorageConfig
creationTime :: Maybe POSIX
completionTime :: Maybe POSIX
$sel:modelVariants:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse -> [ModelVariantConfigSummary]
$sel:endpointMetadata:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse -> EndpointMetadata
$sel:status:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse -> InferenceExperimentStatus
$sel:type':DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse -> InferenceExperimentType
$sel:name:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse -> Text
$sel:arn:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse -> Text
$sel:httpStatus:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse -> Int
$sel:statusReason:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse -> Maybe Text
$sel:shadowModeConfig:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse -> Maybe ShadowModeConfig
$sel:schedule:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse
-> Maybe InferenceExperimentSchedule
$sel:roleArn:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse -> Maybe Text
$sel:lastModifiedTime:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse -> Maybe POSIX
$sel:kmsKey:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse -> Maybe Text
$sel:description:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse -> Maybe Text
$sel:dataStorageConfig:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse
-> Maybe InferenceExperimentDataStorageConfig
$sel:creationTime:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse -> Maybe POSIX
$sel:completionTime:DescribeInferenceExperimentResponse' :: DescribeInferenceExperimentResponse -> Maybe POSIX
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
completionTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` 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 InferenceExperimentDataStorageConfig
dataStorageConfig
      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
kmsKey
      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 Maybe InferenceExperimentSchedule
schedule
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ShadowModeConfig
shadowModeConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
statusReason
      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
arn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf InferenceExperimentType
type'
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf InferenceExperimentStatus
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf EndpointMetadata
endpointMetadata
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf [ModelVariantConfigSummary]
modelVariants