{-# 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.DescribeModelQualityJobDefinition
-- 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 a model quality job definition.
module Amazonka.SageMaker.DescribeModelQualityJobDefinition
  ( -- * Creating a Request
    DescribeModelQualityJobDefinition (..),
    newDescribeModelQualityJobDefinition,

    -- * Request Lenses
    describeModelQualityJobDefinition_jobDefinitionName,

    -- * Destructuring the Response
    DescribeModelQualityJobDefinitionResponse (..),
    newDescribeModelQualityJobDefinitionResponse,

    -- * Response Lenses
    describeModelQualityJobDefinitionResponse_modelQualityBaselineConfig,
    describeModelQualityJobDefinitionResponse_networkConfig,
    describeModelQualityJobDefinitionResponse_stoppingCondition,
    describeModelQualityJobDefinitionResponse_httpStatus,
    describeModelQualityJobDefinitionResponse_jobDefinitionArn,
    describeModelQualityJobDefinitionResponse_jobDefinitionName,
    describeModelQualityJobDefinitionResponse_creationTime,
    describeModelQualityJobDefinitionResponse_modelQualityAppSpecification,
    describeModelQualityJobDefinitionResponse_modelQualityJobInput,
    describeModelQualityJobDefinitionResponse_modelQualityJobOutputConfig,
    describeModelQualityJobDefinitionResponse_jobResources,
    describeModelQualityJobDefinitionResponse_roleArn,
  )
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:/ 'newDescribeModelQualityJobDefinition' smart constructor.
data DescribeModelQualityJobDefinition = DescribeModelQualityJobDefinition'
  { -- | The name of the model quality job. The name must be unique within an
    -- Amazon Web Services Region in the Amazon Web Services account.
    DescribeModelQualityJobDefinition -> Text
jobDefinitionName :: Prelude.Text
  }
  deriving (DescribeModelQualityJobDefinition
-> DescribeModelQualityJobDefinition -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeModelQualityJobDefinition
-> DescribeModelQualityJobDefinition -> Bool
$c/= :: DescribeModelQualityJobDefinition
-> DescribeModelQualityJobDefinition -> Bool
== :: DescribeModelQualityJobDefinition
-> DescribeModelQualityJobDefinition -> Bool
$c== :: DescribeModelQualityJobDefinition
-> DescribeModelQualityJobDefinition -> Bool
Prelude.Eq, ReadPrec [DescribeModelQualityJobDefinition]
ReadPrec DescribeModelQualityJobDefinition
Int -> ReadS DescribeModelQualityJobDefinition
ReadS [DescribeModelQualityJobDefinition]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeModelQualityJobDefinition]
$creadListPrec :: ReadPrec [DescribeModelQualityJobDefinition]
readPrec :: ReadPrec DescribeModelQualityJobDefinition
$creadPrec :: ReadPrec DescribeModelQualityJobDefinition
readList :: ReadS [DescribeModelQualityJobDefinition]
$creadList :: ReadS [DescribeModelQualityJobDefinition]
readsPrec :: Int -> ReadS DescribeModelQualityJobDefinition
$creadsPrec :: Int -> ReadS DescribeModelQualityJobDefinition
Prelude.Read, Int -> DescribeModelQualityJobDefinition -> ShowS
[DescribeModelQualityJobDefinition] -> ShowS
DescribeModelQualityJobDefinition -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeModelQualityJobDefinition] -> ShowS
$cshowList :: [DescribeModelQualityJobDefinition] -> ShowS
show :: DescribeModelQualityJobDefinition -> String
$cshow :: DescribeModelQualityJobDefinition -> String
showsPrec :: Int -> DescribeModelQualityJobDefinition -> ShowS
$cshowsPrec :: Int -> DescribeModelQualityJobDefinition -> ShowS
Prelude.Show, forall x.
Rep DescribeModelQualityJobDefinition x
-> DescribeModelQualityJobDefinition
forall x.
DescribeModelQualityJobDefinition
-> Rep DescribeModelQualityJobDefinition x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeModelQualityJobDefinition x
-> DescribeModelQualityJobDefinition
$cfrom :: forall x.
DescribeModelQualityJobDefinition
-> Rep DescribeModelQualityJobDefinition x
Prelude.Generic)

-- |
-- Create a value of 'DescribeModelQualityJobDefinition' 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:
--
-- 'jobDefinitionName', 'describeModelQualityJobDefinition_jobDefinitionName' - The name of the model quality job. The name must be unique within an
-- Amazon Web Services Region in the Amazon Web Services account.
newDescribeModelQualityJobDefinition ::
  -- | 'jobDefinitionName'
  Prelude.Text ->
  DescribeModelQualityJobDefinition
newDescribeModelQualityJobDefinition :: Text -> DescribeModelQualityJobDefinition
newDescribeModelQualityJobDefinition
  Text
pJobDefinitionName_ =
    DescribeModelQualityJobDefinition'
      { $sel:jobDefinitionName:DescribeModelQualityJobDefinition' :: Text
jobDefinitionName =
          Text
pJobDefinitionName_
      }

-- | The name of the model quality job. The name must be unique within an
-- Amazon Web Services Region in the Amazon Web Services account.
describeModelQualityJobDefinition_jobDefinitionName :: Lens.Lens' DescribeModelQualityJobDefinition Prelude.Text
describeModelQualityJobDefinition_jobDefinitionName :: Lens' DescribeModelQualityJobDefinition Text
describeModelQualityJobDefinition_jobDefinitionName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelQualityJobDefinition' {Text
jobDefinitionName :: Text
$sel:jobDefinitionName:DescribeModelQualityJobDefinition' :: DescribeModelQualityJobDefinition -> Text
jobDefinitionName} -> Text
jobDefinitionName) (\s :: DescribeModelQualityJobDefinition
s@DescribeModelQualityJobDefinition' {} Text
a -> DescribeModelQualityJobDefinition
s {$sel:jobDefinitionName:DescribeModelQualityJobDefinition' :: Text
jobDefinitionName = Text
a} :: DescribeModelQualityJobDefinition)

instance
  Core.AWSRequest
    DescribeModelQualityJobDefinition
  where
  type
    AWSResponse DescribeModelQualityJobDefinition =
      DescribeModelQualityJobDefinitionResponse
  request :: (Service -> Service)
-> DescribeModelQualityJobDefinition
-> Request DescribeModelQualityJobDefinition
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 DescribeModelQualityJobDefinition
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse DescribeModelQualityJobDefinition)))
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 ModelQualityBaselineConfig
-> Maybe MonitoringNetworkConfig
-> Maybe MonitoringStoppingCondition
-> Int
-> Text
-> Text
-> POSIX
-> ModelQualityAppSpecification
-> ModelQualityJobInput
-> MonitoringOutputConfig
-> MonitoringResources
-> Text
-> DescribeModelQualityJobDefinitionResponse
DescribeModelQualityJobDefinitionResponse'
            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
"ModelQualityBaselineConfig")
            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
"NetworkConfig")
            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
"StoppingCondition")
            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
"JobDefinitionArn")
            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
"JobDefinitionName")
            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
"ModelQualityAppSpecification")
            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
"ModelQualityJobInput")
            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
"ModelQualityJobOutputConfig")
            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
"JobResources")
            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
"RoleArn")
      )

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

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

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

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

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

-- | /See:/ 'newDescribeModelQualityJobDefinitionResponse' smart constructor.
data DescribeModelQualityJobDefinitionResponse = DescribeModelQualityJobDefinitionResponse'
  { -- | The baseline configuration for a model quality job.
    DescribeModelQualityJobDefinitionResponse
-> Maybe ModelQualityBaselineConfig
modelQualityBaselineConfig :: Prelude.Maybe ModelQualityBaselineConfig,
    -- | Networking options for a model quality job.
    DescribeModelQualityJobDefinitionResponse
-> Maybe MonitoringNetworkConfig
networkConfig :: Prelude.Maybe MonitoringNetworkConfig,
    DescribeModelQualityJobDefinitionResponse
-> Maybe MonitoringStoppingCondition
stoppingCondition :: Prelude.Maybe MonitoringStoppingCondition,
    -- | The response's http status code.
    DescribeModelQualityJobDefinitionResponse -> Int
httpStatus :: Prelude.Int,
    -- | The Amazon Resource Name (ARN) of the model quality job.
    DescribeModelQualityJobDefinitionResponse -> Text
jobDefinitionArn :: Prelude.Text,
    -- | The name of the quality job definition. The name must be unique within
    -- an Amazon Web Services Region in the Amazon Web Services account.
    DescribeModelQualityJobDefinitionResponse -> Text
jobDefinitionName :: Prelude.Text,
    -- | The time at which the model quality job was created.
    DescribeModelQualityJobDefinitionResponse -> POSIX
creationTime :: Data.POSIX,
    -- | Configures the model quality job to run a specified Docker container
    -- image.
    DescribeModelQualityJobDefinitionResponse
-> ModelQualityAppSpecification
modelQualityAppSpecification :: ModelQualityAppSpecification,
    -- | Inputs for the model quality job.
    DescribeModelQualityJobDefinitionResponse -> ModelQualityJobInput
modelQualityJobInput :: ModelQualityJobInput,
    DescribeModelQualityJobDefinitionResponse -> MonitoringOutputConfig
modelQualityJobOutputConfig :: MonitoringOutputConfig,
    DescribeModelQualityJobDefinitionResponse -> MonitoringResources
jobResources :: MonitoringResources,
    -- | The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can
    -- assume to perform tasks on your behalf.
    DescribeModelQualityJobDefinitionResponse -> Text
roleArn :: Prelude.Text
  }
  deriving (DescribeModelQualityJobDefinitionResponse
-> DescribeModelQualityJobDefinitionResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeModelQualityJobDefinitionResponse
-> DescribeModelQualityJobDefinitionResponse -> Bool
$c/= :: DescribeModelQualityJobDefinitionResponse
-> DescribeModelQualityJobDefinitionResponse -> Bool
== :: DescribeModelQualityJobDefinitionResponse
-> DescribeModelQualityJobDefinitionResponse -> Bool
$c== :: DescribeModelQualityJobDefinitionResponse
-> DescribeModelQualityJobDefinitionResponse -> Bool
Prelude.Eq, ReadPrec [DescribeModelQualityJobDefinitionResponse]
ReadPrec DescribeModelQualityJobDefinitionResponse
Int -> ReadS DescribeModelQualityJobDefinitionResponse
ReadS [DescribeModelQualityJobDefinitionResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeModelQualityJobDefinitionResponse]
$creadListPrec :: ReadPrec [DescribeModelQualityJobDefinitionResponse]
readPrec :: ReadPrec DescribeModelQualityJobDefinitionResponse
$creadPrec :: ReadPrec DescribeModelQualityJobDefinitionResponse
readList :: ReadS [DescribeModelQualityJobDefinitionResponse]
$creadList :: ReadS [DescribeModelQualityJobDefinitionResponse]
readsPrec :: Int -> ReadS DescribeModelQualityJobDefinitionResponse
$creadsPrec :: Int -> ReadS DescribeModelQualityJobDefinitionResponse
Prelude.Read, Int -> DescribeModelQualityJobDefinitionResponse -> ShowS
[DescribeModelQualityJobDefinitionResponse] -> ShowS
DescribeModelQualityJobDefinitionResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeModelQualityJobDefinitionResponse] -> ShowS
$cshowList :: [DescribeModelQualityJobDefinitionResponse] -> ShowS
show :: DescribeModelQualityJobDefinitionResponse -> String
$cshow :: DescribeModelQualityJobDefinitionResponse -> String
showsPrec :: Int -> DescribeModelQualityJobDefinitionResponse -> ShowS
$cshowsPrec :: Int -> DescribeModelQualityJobDefinitionResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeModelQualityJobDefinitionResponse x
-> DescribeModelQualityJobDefinitionResponse
forall x.
DescribeModelQualityJobDefinitionResponse
-> Rep DescribeModelQualityJobDefinitionResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeModelQualityJobDefinitionResponse x
-> DescribeModelQualityJobDefinitionResponse
$cfrom :: forall x.
DescribeModelQualityJobDefinitionResponse
-> Rep DescribeModelQualityJobDefinitionResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeModelQualityJobDefinitionResponse' 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:
--
-- 'modelQualityBaselineConfig', 'describeModelQualityJobDefinitionResponse_modelQualityBaselineConfig' - The baseline configuration for a model quality job.
--
-- 'networkConfig', 'describeModelQualityJobDefinitionResponse_networkConfig' - Networking options for a model quality job.
--
-- 'stoppingCondition', 'describeModelQualityJobDefinitionResponse_stoppingCondition' - Undocumented member.
--
-- 'httpStatus', 'describeModelQualityJobDefinitionResponse_httpStatus' - The response's http status code.
--
-- 'jobDefinitionArn', 'describeModelQualityJobDefinitionResponse_jobDefinitionArn' - The Amazon Resource Name (ARN) of the model quality job.
--
-- 'jobDefinitionName', 'describeModelQualityJobDefinitionResponse_jobDefinitionName' - The name of the quality job definition. The name must be unique within
-- an Amazon Web Services Region in the Amazon Web Services account.
--
-- 'creationTime', 'describeModelQualityJobDefinitionResponse_creationTime' - The time at which the model quality job was created.
--
-- 'modelQualityAppSpecification', 'describeModelQualityJobDefinitionResponse_modelQualityAppSpecification' - Configures the model quality job to run a specified Docker container
-- image.
--
-- 'modelQualityJobInput', 'describeModelQualityJobDefinitionResponse_modelQualityJobInput' - Inputs for the model quality job.
--
-- 'modelQualityJobOutputConfig', 'describeModelQualityJobDefinitionResponse_modelQualityJobOutputConfig' - Undocumented member.
--
-- 'jobResources', 'describeModelQualityJobDefinitionResponse_jobResources' - Undocumented member.
--
-- 'roleArn', 'describeModelQualityJobDefinitionResponse_roleArn' - The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can
-- assume to perform tasks on your behalf.
newDescribeModelQualityJobDefinitionResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'jobDefinitionArn'
  Prelude.Text ->
  -- | 'jobDefinitionName'
  Prelude.Text ->
  -- | 'creationTime'
  Prelude.UTCTime ->
  -- | 'modelQualityAppSpecification'
  ModelQualityAppSpecification ->
  -- | 'modelQualityJobInput'
  ModelQualityJobInput ->
  -- | 'modelQualityJobOutputConfig'
  MonitoringOutputConfig ->
  -- | 'jobResources'
  MonitoringResources ->
  -- | 'roleArn'
  Prelude.Text ->
  DescribeModelQualityJobDefinitionResponse
newDescribeModelQualityJobDefinitionResponse :: Int
-> Text
-> Text
-> UTCTime
-> ModelQualityAppSpecification
-> ModelQualityJobInput
-> MonitoringOutputConfig
-> MonitoringResources
-> Text
-> DescribeModelQualityJobDefinitionResponse
newDescribeModelQualityJobDefinitionResponse
  Int
pHttpStatus_
  Text
pJobDefinitionArn_
  Text
pJobDefinitionName_
  UTCTime
pCreationTime_
  ModelQualityAppSpecification
pModelQualityAppSpecification_
  ModelQualityJobInput
pModelQualityJobInput_
  MonitoringOutputConfig
pModelQualityJobOutputConfig_
  MonitoringResources
pJobResources_
  Text
pRoleArn_ =
    DescribeModelQualityJobDefinitionResponse'
      { $sel:modelQualityBaselineConfig:DescribeModelQualityJobDefinitionResponse' :: Maybe ModelQualityBaselineConfig
modelQualityBaselineConfig =
          forall a. Maybe a
Prelude.Nothing,
        $sel:networkConfig:DescribeModelQualityJobDefinitionResponse' :: Maybe MonitoringNetworkConfig
networkConfig = forall a. Maybe a
Prelude.Nothing,
        $sel:stoppingCondition:DescribeModelQualityJobDefinitionResponse' :: Maybe MonitoringStoppingCondition
stoppingCondition =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DescribeModelQualityJobDefinitionResponse' :: Int
httpStatus = Int
pHttpStatus_,
        $sel:jobDefinitionArn:DescribeModelQualityJobDefinitionResponse' :: Text
jobDefinitionArn =
          Text
pJobDefinitionArn_,
        $sel:jobDefinitionName:DescribeModelQualityJobDefinitionResponse' :: Text
jobDefinitionName =
          Text
pJobDefinitionName_,
        $sel:creationTime:DescribeModelQualityJobDefinitionResponse' :: POSIX
creationTime =
          forall (a :: Format). Iso' (Time a) UTCTime
Data._Time
            forall t b. AReview t b -> b -> t
Lens.# UTCTime
pCreationTime_,
        $sel:modelQualityAppSpecification:DescribeModelQualityJobDefinitionResponse' :: ModelQualityAppSpecification
modelQualityAppSpecification =
          ModelQualityAppSpecification
pModelQualityAppSpecification_,
        $sel:modelQualityJobInput:DescribeModelQualityJobDefinitionResponse' :: ModelQualityJobInput
modelQualityJobInput =
          ModelQualityJobInput
pModelQualityJobInput_,
        $sel:modelQualityJobOutputConfig:DescribeModelQualityJobDefinitionResponse' :: MonitoringOutputConfig
modelQualityJobOutputConfig =
          MonitoringOutputConfig
pModelQualityJobOutputConfig_,
        $sel:jobResources:DescribeModelQualityJobDefinitionResponse' :: MonitoringResources
jobResources = MonitoringResources
pJobResources_,
        $sel:roleArn:DescribeModelQualityJobDefinitionResponse' :: Text
roleArn = Text
pRoleArn_
      }

-- | The baseline configuration for a model quality job.
describeModelQualityJobDefinitionResponse_modelQualityBaselineConfig :: Lens.Lens' DescribeModelQualityJobDefinitionResponse (Prelude.Maybe ModelQualityBaselineConfig)
describeModelQualityJobDefinitionResponse_modelQualityBaselineConfig :: Lens'
  DescribeModelQualityJobDefinitionResponse
  (Maybe ModelQualityBaselineConfig)
describeModelQualityJobDefinitionResponse_modelQualityBaselineConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelQualityJobDefinitionResponse' {Maybe ModelQualityBaselineConfig
modelQualityBaselineConfig :: Maybe ModelQualityBaselineConfig
$sel:modelQualityBaselineConfig:DescribeModelQualityJobDefinitionResponse' :: DescribeModelQualityJobDefinitionResponse
-> Maybe ModelQualityBaselineConfig
modelQualityBaselineConfig} -> Maybe ModelQualityBaselineConfig
modelQualityBaselineConfig) (\s :: DescribeModelQualityJobDefinitionResponse
s@DescribeModelQualityJobDefinitionResponse' {} Maybe ModelQualityBaselineConfig
a -> DescribeModelQualityJobDefinitionResponse
s {$sel:modelQualityBaselineConfig:DescribeModelQualityJobDefinitionResponse' :: Maybe ModelQualityBaselineConfig
modelQualityBaselineConfig = Maybe ModelQualityBaselineConfig
a} :: DescribeModelQualityJobDefinitionResponse)

-- | Networking options for a model quality job.
describeModelQualityJobDefinitionResponse_networkConfig :: Lens.Lens' DescribeModelQualityJobDefinitionResponse (Prelude.Maybe MonitoringNetworkConfig)
describeModelQualityJobDefinitionResponse_networkConfig :: Lens'
  DescribeModelQualityJobDefinitionResponse
  (Maybe MonitoringNetworkConfig)
describeModelQualityJobDefinitionResponse_networkConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelQualityJobDefinitionResponse' {Maybe MonitoringNetworkConfig
networkConfig :: Maybe MonitoringNetworkConfig
$sel:networkConfig:DescribeModelQualityJobDefinitionResponse' :: DescribeModelQualityJobDefinitionResponse
-> Maybe MonitoringNetworkConfig
networkConfig} -> Maybe MonitoringNetworkConfig
networkConfig) (\s :: DescribeModelQualityJobDefinitionResponse
s@DescribeModelQualityJobDefinitionResponse' {} Maybe MonitoringNetworkConfig
a -> DescribeModelQualityJobDefinitionResponse
s {$sel:networkConfig:DescribeModelQualityJobDefinitionResponse' :: Maybe MonitoringNetworkConfig
networkConfig = Maybe MonitoringNetworkConfig
a} :: DescribeModelQualityJobDefinitionResponse)

-- | Undocumented member.
describeModelQualityJobDefinitionResponse_stoppingCondition :: Lens.Lens' DescribeModelQualityJobDefinitionResponse (Prelude.Maybe MonitoringStoppingCondition)
describeModelQualityJobDefinitionResponse_stoppingCondition :: Lens'
  DescribeModelQualityJobDefinitionResponse
  (Maybe MonitoringStoppingCondition)
describeModelQualityJobDefinitionResponse_stoppingCondition = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelQualityJobDefinitionResponse' {Maybe MonitoringStoppingCondition
stoppingCondition :: Maybe MonitoringStoppingCondition
$sel:stoppingCondition:DescribeModelQualityJobDefinitionResponse' :: DescribeModelQualityJobDefinitionResponse
-> Maybe MonitoringStoppingCondition
stoppingCondition} -> Maybe MonitoringStoppingCondition
stoppingCondition) (\s :: DescribeModelQualityJobDefinitionResponse
s@DescribeModelQualityJobDefinitionResponse' {} Maybe MonitoringStoppingCondition
a -> DescribeModelQualityJobDefinitionResponse
s {$sel:stoppingCondition:DescribeModelQualityJobDefinitionResponse' :: Maybe MonitoringStoppingCondition
stoppingCondition = Maybe MonitoringStoppingCondition
a} :: DescribeModelQualityJobDefinitionResponse)

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

-- | The Amazon Resource Name (ARN) of the model quality job.
describeModelQualityJobDefinitionResponse_jobDefinitionArn :: Lens.Lens' DescribeModelQualityJobDefinitionResponse Prelude.Text
describeModelQualityJobDefinitionResponse_jobDefinitionArn :: Lens' DescribeModelQualityJobDefinitionResponse Text
describeModelQualityJobDefinitionResponse_jobDefinitionArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelQualityJobDefinitionResponse' {Text
jobDefinitionArn :: Text
$sel:jobDefinitionArn:DescribeModelQualityJobDefinitionResponse' :: DescribeModelQualityJobDefinitionResponse -> Text
jobDefinitionArn} -> Text
jobDefinitionArn) (\s :: DescribeModelQualityJobDefinitionResponse
s@DescribeModelQualityJobDefinitionResponse' {} Text
a -> DescribeModelQualityJobDefinitionResponse
s {$sel:jobDefinitionArn:DescribeModelQualityJobDefinitionResponse' :: Text
jobDefinitionArn = Text
a} :: DescribeModelQualityJobDefinitionResponse)

-- | The name of the quality job definition. The name must be unique within
-- an Amazon Web Services Region in the Amazon Web Services account.
describeModelQualityJobDefinitionResponse_jobDefinitionName :: Lens.Lens' DescribeModelQualityJobDefinitionResponse Prelude.Text
describeModelQualityJobDefinitionResponse_jobDefinitionName :: Lens' DescribeModelQualityJobDefinitionResponse Text
describeModelQualityJobDefinitionResponse_jobDefinitionName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelQualityJobDefinitionResponse' {Text
jobDefinitionName :: Text
$sel:jobDefinitionName:DescribeModelQualityJobDefinitionResponse' :: DescribeModelQualityJobDefinitionResponse -> Text
jobDefinitionName} -> Text
jobDefinitionName) (\s :: DescribeModelQualityJobDefinitionResponse
s@DescribeModelQualityJobDefinitionResponse' {} Text
a -> DescribeModelQualityJobDefinitionResponse
s {$sel:jobDefinitionName:DescribeModelQualityJobDefinitionResponse' :: Text
jobDefinitionName = Text
a} :: DescribeModelQualityJobDefinitionResponse)

-- | The time at which the model quality job was created.
describeModelQualityJobDefinitionResponse_creationTime :: Lens.Lens' DescribeModelQualityJobDefinitionResponse Prelude.UTCTime
describeModelQualityJobDefinitionResponse_creationTime :: Lens' DescribeModelQualityJobDefinitionResponse UTCTime
describeModelQualityJobDefinitionResponse_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelQualityJobDefinitionResponse' {POSIX
creationTime :: POSIX
$sel:creationTime:DescribeModelQualityJobDefinitionResponse' :: DescribeModelQualityJobDefinitionResponse -> POSIX
creationTime} -> POSIX
creationTime) (\s :: DescribeModelQualityJobDefinitionResponse
s@DescribeModelQualityJobDefinitionResponse' {} POSIX
a -> DescribeModelQualityJobDefinitionResponse
s {$sel:creationTime:DescribeModelQualityJobDefinitionResponse' :: POSIX
creationTime = POSIX
a} :: DescribeModelQualityJobDefinitionResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | Configures the model quality job to run a specified Docker container
-- image.
describeModelQualityJobDefinitionResponse_modelQualityAppSpecification :: Lens.Lens' DescribeModelQualityJobDefinitionResponse ModelQualityAppSpecification
describeModelQualityJobDefinitionResponse_modelQualityAppSpecification :: Lens'
  DescribeModelQualityJobDefinitionResponse
  ModelQualityAppSpecification
describeModelQualityJobDefinitionResponse_modelQualityAppSpecification = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelQualityJobDefinitionResponse' {ModelQualityAppSpecification
modelQualityAppSpecification :: ModelQualityAppSpecification
$sel:modelQualityAppSpecification:DescribeModelQualityJobDefinitionResponse' :: DescribeModelQualityJobDefinitionResponse
-> ModelQualityAppSpecification
modelQualityAppSpecification} -> ModelQualityAppSpecification
modelQualityAppSpecification) (\s :: DescribeModelQualityJobDefinitionResponse
s@DescribeModelQualityJobDefinitionResponse' {} ModelQualityAppSpecification
a -> DescribeModelQualityJobDefinitionResponse
s {$sel:modelQualityAppSpecification:DescribeModelQualityJobDefinitionResponse' :: ModelQualityAppSpecification
modelQualityAppSpecification = ModelQualityAppSpecification
a} :: DescribeModelQualityJobDefinitionResponse)

-- | Inputs for the model quality job.
describeModelQualityJobDefinitionResponse_modelQualityJobInput :: Lens.Lens' DescribeModelQualityJobDefinitionResponse ModelQualityJobInput
describeModelQualityJobDefinitionResponse_modelQualityJobInput :: Lens'
  DescribeModelQualityJobDefinitionResponse ModelQualityJobInput
describeModelQualityJobDefinitionResponse_modelQualityJobInput = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelQualityJobDefinitionResponse' {ModelQualityJobInput
modelQualityJobInput :: ModelQualityJobInput
$sel:modelQualityJobInput:DescribeModelQualityJobDefinitionResponse' :: DescribeModelQualityJobDefinitionResponse -> ModelQualityJobInput
modelQualityJobInput} -> ModelQualityJobInput
modelQualityJobInput) (\s :: DescribeModelQualityJobDefinitionResponse
s@DescribeModelQualityJobDefinitionResponse' {} ModelQualityJobInput
a -> DescribeModelQualityJobDefinitionResponse
s {$sel:modelQualityJobInput:DescribeModelQualityJobDefinitionResponse' :: ModelQualityJobInput
modelQualityJobInput = ModelQualityJobInput
a} :: DescribeModelQualityJobDefinitionResponse)

-- | Undocumented member.
describeModelQualityJobDefinitionResponse_modelQualityJobOutputConfig :: Lens.Lens' DescribeModelQualityJobDefinitionResponse MonitoringOutputConfig
describeModelQualityJobDefinitionResponse_modelQualityJobOutputConfig :: Lens'
  DescribeModelQualityJobDefinitionResponse MonitoringOutputConfig
describeModelQualityJobDefinitionResponse_modelQualityJobOutputConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelQualityJobDefinitionResponse' {MonitoringOutputConfig
modelQualityJobOutputConfig :: MonitoringOutputConfig
$sel:modelQualityJobOutputConfig:DescribeModelQualityJobDefinitionResponse' :: DescribeModelQualityJobDefinitionResponse -> MonitoringOutputConfig
modelQualityJobOutputConfig} -> MonitoringOutputConfig
modelQualityJobOutputConfig) (\s :: DescribeModelQualityJobDefinitionResponse
s@DescribeModelQualityJobDefinitionResponse' {} MonitoringOutputConfig
a -> DescribeModelQualityJobDefinitionResponse
s {$sel:modelQualityJobOutputConfig:DescribeModelQualityJobDefinitionResponse' :: MonitoringOutputConfig
modelQualityJobOutputConfig = MonitoringOutputConfig
a} :: DescribeModelQualityJobDefinitionResponse)

-- | Undocumented member.
describeModelQualityJobDefinitionResponse_jobResources :: Lens.Lens' DescribeModelQualityJobDefinitionResponse MonitoringResources
describeModelQualityJobDefinitionResponse_jobResources :: Lens' DescribeModelQualityJobDefinitionResponse MonitoringResources
describeModelQualityJobDefinitionResponse_jobResources = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelQualityJobDefinitionResponse' {MonitoringResources
jobResources :: MonitoringResources
$sel:jobResources:DescribeModelQualityJobDefinitionResponse' :: DescribeModelQualityJobDefinitionResponse -> MonitoringResources
jobResources} -> MonitoringResources
jobResources) (\s :: DescribeModelQualityJobDefinitionResponse
s@DescribeModelQualityJobDefinitionResponse' {} MonitoringResources
a -> DescribeModelQualityJobDefinitionResponse
s {$sel:jobResources:DescribeModelQualityJobDefinitionResponse' :: MonitoringResources
jobResources = MonitoringResources
a} :: DescribeModelQualityJobDefinitionResponse)

-- | The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can
-- assume to perform tasks on your behalf.
describeModelQualityJobDefinitionResponse_roleArn :: Lens.Lens' DescribeModelQualityJobDefinitionResponse Prelude.Text
describeModelQualityJobDefinitionResponse_roleArn :: Lens' DescribeModelQualityJobDefinitionResponse Text
describeModelQualityJobDefinitionResponse_roleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelQualityJobDefinitionResponse' {Text
roleArn :: Text
$sel:roleArn:DescribeModelQualityJobDefinitionResponse' :: DescribeModelQualityJobDefinitionResponse -> Text
roleArn} -> Text
roleArn) (\s :: DescribeModelQualityJobDefinitionResponse
s@DescribeModelQualityJobDefinitionResponse' {} Text
a -> DescribeModelQualityJobDefinitionResponse
s {$sel:roleArn:DescribeModelQualityJobDefinitionResponse' :: Text
roleArn = Text
a} :: DescribeModelQualityJobDefinitionResponse)

instance
  Prelude.NFData
    DescribeModelQualityJobDefinitionResponse
  where
  rnf :: DescribeModelQualityJobDefinitionResponse -> ()
rnf DescribeModelQualityJobDefinitionResponse' {Int
Maybe ModelQualityBaselineConfig
Maybe MonitoringStoppingCondition
Maybe MonitoringNetworkConfig
Text
POSIX
ModelQualityAppSpecification
MonitoringResources
ModelQualityJobInput
MonitoringOutputConfig
roleArn :: Text
jobResources :: MonitoringResources
modelQualityJobOutputConfig :: MonitoringOutputConfig
modelQualityJobInput :: ModelQualityJobInput
modelQualityAppSpecification :: ModelQualityAppSpecification
creationTime :: POSIX
jobDefinitionName :: Text
jobDefinitionArn :: Text
httpStatus :: Int
stoppingCondition :: Maybe MonitoringStoppingCondition
networkConfig :: Maybe MonitoringNetworkConfig
modelQualityBaselineConfig :: Maybe ModelQualityBaselineConfig
$sel:roleArn:DescribeModelQualityJobDefinitionResponse' :: DescribeModelQualityJobDefinitionResponse -> Text
$sel:jobResources:DescribeModelQualityJobDefinitionResponse' :: DescribeModelQualityJobDefinitionResponse -> MonitoringResources
$sel:modelQualityJobOutputConfig:DescribeModelQualityJobDefinitionResponse' :: DescribeModelQualityJobDefinitionResponse -> MonitoringOutputConfig
$sel:modelQualityJobInput:DescribeModelQualityJobDefinitionResponse' :: DescribeModelQualityJobDefinitionResponse -> ModelQualityJobInput
$sel:modelQualityAppSpecification:DescribeModelQualityJobDefinitionResponse' :: DescribeModelQualityJobDefinitionResponse
-> ModelQualityAppSpecification
$sel:creationTime:DescribeModelQualityJobDefinitionResponse' :: DescribeModelQualityJobDefinitionResponse -> POSIX
$sel:jobDefinitionName:DescribeModelQualityJobDefinitionResponse' :: DescribeModelQualityJobDefinitionResponse -> Text
$sel:jobDefinitionArn:DescribeModelQualityJobDefinitionResponse' :: DescribeModelQualityJobDefinitionResponse -> Text
$sel:httpStatus:DescribeModelQualityJobDefinitionResponse' :: DescribeModelQualityJobDefinitionResponse -> Int
$sel:stoppingCondition:DescribeModelQualityJobDefinitionResponse' :: DescribeModelQualityJobDefinitionResponse
-> Maybe MonitoringStoppingCondition
$sel:networkConfig:DescribeModelQualityJobDefinitionResponse' :: DescribeModelQualityJobDefinitionResponse
-> Maybe MonitoringNetworkConfig
$sel:modelQualityBaselineConfig:DescribeModelQualityJobDefinitionResponse' :: DescribeModelQualityJobDefinitionResponse
-> Maybe ModelQualityBaselineConfig
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe ModelQualityBaselineConfig
modelQualityBaselineConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe MonitoringNetworkConfig
networkConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe MonitoringStoppingCondition
stoppingCondition
      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
jobDefinitionArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
jobDefinitionName
      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 ModelQualityAppSpecification
modelQualityAppSpecification
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ModelQualityJobInput
modelQualityJobInput
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf MonitoringOutputConfig
modelQualityJobOutputConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf MonitoringResources
jobResources
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
roleArn