{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.DevOpsGuru.Types.ProactiveAnomalySummary
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.DevOpsGuru.Types.ProactiveAnomalySummary where

import qualified Amazonka.Core as Core
import Amazonka.DevOpsGuru.Types.AnomalyReportedTimeRange
import Amazonka.DevOpsGuru.Types.AnomalySeverity
import Amazonka.DevOpsGuru.Types.AnomalySourceDetails
import Amazonka.DevOpsGuru.Types.AnomalyStatus
import Amazonka.DevOpsGuru.Types.AnomalyTimeRange
import Amazonka.DevOpsGuru.Types.PredictionTimeRange
import Amazonka.DevOpsGuru.Types.ResourceCollection
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude

-- | Details about a proactive anomaly. This object is returned by
-- @DescribeAnomaly.@
--
-- /See:/ 'newProactiveAnomalySummary' smart constructor.
data ProactiveAnomalySummary = ProactiveAnomalySummary'
  { -- | A @AnomalyReportedTimeRange@ object that specifies the time range
    -- between when the anomaly is opened and the time when it is closed.
    ProactiveAnomalySummary -> Maybe AnomalyReportedTimeRange
anomalyReportedTimeRange :: Prelude.Maybe AnomalyReportedTimeRange,
    -- | The status of the anomaly.
    ProactiveAnomalySummary -> Maybe AnomalyStatus
status :: Prelude.Maybe AnomalyStatus,
    ProactiveAnomalySummary -> Maybe ResourceCollection
resourceCollection :: Prelude.Maybe ResourceCollection,
    -- | The severity of the anomaly.
    ProactiveAnomalySummary -> Maybe AnomalySeverity
severity :: Prelude.Maybe AnomalySeverity,
    -- | The time of the anomaly\'s most recent update.
    ProactiveAnomalySummary -> Maybe POSIX
updateTime :: Prelude.Maybe Core.POSIX,
    -- | Details about the source of the analyzed operational data that triggered
    -- the anomaly. The one supported source is Amazon CloudWatch metrics.
    ProactiveAnomalySummary -> Maybe AnomalySourceDetails
sourceDetails :: Prelude.Maybe AnomalySourceDetails,
    ProactiveAnomalySummary -> Maybe PredictionTimeRange
predictionTimeRange :: Prelude.Maybe PredictionTimeRange,
    -- | A threshold that was exceeded by behavior in analyzed resources.
    -- Exceeding this threshold is related to the anomalous behavior that
    -- generated this anomaly.
    ProactiveAnomalySummary -> Maybe Double
limit :: Prelude.Maybe Prelude.Double,
    -- | The ID of the anomaly.
    ProactiveAnomalySummary -> Maybe Text
id :: Prelude.Maybe Prelude.Text,
    -- | The ID of the insight that contains this anomaly. An insight is composed
    -- of related anomalies.
    ProactiveAnomalySummary -> Maybe Text
associatedInsightId :: Prelude.Maybe Prelude.Text,
    ProactiveAnomalySummary -> Maybe AnomalyTimeRange
anomalyTimeRange :: Prelude.Maybe AnomalyTimeRange
  }
  deriving (ProactiveAnomalySummary -> ProactiveAnomalySummary -> Bool
(ProactiveAnomalySummary -> ProactiveAnomalySummary -> Bool)
-> (ProactiveAnomalySummary -> ProactiveAnomalySummary -> Bool)
-> Eq ProactiveAnomalySummary
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ProactiveAnomalySummary -> ProactiveAnomalySummary -> Bool
$c/= :: ProactiveAnomalySummary -> ProactiveAnomalySummary -> Bool
== :: ProactiveAnomalySummary -> ProactiveAnomalySummary -> Bool
$c== :: ProactiveAnomalySummary -> ProactiveAnomalySummary -> Bool
Prelude.Eq, ReadPrec [ProactiveAnomalySummary]
ReadPrec ProactiveAnomalySummary
Int -> ReadS ProactiveAnomalySummary
ReadS [ProactiveAnomalySummary]
(Int -> ReadS ProactiveAnomalySummary)
-> ReadS [ProactiveAnomalySummary]
-> ReadPrec ProactiveAnomalySummary
-> ReadPrec [ProactiveAnomalySummary]
-> Read ProactiveAnomalySummary
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ProactiveAnomalySummary]
$creadListPrec :: ReadPrec [ProactiveAnomalySummary]
readPrec :: ReadPrec ProactiveAnomalySummary
$creadPrec :: ReadPrec ProactiveAnomalySummary
readList :: ReadS [ProactiveAnomalySummary]
$creadList :: ReadS [ProactiveAnomalySummary]
readsPrec :: Int -> ReadS ProactiveAnomalySummary
$creadsPrec :: Int -> ReadS ProactiveAnomalySummary
Prelude.Read, Int -> ProactiveAnomalySummary -> ShowS
[ProactiveAnomalySummary] -> ShowS
ProactiveAnomalySummary -> String
(Int -> ProactiveAnomalySummary -> ShowS)
-> (ProactiveAnomalySummary -> String)
-> ([ProactiveAnomalySummary] -> ShowS)
-> Show ProactiveAnomalySummary
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ProactiveAnomalySummary] -> ShowS
$cshowList :: [ProactiveAnomalySummary] -> ShowS
show :: ProactiveAnomalySummary -> String
$cshow :: ProactiveAnomalySummary -> String
showsPrec :: Int -> ProactiveAnomalySummary -> ShowS
$cshowsPrec :: Int -> ProactiveAnomalySummary -> ShowS
Prelude.Show, (forall x.
 ProactiveAnomalySummary -> Rep ProactiveAnomalySummary x)
-> (forall x.
    Rep ProactiveAnomalySummary x -> ProactiveAnomalySummary)
-> Generic ProactiveAnomalySummary
forall x. Rep ProactiveAnomalySummary x -> ProactiveAnomalySummary
forall x. ProactiveAnomalySummary -> Rep ProactiveAnomalySummary x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ProactiveAnomalySummary x -> ProactiveAnomalySummary
$cfrom :: forall x. ProactiveAnomalySummary -> Rep ProactiveAnomalySummary x
Prelude.Generic)

-- |
-- Create a value of 'ProactiveAnomalySummary' 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:
--
-- 'anomalyReportedTimeRange', 'proactiveAnomalySummary_anomalyReportedTimeRange' - A @AnomalyReportedTimeRange@ object that specifies the time range
-- between when the anomaly is opened and the time when it is closed.
--
-- 'status', 'proactiveAnomalySummary_status' - The status of the anomaly.
--
-- 'resourceCollection', 'proactiveAnomalySummary_resourceCollection' - Undocumented member.
--
-- 'severity', 'proactiveAnomalySummary_severity' - The severity of the anomaly.
--
-- 'updateTime', 'proactiveAnomalySummary_updateTime' - The time of the anomaly\'s most recent update.
--
-- 'sourceDetails', 'proactiveAnomalySummary_sourceDetails' - Details about the source of the analyzed operational data that triggered
-- the anomaly. The one supported source is Amazon CloudWatch metrics.
--
-- 'predictionTimeRange', 'proactiveAnomalySummary_predictionTimeRange' - Undocumented member.
--
-- 'limit', 'proactiveAnomalySummary_limit' - A threshold that was exceeded by behavior in analyzed resources.
-- Exceeding this threshold is related to the anomalous behavior that
-- generated this anomaly.
--
-- 'id', 'proactiveAnomalySummary_id' - The ID of the anomaly.
--
-- 'associatedInsightId', 'proactiveAnomalySummary_associatedInsightId' - The ID of the insight that contains this anomaly. An insight is composed
-- of related anomalies.
--
-- 'anomalyTimeRange', 'proactiveAnomalySummary_anomalyTimeRange' - Undocumented member.
newProactiveAnomalySummary ::
  ProactiveAnomalySummary
newProactiveAnomalySummary :: ProactiveAnomalySummary
newProactiveAnomalySummary =
  ProactiveAnomalySummary' :: Maybe AnomalyReportedTimeRange
-> Maybe AnomalyStatus
-> Maybe ResourceCollection
-> Maybe AnomalySeverity
-> Maybe POSIX
-> Maybe AnomalySourceDetails
-> Maybe PredictionTimeRange
-> Maybe Double
-> Maybe Text
-> Maybe Text
-> Maybe AnomalyTimeRange
-> ProactiveAnomalySummary
ProactiveAnomalySummary'
    { $sel:anomalyReportedTimeRange:ProactiveAnomalySummary' :: Maybe AnomalyReportedTimeRange
anomalyReportedTimeRange =
        Maybe AnomalyReportedTimeRange
forall a. Maybe a
Prelude.Nothing,
      $sel:status:ProactiveAnomalySummary' :: Maybe AnomalyStatus
status = Maybe AnomalyStatus
forall a. Maybe a
Prelude.Nothing,
      $sel:resourceCollection:ProactiveAnomalySummary' :: Maybe ResourceCollection
resourceCollection = Maybe ResourceCollection
forall a. Maybe a
Prelude.Nothing,
      $sel:severity:ProactiveAnomalySummary' :: Maybe AnomalySeverity
severity = Maybe AnomalySeverity
forall a. Maybe a
Prelude.Nothing,
      $sel:updateTime:ProactiveAnomalySummary' :: Maybe POSIX
updateTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:sourceDetails:ProactiveAnomalySummary' :: Maybe AnomalySourceDetails
sourceDetails = Maybe AnomalySourceDetails
forall a. Maybe a
Prelude.Nothing,
      $sel:predictionTimeRange:ProactiveAnomalySummary' :: Maybe PredictionTimeRange
predictionTimeRange = Maybe PredictionTimeRange
forall a. Maybe a
Prelude.Nothing,
      $sel:limit:ProactiveAnomalySummary' :: Maybe Double
limit = Maybe Double
forall a. Maybe a
Prelude.Nothing,
      $sel:id:ProactiveAnomalySummary' :: Maybe Text
id = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:associatedInsightId:ProactiveAnomalySummary' :: Maybe Text
associatedInsightId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:anomalyTimeRange:ProactiveAnomalySummary' :: Maybe AnomalyTimeRange
anomalyTimeRange = Maybe AnomalyTimeRange
forall a. Maybe a
Prelude.Nothing
    }

-- | A @AnomalyReportedTimeRange@ object that specifies the time range
-- between when the anomaly is opened and the time when it is closed.
proactiveAnomalySummary_anomalyReportedTimeRange :: Lens.Lens' ProactiveAnomalySummary (Prelude.Maybe AnomalyReportedTimeRange)
proactiveAnomalySummary_anomalyReportedTimeRange :: (Maybe AnomalyReportedTimeRange
 -> f (Maybe AnomalyReportedTimeRange))
-> ProactiveAnomalySummary -> f ProactiveAnomalySummary
proactiveAnomalySummary_anomalyReportedTimeRange = (ProactiveAnomalySummary -> Maybe AnomalyReportedTimeRange)
-> (ProactiveAnomalySummary
    -> Maybe AnomalyReportedTimeRange -> ProactiveAnomalySummary)
-> Lens
     ProactiveAnomalySummary
     ProactiveAnomalySummary
     (Maybe AnomalyReportedTimeRange)
     (Maybe AnomalyReportedTimeRange)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ProactiveAnomalySummary' {Maybe AnomalyReportedTimeRange
anomalyReportedTimeRange :: Maybe AnomalyReportedTimeRange
$sel:anomalyReportedTimeRange:ProactiveAnomalySummary' :: ProactiveAnomalySummary -> Maybe AnomalyReportedTimeRange
anomalyReportedTimeRange} -> Maybe AnomalyReportedTimeRange
anomalyReportedTimeRange) (\s :: ProactiveAnomalySummary
s@ProactiveAnomalySummary' {} Maybe AnomalyReportedTimeRange
a -> ProactiveAnomalySummary
s {$sel:anomalyReportedTimeRange:ProactiveAnomalySummary' :: Maybe AnomalyReportedTimeRange
anomalyReportedTimeRange = Maybe AnomalyReportedTimeRange
a} :: ProactiveAnomalySummary)

-- | The status of the anomaly.
proactiveAnomalySummary_status :: Lens.Lens' ProactiveAnomalySummary (Prelude.Maybe AnomalyStatus)
proactiveAnomalySummary_status :: (Maybe AnomalyStatus -> f (Maybe AnomalyStatus))
-> ProactiveAnomalySummary -> f ProactiveAnomalySummary
proactiveAnomalySummary_status = (ProactiveAnomalySummary -> Maybe AnomalyStatus)
-> (ProactiveAnomalySummary
    -> Maybe AnomalyStatus -> ProactiveAnomalySummary)
-> Lens
     ProactiveAnomalySummary
     ProactiveAnomalySummary
     (Maybe AnomalyStatus)
     (Maybe AnomalyStatus)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ProactiveAnomalySummary' {Maybe AnomalyStatus
status :: Maybe AnomalyStatus
$sel:status:ProactiveAnomalySummary' :: ProactiveAnomalySummary -> Maybe AnomalyStatus
status} -> Maybe AnomalyStatus
status) (\s :: ProactiveAnomalySummary
s@ProactiveAnomalySummary' {} Maybe AnomalyStatus
a -> ProactiveAnomalySummary
s {$sel:status:ProactiveAnomalySummary' :: Maybe AnomalyStatus
status = Maybe AnomalyStatus
a} :: ProactiveAnomalySummary)

-- | Undocumented member.
proactiveAnomalySummary_resourceCollection :: Lens.Lens' ProactiveAnomalySummary (Prelude.Maybe ResourceCollection)
proactiveAnomalySummary_resourceCollection :: (Maybe ResourceCollection -> f (Maybe ResourceCollection))
-> ProactiveAnomalySummary -> f ProactiveAnomalySummary
proactiveAnomalySummary_resourceCollection = (ProactiveAnomalySummary -> Maybe ResourceCollection)
-> (ProactiveAnomalySummary
    -> Maybe ResourceCollection -> ProactiveAnomalySummary)
-> Lens
     ProactiveAnomalySummary
     ProactiveAnomalySummary
     (Maybe ResourceCollection)
     (Maybe ResourceCollection)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ProactiveAnomalySummary' {Maybe ResourceCollection
resourceCollection :: Maybe ResourceCollection
$sel:resourceCollection:ProactiveAnomalySummary' :: ProactiveAnomalySummary -> Maybe ResourceCollection
resourceCollection} -> Maybe ResourceCollection
resourceCollection) (\s :: ProactiveAnomalySummary
s@ProactiveAnomalySummary' {} Maybe ResourceCollection
a -> ProactiveAnomalySummary
s {$sel:resourceCollection:ProactiveAnomalySummary' :: Maybe ResourceCollection
resourceCollection = Maybe ResourceCollection
a} :: ProactiveAnomalySummary)

-- | The severity of the anomaly.
proactiveAnomalySummary_severity :: Lens.Lens' ProactiveAnomalySummary (Prelude.Maybe AnomalySeverity)
proactiveAnomalySummary_severity :: (Maybe AnomalySeverity -> f (Maybe AnomalySeverity))
-> ProactiveAnomalySummary -> f ProactiveAnomalySummary
proactiveAnomalySummary_severity = (ProactiveAnomalySummary -> Maybe AnomalySeverity)
-> (ProactiveAnomalySummary
    -> Maybe AnomalySeverity -> ProactiveAnomalySummary)
-> Lens
     ProactiveAnomalySummary
     ProactiveAnomalySummary
     (Maybe AnomalySeverity)
     (Maybe AnomalySeverity)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ProactiveAnomalySummary' {Maybe AnomalySeverity
severity :: Maybe AnomalySeverity
$sel:severity:ProactiveAnomalySummary' :: ProactiveAnomalySummary -> Maybe AnomalySeverity
severity} -> Maybe AnomalySeverity
severity) (\s :: ProactiveAnomalySummary
s@ProactiveAnomalySummary' {} Maybe AnomalySeverity
a -> ProactiveAnomalySummary
s {$sel:severity:ProactiveAnomalySummary' :: Maybe AnomalySeverity
severity = Maybe AnomalySeverity
a} :: ProactiveAnomalySummary)

-- | The time of the anomaly\'s most recent update.
proactiveAnomalySummary_updateTime :: Lens.Lens' ProactiveAnomalySummary (Prelude.Maybe Prelude.UTCTime)
proactiveAnomalySummary_updateTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> ProactiveAnomalySummary -> f ProactiveAnomalySummary
proactiveAnomalySummary_updateTime = (ProactiveAnomalySummary -> Maybe POSIX)
-> (ProactiveAnomalySummary
    -> Maybe POSIX -> ProactiveAnomalySummary)
-> Lens
     ProactiveAnomalySummary
     ProactiveAnomalySummary
     (Maybe POSIX)
     (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ProactiveAnomalySummary' {Maybe POSIX
updateTime :: Maybe POSIX
$sel:updateTime:ProactiveAnomalySummary' :: ProactiveAnomalySummary -> Maybe POSIX
updateTime} -> Maybe POSIX
updateTime) (\s :: ProactiveAnomalySummary
s@ProactiveAnomalySummary' {} Maybe POSIX
a -> ProactiveAnomalySummary
s {$sel:updateTime:ProactiveAnomalySummary' :: Maybe POSIX
updateTime = Maybe POSIX
a} :: ProactiveAnomalySummary) ((Maybe POSIX -> f (Maybe POSIX))
 -> ProactiveAnomalySummary -> f ProactiveAnomalySummary)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> ProactiveAnomalySummary
-> f ProactiveAnomalySummary
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | Details about the source of the analyzed operational data that triggered
-- the anomaly. The one supported source is Amazon CloudWatch metrics.
proactiveAnomalySummary_sourceDetails :: Lens.Lens' ProactiveAnomalySummary (Prelude.Maybe AnomalySourceDetails)
proactiveAnomalySummary_sourceDetails :: (Maybe AnomalySourceDetails -> f (Maybe AnomalySourceDetails))
-> ProactiveAnomalySummary -> f ProactiveAnomalySummary
proactiveAnomalySummary_sourceDetails = (ProactiveAnomalySummary -> Maybe AnomalySourceDetails)
-> (ProactiveAnomalySummary
    -> Maybe AnomalySourceDetails -> ProactiveAnomalySummary)
-> Lens
     ProactiveAnomalySummary
     ProactiveAnomalySummary
     (Maybe AnomalySourceDetails)
     (Maybe AnomalySourceDetails)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ProactiveAnomalySummary' {Maybe AnomalySourceDetails
sourceDetails :: Maybe AnomalySourceDetails
$sel:sourceDetails:ProactiveAnomalySummary' :: ProactiveAnomalySummary -> Maybe AnomalySourceDetails
sourceDetails} -> Maybe AnomalySourceDetails
sourceDetails) (\s :: ProactiveAnomalySummary
s@ProactiveAnomalySummary' {} Maybe AnomalySourceDetails
a -> ProactiveAnomalySummary
s {$sel:sourceDetails:ProactiveAnomalySummary' :: Maybe AnomalySourceDetails
sourceDetails = Maybe AnomalySourceDetails
a} :: ProactiveAnomalySummary)

-- | Undocumented member.
proactiveAnomalySummary_predictionTimeRange :: Lens.Lens' ProactiveAnomalySummary (Prelude.Maybe PredictionTimeRange)
proactiveAnomalySummary_predictionTimeRange :: (Maybe PredictionTimeRange -> f (Maybe PredictionTimeRange))
-> ProactiveAnomalySummary -> f ProactiveAnomalySummary
proactiveAnomalySummary_predictionTimeRange = (ProactiveAnomalySummary -> Maybe PredictionTimeRange)
-> (ProactiveAnomalySummary
    -> Maybe PredictionTimeRange -> ProactiveAnomalySummary)
-> Lens
     ProactiveAnomalySummary
     ProactiveAnomalySummary
     (Maybe PredictionTimeRange)
     (Maybe PredictionTimeRange)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ProactiveAnomalySummary' {Maybe PredictionTimeRange
predictionTimeRange :: Maybe PredictionTimeRange
$sel:predictionTimeRange:ProactiveAnomalySummary' :: ProactiveAnomalySummary -> Maybe PredictionTimeRange
predictionTimeRange} -> Maybe PredictionTimeRange
predictionTimeRange) (\s :: ProactiveAnomalySummary
s@ProactiveAnomalySummary' {} Maybe PredictionTimeRange
a -> ProactiveAnomalySummary
s {$sel:predictionTimeRange:ProactiveAnomalySummary' :: Maybe PredictionTimeRange
predictionTimeRange = Maybe PredictionTimeRange
a} :: ProactiveAnomalySummary)

-- | A threshold that was exceeded by behavior in analyzed resources.
-- Exceeding this threshold is related to the anomalous behavior that
-- generated this anomaly.
proactiveAnomalySummary_limit :: Lens.Lens' ProactiveAnomalySummary (Prelude.Maybe Prelude.Double)
proactiveAnomalySummary_limit :: (Maybe Double -> f (Maybe Double))
-> ProactiveAnomalySummary -> f ProactiveAnomalySummary
proactiveAnomalySummary_limit = (ProactiveAnomalySummary -> Maybe Double)
-> (ProactiveAnomalySummary
    -> Maybe Double -> ProactiveAnomalySummary)
-> Lens
     ProactiveAnomalySummary
     ProactiveAnomalySummary
     (Maybe Double)
     (Maybe Double)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ProactiveAnomalySummary' {Maybe Double
limit :: Maybe Double
$sel:limit:ProactiveAnomalySummary' :: ProactiveAnomalySummary -> Maybe Double
limit} -> Maybe Double
limit) (\s :: ProactiveAnomalySummary
s@ProactiveAnomalySummary' {} Maybe Double
a -> ProactiveAnomalySummary
s {$sel:limit:ProactiveAnomalySummary' :: Maybe Double
limit = Maybe Double
a} :: ProactiveAnomalySummary)

-- | The ID of the anomaly.
proactiveAnomalySummary_id :: Lens.Lens' ProactiveAnomalySummary (Prelude.Maybe Prelude.Text)
proactiveAnomalySummary_id :: (Maybe Text -> f (Maybe Text))
-> ProactiveAnomalySummary -> f ProactiveAnomalySummary
proactiveAnomalySummary_id = (ProactiveAnomalySummary -> Maybe Text)
-> (ProactiveAnomalySummary
    -> Maybe Text -> ProactiveAnomalySummary)
-> Lens
     ProactiveAnomalySummary
     ProactiveAnomalySummary
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ProactiveAnomalySummary' {Maybe Text
id :: Maybe Text
$sel:id:ProactiveAnomalySummary' :: ProactiveAnomalySummary -> Maybe Text
id} -> Maybe Text
id) (\s :: ProactiveAnomalySummary
s@ProactiveAnomalySummary' {} Maybe Text
a -> ProactiveAnomalySummary
s {$sel:id:ProactiveAnomalySummary' :: Maybe Text
id = Maybe Text
a} :: ProactiveAnomalySummary)

-- | The ID of the insight that contains this anomaly. An insight is composed
-- of related anomalies.
proactiveAnomalySummary_associatedInsightId :: Lens.Lens' ProactiveAnomalySummary (Prelude.Maybe Prelude.Text)
proactiveAnomalySummary_associatedInsightId :: (Maybe Text -> f (Maybe Text))
-> ProactiveAnomalySummary -> f ProactiveAnomalySummary
proactiveAnomalySummary_associatedInsightId = (ProactiveAnomalySummary -> Maybe Text)
-> (ProactiveAnomalySummary
    -> Maybe Text -> ProactiveAnomalySummary)
-> Lens
     ProactiveAnomalySummary
     ProactiveAnomalySummary
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ProactiveAnomalySummary' {Maybe Text
associatedInsightId :: Maybe Text
$sel:associatedInsightId:ProactiveAnomalySummary' :: ProactiveAnomalySummary -> Maybe Text
associatedInsightId} -> Maybe Text
associatedInsightId) (\s :: ProactiveAnomalySummary
s@ProactiveAnomalySummary' {} Maybe Text
a -> ProactiveAnomalySummary
s {$sel:associatedInsightId:ProactiveAnomalySummary' :: Maybe Text
associatedInsightId = Maybe Text
a} :: ProactiveAnomalySummary)

-- | Undocumented member.
proactiveAnomalySummary_anomalyTimeRange :: Lens.Lens' ProactiveAnomalySummary (Prelude.Maybe AnomalyTimeRange)
proactiveAnomalySummary_anomalyTimeRange :: (Maybe AnomalyTimeRange -> f (Maybe AnomalyTimeRange))
-> ProactiveAnomalySummary -> f ProactiveAnomalySummary
proactiveAnomalySummary_anomalyTimeRange = (ProactiveAnomalySummary -> Maybe AnomalyTimeRange)
-> (ProactiveAnomalySummary
    -> Maybe AnomalyTimeRange -> ProactiveAnomalySummary)
-> Lens
     ProactiveAnomalySummary
     ProactiveAnomalySummary
     (Maybe AnomalyTimeRange)
     (Maybe AnomalyTimeRange)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ProactiveAnomalySummary' {Maybe AnomalyTimeRange
anomalyTimeRange :: Maybe AnomalyTimeRange
$sel:anomalyTimeRange:ProactiveAnomalySummary' :: ProactiveAnomalySummary -> Maybe AnomalyTimeRange
anomalyTimeRange} -> Maybe AnomalyTimeRange
anomalyTimeRange) (\s :: ProactiveAnomalySummary
s@ProactiveAnomalySummary' {} Maybe AnomalyTimeRange
a -> ProactiveAnomalySummary
s {$sel:anomalyTimeRange:ProactiveAnomalySummary' :: Maybe AnomalyTimeRange
anomalyTimeRange = Maybe AnomalyTimeRange
a} :: ProactiveAnomalySummary)

instance Core.FromJSON ProactiveAnomalySummary where
  parseJSON :: Value -> Parser ProactiveAnomalySummary
parseJSON =
    String
-> (Object -> Parser ProactiveAnomalySummary)
-> Value
-> Parser ProactiveAnomalySummary
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"ProactiveAnomalySummary"
      ( \Object
x ->
          Maybe AnomalyReportedTimeRange
-> Maybe AnomalyStatus
-> Maybe ResourceCollection
-> Maybe AnomalySeverity
-> Maybe POSIX
-> Maybe AnomalySourceDetails
-> Maybe PredictionTimeRange
-> Maybe Double
-> Maybe Text
-> Maybe Text
-> Maybe AnomalyTimeRange
-> ProactiveAnomalySummary
ProactiveAnomalySummary'
            (Maybe AnomalyReportedTimeRange
 -> Maybe AnomalyStatus
 -> Maybe ResourceCollection
 -> Maybe AnomalySeverity
 -> Maybe POSIX
 -> Maybe AnomalySourceDetails
 -> Maybe PredictionTimeRange
 -> Maybe Double
 -> Maybe Text
 -> Maybe Text
 -> Maybe AnomalyTimeRange
 -> ProactiveAnomalySummary)
-> Parser (Maybe AnomalyReportedTimeRange)
-> Parser
     (Maybe AnomalyStatus
      -> Maybe ResourceCollection
      -> Maybe AnomalySeverity
      -> Maybe POSIX
      -> Maybe AnomalySourceDetails
      -> Maybe PredictionTimeRange
      -> Maybe Double
      -> Maybe Text
      -> Maybe Text
      -> Maybe AnomalyTimeRange
      -> ProactiveAnomalySummary)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Parser (Maybe AnomalyReportedTimeRange)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"AnomalyReportedTimeRange")
            Parser
  (Maybe AnomalyStatus
   -> Maybe ResourceCollection
   -> Maybe AnomalySeverity
   -> Maybe POSIX
   -> Maybe AnomalySourceDetails
   -> Maybe PredictionTimeRange
   -> Maybe Double
   -> Maybe Text
   -> Maybe Text
   -> Maybe AnomalyTimeRange
   -> ProactiveAnomalySummary)
-> Parser (Maybe AnomalyStatus)
-> Parser
     (Maybe ResourceCollection
      -> Maybe AnomalySeverity
      -> Maybe POSIX
      -> Maybe AnomalySourceDetails
      -> Maybe PredictionTimeRange
      -> Maybe Double
      -> Maybe Text
      -> Maybe Text
      -> Maybe AnomalyTimeRange
      -> ProactiveAnomalySummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe AnomalyStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Status")
            Parser
  (Maybe ResourceCollection
   -> Maybe AnomalySeverity
   -> Maybe POSIX
   -> Maybe AnomalySourceDetails
   -> Maybe PredictionTimeRange
   -> Maybe Double
   -> Maybe Text
   -> Maybe Text
   -> Maybe AnomalyTimeRange
   -> ProactiveAnomalySummary)
-> Parser (Maybe ResourceCollection)
-> Parser
     (Maybe AnomalySeverity
      -> Maybe POSIX
      -> Maybe AnomalySourceDetails
      -> Maybe PredictionTimeRange
      -> Maybe Double
      -> Maybe Text
      -> Maybe Text
      -> Maybe AnomalyTimeRange
      -> ProactiveAnomalySummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe ResourceCollection)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ResourceCollection")
            Parser
  (Maybe AnomalySeverity
   -> Maybe POSIX
   -> Maybe AnomalySourceDetails
   -> Maybe PredictionTimeRange
   -> Maybe Double
   -> Maybe Text
   -> Maybe Text
   -> Maybe AnomalyTimeRange
   -> ProactiveAnomalySummary)
-> Parser (Maybe AnomalySeverity)
-> Parser
     (Maybe POSIX
      -> Maybe AnomalySourceDetails
      -> Maybe PredictionTimeRange
      -> Maybe Double
      -> Maybe Text
      -> Maybe Text
      -> Maybe AnomalyTimeRange
      -> ProactiveAnomalySummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe AnomalySeverity)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Severity")
            Parser
  (Maybe POSIX
   -> Maybe AnomalySourceDetails
   -> Maybe PredictionTimeRange
   -> Maybe Double
   -> Maybe Text
   -> Maybe Text
   -> Maybe AnomalyTimeRange
   -> ProactiveAnomalySummary)
-> Parser (Maybe POSIX)
-> Parser
     (Maybe AnomalySourceDetails
      -> Maybe PredictionTimeRange
      -> Maybe Double
      -> Maybe Text
      -> Maybe Text
      -> Maybe AnomalyTimeRange
      -> ProactiveAnomalySummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"UpdateTime")
            Parser
  (Maybe AnomalySourceDetails
   -> Maybe PredictionTimeRange
   -> Maybe Double
   -> Maybe Text
   -> Maybe Text
   -> Maybe AnomalyTimeRange
   -> ProactiveAnomalySummary)
-> Parser (Maybe AnomalySourceDetails)
-> Parser
     (Maybe PredictionTimeRange
      -> Maybe Double
      -> Maybe Text
      -> Maybe Text
      -> Maybe AnomalyTimeRange
      -> ProactiveAnomalySummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe AnomalySourceDetails)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"SourceDetails")
            Parser
  (Maybe PredictionTimeRange
   -> Maybe Double
   -> Maybe Text
   -> Maybe Text
   -> Maybe AnomalyTimeRange
   -> ProactiveAnomalySummary)
-> Parser (Maybe PredictionTimeRange)
-> Parser
     (Maybe Double
      -> Maybe Text
      -> Maybe Text
      -> Maybe AnomalyTimeRange
      -> ProactiveAnomalySummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe PredictionTimeRange)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"PredictionTimeRange")
            Parser
  (Maybe Double
   -> Maybe Text
   -> Maybe Text
   -> Maybe AnomalyTimeRange
   -> ProactiveAnomalySummary)
-> Parser (Maybe Double)
-> Parser
     (Maybe Text
      -> Maybe Text -> Maybe AnomalyTimeRange -> ProactiveAnomalySummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Double)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Limit")
            Parser
  (Maybe Text
   -> Maybe Text -> Maybe AnomalyTimeRange -> ProactiveAnomalySummary)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Maybe AnomalyTimeRange -> ProactiveAnomalySummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Id")
            Parser
  (Maybe Text -> Maybe AnomalyTimeRange -> ProactiveAnomalySummary)
-> Parser (Maybe Text)
-> Parser (Maybe AnomalyTimeRange -> ProactiveAnomalySummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"AssociatedInsightId")
            Parser (Maybe AnomalyTimeRange -> ProactiveAnomalySummary)
-> Parser (Maybe AnomalyTimeRange)
-> Parser ProactiveAnomalySummary
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe AnomalyTimeRange)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"AnomalyTimeRange")
      )

instance Prelude.Hashable ProactiveAnomalySummary

instance Prelude.NFData ProactiveAnomalySummary