{-# 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.Forecast.DescribeMonitor
-- 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 a monitor resource. In addition to listing the properties
-- provided in the CreateMonitor request, this operation lists the
-- following properties:
--
-- -   @Baseline@
--
-- -   @CreationTime@
--
-- -   @LastEvaluationTime@
--
-- -   @LastEvaluationState@
--
-- -   @LastModificationTime@
--
-- -   @Message@
--
-- -   @Status@
module Amazonka.Forecast.DescribeMonitor
  ( -- * Creating a Request
    DescribeMonitor (..),
    newDescribeMonitor,

    -- * Request Lenses
    describeMonitor_monitorArn,

    -- * Destructuring the Response
    DescribeMonitorResponse (..),
    newDescribeMonitorResponse,

    -- * Response Lenses
    describeMonitorResponse_baseline,
    describeMonitorResponse_creationTime,
    describeMonitorResponse_estimatedEvaluationTimeRemainingInMinutes,
    describeMonitorResponse_lastEvaluationState,
    describeMonitorResponse_lastEvaluationTime,
    describeMonitorResponse_lastModificationTime,
    describeMonitorResponse_message,
    describeMonitorResponse_monitorArn,
    describeMonitorResponse_monitorName,
    describeMonitorResponse_resourceArn,
    describeMonitorResponse_status,
    describeMonitorResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Forecast.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newDescribeMonitor' smart constructor.
data DescribeMonitor = DescribeMonitor'
  { -- | The Amazon Resource Name (ARN) of the monitor resource to describe.
    DescribeMonitor -> Text
monitorArn :: Prelude.Text
  }
  deriving (DescribeMonitor -> DescribeMonitor -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeMonitor -> DescribeMonitor -> Bool
$c/= :: DescribeMonitor -> DescribeMonitor -> Bool
== :: DescribeMonitor -> DescribeMonitor -> Bool
$c== :: DescribeMonitor -> DescribeMonitor -> Bool
Prelude.Eq, ReadPrec [DescribeMonitor]
ReadPrec DescribeMonitor
Int -> ReadS DescribeMonitor
ReadS [DescribeMonitor]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeMonitor]
$creadListPrec :: ReadPrec [DescribeMonitor]
readPrec :: ReadPrec DescribeMonitor
$creadPrec :: ReadPrec DescribeMonitor
readList :: ReadS [DescribeMonitor]
$creadList :: ReadS [DescribeMonitor]
readsPrec :: Int -> ReadS DescribeMonitor
$creadsPrec :: Int -> ReadS DescribeMonitor
Prelude.Read, Int -> DescribeMonitor -> ShowS
[DescribeMonitor] -> ShowS
DescribeMonitor -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeMonitor] -> ShowS
$cshowList :: [DescribeMonitor] -> ShowS
show :: DescribeMonitor -> String
$cshow :: DescribeMonitor -> String
showsPrec :: Int -> DescribeMonitor -> ShowS
$cshowsPrec :: Int -> DescribeMonitor -> ShowS
Prelude.Show, forall x. Rep DescribeMonitor x -> DescribeMonitor
forall x. DescribeMonitor -> Rep DescribeMonitor x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeMonitor x -> DescribeMonitor
$cfrom :: forall x. DescribeMonitor -> Rep DescribeMonitor x
Prelude.Generic)

-- |
-- Create a value of 'DescribeMonitor' 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:
--
-- 'monitorArn', 'describeMonitor_monitorArn' - The Amazon Resource Name (ARN) of the monitor resource to describe.
newDescribeMonitor ::
  -- | 'monitorArn'
  Prelude.Text ->
  DescribeMonitor
newDescribeMonitor :: Text -> DescribeMonitor
newDescribeMonitor Text
pMonitorArn_ =
  DescribeMonitor' {$sel:monitorArn:DescribeMonitor' :: Text
monitorArn = Text
pMonitorArn_}

-- | The Amazon Resource Name (ARN) of the monitor resource to describe.
describeMonitor_monitorArn :: Lens.Lens' DescribeMonitor Prelude.Text
describeMonitor_monitorArn :: Lens' DescribeMonitor Text
describeMonitor_monitorArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMonitor' {Text
monitorArn :: Text
$sel:monitorArn:DescribeMonitor' :: DescribeMonitor -> Text
monitorArn} -> Text
monitorArn) (\s :: DescribeMonitor
s@DescribeMonitor' {} Text
a -> DescribeMonitor
s {$sel:monitorArn:DescribeMonitor' :: Text
monitorArn = Text
a} :: DescribeMonitor)

instance Core.AWSRequest DescribeMonitor where
  type
    AWSResponse DescribeMonitor =
      DescribeMonitorResponse
  request :: (Service -> Service) -> DescribeMonitor -> Request DescribeMonitor
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 DescribeMonitor
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribeMonitor)))
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 Baseline
-> Maybe POSIX
-> Maybe Integer
-> Maybe Text
-> Maybe POSIX
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Int
-> DescribeMonitorResponse
DescribeMonitorResponse'
            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
"Baseline")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"CreationTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x
                            forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"EstimatedEvaluationTimeRemainingInMinutes"
                        )
            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
"LastEvaluationState")
            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
"LastEvaluationTime")
            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
"LastModificationTime")
            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
"Message")
            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
"MonitorArn")
            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
"MonitorName")
            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
"ResourceArn")
            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
"Status")
            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))
      )

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

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

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

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

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

-- | /See:/ 'newDescribeMonitorResponse' smart constructor.
data DescribeMonitorResponse = DescribeMonitorResponse'
  { -- | Metrics you can use as a baseline for comparison purposes. Use these
    -- values you interpret monitoring results for an auto predictor.
    DescribeMonitorResponse -> Maybe Baseline
baseline :: Prelude.Maybe Baseline,
    -- | The timestamp for when the monitor resource was created.
    DescribeMonitorResponse -> Maybe POSIX
creationTime :: Prelude.Maybe Data.POSIX,
    -- | The estimated number of minutes remaining before the monitor resource
    -- finishes its current evaluation.
    DescribeMonitorResponse -> Maybe Integer
estimatedEvaluationTimeRemainingInMinutes :: Prelude.Maybe Prelude.Integer,
    -- | The state of the monitor\'s latest evaluation.
    DescribeMonitorResponse -> Maybe Text
lastEvaluationState :: Prelude.Maybe Prelude.Text,
    -- | The timestamp of the latest evaluation completed by the monitor.
    DescribeMonitorResponse -> Maybe POSIX
lastEvaluationTime :: Prelude.Maybe Data.POSIX,
    -- | The timestamp of the latest modification to the monitor.
    DescribeMonitorResponse -> Maybe POSIX
lastModificationTime :: Prelude.Maybe Data.POSIX,
    -- | An error message, if any, for the monitor.
    DescribeMonitorResponse -> Maybe Text
message :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the monitor resource described.
    DescribeMonitorResponse -> Maybe Text
monitorArn :: Prelude.Maybe Prelude.Text,
    -- | The name of the monitor.
    DescribeMonitorResponse -> Maybe Text
monitorName :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the auto predictor being monitored.
    DescribeMonitorResponse -> Maybe Text
resourceArn :: Prelude.Maybe Prelude.Text,
    -- | The status of the monitor resource.
    DescribeMonitorResponse -> Maybe Text
status :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeMonitorResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeMonitorResponse -> DescribeMonitorResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeMonitorResponse -> DescribeMonitorResponse -> Bool
$c/= :: DescribeMonitorResponse -> DescribeMonitorResponse -> Bool
== :: DescribeMonitorResponse -> DescribeMonitorResponse -> Bool
$c== :: DescribeMonitorResponse -> DescribeMonitorResponse -> Bool
Prelude.Eq, ReadPrec [DescribeMonitorResponse]
ReadPrec DescribeMonitorResponse
Int -> ReadS DescribeMonitorResponse
ReadS [DescribeMonitorResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeMonitorResponse]
$creadListPrec :: ReadPrec [DescribeMonitorResponse]
readPrec :: ReadPrec DescribeMonitorResponse
$creadPrec :: ReadPrec DescribeMonitorResponse
readList :: ReadS [DescribeMonitorResponse]
$creadList :: ReadS [DescribeMonitorResponse]
readsPrec :: Int -> ReadS DescribeMonitorResponse
$creadsPrec :: Int -> ReadS DescribeMonitorResponse
Prelude.Read, Int -> DescribeMonitorResponse -> ShowS
[DescribeMonitorResponse] -> ShowS
DescribeMonitorResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeMonitorResponse] -> ShowS
$cshowList :: [DescribeMonitorResponse] -> ShowS
show :: DescribeMonitorResponse -> String
$cshow :: DescribeMonitorResponse -> String
showsPrec :: Int -> DescribeMonitorResponse -> ShowS
$cshowsPrec :: Int -> DescribeMonitorResponse -> ShowS
Prelude.Show, forall x. Rep DescribeMonitorResponse x -> DescribeMonitorResponse
forall x. DescribeMonitorResponse -> Rep DescribeMonitorResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeMonitorResponse x -> DescribeMonitorResponse
$cfrom :: forall x. DescribeMonitorResponse -> Rep DescribeMonitorResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeMonitorResponse' 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:
--
-- 'baseline', 'describeMonitorResponse_baseline' - Metrics you can use as a baseline for comparison purposes. Use these
-- values you interpret monitoring results for an auto predictor.
--
-- 'creationTime', 'describeMonitorResponse_creationTime' - The timestamp for when the monitor resource was created.
--
-- 'estimatedEvaluationTimeRemainingInMinutes', 'describeMonitorResponse_estimatedEvaluationTimeRemainingInMinutes' - The estimated number of minutes remaining before the monitor resource
-- finishes its current evaluation.
--
-- 'lastEvaluationState', 'describeMonitorResponse_lastEvaluationState' - The state of the monitor\'s latest evaluation.
--
-- 'lastEvaluationTime', 'describeMonitorResponse_lastEvaluationTime' - The timestamp of the latest evaluation completed by the monitor.
--
-- 'lastModificationTime', 'describeMonitorResponse_lastModificationTime' - The timestamp of the latest modification to the monitor.
--
-- 'message', 'describeMonitorResponse_message' - An error message, if any, for the monitor.
--
-- 'monitorArn', 'describeMonitorResponse_monitorArn' - The Amazon Resource Name (ARN) of the monitor resource described.
--
-- 'monitorName', 'describeMonitorResponse_monitorName' - The name of the monitor.
--
-- 'resourceArn', 'describeMonitorResponse_resourceArn' - The Amazon Resource Name (ARN) of the auto predictor being monitored.
--
-- 'status', 'describeMonitorResponse_status' - The status of the monitor resource.
--
-- 'httpStatus', 'describeMonitorResponse_httpStatus' - The response's http status code.
newDescribeMonitorResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeMonitorResponse
newDescribeMonitorResponse :: Int -> DescribeMonitorResponse
newDescribeMonitorResponse Int
pHttpStatus_ =
  DescribeMonitorResponse'
    { $sel:baseline:DescribeMonitorResponse' :: Maybe Baseline
baseline =
        forall a. Maybe a
Prelude.Nothing,
      $sel:creationTime:DescribeMonitorResponse' :: Maybe POSIX
creationTime = forall a. Maybe a
Prelude.Nothing,
      $sel:estimatedEvaluationTimeRemainingInMinutes:DescribeMonitorResponse' :: Maybe Integer
estimatedEvaluationTimeRemainingInMinutes =
        forall a. Maybe a
Prelude.Nothing,
      $sel:lastEvaluationState:DescribeMonitorResponse' :: Maybe Text
lastEvaluationState = forall a. Maybe a
Prelude.Nothing,
      $sel:lastEvaluationTime:DescribeMonitorResponse' :: Maybe POSIX
lastEvaluationTime = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModificationTime:DescribeMonitorResponse' :: Maybe POSIX
lastModificationTime = forall a. Maybe a
Prelude.Nothing,
      $sel:message:DescribeMonitorResponse' :: Maybe Text
message = forall a. Maybe a
Prelude.Nothing,
      $sel:monitorArn:DescribeMonitorResponse' :: Maybe Text
monitorArn = forall a. Maybe a
Prelude.Nothing,
      $sel:monitorName:DescribeMonitorResponse' :: Maybe Text
monitorName = forall a. Maybe a
Prelude.Nothing,
      $sel:resourceArn:DescribeMonitorResponse' :: Maybe Text
resourceArn = forall a. Maybe a
Prelude.Nothing,
      $sel:status:DescribeMonitorResponse' :: Maybe Text
status = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeMonitorResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | Metrics you can use as a baseline for comparison purposes. Use these
-- values you interpret monitoring results for an auto predictor.
describeMonitorResponse_baseline :: Lens.Lens' DescribeMonitorResponse (Prelude.Maybe Baseline)
describeMonitorResponse_baseline :: Lens' DescribeMonitorResponse (Maybe Baseline)
describeMonitorResponse_baseline = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMonitorResponse' {Maybe Baseline
baseline :: Maybe Baseline
$sel:baseline:DescribeMonitorResponse' :: DescribeMonitorResponse -> Maybe Baseline
baseline} -> Maybe Baseline
baseline) (\s :: DescribeMonitorResponse
s@DescribeMonitorResponse' {} Maybe Baseline
a -> DescribeMonitorResponse
s {$sel:baseline:DescribeMonitorResponse' :: Maybe Baseline
baseline = Maybe Baseline
a} :: DescribeMonitorResponse)

-- | The timestamp for when the monitor resource was created.
describeMonitorResponse_creationTime :: Lens.Lens' DescribeMonitorResponse (Prelude.Maybe Prelude.UTCTime)
describeMonitorResponse_creationTime :: Lens' DescribeMonitorResponse (Maybe UTCTime)
describeMonitorResponse_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMonitorResponse' {Maybe POSIX
creationTime :: Maybe POSIX
$sel:creationTime:DescribeMonitorResponse' :: DescribeMonitorResponse -> Maybe POSIX
creationTime} -> Maybe POSIX
creationTime) (\s :: DescribeMonitorResponse
s@DescribeMonitorResponse' {} Maybe POSIX
a -> DescribeMonitorResponse
s {$sel:creationTime:DescribeMonitorResponse' :: Maybe POSIX
creationTime = Maybe POSIX
a} :: DescribeMonitorResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The estimated number of minutes remaining before the monitor resource
-- finishes its current evaluation.
describeMonitorResponse_estimatedEvaluationTimeRemainingInMinutes :: Lens.Lens' DescribeMonitorResponse (Prelude.Maybe Prelude.Integer)
describeMonitorResponse_estimatedEvaluationTimeRemainingInMinutes :: Lens' DescribeMonitorResponse (Maybe Integer)
describeMonitorResponse_estimatedEvaluationTimeRemainingInMinutes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMonitorResponse' {Maybe Integer
estimatedEvaluationTimeRemainingInMinutes :: Maybe Integer
$sel:estimatedEvaluationTimeRemainingInMinutes:DescribeMonitorResponse' :: DescribeMonitorResponse -> Maybe Integer
estimatedEvaluationTimeRemainingInMinutes} -> Maybe Integer
estimatedEvaluationTimeRemainingInMinutes) (\s :: DescribeMonitorResponse
s@DescribeMonitorResponse' {} Maybe Integer
a -> DescribeMonitorResponse
s {$sel:estimatedEvaluationTimeRemainingInMinutes:DescribeMonitorResponse' :: Maybe Integer
estimatedEvaluationTimeRemainingInMinutes = Maybe Integer
a} :: DescribeMonitorResponse)

-- | The state of the monitor\'s latest evaluation.
describeMonitorResponse_lastEvaluationState :: Lens.Lens' DescribeMonitorResponse (Prelude.Maybe Prelude.Text)
describeMonitorResponse_lastEvaluationState :: Lens' DescribeMonitorResponse (Maybe Text)
describeMonitorResponse_lastEvaluationState = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMonitorResponse' {Maybe Text
lastEvaluationState :: Maybe Text
$sel:lastEvaluationState:DescribeMonitorResponse' :: DescribeMonitorResponse -> Maybe Text
lastEvaluationState} -> Maybe Text
lastEvaluationState) (\s :: DescribeMonitorResponse
s@DescribeMonitorResponse' {} Maybe Text
a -> DescribeMonitorResponse
s {$sel:lastEvaluationState:DescribeMonitorResponse' :: Maybe Text
lastEvaluationState = Maybe Text
a} :: DescribeMonitorResponse)

-- | The timestamp of the latest evaluation completed by the monitor.
describeMonitorResponse_lastEvaluationTime :: Lens.Lens' DescribeMonitorResponse (Prelude.Maybe Prelude.UTCTime)
describeMonitorResponse_lastEvaluationTime :: Lens' DescribeMonitorResponse (Maybe UTCTime)
describeMonitorResponse_lastEvaluationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMonitorResponse' {Maybe POSIX
lastEvaluationTime :: Maybe POSIX
$sel:lastEvaluationTime:DescribeMonitorResponse' :: DescribeMonitorResponse -> Maybe POSIX
lastEvaluationTime} -> Maybe POSIX
lastEvaluationTime) (\s :: DescribeMonitorResponse
s@DescribeMonitorResponse' {} Maybe POSIX
a -> DescribeMonitorResponse
s {$sel:lastEvaluationTime:DescribeMonitorResponse' :: Maybe POSIX
lastEvaluationTime = Maybe POSIX
a} :: DescribeMonitorResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The timestamp of the latest modification to the monitor.
describeMonitorResponse_lastModificationTime :: Lens.Lens' DescribeMonitorResponse (Prelude.Maybe Prelude.UTCTime)
describeMonitorResponse_lastModificationTime :: Lens' DescribeMonitorResponse (Maybe UTCTime)
describeMonitorResponse_lastModificationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMonitorResponse' {Maybe POSIX
lastModificationTime :: Maybe POSIX
$sel:lastModificationTime:DescribeMonitorResponse' :: DescribeMonitorResponse -> Maybe POSIX
lastModificationTime} -> Maybe POSIX
lastModificationTime) (\s :: DescribeMonitorResponse
s@DescribeMonitorResponse' {} Maybe POSIX
a -> DescribeMonitorResponse
s {$sel:lastModificationTime:DescribeMonitorResponse' :: Maybe POSIX
lastModificationTime = Maybe POSIX
a} :: DescribeMonitorResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | An error message, if any, for the monitor.
describeMonitorResponse_message :: Lens.Lens' DescribeMonitorResponse (Prelude.Maybe Prelude.Text)
describeMonitorResponse_message :: Lens' DescribeMonitorResponse (Maybe Text)
describeMonitorResponse_message = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMonitorResponse' {Maybe Text
message :: Maybe Text
$sel:message:DescribeMonitorResponse' :: DescribeMonitorResponse -> Maybe Text
message} -> Maybe Text
message) (\s :: DescribeMonitorResponse
s@DescribeMonitorResponse' {} Maybe Text
a -> DescribeMonitorResponse
s {$sel:message:DescribeMonitorResponse' :: Maybe Text
message = Maybe Text
a} :: DescribeMonitorResponse)

-- | The Amazon Resource Name (ARN) of the monitor resource described.
describeMonitorResponse_monitorArn :: Lens.Lens' DescribeMonitorResponse (Prelude.Maybe Prelude.Text)
describeMonitorResponse_monitorArn :: Lens' DescribeMonitorResponse (Maybe Text)
describeMonitorResponse_monitorArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMonitorResponse' {Maybe Text
monitorArn :: Maybe Text
$sel:monitorArn:DescribeMonitorResponse' :: DescribeMonitorResponse -> Maybe Text
monitorArn} -> Maybe Text
monitorArn) (\s :: DescribeMonitorResponse
s@DescribeMonitorResponse' {} Maybe Text
a -> DescribeMonitorResponse
s {$sel:monitorArn:DescribeMonitorResponse' :: Maybe Text
monitorArn = Maybe Text
a} :: DescribeMonitorResponse)

-- | The name of the monitor.
describeMonitorResponse_monitorName :: Lens.Lens' DescribeMonitorResponse (Prelude.Maybe Prelude.Text)
describeMonitorResponse_monitorName :: Lens' DescribeMonitorResponse (Maybe Text)
describeMonitorResponse_monitorName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMonitorResponse' {Maybe Text
monitorName :: Maybe Text
$sel:monitorName:DescribeMonitorResponse' :: DescribeMonitorResponse -> Maybe Text
monitorName} -> Maybe Text
monitorName) (\s :: DescribeMonitorResponse
s@DescribeMonitorResponse' {} Maybe Text
a -> DescribeMonitorResponse
s {$sel:monitorName:DescribeMonitorResponse' :: Maybe Text
monitorName = Maybe Text
a} :: DescribeMonitorResponse)

-- | The Amazon Resource Name (ARN) of the auto predictor being monitored.
describeMonitorResponse_resourceArn :: Lens.Lens' DescribeMonitorResponse (Prelude.Maybe Prelude.Text)
describeMonitorResponse_resourceArn :: Lens' DescribeMonitorResponse (Maybe Text)
describeMonitorResponse_resourceArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMonitorResponse' {Maybe Text
resourceArn :: Maybe Text
$sel:resourceArn:DescribeMonitorResponse' :: DescribeMonitorResponse -> Maybe Text
resourceArn} -> Maybe Text
resourceArn) (\s :: DescribeMonitorResponse
s@DescribeMonitorResponse' {} Maybe Text
a -> DescribeMonitorResponse
s {$sel:resourceArn:DescribeMonitorResponse' :: Maybe Text
resourceArn = Maybe Text
a} :: DescribeMonitorResponse)

-- | The status of the monitor resource.
describeMonitorResponse_status :: Lens.Lens' DescribeMonitorResponse (Prelude.Maybe Prelude.Text)
describeMonitorResponse_status :: Lens' DescribeMonitorResponse (Maybe Text)
describeMonitorResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMonitorResponse' {Maybe Text
status :: Maybe Text
$sel:status:DescribeMonitorResponse' :: DescribeMonitorResponse -> Maybe Text
status} -> Maybe Text
status) (\s :: DescribeMonitorResponse
s@DescribeMonitorResponse' {} Maybe Text
a -> DescribeMonitorResponse
s {$sel:status:DescribeMonitorResponse' :: Maybe Text
status = Maybe Text
a} :: DescribeMonitorResponse)

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

instance Prelude.NFData DescribeMonitorResponse where
  rnf :: DescribeMonitorResponse -> ()
rnf DescribeMonitorResponse' {Int
Maybe Integer
Maybe Text
Maybe POSIX
Maybe Baseline
httpStatus :: Int
status :: Maybe Text
resourceArn :: Maybe Text
monitorName :: Maybe Text
monitorArn :: Maybe Text
message :: Maybe Text
lastModificationTime :: Maybe POSIX
lastEvaluationTime :: Maybe POSIX
lastEvaluationState :: Maybe Text
estimatedEvaluationTimeRemainingInMinutes :: Maybe Integer
creationTime :: Maybe POSIX
baseline :: Maybe Baseline
$sel:httpStatus:DescribeMonitorResponse' :: DescribeMonitorResponse -> Int
$sel:status:DescribeMonitorResponse' :: DescribeMonitorResponse -> Maybe Text
$sel:resourceArn:DescribeMonitorResponse' :: DescribeMonitorResponse -> Maybe Text
$sel:monitorName:DescribeMonitorResponse' :: DescribeMonitorResponse -> Maybe Text
$sel:monitorArn:DescribeMonitorResponse' :: DescribeMonitorResponse -> Maybe Text
$sel:message:DescribeMonitorResponse' :: DescribeMonitorResponse -> Maybe Text
$sel:lastModificationTime:DescribeMonitorResponse' :: DescribeMonitorResponse -> Maybe POSIX
$sel:lastEvaluationTime:DescribeMonitorResponse' :: DescribeMonitorResponse -> Maybe POSIX
$sel:lastEvaluationState:DescribeMonitorResponse' :: DescribeMonitorResponse -> Maybe Text
$sel:estimatedEvaluationTimeRemainingInMinutes:DescribeMonitorResponse' :: DescribeMonitorResponse -> Maybe Integer
$sel:creationTime:DescribeMonitorResponse' :: DescribeMonitorResponse -> Maybe POSIX
$sel:baseline:DescribeMonitorResponse' :: DescribeMonitorResponse -> Maybe Baseline
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Baseline
baseline
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
creationTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
estimatedEvaluationTimeRemainingInMinutes
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
lastEvaluationState
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastEvaluationTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastModificationTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
message
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
monitorArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
monitorName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
resourceArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus