{-# 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.LookoutMetrics.DescribeMetricSet
-- 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 dataset.
--
-- Amazon Lookout for Metrics API actions are eventually consistent. If you
-- do a read operation on a resource immediately after creating or
-- modifying it, use retries to allow time for the write operation to
-- complete.
module Amazonka.LookoutMetrics.DescribeMetricSet
  ( -- * Creating a Request
    DescribeMetricSet (..),
    newDescribeMetricSet,

    -- * Request Lenses
    describeMetricSet_metricSetArn,

    -- * Destructuring the Response
    DescribeMetricSetResponse (..),
    newDescribeMetricSetResponse,

    -- * Response Lenses
    describeMetricSetResponse_anomalyDetectorArn,
    describeMetricSetResponse_creationTime,
    describeMetricSetResponse_dimensionFilterList,
    describeMetricSetResponse_dimensionList,
    describeMetricSetResponse_lastModificationTime,
    describeMetricSetResponse_metricList,
    describeMetricSetResponse_metricSetArn,
    describeMetricSetResponse_metricSetDescription,
    describeMetricSetResponse_metricSetFrequency,
    describeMetricSetResponse_metricSetName,
    describeMetricSetResponse_metricSource,
    describeMetricSetResponse_offset,
    describeMetricSetResponse_timestampColumn,
    describeMetricSetResponse_timezone,
    describeMetricSetResponse_httpStatus,
  )
where

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

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

-- |
-- Create a value of 'DescribeMetricSet' 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:
--
-- 'metricSetArn', 'describeMetricSet_metricSetArn' - The ARN of the dataset.
newDescribeMetricSet ::
  -- | 'metricSetArn'
  Prelude.Text ->
  DescribeMetricSet
newDescribeMetricSet :: Text -> DescribeMetricSet
newDescribeMetricSet Text
pMetricSetArn_ =
  DescribeMetricSet' {$sel:metricSetArn:DescribeMetricSet' :: Text
metricSetArn = Text
pMetricSetArn_}

-- | The ARN of the dataset.
describeMetricSet_metricSetArn :: Lens.Lens' DescribeMetricSet Prelude.Text
describeMetricSet_metricSetArn :: Lens' DescribeMetricSet Text
describeMetricSet_metricSetArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMetricSet' {Text
metricSetArn :: Text
$sel:metricSetArn:DescribeMetricSet' :: DescribeMetricSet -> Text
metricSetArn} -> Text
metricSetArn) (\s :: DescribeMetricSet
s@DescribeMetricSet' {} Text
a -> DescribeMetricSet
s {$sel:metricSetArn:DescribeMetricSet' :: Text
metricSetArn = Text
a} :: DescribeMetricSet)

instance Core.AWSRequest DescribeMetricSet where
  type
    AWSResponse DescribeMetricSet =
      DescribeMetricSetResponse
  request :: (Service -> Service)
-> DescribeMetricSet -> Request DescribeMetricSet
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 DescribeMetricSet
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeMetricSet)))
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 POSIX
-> Maybe [MetricSetDimensionFilter]
-> Maybe (NonEmpty Text)
-> Maybe POSIX
-> Maybe (NonEmpty Metric)
-> Maybe Text
-> Maybe Text
-> Maybe Frequency
-> Maybe Text
-> Maybe MetricSource
-> Maybe Natural
-> Maybe TimestampColumn
-> Maybe Text
-> Int
-> DescribeMetricSetResponse
DescribeMetricSetResponse'
            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
"AnomalyDetectorArn")
            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
"DimensionFilterList"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ 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 -> Either String (Maybe a)
Data..?> Key
"DimensionList")
            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
"MetricList")
            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
"MetricSetArn")
            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
"MetricSetDescription")
            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
"MetricSetFrequency")
            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
"MetricSetName")
            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
"MetricSource")
            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
"Offset")
            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
"TimestampColumn")
            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
"Timezone")
            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 DescribeMetricSet where
  hashWithSalt :: Int -> DescribeMetricSet -> Int
hashWithSalt Int
_salt DescribeMetricSet' {Text
metricSetArn :: Text
$sel:metricSetArn:DescribeMetricSet' :: DescribeMetricSet -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
metricSetArn

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

instance Data.ToHeaders DescribeMetricSet where
  toHeaders :: DescribeMetricSet -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON DescribeMetricSet where
  toJSON :: DescribeMetricSet -> Value
toJSON DescribeMetricSet' {Text
metricSetArn :: Text
$sel:metricSetArn:DescribeMetricSet' :: DescribeMetricSet -> Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [forall a. a -> Maybe a
Prelude.Just (Key
"MetricSetArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
metricSetArn)]
      )

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

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

-- | /See:/ 'newDescribeMetricSetResponse' smart constructor.
data DescribeMetricSetResponse = DescribeMetricSetResponse'
  { -- | The ARN of the detector that contains the dataset.
    DescribeMetricSetResponse -> Maybe Text
anomalyDetectorArn :: Prelude.Maybe Prelude.Text,
    -- | The time at which the dataset was created.
    DescribeMetricSetResponse -> Maybe POSIX
creationTime :: Prelude.Maybe Data.POSIX,
    -- | The dimensions and their values that were used to filter the dataset.
    DescribeMetricSetResponse -> Maybe [MetricSetDimensionFilter]
dimensionFilterList :: Prelude.Maybe [MetricSetDimensionFilter],
    -- | A list of the dimensions chosen for analysis.
    DescribeMetricSetResponse -> Maybe (NonEmpty Text)
dimensionList :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),
    -- | The time at which the dataset was last modified.
    DescribeMetricSetResponse -> Maybe POSIX
lastModificationTime :: Prelude.Maybe Data.POSIX,
    -- | A list of the metrics defined by the dataset.
    DescribeMetricSetResponse -> Maybe (NonEmpty Metric)
metricList :: Prelude.Maybe (Prelude.NonEmpty Metric),
    -- | The ARN of the dataset.
    DescribeMetricSetResponse -> Maybe Text
metricSetArn :: Prelude.Maybe Prelude.Text,
    -- | The dataset\'s description.
    DescribeMetricSetResponse -> Maybe Text
metricSetDescription :: Prelude.Maybe Prelude.Text,
    -- | The interval at which the data will be analyzed for anomalies.
    DescribeMetricSetResponse -> Maybe Frequency
metricSetFrequency :: Prelude.Maybe Frequency,
    -- | The name of the dataset.
    DescribeMetricSetResponse -> Maybe Text
metricSetName :: Prelude.Maybe Prelude.Text,
    -- | Contains information about the dataset\'s source data.
    DescribeMetricSetResponse -> Maybe MetricSource
metricSource :: Prelude.Maybe MetricSource,
    -- | After an interval ends, the amount of seconds that the detector waits
    -- before importing data. Offset is only supported for S3, Redshift, Athena
    -- and datasources.
    DescribeMetricSetResponse -> Maybe Natural
offset :: Prelude.Maybe Prelude.Natural,
    -- | Contains information about the column used for tracking time in your
    -- source data.
    DescribeMetricSetResponse -> Maybe TimestampColumn
timestampColumn :: Prelude.Maybe TimestampColumn,
    -- | The time zone in which the dataset\'s data was recorded.
    DescribeMetricSetResponse -> Maybe Text
timezone :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeMetricSetResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeMetricSetResponse -> DescribeMetricSetResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeMetricSetResponse -> DescribeMetricSetResponse -> Bool
$c/= :: DescribeMetricSetResponse -> DescribeMetricSetResponse -> Bool
== :: DescribeMetricSetResponse -> DescribeMetricSetResponse -> Bool
$c== :: DescribeMetricSetResponse -> DescribeMetricSetResponse -> Bool
Prelude.Eq, ReadPrec [DescribeMetricSetResponse]
ReadPrec DescribeMetricSetResponse
Int -> ReadS DescribeMetricSetResponse
ReadS [DescribeMetricSetResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeMetricSetResponse]
$creadListPrec :: ReadPrec [DescribeMetricSetResponse]
readPrec :: ReadPrec DescribeMetricSetResponse
$creadPrec :: ReadPrec DescribeMetricSetResponse
readList :: ReadS [DescribeMetricSetResponse]
$creadList :: ReadS [DescribeMetricSetResponse]
readsPrec :: Int -> ReadS DescribeMetricSetResponse
$creadsPrec :: Int -> ReadS DescribeMetricSetResponse
Prelude.Read, Int -> DescribeMetricSetResponse -> ShowS
[DescribeMetricSetResponse] -> ShowS
DescribeMetricSetResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeMetricSetResponse] -> ShowS
$cshowList :: [DescribeMetricSetResponse] -> ShowS
show :: DescribeMetricSetResponse -> String
$cshow :: DescribeMetricSetResponse -> String
showsPrec :: Int -> DescribeMetricSetResponse -> ShowS
$cshowsPrec :: Int -> DescribeMetricSetResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeMetricSetResponse x -> DescribeMetricSetResponse
forall x.
DescribeMetricSetResponse -> Rep DescribeMetricSetResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeMetricSetResponse x -> DescribeMetricSetResponse
$cfrom :: forall x.
DescribeMetricSetResponse -> Rep DescribeMetricSetResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeMetricSetResponse' 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:
--
-- 'anomalyDetectorArn', 'describeMetricSetResponse_anomalyDetectorArn' - The ARN of the detector that contains the dataset.
--
-- 'creationTime', 'describeMetricSetResponse_creationTime' - The time at which the dataset was created.
--
-- 'dimensionFilterList', 'describeMetricSetResponse_dimensionFilterList' - The dimensions and their values that were used to filter the dataset.
--
-- 'dimensionList', 'describeMetricSetResponse_dimensionList' - A list of the dimensions chosen for analysis.
--
-- 'lastModificationTime', 'describeMetricSetResponse_lastModificationTime' - The time at which the dataset was last modified.
--
-- 'metricList', 'describeMetricSetResponse_metricList' - A list of the metrics defined by the dataset.
--
-- 'metricSetArn', 'describeMetricSetResponse_metricSetArn' - The ARN of the dataset.
--
-- 'metricSetDescription', 'describeMetricSetResponse_metricSetDescription' - The dataset\'s description.
--
-- 'metricSetFrequency', 'describeMetricSetResponse_metricSetFrequency' - The interval at which the data will be analyzed for anomalies.
--
-- 'metricSetName', 'describeMetricSetResponse_metricSetName' - The name of the dataset.
--
-- 'metricSource', 'describeMetricSetResponse_metricSource' - Contains information about the dataset\'s source data.
--
-- 'offset', 'describeMetricSetResponse_offset' - After an interval ends, the amount of seconds that the detector waits
-- before importing data. Offset is only supported for S3, Redshift, Athena
-- and datasources.
--
-- 'timestampColumn', 'describeMetricSetResponse_timestampColumn' - Contains information about the column used for tracking time in your
-- source data.
--
-- 'timezone', 'describeMetricSetResponse_timezone' - The time zone in which the dataset\'s data was recorded.
--
-- 'httpStatus', 'describeMetricSetResponse_httpStatus' - The response's http status code.
newDescribeMetricSetResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeMetricSetResponse
newDescribeMetricSetResponse :: Int -> DescribeMetricSetResponse
newDescribeMetricSetResponse Int
pHttpStatus_ =
  DescribeMetricSetResponse'
    { $sel:anomalyDetectorArn:DescribeMetricSetResponse' :: Maybe Text
anomalyDetectorArn =
        forall a. Maybe a
Prelude.Nothing,
      $sel:creationTime:DescribeMetricSetResponse' :: Maybe POSIX
creationTime = forall a. Maybe a
Prelude.Nothing,
      $sel:dimensionFilterList:DescribeMetricSetResponse' :: Maybe [MetricSetDimensionFilter]
dimensionFilterList = forall a. Maybe a
Prelude.Nothing,
      $sel:dimensionList:DescribeMetricSetResponse' :: Maybe (NonEmpty Text)
dimensionList = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModificationTime:DescribeMetricSetResponse' :: Maybe POSIX
lastModificationTime = forall a. Maybe a
Prelude.Nothing,
      $sel:metricList:DescribeMetricSetResponse' :: Maybe (NonEmpty Metric)
metricList = forall a. Maybe a
Prelude.Nothing,
      $sel:metricSetArn:DescribeMetricSetResponse' :: Maybe Text
metricSetArn = forall a. Maybe a
Prelude.Nothing,
      $sel:metricSetDescription:DescribeMetricSetResponse' :: Maybe Text
metricSetDescription = forall a. Maybe a
Prelude.Nothing,
      $sel:metricSetFrequency:DescribeMetricSetResponse' :: Maybe Frequency
metricSetFrequency = forall a. Maybe a
Prelude.Nothing,
      $sel:metricSetName:DescribeMetricSetResponse' :: Maybe Text
metricSetName = forall a. Maybe a
Prelude.Nothing,
      $sel:metricSource:DescribeMetricSetResponse' :: Maybe MetricSource
metricSource = forall a. Maybe a
Prelude.Nothing,
      $sel:offset:DescribeMetricSetResponse' :: Maybe Natural
offset = forall a. Maybe a
Prelude.Nothing,
      $sel:timestampColumn:DescribeMetricSetResponse' :: Maybe TimestampColumn
timestampColumn = forall a. Maybe a
Prelude.Nothing,
      $sel:timezone:DescribeMetricSetResponse' :: Maybe Text
timezone = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeMetricSetResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The ARN of the detector that contains the dataset.
describeMetricSetResponse_anomalyDetectorArn :: Lens.Lens' DescribeMetricSetResponse (Prelude.Maybe Prelude.Text)
describeMetricSetResponse_anomalyDetectorArn :: Lens' DescribeMetricSetResponse (Maybe Text)
describeMetricSetResponse_anomalyDetectorArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMetricSetResponse' {Maybe Text
anomalyDetectorArn :: Maybe Text
$sel:anomalyDetectorArn:DescribeMetricSetResponse' :: DescribeMetricSetResponse -> Maybe Text
anomalyDetectorArn} -> Maybe Text
anomalyDetectorArn) (\s :: DescribeMetricSetResponse
s@DescribeMetricSetResponse' {} Maybe Text
a -> DescribeMetricSetResponse
s {$sel:anomalyDetectorArn:DescribeMetricSetResponse' :: Maybe Text
anomalyDetectorArn = Maybe Text
a} :: DescribeMetricSetResponse)

-- | The time at which the dataset was created.
describeMetricSetResponse_creationTime :: Lens.Lens' DescribeMetricSetResponse (Prelude.Maybe Prelude.UTCTime)
describeMetricSetResponse_creationTime :: Lens' DescribeMetricSetResponse (Maybe UTCTime)
describeMetricSetResponse_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMetricSetResponse' {Maybe POSIX
creationTime :: Maybe POSIX
$sel:creationTime:DescribeMetricSetResponse' :: DescribeMetricSetResponse -> Maybe POSIX
creationTime} -> Maybe POSIX
creationTime) (\s :: DescribeMetricSetResponse
s@DescribeMetricSetResponse' {} Maybe POSIX
a -> DescribeMetricSetResponse
s {$sel:creationTime:DescribeMetricSetResponse' :: Maybe POSIX
creationTime = Maybe POSIX
a} :: DescribeMetricSetResponse) 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 dimensions and their values that were used to filter the dataset.
describeMetricSetResponse_dimensionFilterList :: Lens.Lens' DescribeMetricSetResponse (Prelude.Maybe [MetricSetDimensionFilter])
describeMetricSetResponse_dimensionFilterList :: Lens' DescribeMetricSetResponse (Maybe [MetricSetDimensionFilter])
describeMetricSetResponse_dimensionFilterList = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMetricSetResponse' {Maybe [MetricSetDimensionFilter]
dimensionFilterList :: Maybe [MetricSetDimensionFilter]
$sel:dimensionFilterList:DescribeMetricSetResponse' :: DescribeMetricSetResponse -> Maybe [MetricSetDimensionFilter]
dimensionFilterList} -> Maybe [MetricSetDimensionFilter]
dimensionFilterList) (\s :: DescribeMetricSetResponse
s@DescribeMetricSetResponse' {} Maybe [MetricSetDimensionFilter]
a -> DescribeMetricSetResponse
s {$sel:dimensionFilterList:DescribeMetricSetResponse' :: Maybe [MetricSetDimensionFilter]
dimensionFilterList = Maybe [MetricSetDimensionFilter]
a} :: DescribeMetricSetResponse) 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

-- | A list of the dimensions chosen for analysis.
describeMetricSetResponse_dimensionList :: Lens.Lens' DescribeMetricSetResponse (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))
describeMetricSetResponse_dimensionList :: Lens' DescribeMetricSetResponse (Maybe (NonEmpty Text))
describeMetricSetResponse_dimensionList = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMetricSetResponse' {Maybe (NonEmpty Text)
dimensionList :: Maybe (NonEmpty Text)
$sel:dimensionList:DescribeMetricSetResponse' :: DescribeMetricSetResponse -> Maybe (NonEmpty Text)
dimensionList} -> Maybe (NonEmpty Text)
dimensionList) (\s :: DescribeMetricSetResponse
s@DescribeMetricSetResponse' {} Maybe (NonEmpty Text)
a -> DescribeMetricSetResponse
s {$sel:dimensionList:DescribeMetricSetResponse' :: Maybe (NonEmpty Text)
dimensionList = Maybe (NonEmpty Text)
a} :: DescribeMetricSetResponse) 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 time at which the dataset was last modified.
describeMetricSetResponse_lastModificationTime :: Lens.Lens' DescribeMetricSetResponse (Prelude.Maybe Prelude.UTCTime)
describeMetricSetResponse_lastModificationTime :: Lens' DescribeMetricSetResponse (Maybe UTCTime)
describeMetricSetResponse_lastModificationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMetricSetResponse' {Maybe POSIX
lastModificationTime :: Maybe POSIX
$sel:lastModificationTime:DescribeMetricSetResponse' :: DescribeMetricSetResponse -> Maybe POSIX
lastModificationTime} -> Maybe POSIX
lastModificationTime) (\s :: DescribeMetricSetResponse
s@DescribeMetricSetResponse' {} Maybe POSIX
a -> DescribeMetricSetResponse
s {$sel:lastModificationTime:DescribeMetricSetResponse' :: Maybe POSIX
lastModificationTime = Maybe POSIX
a} :: DescribeMetricSetResponse) 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

-- | A list of the metrics defined by the dataset.
describeMetricSetResponse_metricList :: Lens.Lens' DescribeMetricSetResponse (Prelude.Maybe (Prelude.NonEmpty Metric))
describeMetricSetResponse_metricList :: Lens' DescribeMetricSetResponse (Maybe (NonEmpty Metric))
describeMetricSetResponse_metricList = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMetricSetResponse' {Maybe (NonEmpty Metric)
metricList :: Maybe (NonEmpty Metric)
$sel:metricList:DescribeMetricSetResponse' :: DescribeMetricSetResponse -> Maybe (NonEmpty Metric)
metricList} -> Maybe (NonEmpty Metric)
metricList) (\s :: DescribeMetricSetResponse
s@DescribeMetricSetResponse' {} Maybe (NonEmpty Metric)
a -> DescribeMetricSetResponse
s {$sel:metricList:DescribeMetricSetResponse' :: Maybe (NonEmpty Metric)
metricList = Maybe (NonEmpty Metric)
a} :: DescribeMetricSetResponse) 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 ARN of the dataset.
describeMetricSetResponse_metricSetArn :: Lens.Lens' DescribeMetricSetResponse (Prelude.Maybe Prelude.Text)
describeMetricSetResponse_metricSetArn :: Lens' DescribeMetricSetResponse (Maybe Text)
describeMetricSetResponse_metricSetArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMetricSetResponse' {Maybe Text
metricSetArn :: Maybe Text
$sel:metricSetArn:DescribeMetricSetResponse' :: DescribeMetricSetResponse -> Maybe Text
metricSetArn} -> Maybe Text
metricSetArn) (\s :: DescribeMetricSetResponse
s@DescribeMetricSetResponse' {} Maybe Text
a -> DescribeMetricSetResponse
s {$sel:metricSetArn:DescribeMetricSetResponse' :: Maybe Text
metricSetArn = Maybe Text
a} :: DescribeMetricSetResponse)

-- | The dataset\'s description.
describeMetricSetResponse_metricSetDescription :: Lens.Lens' DescribeMetricSetResponse (Prelude.Maybe Prelude.Text)
describeMetricSetResponse_metricSetDescription :: Lens' DescribeMetricSetResponse (Maybe Text)
describeMetricSetResponse_metricSetDescription = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMetricSetResponse' {Maybe Text
metricSetDescription :: Maybe Text
$sel:metricSetDescription:DescribeMetricSetResponse' :: DescribeMetricSetResponse -> Maybe Text
metricSetDescription} -> Maybe Text
metricSetDescription) (\s :: DescribeMetricSetResponse
s@DescribeMetricSetResponse' {} Maybe Text
a -> DescribeMetricSetResponse
s {$sel:metricSetDescription:DescribeMetricSetResponse' :: Maybe Text
metricSetDescription = Maybe Text
a} :: DescribeMetricSetResponse)

-- | The interval at which the data will be analyzed for anomalies.
describeMetricSetResponse_metricSetFrequency :: Lens.Lens' DescribeMetricSetResponse (Prelude.Maybe Frequency)
describeMetricSetResponse_metricSetFrequency :: Lens' DescribeMetricSetResponse (Maybe Frequency)
describeMetricSetResponse_metricSetFrequency = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMetricSetResponse' {Maybe Frequency
metricSetFrequency :: Maybe Frequency
$sel:metricSetFrequency:DescribeMetricSetResponse' :: DescribeMetricSetResponse -> Maybe Frequency
metricSetFrequency} -> Maybe Frequency
metricSetFrequency) (\s :: DescribeMetricSetResponse
s@DescribeMetricSetResponse' {} Maybe Frequency
a -> DescribeMetricSetResponse
s {$sel:metricSetFrequency:DescribeMetricSetResponse' :: Maybe Frequency
metricSetFrequency = Maybe Frequency
a} :: DescribeMetricSetResponse)

-- | The name of the dataset.
describeMetricSetResponse_metricSetName :: Lens.Lens' DescribeMetricSetResponse (Prelude.Maybe Prelude.Text)
describeMetricSetResponse_metricSetName :: Lens' DescribeMetricSetResponse (Maybe Text)
describeMetricSetResponse_metricSetName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMetricSetResponse' {Maybe Text
metricSetName :: Maybe Text
$sel:metricSetName:DescribeMetricSetResponse' :: DescribeMetricSetResponse -> Maybe Text
metricSetName} -> Maybe Text
metricSetName) (\s :: DescribeMetricSetResponse
s@DescribeMetricSetResponse' {} Maybe Text
a -> DescribeMetricSetResponse
s {$sel:metricSetName:DescribeMetricSetResponse' :: Maybe Text
metricSetName = Maybe Text
a} :: DescribeMetricSetResponse)

-- | Contains information about the dataset\'s source data.
describeMetricSetResponse_metricSource :: Lens.Lens' DescribeMetricSetResponse (Prelude.Maybe MetricSource)
describeMetricSetResponse_metricSource :: Lens' DescribeMetricSetResponse (Maybe MetricSource)
describeMetricSetResponse_metricSource = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMetricSetResponse' {Maybe MetricSource
metricSource :: Maybe MetricSource
$sel:metricSource:DescribeMetricSetResponse' :: DescribeMetricSetResponse -> Maybe MetricSource
metricSource} -> Maybe MetricSource
metricSource) (\s :: DescribeMetricSetResponse
s@DescribeMetricSetResponse' {} Maybe MetricSource
a -> DescribeMetricSetResponse
s {$sel:metricSource:DescribeMetricSetResponse' :: Maybe MetricSource
metricSource = Maybe MetricSource
a} :: DescribeMetricSetResponse)

-- | After an interval ends, the amount of seconds that the detector waits
-- before importing data. Offset is only supported for S3, Redshift, Athena
-- and datasources.
describeMetricSetResponse_offset :: Lens.Lens' DescribeMetricSetResponse (Prelude.Maybe Prelude.Natural)
describeMetricSetResponse_offset :: Lens' DescribeMetricSetResponse (Maybe Natural)
describeMetricSetResponse_offset = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMetricSetResponse' {Maybe Natural
offset :: Maybe Natural
$sel:offset:DescribeMetricSetResponse' :: DescribeMetricSetResponse -> Maybe Natural
offset} -> Maybe Natural
offset) (\s :: DescribeMetricSetResponse
s@DescribeMetricSetResponse' {} Maybe Natural
a -> DescribeMetricSetResponse
s {$sel:offset:DescribeMetricSetResponse' :: Maybe Natural
offset = Maybe Natural
a} :: DescribeMetricSetResponse)

-- | Contains information about the column used for tracking time in your
-- source data.
describeMetricSetResponse_timestampColumn :: Lens.Lens' DescribeMetricSetResponse (Prelude.Maybe TimestampColumn)
describeMetricSetResponse_timestampColumn :: Lens' DescribeMetricSetResponse (Maybe TimestampColumn)
describeMetricSetResponse_timestampColumn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMetricSetResponse' {Maybe TimestampColumn
timestampColumn :: Maybe TimestampColumn
$sel:timestampColumn:DescribeMetricSetResponse' :: DescribeMetricSetResponse -> Maybe TimestampColumn
timestampColumn} -> Maybe TimestampColumn
timestampColumn) (\s :: DescribeMetricSetResponse
s@DescribeMetricSetResponse' {} Maybe TimestampColumn
a -> DescribeMetricSetResponse
s {$sel:timestampColumn:DescribeMetricSetResponse' :: Maybe TimestampColumn
timestampColumn = Maybe TimestampColumn
a} :: DescribeMetricSetResponse)

-- | The time zone in which the dataset\'s data was recorded.
describeMetricSetResponse_timezone :: Lens.Lens' DescribeMetricSetResponse (Prelude.Maybe Prelude.Text)
describeMetricSetResponse_timezone :: Lens' DescribeMetricSetResponse (Maybe Text)
describeMetricSetResponse_timezone = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMetricSetResponse' {Maybe Text
timezone :: Maybe Text
$sel:timezone:DescribeMetricSetResponse' :: DescribeMetricSetResponse -> Maybe Text
timezone} -> Maybe Text
timezone) (\s :: DescribeMetricSetResponse
s@DescribeMetricSetResponse' {} Maybe Text
a -> DescribeMetricSetResponse
s {$sel:timezone:DescribeMetricSetResponse' :: Maybe Text
timezone = Maybe Text
a} :: DescribeMetricSetResponse)

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

instance Prelude.NFData DescribeMetricSetResponse where
  rnf :: DescribeMetricSetResponse -> ()
rnf DescribeMetricSetResponse' {Int
Maybe Natural
Maybe [MetricSetDimensionFilter]
Maybe (NonEmpty Text)
Maybe (NonEmpty Metric)
Maybe Text
Maybe POSIX
Maybe Frequency
Maybe TimestampColumn
Maybe MetricSource
httpStatus :: Int
timezone :: Maybe Text
timestampColumn :: Maybe TimestampColumn
offset :: Maybe Natural
metricSource :: Maybe MetricSource
metricSetName :: Maybe Text
metricSetFrequency :: Maybe Frequency
metricSetDescription :: Maybe Text
metricSetArn :: Maybe Text
metricList :: Maybe (NonEmpty Metric)
lastModificationTime :: Maybe POSIX
dimensionList :: Maybe (NonEmpty Text)
dimensionFilterList :: Maybe [MetricSetDimensionFilter]
creationTime :: Maybe POSIX
anomalyDetectorArn :: Maybe Text
$sel:httpStatus:DescribeMetricSetResponse' :: DescribeMetricSetResponse -> Int
$sel:timezone:DescribeMetricSetResponse' :: DescribeMetricSetResponse -> Maybe Text
$sel:timestampColumn:DescribeMetricSetResponse' :: DescribeMetricSetResponse -> Maybe TimestampColumn
$sel:offset:DescribeMetricSetResponse' :: DescribeMetricSetResponse -> Maybe Natural
$sel:metricSource:DescribeMetricSetResponse' :: DescribeMetricSetResponse -> Maybe MetricSource
$sel:metricSetName:DescribeMetricSetResponse' :: DescribeMetricSetResponse -> Maybe Text
$sel:metricSetFrequency:DescribeMetricSetResponse' :: DescribeMetricSetResponse -> Maybe Frequency
$sel:metricSetDescription:DescribeMetricSetResponse' :: DescribeMetricSetResponse -> Maybe Text
$sel:metricSetArn:DescribeMetricSetResponse' :: DescribeMetricSetResponse -> Maybe Text
$sel:metricList:DescribeMetricSetResponse' :: DescribeMetricSetResponse -> Maybe (NonEmpty Metric)
$sel:lastModificationTime:DescribeMetricSetResponse' :: DescribeMetricSetResponse -> Maybe POSIX
$sel:dimensionList:DescribeMetricSetResponse' :: DescribeMetricSetResponse -> Maybe (NonEmpty Text)
$sel:dimensionFilterList:DescribeMetricSetResponse' :: DescribeMetricSetResponse -> Maybe [MetricSetDimensionFilter]
$sel:creationTime:DescribeMetricSetResponse' :: DescribeMetricSetResponse -> Maybe POSIX
$sel:anomalyDetectorArn:DescribeMetricSetResponse' :: DescribeMetricSetResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
anomalyDetectorArn
      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 [MetricSetDimensionFilter]
dimensionFilterList
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty Text)
dimensionList
      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 (NonEmpty Metric)
metricList
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
metricSetArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
metricSetDescription
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Frequency
metricSetFrequency
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
metricSetName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe MetricSource
metricSource
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
offset
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TimestampColumn
timestampColumn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
timezone
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus