{-# 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.PerformanceInsightsMetricsDetail
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.DevOpsGuru.Types.PerformanceInsightsMetricsDetail where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.DevOpsGuru.Types.PerformanceInsightsMetricQuery
import Amazonka.DevOpsGuru.Types.PerformanceInsightsReferenceData
import Amazonka.DevOpsGuru.Types.PerformanceInsightsStat
import qualified Amazonka.Prelude as Prelude

-- | Details about Performance Insights metrics.
--
-- Amazon RDS Performance Insights enables you to monitor and explore
-- different dimensions of database load based on data captured from a
-- running DB instance. DB load is measured as average active sessions.
-- Performance Insights provides the data to API consumers as a
-- two-dimensional time-series dataset. The time dimension provides DB load
-- data for each time point in the queried time range. Each time point
-- decomposes overall load in relation to the requested dimensions,
-- measured at that time point. Examples include SQL, Wait event, User, and
-- Host.
--
-- -   To learn more about Performance Insights and Amazon Aurora DB
--     instances, go to the
--     <https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.html Amazon Aurora User Guide>.
--
-- -   To learn more about Performance Insights and Amazon RDS DB
--     instances, go to the
--     <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html Amazon RDS User Guide>.
--
-- /See:/ 'newPerformanceInsightsMetricsDetail' smart constructor.
data PerformanceInsightsMetricsDetail = PerformanceInsightsMetricsDetail'
  { -- | The name used for a specific Performance Insights metric.
    PerformanceInsightsMetricsDetail -> Maybe Text
metricDisplayName :: Prelude.Maybe Prelude.Text,
    -- | A single query to be processed for the metric. For more information, see
    -- @ @<https://docs.aws.amazon.com/devops-guru/latest/APIReference/API_PerformanceInsightsMetricQuery.html PerformanceInsightsMetricQuery>@ @.
    PerformanceInsightsMetricsDetail
-> Maybe PerformanceInsightsMetricQuery
metricQuery :: Prelude.Maybe PerformanceInsightsMetricQuery,
    -- | For more information, see
    -- @ @<https://docs.aws.amazon.com/devops-guru/latest/APIReference/API_PerformanceInsightsReferenceData.html PerformanceInsightsReferenceData>@ @.
    PerformanceInsightsMetricsDetail
-> Maybe [PerformanceInsightsReferenceData]
referenceData :: Prelude.Maybe [PerformanceInsightsReferenceData],
    -- | The metric statistics during the anomalous period detected by DevOps
    -- Guru;
    PerformanceInsightsMetricsDetail -> Maybe [PerformanceInsightsStat]
statsAtAnomaly :: Prelude.Maybe [PerformanceInsightsStat],
    -- | Typical metric statistics that are not considered anomalous. When DevOps
    -- Guru analyzes metrics, it compares them to @StatsAtBaseline@ to help
    -- determine if they are anomalous.
    PerformanceInsightsMetricsDetail -> Maybe [PerformanceInsightsStat]
statsAtBaseline :: Prelude.Maybe [PerformanceInsightsStat],
    -- | The unit of measure for a metric. For example, a session or a process.
    PerformanceInsightsMetricsDetail -> Maybe Text
unit :: Prelude.Maybe Prelude.Text
  }
  deriving (PerformanceInsightsMetricsDetail
-> PerformanceInsightsMetricsDetail -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PerformanceInsightsMetricsDetail
-> PerformanceInsightsMetricsDetail -> Bool
$c/= :: PerformanceInsightsMetricsDetail
-> PerformanceInsightsMetricsDetail -> Bool
== :: PerformanceInsightsMetricsDetail
-> PerformanceInsightsMetricsDetail -> Bool
$c== :: PerformanceInsightsMetricsDetail
-> PerformanceInsightsMetricsDetail -> Bool
Prelude.Eq, ReadPrec [PerformanceInsightsMetricsDetail]
ReadPrec PerformanceInsightsMetricsDetail
Int -> ReadS PerformanceInsightsMetricsDetail
ReadS [PerformanceInsightsMetricsDetail]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PerformanceInsightsMetricsDetail]
$creadListPrec :: ReadPrec [PerformanceInsightsMetricsDetail]
readPrec :: ReadPrec PerformanceInsightsMetricsDetail
$creadPrec :: ReadPrec PerformanceInsightsMetricsDetail
readList :: ReadS [PerformanceInsightsMetricsDetail]
$creadList :: ReadS [PerformanceInsightsMetricsDetail]
readsPrec :: Int -> ReadS PerformanceInsightsMetricsDetail
$creadsPrec :: Int -> ReadS PerformanceInsightsMetricsDetail
Prelude.Read, Int -> PerformanceInsightsMetricsDetail -> ShowS
[PerformanceInsightsMetricsDetail] -> ShowS
PerformanceInsightsMetricsDetail -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PerformanceInsightsMetricsDetail] -> ShowS
$cshowList :: [PerformanceInsightsMetricsDetail] -> ShowS
show :: PerformanceInsightsMetricsDetail -> String
$cshow :: PerformanceInsightsMetricsDetail -> String
showsPrec :: Int -> PerformanceInsightsMetricsDetail -> ShowS
$cshowsPrec :: Int -> PerformanceInsightsMetricsDetail -> ShowS
Prelude.Show, forall x.
Rep PerformanceInsightsMetricsDetail x
-> PerformanceInsightsMetricsDetail
forall x.
PerformanceInsightsMetricsDetail
-> Rep PerformanceInsightsMetricsDetail x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep PerformanceInsightsMetricsDetail x
-> PerformanceInsightsMetricsDetail
$cfrom :: forall x.
PerformanceInsightsMetricsDetail
-> Rep PerformanceInsightsMetricsDetail x
Prelude.Generic)

-- |
-- Create a value of 'PerformanceInsightsMetricsDetail' 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:
--
-- 'metricDisplayName', 'performanceInsightsMetricsDetail_metricDisplayName' - The name used for a specific Performance Insights metric.
--
-- 'metricQuery', 'performanceInsightsMetricsDetail_metricQuery' - A single query to be processed for the metric. For more information, see
-- @ @<https://docs.aws.amazon.com/devops-guru/latest/APIReference/API_PerformanceInsightsMetricQuery.html PerformanceInsightsMetricQuery>@ @.
--
-- 'referenceData', 'performanceInsightsMetricsDetail_referenceData' - For more information, see
-- @ @<https://docs.aws.amazon.com/devops-guru/latest/APIReference/API_PerformanceInsightsReferenceData.html PerformanceInsightsReferenceData>@ @.
--
-- 'statsAtAnomaly', 'performanceInsightsMetricsDetail_statsAtAnomaly' - The metric statistics during the anomalous period detected by DevOps
-- Guru;
--
-- 'statsAtBaseline', 'performanceInsightsMetricsDetail_statsAtBaseline' - Typical metric statistics that are not considered anomalous. When DevOps
-- Guru analyzes metrics, it compares them to @StatsAtBaseline@ to help
-- determine if they are anomalous.
--
-- 'unit', 'performanceInsightsMetricsDetail_unit' - The unit of measure for a metric. For example, a session or a process.
newPerformanceInsightsMetricsDetail ::
  PerformanceInsightsMetricsDetail
newPerformanceInsightsMetricsDetail :: PerformanceInsightsMetricsDetail
newPerformanceInsightsMetricsDetail =
  PerformanceInsightsMetricsDetail'
    { $sel:metricDisplayName:PerformanceInsightsMetricsDetail' :: Maybe Text
metricDisplayName =
        forall a. Maybe a
Prelude.Nothing,
      $sel:metricQuery:PerformanceInsightsMetricsDetail' :: Maybe PerformanceInsightsMetricQuery
metricQuery = forall a. Maybe a
Prelude.Nothing,
      $sel:referenceData:PerformanceInsightsMetricsDetail' :: Maybe [PerformanceInsightsReferenceData]
referenceData = forall a. Maybe a
Prelude.Nothing,
      $sel:statsAtAnomaly:PerformanceInsightsMetricsDetail' :: Maybe [PerformanceInsightsStat]
statsAtAnomaly = forall a. Maybe a
Prelude.Nothing,
      $sel:statsAtBaseline:PerformanceInsightsMetricsDetail' :: Maybe [PerformanceInsightsStat]
statsAtBaseline = forall a. Maybe a
Prelude.Nothing,
      $sel:unit:PerformanceInsightsMetricsDetail' :: Maybe Text
unit = forall a. Maybe a
Prelude.Nothing
    }

-- | The name used for a specific Performance Insights metric.
performanceInsightsMetricsDetail_metricDisplayName :: Lens.Lens' PerformanceInsightsMetricsDetail (Prelude.Maybe Prelude.Text)
performanceInsightsMetricsDetail_metricDisplayName :: Lens' PerformanceInsightsMetricsDetail (Maybe Text)
performanceInsightsMetricsDetail_metricDisplayName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PerformanceInsightsMetricsDetail' {Maybe Text
metricDisplayName :: Maybe Text
$sel:metricDisplayName:PerformanceInsightsMetricsDetail' :: PerformanceInsightsMetricsDetail -> Maybe Text
metricDisplayName} -> Maybe Text
metricDisplayName) (\s :: PerformanceInsightsMetricsDetail
s@PerformanceInsightsMetricsDetail' {} Maybe Text
a -> PerformanceInsightsMetricsDetail
s {$sel:metricDisplayName:PerformanceInsightsMetricsDetail' :: Maybe Text
metricDisplayName = Maybe Text
a} :: PerformanceInsightsMetricsDetail)

-- | A single query to be processed for the metric. For more information, see
-- @ @<https://docs.aws.amazon.com/devops-guru/latest/APIReference/API_PerformanceInsightsMetricQuery.html PerformanceInsightsMetricQuery>@ @.
performanceInsightsMetricsDetail_metricQuery :: Lens.Lens' PerformanceInsightsMetricsDetail (Prelude.Maybe PerformanceInsightsMetricQuery)
performanceInsightsMetricsDetail_metricQuery :: Lens'
  PerformanceInsightsMetricsDetail
  (Maybe PerformanceInsightsMetricQuery)
performanceInsightsMetricsDetail_metricQuery = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PerformanceInsightsMetricsDetail' {Maybe PerformanceInsightsMetricQuery
metricQuery :: Maybe PerformanceInsightsMetricQuery
$sel:metricQuery:PerformanceInsightsMetricsDetail' :: PerformanceInsightsMetricsDetail
-> Maybe PerformanceInsightsMetricQuery
metricQuery} -> Maybe PerformanceInsightsMetricQuery
metricQuery) (\s :: PerformanceInsightsMetricsDetail
s@PerformanceInsightsMetricsDetail' {} Maybe PerformanceInsightsMetricQuery
a -> PerformanceInsightsMetricsDetail
s {$sel:metricQuery:PerformanceInsightsMetricsDetail' :: Maybe PerformanceInsightsMetricQuery
metricQuery = Maybe PerformanceInsightsMetricQuery
a} :: PerformanceInsightsMetricsDetail)

-- | For more information, see
-- @ @<https://docs.aws.amazon.com/devops-guru/latest/APIReference/API_PerformanceInsightsReferenceData.html PerformanceInsightsReferenceData>@ @.
performanceInsightsMetricsDetail_referenceData :: Lens.Lens' PerformanceInsightsMetricsDetail (Prelude.Maybe [PerformanceInsightsReferenceData])
performanceInsightsMetricsDetail_referenceData :: Lens'
  PerformanceInsightsMetricsDetail
  (Maybe [PerformanceInsightsReferenceData])
performanceInsightsMetricsDetail_referenceData = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PerformanceInsightsMetricsDetail' {Maybe [PerformanceInsightsReferenceData]
referenceData :: Maybe [PerformanceInsightsReferenceData]
$sel:referenceData:PerformanceInsightsMetricsDetail' :: PerformanceInsightsMetricsDetail
-> Maybe [PerformanceInsightsReferenceData]
referenceData} -> Maybe [PerformanceInsightsReferenceData]
referenceData) (\s :: PerformanceInsightsMetricsDetail
s@PerformanceInsightsMetricsDetail' {} Maybe [PerformanceInsightsReferenceData]
a -> PerformanceInsightsMetricsDetail
s {$sel:referenceData:PerformanceInsightsMetricsDetail' :: Maybe [PerformanceInsightsReferenceData]
referenceData = Maybe [PerformanceInsightsReferenceData]
a} :: PerformanceInsightsMetricsDetail) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The metric statistics during the anomalous period detected by DevOps
-- Guru;
performanceInsightsMetricsDetail_statsAtAnomaly :: Lens.Lens' PerformanceInsightsMetricsDetail (Prelude.Maybe [PerformanceInsightsStat])
performanceInsightsMetricsDetail_statsAtAnomaly :: Lens'
  PerformanceInsightsMetricsDetail (Maybe [PerformanceInsightsStat])
performanceInsightsMetricsDetail_statsAtAnomaly = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PerformanceInsightsMetricsDetail' {Maybe [PerformanceInsightsStat]
statsAtAnomaly :: Maybe [PerformanceInsightsStat]
$sel:statsAtAnomaly:PerformanceInsightsMetricsDetail' :: PerformanceInsightsMetricsDetail -> Maybe [PerformanceInsightsStat]
statsAtAnomaly} -> Maybe [PerformanceInsightsStat]
statsAtAnomaly) (\s :: PerformanceInsightsMetricsDetail
s@PerformanceInsightsMetricsDetail' {} Maybe [PerformanceInsightsStat]
a -> PerformanceInsightsMetricsDetail
s {$sel:statsAtAnomaly:PerformanceInsightsMetricsDetail' :: Maybe [PerformanceInsightsStat]
statsAtAnomaly = Maybe [PerformanceInsightsStat]
a} :: PerformanceInsightsMetricsDetail) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Typical metric statistics that are not considered anomalous. When DevOps
-- Guru analyzes metrics, it compares them to @StatsAtBaseline@ to help
-- determine if they are anomalous.
performanceInsightsMetricsDetail_statsAtBaseline :: Lens.Lens' PerformanceInsightsMetricsDetail (Prelude.Maybe [PerformanceInsightsStat])
performanceInsightsMetricsDetail_statsAtBaseline :: Lens'
  PerformanceInsightsMetricsDetail (Maybe [PerformanceInsightsStat])
performanceInsightsMetricsDetail_statsAtBaseline = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PerformanceInsightsMetricsDetail' {Maybe [PerformanceInsightsStat]
statsAtBaseline :: Maybe [PerformanceInsightsStat]
$sel:statsAtBaseline:PerformanceInsightsMetricsDetail' :: PerformanceInsightsMetricsDetail -> Maybe [PerformanceInsightsStat]
statsAtBaseline} -> Maybe [PerformanceInsightsStat]
statsAtBaseline) (\s :: PerformanceInsightsMetricsDetail
s@PerformanceInsightsMetricsDetail' {} Maybe [PerformanceInsightsStat]
a -> PerformanceInsightsMetricsDetail
s {$sel:statsAtBaseline:PerformanceInsightsMetricsDetail' :: Maybe [PerformanceInsightsStat]
statsAtBaseline = Maybe [PerformanceInsightsStat]
a} :: PerformanceInsightsMetricsDetail) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The unit of measure for a metric. For example, a session or a process.
performanceInsightsMetricsDetail_unit :: Lens.Lens' PerformanceInsightsMetricsDetail (Prelude.Maybe Prelude.Text)
performanceInsightsMetricsDetail_unit :: Lens' PerformanceInsightsMetricsDetail (Maybe Text)
performanceInsightsMetricsDetail_unit = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PerformanceInsightsMetricsDetail' {Maybe Text
unit :: Maybe Text
$sel:unit:PerformanceInsightsMetricsDetail' :: PerformanceInsightsMetricsDetail -> Maybe Text
unit} -> Maybe Text
unit) (\s :: PerformanceInsightsMetricsDetail
s@PerformanceInsightsMetricsDetail' {} Maybe Text
a -> PerformanceInsightsMetricsDetail
s {$sel:unit:PerformanceInsightsMetricsDetail' :: Maybe Text
unit = Maybe Text
a} :: PerformanceInsightsMetricsDetail)

instance
  Data.FromJSON
    PerformanceInsightsMetricsDetail
  where
  parseJSON :: Value -> Parser PerformanceInsightsMetricsDetail
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"PerformanceInsightsMetricsDetail"
      ( \Object
x ->
          Maybe Text
-> Maybe PerformanceInsightsMetricQuery
-> Maybe [PerformanceInsightsReferenceData]
-> Maybe [PerformanceInsightsStat]
-> Maybe [PerformanceInsightsStat]
-> Maybe Text
-> PerformanceInsightsMetricsDetail
PerformanceInsightsMetricsDetail'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"MetricDisplayName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"MetricQuery")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ReferenceData" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"StatsAtAnomaly" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x
                            forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"StatsAtBaseline"
                            forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty
                        )
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Unit")
      )

instance
  Prelude.Hashable
    PerformanceInsightsMetricsDetail
  where
  hashWithSalt :: Int -> PerformanceInsightsMetricsDetail -> Int
hashWithSalt
    Int
_salt
    PerformanceInsightsMetricsDetail' {Maybe [PerformanceInsightsReferenceData]
Maybe [PerformanceInsightsStat]
Maybe Text
Maybe PerformanceInsightsMetricQuery
unit :: Maybe Text
statsAtBaseline :: Maybe [PerformanceInsightsStat]
statsAtAnomaly :: Maybe [PerformanceInsightsStat]
referenceData :: Maybe [PerformanceInsightsReferenceData]
metricQuery :: Maybe PerformanceInsightsMetricQuery
metricDisplayName :: Maybe Text
$sel:unit:PerformanceInsightsMetricsDetail' :: PerformanceInsightsMetricsDetail -> Maybe Text
$sel:statsAtBaseline:PerformanceInsightsMetricsDetail' :: PerformanceInsightsMetricsDetail -> Maybe [PerformanceInsightsStat]
$sel:statsAtAnomaly:PerformanceInsightsMetricsDetail' :: PerformanceInsightsMetricsDetail -> Maybe [PerformanceInsightsStat]
$sel:referenceData:PerformanceInsightsMetricsDetail' :: PerformanceInsightsMetricsDetail
-> Maybe [PerformanceInsightsReferenceData]
$sel:metricQuery:PerformanceInsightsMetricsDetail' :: PerformanceInsightsMetricsDetail
-> Maybe PerformanceInsightsMetricQuery
$sel:metricDisplayName:PerformanceInsightsMetricsDetail' :: PerformanceInsightsMetricsDetail -> Maybe Text
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
metricDisplayName
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PerformanceInsightsMetricQuery
metricQuery
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [PerformanceInsightsReferenceData]
referenceData
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [PerformanceInsightsStat]
statsAtAnomaly
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [PerformanceInsightsStat]
statsAtBaseline
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
unit

instance
  Prelude.NFData
    PerformanceInsightsMetricsDetail
  where
  rnf :: PerformanceInsightsMetricsDetail -> ()
rnf PerformanceInsightsMetricsDetail' {Maybe [PerformanceInsightsReferenceData]
Maybe [PerformanceInsightsStat]
Maybe Text
Maybe PerformanceInsightsMetricQuery
unit :: Maybe Text
statsAtBaseline :: Maybe [PerformanceInsightsStat]
statsAtAnomaly :: Maybe [PerformanceInsightsStat]
referenceData :: Maybe [PerformanceInsightsReferenceData]
metricQuery :: Maybe PerformanceInsightsMetricQuery
metricDisplayName :: Maybe Text
$sel:unit:PerformanceInsightsMetricsDetail' :: PerformanceInsightsMetricsDetail -> Maybe Text
$sel:statsAtBaseline:PerformanceInsightsMetricsDetail' :: PerformanceInsightsMetricsDetail -> Maybe [PerformanceInsightsStat]
$sel:statsAtAnomaly:PerformanceInsightsMetricsDetail' :: PerformanceInsightsMetricsDetail -> Maybe [PerformanceInsightsStat]
$sel:referenceData:PerformanceInsightsMetricsDetail' :: PerformanceInsightsMetricsDetail
-> Maybe [PerformanceInsightsReferenceData]
$sel:metricQuery:PerformanceInsightsMetricsDetail' :: PerformanceInsightsMetricsDetail
-> Maybe PerformanceInsightsMetricQuery
$sel:metricDisplayName:PerformanceInsightsMetricsDetail' :: PerformanceInsightsMetricsDetail -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
metricDisplayName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PerformanceInsightsMetricQuery
metricQuery
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [PerformanceInsightsReferenceData]
referenceData
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [PerformanceInsightsStat]
statsAtAnomaly
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [PerformanceInsightsStat]
statsAtBaseline
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
unit