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

    -- * Request Lenses
    describeMonitoringSchedule_monitoringScheduleName,

    -- * Destructuring the Response
    DescribeMonitoringScheduleResponse (..),
    newDescribeMonitoringScheduleResponse,

    -- * Response Lenses
    describeMonitoringScheduleResponse_endpointName,
    describeMonitoringScheduleResponse_failureReason,
    describeMonitoringScheduleResponse_lastMonitoringExecutionSummary,
    describeMonitoringScheduleResponse_monitoringType,
    describeMonitoringScheduleResponse_httpStatus,
    describeMonitoringScheduleResponse_monitoringScheduleArn,
    describeMonitoringScheduleResponse_monitoringScheduleName,
    describeMonitoringScheduleResponse_monitoringScheduleStatus,
    describeMonitoringScheduleResponse_creationTime,
    describeMonitoringScheduleResponse_lastModifiedTime,
    describeMonitoringScheduleResponse_monitoringScheduleConfig,
  )
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:/ 'newDescribeMonitoringSchedule' smart constructor.
data DescribeMonitoringSchedule = DescribeMonitoringSchedule'
  { -- | Name of a previously created monitoring schedule.
    DescribeMonitoringSchedule -> Text
monitoringScheduleName :: Prelude.Text
  }
  deriving (DescribeMonitoringSchedule -> DescribeMonitoringSchedule -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeMonitoringSchedule -> DescribeMonitoringSchedule -> Bool
$c/= :: DescribeMonitoringSchedule -> DescribeMonitoringSchedule -> Bool
== :: DescribeMonitoringSchedule -> DescribeMonitoringSchedule -> Bool
$c== :: DescribeMonitoringSchedule -> DescribeMonitoringSchedule -> Bool
Prelude.Eq, ReadPrec [DescribeMonitoringSchedule]
ReadPrec DescribeMonitoringSchedule
Int -> ReadS DescribeMonitoringSchedule
ReadS [DescribeMonitoringSchedule]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeMonitoringSchedule]
$creadListPrec :: ReadPrec [DescribeMonitoringSchedule]
readPrec :: ReadPrec DescribeMonitoringSchedule
$creadPrec :: ReadPrec DescribeMonitoringSchedule
readList :: ReadS [DescribeMonitoringSchedule]
$creadList :: ReadS [DescribeMonitoringSchedule]
readsPrec :: Int -> ReadS DescribeMonitoringSchedule
$creadsPrec :: Int -> ReadS DescribeMonitoringSchedule
Prelude.Read, Int -> DescribeMonitoringSchedule -> ShowS
[DescribeMonitoringSchedule] -> ShowS
DescribeMonitoringSchedule -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeMonitoringSchedule] -> ShowS
$cshowList :: [DescribeMonitoringSchedule] -> ShowS
show :: DescribeMonitoringSchedule -> String
$cshow :: DescribeMonitoringSchedule -> String
showsPrec :: Int -> DescribeMonitoringSchedule -> ShowS
$cshowsPrec :: Int -> DescribeMonitoringSchedule -> ShowS
Prelude.Show, forall x.
Rep DescribeMonitoringSchedule x -> DescribeMonitoringSchedule
forall x.
DescribeMonitoringSchedule -> Rep DescribeMonitoringSchedule x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeMonitoringSchedule x -> DescribeMonitoringSchedule
$cfrom :: forall x.
DescribeMonitoringSchedule -> Rep DescribeMonitoringSchedule x
Prelude.Generic)

-- |
-- Create a value of 'DescribeMonitoringSchedule' 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:
--
-- 'monitoringScheduleName', 'describeMonitoringSchedule_monitoringScheduleName' - Name of a previously created monitoring schedule.
newDescribeMonitoringSchedule ::
  -- | 'monitoringScheduleName'
  Prelude.Text ->
  DescribeMonitoringSchedule
newDescribeMonitoringSchedule :: Text -> DescribeMonitoringSchedule
newDescribeMonitoringSchedule
  Text
pMonitoringScheduleName_ =
    DescribeMonitoringSchedule'
      { $sel:monitoringScheduleName:DescribeMonitoringSchedule' :: Text
monitoringScheduleName =
          Text
pMonitoringScheduleName_
      }

-- | Name of a previously created monitoring schedule.
describeMonitoringSchedule_monitoringScheduleName :: Lens.Lens' DescribeMonitoringSchedule Prelude.Text
describeMonitoringSchedule_monitoringScheduleName :: Lens' DescribeMonitoringSchedule Text
describeMonitoringSchedule_monitoringScheduleName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMonitoringSchedule' {Text
monitoringScheduleName :: Text
$sel:monitoringScheduleName:DescribeMonitoringSchedule' :: DescribeMonitoringSchedule -> Text
monitoringScheduleName} -> Text
monitoringScheduleName) (\s :: DescribeMonitoringSchedule
s@DescribeMonitoringSchedule' {} Text
a -> DescribeMonitoringSchedule
s {$sel:monitoringScheduleName:DescribeMonitoringSchedule' :: Text
monitoringScheduleName = Text
a} :: DescribeMonitoringSchedule)

instance Core.AWSRequest DescribeMonitoringSchedule where
  type
    AWSResponse DescribeMonitoringSchedule =
      DescribeMonitoringScheduleResponse
  request :: (Service -> Service)
-> DescribeMonitoringSchedule -> Request DescribeMonitoringSchedule
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 DescribeMonitoringSchedule
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeMonitoringSchedule)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text
-> Maybe Text
-> Maybe MonitoringExecutionSummary
-> Maybe MonitoringType
-> Int
-> Text
-> Text
-> ScheduleStatus
-> POSIX
-> POSIX
-> MonitoringScheduleConfig
-> DescribeMonitoringScheduleResponse
DescribeMonitoringScheduleResponse'
            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
"EndpointName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"FailureReason")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"LastMonitoringExecutionSummary")
            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
"MonitoringType")
            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
"MonitoringScheduleArn")
            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
"MonitoringScheduleName")
            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
"MonitoringScheduleStatus")
            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
"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 a
Data..:> Key
"MonitoringScheduleConfig")
      )

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

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

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

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

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

-- | /See:/ 'newDescribeMonitoringScheduleResponse' smart constructor.
data DescribeMonitoringScheduleResponse = DescribeMonitoringScheduleResponse'
  { -- | The name of the endpoint for the monitoring job.
    DescribeMonitoringScheduleResponse -> Maybe Text
endpointName :: Prelude.Maybe Prelude.Text,
    -- | A string, up to one KB in size, that contains the reason a monitoring
    -- job failed, if it failed.
    DescribeMonitoringScheduleResponse -> Maybe Text
failureReason :: Prelude.Maybe Prelude.Text,
    -- | Describes metadata on the last execution to run, if there was one.
    DescribeMonitoringScheduleResponse
-> Maybe MonitoringExecutionSummary
lastMonitoringExecutionSummary :: Prelude.Maybe MonitoringExecutionSummary,
    -- | The type of the monitoring job that this schedule runs. This is one of
    -- the following values.
    --
    -- -   @DATA_QUALITY@ - The schedule is for a data quality monitoring job.
    --
    -- -   @MODEL_QUALITY@ - The schedule is for a model quality monitoring
    --     job.
    --
    -- -   @MODEL_BIAS@ - The schedule is for a bias monitoring job.
    --
    -- -   @MODEL_EXPLAINABILITY@ - The schedule is for an explainability
    --     monitoring job.
    DescribeMonitoringScheduleResponse -> Maybe MonitoringType
monitoringType :: Prelude.Maybe MonitoringType,
    -- | The response's http status code.
    DescribeMonitoringScheduleResponse -> Int
httpStatus :: Prelude.Int,
    -- | The Amazon Resource Name (ARN) of the monitoring schedule.
    DescribeMonitoringScheduleResponse -> Text
monitoringScheduleArn :: Prelude.Text,
    -- | Name of the monitoring schedule.
    DescribeMonitoringScheduleResponse -> Text
monitoringScheduleName :: Prelude.Text,
    -- | The status of an monitoring job.
    DescribeMonitoringScheduleResponse -> ScheduleStatus
monitoringScheduleStatus :: ScheduleStatus,
    -- | The time at which the monitoring job was created.
    DescribeMonitoringScheduleResponse -> POSIX
creationTime :: Data.POSIX,
    -- | The time at which the monitoring job was last modified.
    DescribeMonitoringScheduleResponse -> POSIX
lastModifiedTime :: Data.POSIX,
    -- | The configuration object that specifies the monitoring schedule and
    -- defines the monitoring job.
    DescribeMonitoringScheduleResponse -> MonitoringScheduleConfig
monitoringScheduleConfig :: MonitoringScheduleConfig
  }
  deriving (DescribeMonitoringScheduleResponse
-> DescribeMonitoringScheduleResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeMonitoringScheduleResponse
-> DescribeMonitoringScheduleResponse -> Bool
$c/= :: DescribeMonitoringScheduleResponse
-> DescribeMonitoringScheduleResponse -> Bool
== :: DescribeMonitoringScheduleResponse
-> DescribeMonitoringScheduleResponse -> Bool
$c== :: DescribeMonitoringScheduleResponse
-> DescribeMonitoringScheduleResponse -> Bool
Prelude.Eq, ReadPrec [DescribeMonitoringScheduleResponse]
ReadPrec DescribeMonitoringScheduleResponse
Int -> ReadS DescribeMonitoringScheduleResponse
ReadS [DescribeMonitoringScheduleResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeMonitoringScheduleResponse]
$creadListPrec :: ReadPrec [DescribeMonitoringScheduleResponse]
readPrec :: ReadPrec DescribeMonitoringScheduleResponse
$creadPrec :: ReadPrec DescribeMonitoringScheduleResponse
readList :: ReadS [DescribeMonitoringScheduleResponse]
$creadList :: ReadS [DescribeMonitoringScheduleResponse]
readsPrec :: Int -> ReadS DescribeMonitoringScheduleResponse
$creadsPrec :: Int -> ReadS DescribeMonitoringScheduleResponse
Prelude.Read, Int -> DescribeMonitoringScheduleResponse -> ShowS
[DescribeMonitoringScheduleResponse] -> ShowS
DescribeMonitoringScheduleResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeMonitoringScheduleResponse] -> ShowS
$cshowList :: [DescribeMonitoringScheduleResponse] -> ShowS
show :: DescribeMonitoringScheduleResponse -> String
$cshow :: DescribeMonitoringScheduleResponse -> String
showsPrec :: Int -> DescribeMonitoringScheduleResponse -> ShowS
$cshowsPrec :: Int -> DescribeMonitoringScheduleResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeMonitoringScheduleResponse x
-> DescribeMonitoringScheduleResponse
forall x.
DescribeMonitoringScheduleResponse
-> Rep DescribeMonitoringScheduleResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeMonitoringScheduleResponse x
-> DescribeMonitoringScheduleResponse
$cfrom :: forall x.
DescribeMonitoringScheduleResponse
-> Rep DescribeMonitoringScheduleResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeMonitoringScheduleResponse' 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:
--
-- 'endpointName', 'describeMonitoringScheduleResponse_endpointName' - The name of the endpoint for the monitoring job.
--
-- 'failureReason', 'describeMonitoringScheduleResponse_failureReason' - A string, up to one KB in size, that contains the reason a monitoring
-- job failed, if it failed.
--
-- 'lastMonitoringExecutionSummary', 'describeMonitoringScheduleResponse_lastMonitoringExecutionSummary' - Describes metadata on the last execution to run, if there was one.
--
-- 'monitoringType', 'describeMonitoringScheduleResponse_monitoringType' - The type of the monitoring job that this schedule runs. This is one of
-- the following values.
--
-- -   @DATA_QUALITY@ - The schedule is for a data quality monitoring job.
--
-- -   @MODEL_QUALITY@ - The schedule is for a model quality monitoring
--     job.
--
-- -   @MODEL_BIAS@ - The schedule is for a bias monitoring job.
--
-- -   @MODEL_EXPLAINABILITY@ - The schedule is for an explainability
--     monitoring job.
--
-- 'httpStatus', 'describeMonitoringScheduleResponse_httpStatus' - The response's http status code.
--
-- 'monitoringScheduleArn', 'describeMonitoringScheduleResponse_monitoringScheduleArn' - The Amazon Resource Name (ARN) of the monitoring schedule.
--
-- 'monitoringScheduleName', 'describeMonitoringScheduleResponse_monitoringScheduleName' - Name of the monitoring schedule.
--
-- 'monitoringScheduleStatus', 'describeMonitoringScheduleResponse_monitoringScheduleStatus' - The status of an monitoring job.
--
-- 'creationTime', 'describeMonitoringScheduleResponse_creationTime' - The time at which the monitoring job was created.
--
-- 'lastModifiedTime', 'describeMonitoringScheduleResponse_lastModifiedTime' - The time at which the monitoring job was last modified.
--
-- 'monitoringScheduleConfig', 'describeMonitoringScheduleResponse_monitoringScheduleConfig' - The configuration object that specifies the monitoring schedule and
-- defines the monitoring job.
newDescribeMonitoringScheduleResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'monitoringScheduleArn'
  Prelude.Text ->
  -- | 'monitoringScheduleName'
  Prelude.Text ->
  -- | 'monitoringScheduleStatus'
  ScheduleStatus ->
  -- | 'creationTime'
  Prelude.UTCTime ->
  -- | 'lastModifiedTime'
  Prelude.UTCTime ->
  -- | 'monitoringScheduleConfig'
  MonitoringScheduleConfig ->
  DescribeMonitoringScheduleResponse
newDescribeMonitoringScheduleResponse :: Int
-> Text
-> Text
-> ScheduleStatus
-> UTCTime
-> UTCTime
-> MonitoringScheduleConfig
-> DescribeMonitoringScheduleResponse
newDescribeMonitoringScheduleResponse
  Int
pHttpStatus_
  Text
pMonitoringScheduleArn_
  Text
pMonitoringScheduleName_
  ScheduleStatus
pMonitoringScheduleStatus_
  UTCTime
pCreationTime_
  UTCTime
pLastModifiedTime_
  MonitoringScheduleConfig
pMonitoringScheduleConfig_ =
    DescribeMonitoringScheduleResponse'
      { $sel:endpointName:DescribeMonitoringScheduleResponse' :: Maybe Text
endpointName =
          forall a. Maybe a
Prelude.Nothing,
        $sel:failureReason:DescribeMonitoringScheduleResponse' :: Maybe Text
failureReason = forall a. Maybe a
Prelude.Nothing,
        $sel:lastMonitoringExecutionSummary:DescribeMonitoringScheduleResponse' :: Maybe MonitoringExecutionSummary
lastMonitoringExecutionSummary =
          forall a. Maybe a
Prelude.Nothing,
        $sel:monitoringType:DescribeMonitoringScheduleResponse' :: Maybe MonitoringType
monitoringType = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DescribeMonitoringScheduleResponse' :: Int
httpStatus = Int
pHttpStatus_,
        $sel:monitoringScheduleArn:DescribeMonitoringScheduleResponse' :: Text
monitoringScheduleArn =
          Text
pMonitoringScheduleArn_,
        $sel:monitoringScheduleName:DescribeMonitoringScheduleResponse' :: Text
monitoringScheduleName =
          Text
pMonitoringScheduleName_,
        $sel:monitoringScheduleStatus:DescribeMonitoringScheduleResponse' :: ScheduleStatus
monitoringScheduleStatus =
          ScheduleStatus
pMonitoringScheduleStatus_,
        $sel:creationTime:DescribeMonitoringScheduleResponse' :: POSIX
creationTime =
          forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pCreationTime_,
        $sel:lastModifiedTime:DescribeMonitoringScheduleResponse' :: POSIX
lastModifiedTime =
          forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pLastModifiedTime_,
        $sel:monitoringScheduleConfig:DescribeMonitoringScheduleResponse' :: MonitoringScheduleConfig
monitoringScheduleConfig =
          MonitoringScheduleConfig
pMonitoringScheduleConfig_
      }

-- | The name of the endpoint for the monitoring job.
describeMonitoringScheduleResponse_endpointName :: Lens.Lens' DescribeMonitoringScheduleResponse (Prelude.Maybe Prelude.Text)
describeMonitoringScheduleResponse_endpointName :: Lens' DescribeMonitoringScheduleResponse (Maybe Text)
describeMonitoringScheduleResponse_endpointName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMonitoringScheduleResponse' {Maybe Text
endpointName :: Maybe Text
$sel:endpointName:DescribeMonitoringScheduleResponse' :: DescribeMonitoringScheduleResponse -> Maybe Text
endpointName} -> Maybe Text
endpointName) (\s :: DescribeMonitoringScheduleResponse
s@DescribeMonitoringScheduleResponse' {} Maybe Text
a -> DescribeMonitoringScheduleResponse
s {$sel:endpointName:DescribeMonitoringScheduleResponse' :: Maybe Text
endpointName = Maybe Text
a} :: DescribeMonitoringScheduleResponse)

-- | A string, up to one KB in size, that contains the reason a monitoring
-- job failed, if it failed.
describeMonitoringScheduleResponse_failureReason :: Lens.Lens' DescribeMonitoringScheduleResponse (Prelude.Maybe Prelude.Text)
describeMonitoringScheduleResponse_failureReason :: Lens' DescribeMonitoringScheduleResponse (Maybe Text)
describeMonitoringScheduleResponse_failureReason = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMonitoringScheduleResponse' {Maybe Text
failureReason :: Maybe Text
$sel:failureReason:DescribeMonitoringScheduleResponse' :: DescribeMonitoringScheduleResponse -> Maybe Text
failureReason} -> Maybe Text
failureReason) (\s :: DescribeMonitoringScheduleResponse
s@DescribeMonitoringScheduleResponse' {} Maybe Text
a -> DescribeMonitoringScheduleResponse
s {$sel:failureReason:DescribeMonitoringScheduleResponse' :: Maybe Text
failureReason = Maybe Text
a} :: DescribeMonitoringScheduleResponse)

-- | Describes metadata on the last execution to run, if there was one.
describeMonitoringScheduleResponse_lastMonitoringExecutionSummary :: Lens.Lens' DescribeMonitoringScheduleResponse (Prelude.Maybe MonitoringExecutionSummary)
describeMonitoringScheduleResponse_lastMonitoringExecutionSummary :: Lens'
  DescribeMonitoringScheduleResponse
  (Maybe MonitoringExecutionSummary)
describeMonitoringScheduleResponse_lastMonitoringExecutionSummary = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMonitoringScheduleResponse' {Maybe MonitoringExecutionSummary
lastMonitoringExecutionSummary :: Maybe MonitoringExecutionSummary
$sel:lastMonitoringExecutionSummary:DescribeMonitoringScheduleResponse' :: DescribeMonitoringScheduleResponse
-> Maybe MonitoringExecutionSummary
lastMonitoringExecutionSummary} -> Maybe MonitoringExecutionSummary
lastMonitoringExecutionSummary) (\s :: DescribeMonitoringScheduleResponse
s@DescribeMonitoringScheduleResponse' {} Maybe MonitoringExecutionSummary
a -> DescribeMonitoringScheduleResponse
s {$sel:lastMonitoringExecutionSummary:DescribeMonitoringScheduleResponse' :: Maybe MonitoringExecutionSummary
lastMonitoringExecutionSummary = Maybe MonitoringExecutionSummary
a} :: DescribeMonitoringScheduleResponse)

-- | The type of the monitoring job that this schedule runs. This is one of
-- the following values.
--
-- -   @DATA_QUALITY@ - The schedule is for a data quality monitoring job.
--
-- -   @MODEL_QUALITY@ - The schedule is for a model quality monitoring
--     job.
--
-- -   @MODEL_BIAS@ - The schedule is for a bias monitoring job.
--
-- -   @MODEL_EXPLAINABILITY@ - The schedule is for an explainability
--     monitoring job.
describeMonitoringScheduleResponse_monitoringType :: Lens.Lens' DescribeMonitoringScheduleResponse (Prelude.Maybe MonitoringType)
describeMonitoringScheduleResponse_monitoringType :: Lens' DescribeMonitoringScheduleResponse (Maybe MonitoringType)
describeMonitoringScheduleResponse_monitoringType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMonitoringScheduleResponse' {Maybe MonitoringType
monitoringType :: Maybe MonitoringType
$sel:monitoringType:DescribeMonitoringScheduleResponse' :: DescribeMonitoringScheduleResponse -> Maybe MonitoringType
monitoringType} -> Maybe MonitoringType
monitoringType) (\s :: DescribeMonitoringScheduleResponse
s@DescribeMonitoringScheduleResponse' {} Maybe MonitoringType
a -> DescribeMonitoringScheduleResponse
s {$sel:monitoringType:DescribeMonitoringScheduleResponse' :: Maybe MonitoringType
monitoringType = Maybe MonitoringType
a} :: DescribeMonitoringScheduleResponse)

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

-- | The Amazon Resource Name (ARN) of the monitoring schedule.
describeMonitoringScheduleResponse_monitoringScheduleArn :: Lens.Lens' DescribeMonitoringScheduleResponse Prelude.Text
describeMonitoringScheduleResponse_monitoringScheduleArn :: Lens' DescribeMonitoringScheduleResponse Text
describeMonitoringScheduleResponse_monitoringScheduleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMonitoringScheduleResponse' {Text
monitoringScheduleArn :: Text
$sel:monitoringScheduleArn:DescribeMonitoringScheduleResponse' :: DescribeMonitoringScheduleResponse -> Text
monitoringScheduleArn} -> Text
monitoringScheduleArn) (\s :: DescribeMonitoringScheduleResponse
s@DescribeMonitoringScheduleResponse' {} Text
a -> DescribeMonitoringScheduleResponse
s {$sel:monitoringScheduleArn:DescribeMonitoringScheduleResponse' :: Text
monitoringScheduleArn = Text
a} :: DescribeMonitoringScheduleResponse)

-- | Name of the monitoring schedule.
describeMonitoringScheduleResponse_monitoringScheduleName :: Lens.Lens' DescribeMonitoringScheduleResponse Prelude.Text
describeMonitoringScheduleResponse_monitoringScheduleName :: Lens' DescribeMonitoringScheduleResponse Text
describeMonitoringScheduleResponse_monitoringScheduleName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMonitoringScheduleResponse' {Text
monitoringScheduleName :: Text
$sel:monitoringScheduleName:DescribeMonitoringScheduleResponse' :: DescribeMonitoringScheduleResponse -> Text
monitoringScheduleName} -> Text
monitoringScheduleName) (\s :: DescribeMonitoringScheduleResponse
s@DescribeMonitoringScheduleResponse' {} Text
a -> DescribeMonitoringScheduleResponse
s {$sel:monitoringScheduleName:DescribeMonitoringScheduleResponse' :: Text
monitoringScheduleName = Text
a} :: DescribeMonitoringScheduleResponse)

-- | The status of an monitoring job.
describeMonitoringScheduleResponse_monitoringScheduleStatus :: Lens.Lens' DescribeMonitoringScheduleResponse ScheduleStatus
describeMonitoringScheduleResponse_monitoringScheduleStatus :: Lens' DescribeMonitoringScheduleResponse ScheduleStatus
describeMonitoringScheduleResponse_monitoringScheduleStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMonitoringScheduleResponse' {ScheduleStatus
monitoringScheduleStatus :: ScheduleStatus
$sel:monitoringScheduleStatus:DescribeMonitoringScheduleResponse' :: DescribeMonitoringScheduleResponse -> ScheduleStatus
monitoringScheduleStatus} -> ScheduleStatus
monitoringScheduleStatus) (\s :: DescribeMonitoringScheduleResponse
s@DescribeMonitoringScheduleResponse' {} ScheduleStatus
a -> DescribeMonitoringScheduleResponse
s {$sel:monitoringScheduleStatus:DescribeMonitoringScheduleResponse' :: ScheduleStatus
monitoringScheduleStatus = ScheduleStatus
a} :: DescribeMonitoringScheduleResponse)

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

-- | The time at which the monitoring job was last modified.
describeMonitoringScheduleResponse_lastModifiedTime :: Lens.Lens' DescribeMonitoringScheduleResponse Prelude.UTCTime
describeMonitoringScheduleResponse_lastModifiedTime :: Lens' DescribeMonitoringScheduleResponse UTCTime
describeMonitoringScheduleResponse_lastModifiedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMonitoringScheduleResponse' {POSIX
lastModifiedTime :: POSIX
$sel:lastModifiedTime:DescribeMonitoringScheduleResponse' :: DescribeMonitoringScheduleResponse -> POSIX
lastModifiedTime} -> POSIX
lastModifiedTime) (\s :: DescribeMonitoringScheduleResponse
s@DescribeMonitoringScheduleResponse' {} POSIX
a -> DescribeMonitoringScheduleResponse
s {$sel:lastModifiedTime:DescribeMonitoringScheduleResponse' :: POSIX
lastModifiedTime = POSIX
a} :: DescribeMonitoringScheduleResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The configuration object that specifies the monitoring schedule and
-- defines the monitoring job.
describeMonitoringScheduleResponse_monitoringScheduleConfig :: Lens.Lens' DescribeMonitoringScheduleResponse MonitoringScheduleConfig
describeMonitoringScheduleResponse_monitoringScheduleConfig :: Lens' DescribeMonitoringScheduleResponse MonitoringScheduleConfig
describeMonitoringScheduleResponse_monitoringScheduleConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMonitoringScheduleResponse' {MonitoringScheduleConfig
monitoringScheduleConfig :: MonitoringScheduleConfig
$sel:monitoringScheduleConfig:DescribeMonitoringScheduleResponse' :: DescribeMonitoringScheduleResponse -> MonitoringScheduleConfig
monitoringScheduleConfig} -> MonitoringScheduleConfig
monitoringScheduleConfig) (\s :: DescribeMonitoringScheduleResponse
s@DescribeMonitoringScheduleResponse' {} MonitoringScheduleConfig
a -> DescribeMonitoringScheduleResponse
s {$sel:monitoringScheduleConfig:DescribeMonitoringScheduleResponse' :: MonitoringScheduleConfig
monitoringScheduleConfig = MonitoringScheduleConfig
a} :: DescribeMonitoringScheduleResponse)

instance
  Prelude.NFData
    DescribeMonitoringScheduleResponse
  where
  rnf :: DescribeMonitoringScheduleResponse -> ()
rnf DescribeMonitoringScheduleResponse' {Int
Maybe Text
Maybe MonitoringType
Maybe MonitoringExecutionSummary
Text
POSIX
ScheduleStatus
MonitoringScheduleConfig
monitoringScheduleConfig :: MonitoringScheduleConfig
lastModifiedTime :: POSIX
creationTime :: POSIX
monitoringScheduleStatus :: ScheduleStatus
monitoringScheduleName :: Text
monitoringScheduleArn :: Text
httpStatus :: Int
monitoringType :: Maybe MonitoringType
lastMonitoringExecutionSummary :: Maybe MonitoringExecutionSummary
failureReason :: Maybe Text
endpointName :: Maybe Text
$sel:monitoringScheduleConfig:DescribeMonitoringScheduleResponse' :: DescribeMonitoringScheduleResponse -> MonitoringScheduleConfig
$sel:lastModifiedTime:DescribeMonitoringScheduleResponse' :: DescribeMonitoringScheduleResponse -> POSIX
$sel:creationTime:DescribeMonitoringScheduleResponse' :: DescribeMonitoringScheduleResponse -> POSIX
$sel:monitoringScheduleStatus:DescribeMonitoringScheduleResponse' :: DescribeMonitoringScheduleResponse -> ScheduleStatus
$sel:monitoringScheduleName:DescribeMonitoringScheduleResponse' :: DescribeMonitoringScheduleResponse -> Text
$sel:monitoringScheduleArn:DescribeMonitoringScheduleResponse' :: DescribeMonitoringScheduleResponse -> Text
$sel:httpStatus:DescribeMonitoringScheduleResponse' :: DescribeMonitoringScheduleResponse -> Int
$sel:monitoringType:DescribeMonitoringScheduleResponse' :: DescribeMonitoringScheduleResponse -> Maybe MonitoringType
$sel:lastMonitoringExecutionSummary:DescribeMonitoringScheduleResponse' :: DescribeMonitoringScheduleResponse
-> Maybe MonitoringExecutionSummary
$sel:failureReason:DescribeMonitoringScheduleResponse' :: DescribeMonitoringScheduleResponse -> Maybe Text
$sel:endpointName:DescribeMonitoringScheduleResponse' :: DescribeMonitoringScheduleResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
endpointName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
failureReason
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe MonitoringExecutionSummary
lastMonitoringExecutionSummary
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe MonitoringType
monitoringType
      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
monitoringScheduleArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
monitoringScheduleName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ScheduleStatus
monitoringScheduleStatus
      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 POSIX
lastModifiedTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf MonitoringScheduleConfig
monitoringScheduleConfig