{-# 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.DescribeEndpointConfig
-- 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 the description of an endpoint configuration created using the
-- @CreateEndpointConfig@ API.
module Amazonka.SageMaker.DescribeEndpointConfig
  ( -- * Creating a Request
    DescribeEndpointConfig (..),
    newDescribeEndpointConfig,

    -- * Request Lenses
    describeEndpointConfig_endpointConfigName,

    -- * Destructuring the Response
    DescribeEndpointConfigResponse (..),
    newDescribeEndpointConfigResponse,

    -- * Response Lenses
    describeEndpointConfigResponse_asyncInferenceConfig,
    describeEndpointConfigResponse_dataCaptureConfig,
    describeEndpointConfigResponse_explainerConfig,
    describeEndpointConfigResponse_kmsKeyId,
    describeEndpointConfigResponse_shadowProductionVariants,
    describeEndpointConfigResponse_httpStatus,
    describeEndpointConfigResponse_endpointConfigName,
    describeEndpointConfigResponse_endpointConfigArn,
    describeEndpointConfigResponse_productionVariants,
    describeEndpointConfigResponse_creationTime,
  )
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:/ 'newDescribeEndpointConfig' smart constructor.
data DescribeEndpointConfig = DescribeEndpointConfig'
  { -- | The name of the endpoint configuration.
    DescribeEndpointConfig -> Text
endpointConfigName :: Prelude.Text
  }
  deriving (DescribeEndpointConfig -> DescribeEndpointConfig -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeEndpointConfig -> DescribeEndpointConfig -> Bool
$c/= :: DescribeEndpointConfig -> DescribeEndpointConfig -> Bool
== :: DescribeEndpointConfig -> DescribeEndpointConfig -> Bool
$c== :: DescribeEndpointConfig -> DescribeEndpointConfig -> Bool
Prelude.Eq, ReadPrec [DescribeEndpointConfig]
ReadPrec DescribeEndpointConfig
Int -> ReadS DescribeEndpointConfig
ReadS [DescribeEndpointConfig]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeEndpointConfig]
$creadListPrec :: ReadPrec [DescribeEndpointConfig]
readPrec :: ReadPrec DescribeEndpointConfig
$creadPrec :: ReadPrec DescribeEndpointConfig
readList :: ReadS [DescribeEndpointConfig]
$creadList :: ReadS [DescribeEndpointConfig]
readsPrec :: Int -> ReadS DescribeEndpointConfig
$creadsPrec :: Int -> ReadS DescribeEndpointConfig
Prelude.Read, Int -> DescribeEndpointConfig -> ShowS
[DescribeEndpointConfig] -> ShowS
DescribeEndpointConfig -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeEndpointConfig] -> ShowS
$cshowList :: [DescribeEndpointConfig] -> ShowS
show :: DescribeEndpointConfig -> String
$cshow :: DescribeEndpointConfig -> String
showsPrec :: Int -> DescribeEndpointConfig -> ShowS
$cshowsPrec :: Int -> DescribeEndpointConfig -> ShowS
Prelude.Show, forall x. Rep DescribeEndpointConfig x -> DescribeEndpointConfig
forall x. DescribeEndpointConfig -> Rep DescribeEndpointConfig x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeEndpointConfig x -> DescribeEndpointConfig
$cfrom :: forall x. DescribeEndpointConfig -> Rep DescribeEndpointConfig x
Prelude.Generic)

-- |
-- Create a value of 'DescribeEndpointConfig' 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:
--
-- 'endpointConfigName', 'describeEndpointConfig_endpointConfigName' - The name of the endpoint configuration.
newDescribeEndpointConfig ::
  -- | 'endpointConfigName'
  Prelude.Text ->
  DescribeEndpointConfig
newDescribeEndpointConfig :: Text -> DescribeEndpointConfig
newDescribeEndpointConfig Text
pEndpointConfigName_ =
  DescribeEndpointConfig'
    { $sel:endpointConfigName:DescribeEndpointConfig' :: Text
endpointConfigName =
        Text
pEndpointConfigName_
    }

-- | The name of the endpoint configuration.
describeEndpointConfig_endpointConfigName :: Lens.Lens' DescribeEndpointConfig Prelude.Text
describeEndpointConfig_endpointConfigName :: Lens' DescribeEndpointConfig Text
describeEndpointConfig_endpointConfigName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeEndpointConfig' {Text
endpointConfigName :: Text
$sel:endpointConfigName:DescribeEndpointConfig' :: DescribeEndpointConfig -> Text
endpointConfigName} -> Text
endpointConfigName) (\s :: DescribeEndpointConfig
s@DescribeEndpointConfig' {} Text
a -> DescribeEndpointConfig
s {$sel:endpointConfigName:DescribeEndpointConfig' :: Text
endpointConfigName = Text
a} :: DescribeEndpointConfig)

instance Core.AWSRequest DescribeEndpointConfig where
  type
    AWSResponse DescribeEndpointConfig =
      DescribeEndpointConfigResponse
  request :: (Service -> Service)
-> DescribeEndpointConfig -> Request DescribeEndpointConfig
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 DescribeEndpointConfig
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeEndpointConfig)))
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 AsyncInferenceConfig
-> Maybe DataCaptureConfig
-> Maybe ExplainerConfig
-> Maybe Text
-> Maybe (NonEmpty ProductionVariant)
-> Int
-> Text
-> Text
-> NonEmpty ProductionVariant
-> POSIX
-> DescribeEndpointConfigResponse
DescribeEndpointConfigResponse'
            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
"AsyncInferenceConfig")
            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
"DataCaptureConfig")
            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
"ExplainerConfig")
            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
"KmsKeyId")
            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
"ShadowProductionVariants")
            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
"EndpointConfigName")
            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
"EndpointConfigArn")
            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
"ProductionVariants")
            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")
      )

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

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

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

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

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

-- | /See:/ 'newDescribeEndpointConfigResponse' smart constructor.
data DescribeEndpointConfigResponse = DescribeEndpointConfigResponse'
  { -- | Returns the description of an endpoint configuration created using the
    -- <https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html CreateEndpointConfig>
    -- API.
    DescribeEndpointConfigResponse -> Maybe AsyncInferenceConfig
asyncInferenceConfig :: Prelude.Maybe AsyncInferenceConfig,
    DescribeEndpointConfigResponse -> Maybe DataCaptureConfig
dataCaptureConfig :: Prelude.Maybe DataCaptureConfig,
    -- | The configuration parameters for an explainer.
    DescribeEndpointConfigResponse -> Maybe ExplainerConfig
explainerConfig :: Prelude.Maybe ExplainerConfig,
    -- | Amazon Web Services KMS key ID Amazon SageMaker uses to encrypt data
    -- when storing it on the ML storage volume attached to the instance.
    DescribeEndpointConfigResponse -> Maybe Text
kmsKeyId :: Prelude.Maybe Prelude.Text,
    -- | An array of @ProductionVariant@ objects, one for each model that you
    -- want to host at this endpoint in shadow mode with production traffic
    -- replicated from the model specified on @ProductionVariants@.
    DescribeEndpointConfigResponse
-> Maybe (NonEmpty ProductionVariant)
shadowProductionVariants :: Prelude.Maybe (Prelude.NonEmpty ProductionVariant),
    -- | The response's http status code.
    DescribeEndpointConfigResponse -> Int
httpStatus :: Prelude.Int,
    -- | Name of the SageMaker endpoint configuration.
    DescribeEndpointConfigResponse -> Text
endpointConfigName :: Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the endpoint configuration.
    DescribeEndpointConfigResponse -> Text
endpointConfigArn :: Prelude.Text,
    -- | An array of @ProductionVariant@ objects, one for each model that you
    -- want to host at this endpoint.
    DescribeEndpointConfigResponse -> NonEmpty ProductionVariant
productionVariants :: Prelude.NonEmpty ProductionVariant,
    -- | A timestamp that shows when the endpoint configuration was created.
    DescribeEndpointConfigResponse -> POSIX
creationTime :: Data.POSIX
  }
  deriving (DescribeEndpointConfigResponse
-> DescribeEndpointConfigResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeEndpointConfigResponse
-> DescribeEndpointConfigResponse -> Bool
$c/= :: DescribeEndpointConfigResponse
-> DescribeEndpointConfigResponse -> Bool
== :: DescribeEndpointConfigResponse
-> DescribeEndpointConfigResponse -> Bool
$c== :: DescribeEndpointConfigResponse
-> DescribeEndpointConfigResponse -> Bool
Prelude.Eq, ReadPrec [DescribeEndpointConfigResponse]
ReadPrec DescribeEndpointConfigResponse
Int -> ReadS DescribeEndpointConfigResponse
ReadS [DescribeEndpointConfigResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeEndpointConfigResponse]
$creadListPrec :: ReadPrec [DescribeEndpointConfigResponse]
readPrec :: ReadPrec DescribeEndpointConfigResponse
$creadPrec :: ReadPrec DescribeEndpointConfigResponse
readList :: ReadS [DescribeEndpointConfigResponse]
$creadList :: ReadS [DescribeEndpointConfigResponse]
readsPrec :: Int -> ReadS DescribeEndpointConfigResponse
$creadsPrec :: Int -> ReadS DescribeEndpointConfigResponse
Prelude.Read, Int -> DescribeEndpointConfigResponse -> ShowS
[DescribeEndpointConfigResponse] -> ShowS
DescribeEndpointConfigResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeEndpointConfigResponse] -> ShowS
$cshowList :: [DescribeEndpointConfigResponse] -> ShowS
show :: DescribeEndpointConfigResponse -> String
$cshow :: DescribeEndpointConfigResponse -> String
showsPrec :: Int -> DescribeEndpointConfigResponse -> ShowS
$cshowsPrec :: Int -> DescribeEndpointConfigResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeEndpointConfigResponse x
-> DescribeEndpointConfigResponse
forall x.
DescribeEndpointConfigResponse
-> Rep DescribeEndpointConfigResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeEndpointConfigResponse x
-> DescribeEndpointConfigResponse
$cfrom :: forall x.
DescribeEndpointConfigResponse
-> Rep DescribeEndpointConfigResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeEndpointConfigResponse' 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:
--
-- 'asyncInferenceConfig', 'describeEndpointConfigResponse_asyncInferenceConfig' - Returns the description of an endpoint configuration created using the
-- <https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html CreateEndpointConfig>
-- API.
--
-- 'dataCaptureConfig', 'describeEndpointConfigResponse_dataCaptureConfig' - Undocumented member.
--
-- 'explainerConfig', 'describeEndpointConfigResponse_explainerConfig' - The configuration parameters for an explainer.
--
-- 'kmsKeyId', 'describeEndpointConfigResponse_kmsKeyId' - Amazon Web Services KMS key ID Amazon SageMaker uses to encrypt data
-- when storing it on the ML storage volume attached to the instance.
--
-- 'shadowProductionVariants', 'describeEndpointConfigResponse_shadowProductionVariants' - An array of @ProductionVariant@ objects, one for each model that you
-- want to host at this endpoint in shadow mode with production traffic
-- replicated from the model specified on @ProductionVariants@.
--
-- 'httpStatus', 'describeEndpointConfigResponse_httpStatus' - The response's http status code.
--
-- 'endpointConfigName', 'describeEndpointConfigResponse_endpointConfigName' - Name of the SageMaker endpoint configuration.
--
-- 'endpointConfigArn', 'describeEndpointConfigResponse_endpointConfigArn' - The Amazon Resource Name (ARN) of the endpoint configuration.
--
-- 'productionVariants', 'describeEndpointConfigResponse_productionVariants' - An array of @ProductionVariant@ objects, one for each model that you
-- want to host at this endpoint.
--
-- 'creationTime', 'describeEndpointConfigResponse_creationTime' - A timestamp that shows when the endpoint configuration was created.
newDescribeEndpointConfigResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'endpointConfigName'
  Prelude.Text ->
  -- | 'endpointConfigArn'
  Prelude.Text ->
  -- | 'productionVariants'
  Prelude.NonEmpty ProductionVariant ->
  -- | 'creationTime'
  Prelude.UTCTime ->
  DescribeEndpointConfigResponse
newDescribeEndpointConfigResponse :: Int
-> Text
-> Text
-> NonEmpty ProductionVariant
-> UTCTime
-> DescribeEndpointConfigResponse
newDescribeEndpointConfigResponse
  Int
pHttpStatus_
  Text
pEndpointConfigName_
  Text
pEndpointConfigArn_
  NonEmpty ProductionVariant
pProductionVariants_
  UTCTime
pCreationTime_ =
    DescribeEndpointConfigResponse'
      { $sel:asyncInferenceConfig:DescribeEndpointConfigResponse' :: Maybe AsyncInferenceConfig
asyncInferenceConfig =
          forall a. Maybe a
Prelude.Nothing,
        $sel:dataCaptureConfig:DescribeEndpointConfigResponse' :: Maybe DataCaptureConfig
dataCaptureConfig = forall a. Maybe a
Prelude.Nothing,
        $sel:explainerConfig:DescribeEndpointConfigResponse' :: Maybe ExplainerConfig
explainerConfig = forall a. Maybe a
Prelude.Nothing,
        $sel:kmsKeyId:DescribeEndpointConfigResponse' :: Maybe Text
kmsKeyId = forall a. Maybe a
Prelude.Nothing,
        $sel:shadowProductionVariants:DescribeEndpointConfigResponse' :: Maybe (NonEmpty ProductionVariant)
shadowProductionVariants = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DescribeEndpointConfigResponse' :: Int
httpStatus = Int
pHttpStatus_,
        $sel:endpointConfigName:DescribeEndpointConfigResponse' :: Text
endpointConfigName = Text
pEndpointConfigName_,
        $sel:endpointConfigArn:DescribeEndpointConfigResponse' :: Text
endpointConfigArn = Text
pEndpointConfigArn_,
        $sel:productionVariants:DescribeEndpointConfigResponse' :: NonEmpty ProductionVariant
productionVariants =
          forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced forall t b. AReview t b -> b -> t
Lens.# NonEmpty ProductionVariant
pProductionVariants_,
        $sel:creationTime:DescribeEndpointConfigResponse' :: POSIX
creationTime =
          forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pCreationTime_
      }

-- | Returns the description of an endpoint configuration created using the
-- <https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html CreateEndpointConfig>
-- API.
describeEndpointConfigResponse_asyncInferenceConfig :: Lens.Lens' DescribeEndpointConfigResponse (Prelude.Maybe AsyncInferenceConfig)
describeEndpointConfigResponse_asyncInferenceConfig :: Lens' DescribeEndpointConfigResponse (Maybe AsyncInferenceConfig)
describeEndpointConfigResponse_asyncInferenceConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeEndpointConfigResponse' {Maybe AsyncInferenceConfig
asyncInferenceConfig :: Maybe AsyncInferenceConfig
$sel:asyncInferenceConfig:DescribeEndpointConfigResponse' :: DescribeEndpointConfigResponse -> Maybe AsyncInferenceConfig
asyncInferenceConfig} -> Maybe AsyncInferenceConfig
asyncInferenceConfig) (\s :: DescribeEndpointConfigResponse
s@DescribeEndpointConfigResponse' {} Maybe AsyncInferenceConfig
a -> DescribeEndpointConfigResponse
s {$sel:asyncInferenceConfig:DescribeEndpointConfigResponse' :: Maybe AsyncInferenceConfig
asyncInferenceConfig = Maybe AsyncInferenceConfig
a} :: DescribeEndpointConfigResponse)

-- | Undocumented member.
describeEndpointConfigResponse_dataCaptureConfig :: Lens.Lens' DescribeEndpointConfigResponse (Prelude.Maybe DataCaptureConfig)
describeEndpointConfigResponse_dataCaptureConfig :: Lens' DescribeEndpointConfigResponse (Maybe DataCaptureConfig)
describeEndpointConfigResponse_dataCaptureConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeEndpointConfigResponse' {Maybe DataCaptureConfig
dataCaptureConfig :: Maybe DataCaptureConfig
$sel:dataCaptureConfig:DescribeEndpointConfigResponse' :: DescribeEndpointConfigResponse -> Maybe DataCaptureConfig
dataCaptureConfig} -> Maybe DataCaptureConfig
dataCaptureConfig) (\s :: DescribeEndpointConfigResponse
s@DescribeEndpointConfigResponse' {} Maybe DataCaptureConfig
a -> DescribeEndpointConfigResponse
s {$sel:dataCaptureConfig:DescribeEndpointConfigResponse' :: Maybe DataCaptureConfig
dataCaptureConfig = Maybe DataCaptureConfig
a} :: DescribeEndpointConfigResponse)

-- | The configuration parameters for an explainer.
describeEndpointConfigResponse_explainerConfig :: Lens.Lens' DescribeEndpointConfigResponse (Prelude.Maybe ExplainerConfig)
describeEndpointConfigResponse_explainerConfig :: Lens' DescribeEndpointConfigResponse (Maybe ExplainerConfig)
describeEndpointConfigResponse_explainerConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeEndpointConfigResponse' {Maybe ExplainerConfig
explainerConfig :: Maybe ExplainerConfig
$sel:explainerConfig:DescribeEndpointConfigResponse' :: DescribeEndpointConfigResponse -> Maybe ExplainerConfig
explainerConfig} -> Maybe ExplainerConfig
explainerConfig) (\s :: DescribeEndpointConfigResponse
s@DescribeEndpointConfigResponse' {} Maybe ExplainerConfig
a -> DescribeEndpointConfigResponse
s {$sel:explainerConfig:DescribeEndpointConfigResponse' :: Maybe ExplainerConfig
explainerConfig = Maybe ExplainerConfig
a} :: DescribeEndpointConfigResponse)

-- | Amazon Web Services KMS key ID Amazon SageMaker uses to encrypt data
-- when storing it on the ML storage volume attached to the instance.
describeEndpointConfigResponse_kmsKeyId :: Lens.Lens' DescribeEndpointConfigResponse (Prelude.Maybe Prelude.Text)
describeEndpointConfigResponse_kmsKeyId :: Lens' DescribeEndpointConfigResponse (Maybe Text)
describeEndpointConfigResponse_kmsKeyId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeEndpointConfigResponse' {Maybe Text
kmsKeyId :: Maybe Text
$sel:kmsKeyId:DescribeEndpointConfigResponse' :: DescribeEndpointConfigResponse -> Maybe Text
kmsKeyId} -> Maybe Text
kmsKeyId) (\s :: DescribeEndpointConfigResponse
s@DescribeEndpointConfigResponse' {} Maybe Text
a -> DescribeEndpointConfigResponse
s {$sel:kmsKeyId:DescribeEndpointConfigResponse' :: Maybe Text
kmsKeyId = Maybe Text
a} :: DescribeEndpointConfigResponse)

-- | An array of @ProductionVariant@ objects, one for each model that you
-- want to host at this endpoint in shadow mode with production traffic
-- replicated from the model specified on @ProductionVariants@.
describeEndpointConfigResponse_shadowProductionVariants :: Lens.Lens' DescribeEndpointConfigResponse (Prelude.Maybe (Prelude.NonEmpty ProductionVariant))
describeEndpointConfigResponse_shadowProductionVariants :: Lens'
  DescribeEndpointConfigResponse (Maybe (NonEmpty ProductionVariant))
describeEndpointConfigResponse_shadowProductionVariants = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeEndpointConfigResponse' {Maybe (NonEmpty ProductionVariant)
shadowProductionVariants :: Maybe (NonEmpty ProductionVariant)
$sel:shadowProductionVariants:DescribeEndpointConfigResponse' :: DescribeEndpointConfigResponse
-> Maybe (NonEmpty ProductionVariant)
shadowProductionVariants} -> Maybe (NonEmpty ProductionVariant)
shadowProductionVariants) (\s :: DescribeEndpointConfigResponse
s@DescribeEndpointConfigResponse' {} Maybe (NonEmpty ProductionVariant)
a -> DescribeEndpointConfigResponse
s {$sel:shadowProductionVariants:DescribeEndpointConfigResponse' :: Maybe (NonEmpty ProductionVariant)
shadowProductionVariants = Maybe (NonEmpty ProductionVariant)
a} :: DescribeEndpointConfigResponse) 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 s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

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

-- | Name of the SageMaker endpoint configuration.
describeEndpointConfigResponse_endpointConfigName :: Lens.Lens' DescribeEndpointConfigResponse Prelude.Text
describeEndpointConfigResponse_endpointConfigName :: Lens' DescribeEndpointConfigResponse Text
describeEndpointConfigResponse_endpointConfigName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeEndpointConfigResponse' {Text
endpointConfigName :: Text
$sel:endpointConfigName:DescribeEndpointConfigResponse' :: DescribeEndpointConfigResponse -> Text
endpointConfigName} -> Text
endpointConfigName) (\s :: DescribeEndpointConfigResponse
s@DescribeEndpointConfigResponse' {} Text
a -> DescribeEndpointConfigResponse
s {$sel:endpointConfigName:DescribeEndpointConfigResponse' :: Text
endpointConfigName = Text
a} :: DescribeEndpointConfigResponse)

-- | The Amazon Resource Name (ARN) of the endpoint configuration.
describeEndpointConfigResponse_endpointConfigArn :: Lens.Lens' DescribeEndpointConfigResponse Prelude.Text
describeEndpointConfigResponse_endpointConfigArn :: Lens' DescribeEndpointConfigResponse Text
describeEndpointConfigResponse_endpointConfigArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeEndpointConfigResponse' {Text
endpointConfigArn :: Text
$sel:endpointConfigArn:DescribeEndpointConfigResponse' :: DescribeEndpointConfigResponse -> Text
endpointConfigArn} -> Text
endpointConfigArn) (\s :: DescribeEndpointConfigResponse
s@DescribeEndpointConfigResponse' {} Text
a -> DescribeEndpointConfigResponse
s {$sel:endpointConfigArn:DescribeEndpointConfigResponse' :: Text
endpointConfigArn = Text
a} :: DescribeEndpointConfigResponse)

-- | An array of @ProductionVariant@ objects, one for each model that you
-- want to host at this endpoint.
describeEndpointConfigResponse_productionVariants :: Lens.Lens' DescribeEndpointConfigResponse (Prelude.NonEmpty ProductionVariant)
describeEndpointConfigResponse_productionVariants :: Lens' DescribeEndpointConfigResponse (NonEmpty ProductionVariant)
describeEndpointConfigResponse_productionVariants = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeEndpointConfigResponse' {NonEmpty ProductionVariant
productionVariants :: NonEmpty ProductionVariant
$sel:productionVariants:DescribeEndpointConfigResponse' :: DescribeEndpointConfigResponse -> NonEmpty ProductionVariant
productionVariants} -> NonEmpty ProductionVariant
productionVariants) (\s :: DescribeEndpointConfigResponse
s@DescribeEndpointConfigResponse' {} NonEmpty ProductionVariant
a -> DescribeEndpointConfigResponse
s {$sel:productionVariants:DescribeEndpointConfigResponse' :: NonEmpty ProductionVariant
productionVariants = NonEmpty ProductionVariant
a} :: DescribeEndpointConfigResponse) 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

-- | A timestamp that shows when the endpoint configuration was created.
describeEndpointConfigResponse_creationTime :: Lens.Lens' DescribeEndpointConfigResponse Prelude.UTCTime
describeEndpointConfigResponse_creationTime :: Lens' DescribeEndpointConfigResponse UTCTime
describeEndpointConfigResponse_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeEndpointConfigResponse' {POSIX
creationTime :: POSIX
$sel:creationTime:DescribeEndpointConfigResponse' :: DescribeEndpointConfigResponse -> POSIX
creationTime} -> POSIX
creationTime) (\s :: DescribeEndpointConfigResponse
s@DescribeEndpointConfigResponse' {} POSIX
a -> DescribeEndpointConfigResponse
s {$sel:creationTime:DescribeEndpointConfigResponse' :: POSIX
creationTime = POSIX
a} :: DescribeEndpointConfigResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

instance
  Prelude.NFData
    DescribeEndpointConfigResponse
  where
  rnf :: DescribeEndpointConfigResponse -> ()
rnf DescribeEndpointConfigResponse' {Int
Maybe (NonEmpty ProductionVariant)
Maybe Text
Maybe AsyncInferenceConfig
Maybe DataCaptureConfig
Maybe ExplainerConfig
NonEmpty ProductionVariant
Text
POSIX
creationTime :: POSIX
productionVariants :: NonEmpty ProductionVariant
endpointConfigArn :: Text
endpointConfigName :: Text
httpStatus :: Int
shadowProductionVariants :: Maybe (NonEmpty ProductionVariant)
kmsKeyId :: Maybe Text
explainerConfig :: Maybe ExplainerConfig
dataCaptureConfig :: Maybe DataCaptureConfig
asyncInferenceConfig :: Maybe AsyncInferenceConfig
$sel:creationTime:DescribeEndpointConfigResponse' :: DescribeEndpointConfigResponse -> POSIX
$sel:productionVariants:DescribeEndpointConfigResponse' :: DescribeEndpointConfigResponse -> NonEmpty ProductionVariant
$sel:endpointConfigArn:DescribeEndpointConfigResponse' :: DescribeEndpointConfigResponse -> Text
$sel:endpointConfigName:DescribeEndpointConfigResponse' :: DescribeEndpointConfigResponse -> Text
$sel:httpStatus:DescribeEndpointConfigResponse' :: DescribeEndpointConfigResponse -> Int
$sel:shadowProductionVariants:DescribeEndpointConfigResponse' :: DescribeEndpointConfigResponse
-> Maybe (NonEmpty ProductionVariant)
$sel:kmsKeyId:DescribeEndpointConfigResponse' :: DescribeEndpointConfigResponse -> Maybe Text
$sel:explainerConfig:DescribeEndpointConfigResponse' :: DescribeEndpointConfigResponse -> Maybe ExplainerConfig
$sel:dataCaptureConfig:DescribeEndpointConfigResponse' :: DescribeEndpointConfigResponse -> Maybe DataCaptureConfig
$sel:asyncInferenceConfig:DescribeEndpointConfigResponse' :: DescribeEndpointConfigResponse -> Maybe AsyncInferenceConfig
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe AsyncInferenceConfig
asyncInferenceConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DataCaptureConfig
dataCaptureConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ExplainerConfig
explainerConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
kmsKeyId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty ProductionVariant)
shadowProductionVariants
      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
endpointConfigName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
endpointConfigArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf NonEmpty ProductionVariant
productionVariants
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf POSIX
creationTime