{-# 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.ListAnomalyGroupTimeSeries
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Gets a list of anomalous metrics for a measure in an anomaly group.
module Amazonka.LookoutMetrics.ListAnomalyGroupTimeSeries
  ( -- * Creating a Request
    ListAnomalyGroupTimeSeries (..),
    newListAnomalyGroupTimeSeries,

    -- * Request Lenses
    listAnomalyGroupTimeSeries_maxResults,
    listAnomalyGroupTimeSeries_nextToken,
    listAnomalyGroupTimeSeries_anomalyDetectorArn,
    listAnomalyGroupTimeSeries_anomalyGroupId,
    listAnomalyGroupTimeSeries_metricName,

    -- * Destructuring the Response
    ListAnomalyGroupTimeSeriesResponse (..),
    newListAnomalyGroupTimeSeriesResponse,

    -- * Response Lenses
    listAnomalyGroupTimeSeriesResponse_anomalyGroupId,
    listAnomalyGroupTimeSeriesResponse_metricName,
    listAnomalyGroupTimeSeriesResponse_nextToken,
    listAnomalyGroupTimeSeriesResponse_timeSeriesList,
    listAnomalyGroupTimeSeriesResponse_timestampList,
    listAnomalyGroupTimeSeriesResponse_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:/ 'newListAnomalyGroupTimeSeries' smart constructor.
data ListAnomalyGroupTimeSeries = ListAnomalyGroupTimeSeries'
  { -- | The maximum number of results to return.
    ListAnomalyGroupTimeSeries -> Maybe Natural
maxResults :: Prelude.Maybe Prelude.Natural,
    -- | Specify the pagination token that\'s returned by a previous request to
    -- retrieve the next page of results.
    ListAnomalyGroupTimeSeries -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the anomaly detector.
    ListAnomalyGroupTimeSeries -> Text
anomalyDetectorArn :: Prelude.Text,
    -- | The ID of the anomaly group.
    ListAnomalyGroupTimeSeries -> Text
anomalyGroupId :: Prelude.Text,
    -- | The name of the measure field.
    ListAnomalyGroupTimeSeries -> Text
metricName :: Prelude.Text
  }
  deriving (ListAnomalyGroupTimeSeries -> ListAnomalyGroupTimeSeries -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListAnomalyGroupTimeSeries -> ListAnomalyGroupTimeSeries -> Bool
$c/= :: ListAnomalyGroupTimeSeries -> ListAnomalyGroupTimeSeries -> Bool
== :: ListAnomalyGroupTimeSeries -> ListAnomalyGroupTimeSeries -> Bool
$c== :: ListAnomalyGroupTimeSeries -> ListAnomalyGroupTimeSeries -> Bool
Prelude.Eq, ReadPrec [ListAnomalyGroupTimeSeries]
ReadPrec ListAnomalyGroupTimeSeries
Int -> ReadS ListAnomalyGroupTimeSeries
ReadS [ListAnomalyGroupTimeSeries]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListAnomalyGroupTimeSeries]
$creadListPrec :: ReadPrec [ListAnomalyGroupTimeSeries]
readPrec :: ReadPrec ListAnomalyGroupTimeSeries
$creadPrec :: ReadPrec ListAnomalyGroupTimeSeries
readList :: ReadS [ListAnomalyGroupTimeSeries]
$creadList :: ReadS [ListAnomalyGroupTimeSeries]
readsPrec :: Int -> ReadS ListAnomalyGroupTimeSeries
$creadsPrec :: Int -> ReadS ListAnomalyGroupTimeSeries
Prelude.Read, Int -> ListAnomalyGroupTimeSeries -> ShowS
[ListAnomalyGroupTimeSeries] -> ShowS
ListAnomalyGroupTimeSeries -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListAnomalyGroupTimeSeries] -> ShowS
$cshowList :: [ListAnomalyGroupTimeSeries] -> ShowS
show :: ListAnomalyGroupTimeSeries -> String
$cshow :: ListAnomalyGroupTimeSeries -> String
showsPrec :: Int -> ListAnomalyGroupTimeSeries -> ShowS
$cshowsPrec :: Int -> ListAnomalyGroupTimeSeries -> ShowS
Prelude.Show, forall x.
Rep ListAnomalyGroupTimeSeries x -> ListAnomalyGroupTimeSeries
forall x.
ListAnomalyGroupTimeSeries -> Rep ListAnomalyGroupTimeSeries x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListAnomalyGroupTimeSeries x -> ListAnomalyGroupTimeSeries
$cfrom :: forall x.
ListAnomalyGroupTimeSeries -> Rep ListAnomalyGroupTimeSeries x
Prelude.Generic)

-- |
-- Create a value of 'ListAnomalyGroupTimeSeries' 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:
--
-- 'maxResults', 'listAnomalyGroupTimeSeries_maxResults' - The maximum number of results to return.
--
-- 'nextToken', 'listAnomalyGroupTimeSeries_nextToken' - Specify the pagination token that\'s returned by a previous request to
-- retrieve the next page of results.
--
-- 'anomalyDetectorArn', 'listAnomalyGroupTimeSeries_anomalyDetectorArn' - The Amazon Resource Name (ARN) of the anomaly detector.
--
-- 'anomalyGroupId', 'listAnomalyGroupTimeSeries_anomalyGroupId' - The ID of the anomaly group.
--
-- 'metricName', 'listAnomalyGroupTimeSeries_metricName' - The name of the measure field.
newListAnomalyGroupTimeSeries ::
  -- | 'anomalyDetectorArn'
  Prelude.Text ->
  -- | 'anomalyGroupId'
  Prelude.Text ->
  -- | 'metricName'
  Prelude.Text ->
  ListAnomalyGroupTimeSeries
newListAnomalyGroupTimeSeries :: Text -> Text -> Text -> ListAnomalyGroupTimeSeries
newListAnomalyGroupTimeSeries
  Text
pAnomalyDetectorArn_
  Text
pAnomalyGroupId_
  Text
pMetricName_ =
    ListAnomalyGroupTimeSeries'
      { $sel:maxResults:ListAnomalyGroupTimeSeries' :: Maybe Natural
maxResults =
          forall a. Maybe a
Prelude.Nothing,
        $sel:nextToken:ListAnomalyGroupTimeSeries' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
        $sel:anomalyDetectorArn:ListAnomalyGroupTimeSeries' :: Text
anomalyDetectorArn = Text
pAnomalyDetectorArn_,
        $sel:anomalyGroupId:ListAnomalyGroupTimeSeries' :: Text
anomalyGroupId = Text
pAnomalyGroupId_,
        $sel:metricName:ListAnomalyGroupTimeSeries' :: Text
metricName = Text
pMetricName_
      }

-- | The maximum number of results to return.
listAnomalyGroupTimeSeries_maxResults :: Lens.Lens' ListAnomalyGroupTimeSeries (Prelude.Maybe Prelude.Natural)
listAnomalyGroupTimeSeries_maxResults :: Lens' ListAnomalyGroupTimeSeries (Maybe Natural)
listAnomalyGroupTimeSeries_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAnomalyGroupTimeSeries' {Maybe Natural
maxResults :: Maybe Natural
$sel:maxResults:ListAnomalyGroupTimeSeries' :: ListAnomalyGroupTimeSeries -> Maybe Natural
maxResults} -> Maybe Natural
maxResults) (\s :: ListAnomalyGroupTimeSeries
s@ListAnomalyGroupTimeSeries' {} Maybe Natural
a -> ListAnomalyGroupTimeSeries
s {$sel:maxResults:ListAnomalyGroupTimeSeries' :: Maybe Natural
maxResults = Maybe Natural
a} :: ListAnomalyGroupTimeSeries)

-- | Specify the pagination token that\'s returned by a previous request to
-- retrieve the next page of results.
listAnomalyGroupTimeSeries_nextToken :: Lens.Lens' ListAnomalyGroupTimeSeries (Prelude.Maybe Prelude.Text)
listAnomalyGroupTimeSeries_nextToken :: Lens' ListAnomalyGroupTimeSeries (Maybe Text)
listAnomalyGroupTimeSeries_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAnomalyGroupTimeSeries' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListAnomalyGroupTimeSeries' :: ListAnomalyGroupTimeSeries -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListAnomalyGroupTimeSeries
s@ListAnomalyGroupTimeSeries' {} Maybe Text
a -> ListAnomalyGroupTimeSeries
s {$sel:nextToken:ListAnomalyGroupTimeSeries' :: Maybe Text
nextToken = Maybe Text
a} :: ListAnomalyGroupTimeSeries)

-- | The Amazon Resource Name (ARN) of the anomaly detector.
listAnomalyGroupTimeSeries_anomalyDetectorArn :: Lens.Lens' ListAnomalyGroupTimeSeries Prelude.Text
listAnomalyGroupTimeSeries_anomalyDetectorArn :: Lens' ListAnomalyGroupTimeSeries Text
listAnomalyGroupTimeSeries_anomalyDetectorArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAnomalyGroupTimeSeries' {Text
anomalyDetectorArn :: Text
$sel:anomalyDetectorArn:ListAnomalyGroupTimeSeries' :: ListAnomalyGroupTimeSeries -> Text
anomalyDetectorArn} -> Text
anomalyDetectorArn) (\s :: ListAnomalyGroupTimeSeries
s@ListAnomalyGroupTimeSeries' {} Text
a -> ListAnomalyGroupTimeSeries
s {$sel:anomalyDetectorArn:ListAnomalyGroupTimeSeries' :: Text
anomalyDetectorArn = Text
a} :: ListAnomalyGroupTimeSeries)

-- | The ID of the anomaly group.
listAnomalyGroupTimeSeries_anomalyGroupId :: Lens.Lens' ListAnomalyGroupTimeSeries Prelude.Text
listAnomalyGroupTimeSeries_anomalyGroupId :: Lens' ListAnomalyGroupTimeSeries Text
listAnomalyGroupTimeSeries_anomalyGroupId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAnomalyGroupTimeSeries' {Text
anomalyGroupId :: Text
$sel:anomalyGroupId:ListAnomalyGroupTimeSeries' :: ListAnomalyGroupTimeSeries -> Text
anomalyGroupId} -> Text
anomalyGroupId) (\s :: ListAnomalyGroupTimeSeries
s@ListAnomalyGroupTimeSeries' {} Text
a -> ListAnomalyGroupTimeSeries
s {$sel:anomalyGroupId:ListAnomalyGroupTimeSeries' :: Text
anomalyGroupId = Text
a} :: ListAnomalyGroupTimeSeries)

-- | The name of the measure field.
listAnomalyGroupTimeSeries_metricName :: Lens.Lens' ListAnomalyGroupTimeSeries Prelude.Text
listAnomalyGroupTimeSeries_metricName :: Lens' ListAnomalyGroupTimeSeries Text
listAnomalyGroupTimeSeries_metricName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAnomalyGroupTimeSeries' {Text
metricName :: Text
$sel:metricName:ListAnomalyGroupTimeSeries' :: ListAnomalyGroupTimeSeries -> Text
metricName} -> Text
metricName) (\s :: ListAnomalyGroupTimeSeries
s@ListAnomalyGroupTimeSeries' {} Text
a -> ListAnomalyGroupTimeSeries
s {$sel:metricName:ListAnomalyGroupTimeSeries' :: Text
metricName = Text
a} :: ListAnomalyGroupTimeSeries)

instance Core.AWSRequest ListAnomalyGroupTimeSeries where
  type
    AWSResponse ListAnomalyGroupTimeSeries =
      ListAnomalyGroupTimeSeriesResponse
  request :: (Service -> Service)
-> ListAnomalyGroupTimeSeries -> Request ListAnomalyGroupTimeSeries
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 ListAnomalyGroupTimeSeries
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse ListAnomalyGroupTimeSeries)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe [TimeSeries]
-> Maybe [Text]
-> Int
-> ListAnomalyGroupTimeSeriesResponse
ListAnomalyGroupTimeSeriesResponse'
            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
"AnomalyGroupId")
            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
"MetricName")
            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
"NextToken")
            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
"TimeSeriesList" 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
"TimestampList" 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.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable ListAnomalyGroupTimeSeries where
  hashWithSalt :: Int -> ListAnomalyGroupTimeSeries -> Int
hashWithSalt Int
_salt ListAnomalyGroupTimeSeries' {Maybe Natural
Maybe Text
Text
metricName :: Text
anomalyGroupId :: Text
anomalyDetectorArn :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
$sel:metricName:ListAnomalyGroupTimeSeries' :: ListAnomalyGroupTimeSeries -> Text
$sel:anomalyGroupId:ListAnomalyGroupTimeSeries' :: ListAnomalyGroupTimeSeries -> Text
$sel:anomalyDetectorArn:ListAnomalyGroupTimeSeries' :: ListAnomalyGroupTimeSeries -> Text
$sel:nextToken:ListAnomalyGroupTimeSeries' :: ListAnomalyGroupTimeSeries -> Maybe Text
$sel:maxResults:ListAnomalyGroupTimeSeries' :: ListAnomalyGroupTimeSeries -> Maybe Natural
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
maxResults
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
anomalyDetectorArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
anomalyGroupId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
metricName

instance Prelude.NFData ListAnomalyGroupTimeSeries where
  rnf :: ListAnomalyGroupTimeSeries -> ()
rnf ListAnomalyGroupTimeSeries' {Maybe Natural
Maybe Text
Text
metricName :: Text
anomalyGroupId :: Text
anomalyDetectorArn :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
$sel:metricName:ListAnomalyGroupTimeSeries' :: ListAnomalyGroupTimeSeries -> Text
$sel:anomalyGroupId:ListAnomalyGroupTimeSeries' :: ListAnomalyGroupTimeSeries -> Text
$sel:anomalyDetectorArn:ListAnomalyGroupTimeSeries' :: ListAnomalyGroupTimeSeries -> Text
$sel:nextToken:ListAnomalyGroupTimeSeries' :: ListAnomalyGroupTimeSeries -> Maybe Text
$sel:maxResults:ListAnomalyGroupTimeSeries' :: ListAnomalyGroupTimeSeries -> Maybe Natural
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
maxResults
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
anomalyDetectorArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
anomalyGroupId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
metricName

instance Data.ToHeaders ListAnomalyGroupTimeSeries where
  toHeaders :: ListAnomalyGroupTimeSeries -> 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 ListAnomalyGroupTimeSeries where
  toJSON :: ListAnomalyGroupTimeSeries -> Value
toJSON ListAnomalyGroupTimeSeries' {Maybe Natural
Maybe Text
Text
metricName :: Text
anomalyGroupId :: Text
anomalyDetectorArn :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
$sel:metricName:ListAnomalyGroupTimeSeries' :: ListAnomalyGroupTimeSeries -> Text
$sel:anomalyGroupId:ListAnomalyGroupTimeSeries' :: ListAnomalyGroupTimeSeries -> Text
$sel:anomalyDetectorArn:ListAnomalyGroupTimeSeries' :: ListAnomalyGroupTimeSeries -> Text
$sel:nextToken:ListAnomalyGroupTimeSeries' :: ListAnomalyGroupTimeSeries -> Maybe Text
$sel:maxResults:ListAnomalyGroupTimeSeries' :: ListAnomalyGroupTimeSeries -> Maybe Natural
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"MaxResults" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
maxResults,
            (Key
"NextToken" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
nextToken,
            forall a. a -> Maybe a
Prelude.Just
              (Key
"AnomalyDetectorArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
anomalyDetectorArn),
            forall a. a -> Maybe a
Prelude.Just
              (Key
"AnomalyGroupId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
anomalyGroupId),
            forall a. a -> Maybe a
Prelude.Just (Key
"MetricName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
metricName)
          ]
      )

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

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

-- | /See:/ 'newListAnomalyGroupTimeSeriesResponse' smart constructor.
data ListAnomalyGroupTimeSeriesResponse = ListAnomalyGroupTimeSeriesResponse'
  { -- | The ID of the anomaly group.
    ListAnomalyGroupTimeSeriesResponse -> Maybe Text
anomalyGroupId :: Prelude.Maybe Prelude.Text,
    -- | The name of the measure field.
    ListAnomalyGroupTimeSeriesResponse -> Maybe Text
metricName :: Prelude.Maybe Prelude.Text,
    -- | The pagination token that\'s included if more results are available.
    ListAnomalyGroupTimeSeriesResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | A list of anomalous metrics.
    ListAnomalyGroupTimeSeriesResponse -> Maybe [TimeSeries]
timeSeriesList :: Prelude.Maybe [TimeSeries],
    -- | Timestamps for the anomalous metrics.
    ListAnomalyGroupTimeSeriesResponse -> Maybe [Text]
timestampList :: Prelude.Maybe [Prelude.Text],
    -- | The response's http status code.
    ListAnomalyGroupTimeSeriesResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (ListAnomalyGroupTimeSeriesResponse
-> ListAnomalyGroupTimeSeriesResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListAnomalyGroupTimeSeriesResponse
-> ListAnomalyGroupTimeSeriesResponse -> Bool
$c/= :: ListAnomalyGroupTimeSeriesResponse
-> ListAnomalyGroupTimeSeriesResponse -> Bool
== :: ListAnomalyGroupTimeSeriesResponse
-> ListAnomalyGroupTimeSeriesResponse -> Bool
$c== :: ListAnomalyGroupTimeSeriesResponse
-> ListAnomalyGroupTimeSeriesResponse -> Bool
Prelude.Eq, ReadPrec [ListAnomalyGroupTimeSeriesResponse]
ReadPrec ListAnomalyGroupTimeSeriesResponse
Int -> ReadS ListAnomalyGroupTimeSeriesResponse
ReadS [ListAnomalyGroupTimeSeriesResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListAnomalyGroupTimeSeriesResponse]
$creadListPrec :: ReadPrec [ListAnomalyGroupTimeSeriesResponse]
readPrec :: ReadPrec ListAnomalyGroupTimeSeriesResponse
$creadPrec :: ReadPrec ListAnomalyGroupTimeSeriesResponse
readList :: ReadS [ListAnomalyGroupTimeSeriesResponse]
$creadList :: ReadS [ListAnomalyGroupTimeSeriesResponse]
readsPrec :: Int -> ReadS ListAnomalyGroupTimeSeriesResponse
$creadsPrec :: Int -> ReadS ListAnomalyGroupTimeSeriesResponse
Prelude.Read, Int -> ListAnomalyGroupTimeSeriesResponse -> ShowS
[ListAnomalyGroupTimeSeriesResponse] -> ShowS
ListAnomalyGroupTimeSeriesResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListAnomalyGroupTimeSeriesResponse] -> ShowS
$cshowList :: [ListAnomalyGroupTimeSeriesResponse] -> ShowS
show :: ListAnomalyGroupTimeSeriesResponse -> String
$cshow :: ListAnomalyGroupTimeSeriesResponse -> String
showsPrec :: Int -> ListAnomalyGroupTimeSeriesResponse -> ShowS
$cshowsPrec :: Int -> ListAnomalyGroupTimeSeriesResponse -> ShowS
Prelude.Show, forall x.
Rep ListAnomalyGroupTimeSeriesResponse x
-> ListAnomalyGroupTimeSeriesResponse
forall x.
ListAnomalyGroupTimeSeriesResponse
-> Rep ListAnomalyGroupTimeSeriesResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListAnomalyGroupTimeSeriesResponse x
-> ListAnomalyGroupTimeSeriesResponse
$cfrom :: forall x.
ListAnomalyGroupTimeSeriesResponse
-> Rep ListAnomalyGroupTimeSeriesResponse x
Prelude.Generic)

-- |
-- Create a value of 'ListAnomalyGroupTimeSeriesResponse' 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:
--
-- 'anomalyGroupId', 'listAnomalyGroupTimeSeriesResponse_anomalyGroupId' - The ID of the anomaly group.
--
-- 'metricName', 'listAnomalyGroupTimeSeriesResponse_metricName' - The name of the measure field.
--
-- 'nextToken', 'listAnomalyGroupTimeSeriesResponse_nextToken' - The pagination token that\'s included if more results are available.
--
-- 'timeSeriesList', 'listAnomalyGroupTimeSeriesResponse_timeSeriesList' - A list of anomalous metrics.
--
-- 'timestampList', 'listAnomalyGroupTimeSeriesResponse_timestampList' - Timestamps for the anomalous metrics.
--
-- 'httpStatus', 'listAnomalyGroupTimeSeriesResponse_httpStatus' - The response's http status code.
newListAnomalyGroupTimeSeriesResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ListAnomalyGroupTimeSeriesResponse
newListAnomalyGroupTimeSeriesResponse :: Int -> ListAnomalyGroupTimeSeriesResponse
newListAnomalyGroupTimeSeriesResponse Int
pHttpStatus_ =
  ListAnomalyGroupTimeSeriesResponse'
    { $sel:anomalyGroupId:ListAnomalyGroupTimeSeriesResponse' :: Maybe Text
anomalyGroupId =
        forall a. Maybe a
Prelude.Nothing,
      $sel:metricName:ListAnomalyGroupTimeSeriesResponse' :: Maybe Text
metricName = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:ListAnomalyGroupTimeSeriesResponse' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:timeSeriesList:ListAnomalyGroupTimeSeriesResponse' :: Maybe [TimeSeries]
timeSeriesList = forall a. Maybe a
Prelude.Nothing,
      $sel:timestampList:ListAnomalyGroupTimeSeriesResponse' :: Maybe [Text]
timestampList = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ListAnomalyGroupTimeSeriesResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The ID of the anomaly group.
listAnomalyGroupTimeSeriesResponse_anomalyGroupId :: Lens.Lens' ListAnomalyGroupTimeSeriesResponse (Prelude.Maybe Prelude.Text)
listAnomalyGroupTimeSeriesResponse_anomalyGroupId :: Lens' ListAnomalyGroupTimeSeriesResponse (Maybe Text)
listAnomalyGroupTimeSeriesResponse_anomalyGroupId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAnomalyGroupTimeSeriesResponse' {Maybe Text
anomalyGroupId :: Maybe Text
$sel:anomalyGroupId:ListAnomalyGroupTimeSeriesResponse' :: ListAnomalyGroupTimeSeriesResponse -> Maybe Text
anomalyGroupId} -> Maybe Text
anomalyGroupId) (\s :: ListAnomalyGroupTimeSeriesResponse
s@ListAnomalyGroupTimeSeriesResponse' {} Maybe Text
a -> ListAnomalyGroupTimeSeriesResponse
s {$sel:anomalyGroupId:ListAnomalyGroupTimeSeriesResponse' :: Maybe Text
anomalyGroupId = Maybe Text
a} :: ListAnomalyGroupTimeSeriesResponse)

-- | The name of the measure field.
listAnomalyGroupTimeSeriesResponse_metricName :: Lens.Lens' ListAnomalyGroupTimeSeriesResponse (Prelude.Maybe Prelude.Text)
listAnomalyGroupTimeSeriesResponse_metricName :: Lens' ListAnomalyGroupTimeSeriesResponse (Maybe Text)
listAnomalyGroupTimeSeriesResponse_metricName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAnomalyGroupTimeSeriesResponse' {Maybe Text
metricName :: Maybe Text
$sel:metricName:ListAnomalyGroupTimeSeriesResponse' :: ListAnomalyGroupTimeSeriesResponse -> Maybe Text
metricName} -> Maybe Text
metricName) (\s :: ListAnomalyGroupTimeSeriesResponse
s@ListAnomalyGroupTimeSeriesResponse' {} Maybe Text
a -> ListAnomalyGroupTimeSeriesResponse
s {$sel:metricName:ListAnomalyGroupTimeSeriesResponse' :: Maybe Text
metricName = Maybe Text
a} :: ListAnomalyGroupTimeSeriesResponse)

-- | The pagination token that\'s included if more results are available.
listAnomalyGroupTimeSeriesResponse_nextToken :: Lens.Lens' ListAnomalyGroupTimeSeriesResponse (Prelude.Maybe Prelude.Text)
listAnomalyGroupTimeSeriesResponse_nextToken :: Lens' ListAnomalyGroupTimeSeriesResponse (Maybe Text)
listAnomalyGroupTimeSeriesResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAnomalyGroupTimeSeriesResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListAnomalyGroupTimeSeriesResponse' :: ListAnomalyGroupTimeSeriesResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListAnomalyGroupTimeSeriesResponse
s@ListAnomalyGroupTimeSeriesResponse' {} Maybe Text
a -> ListAnomalyGroupTimeSeriesResponse
s {$sel:nextToken:ListAnomalyGroupTimeSeriesResponse' :: Maybe Text
nextToken = Maybe Text
a} :: ListAnomalyGroupTimeSeriesResponse)

-- | A list of anomalous metrics.
listAnomalyGroupTimeSeriesResponse_timeSeriesList :: Lens.Lens' ListAnomalyGroupTimeSeriesResponse (Prelude.Maybe [TimeSeries])
listAnomalyGroupTimeSeriesResponse_timeSeriesList :: Lens' ListAnomalyGroupTimeSeriesResponse (Maybe [TimeSeries])
listAnomalyGroupTimeSeriesResponse_timeSeriesList = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAnomalyGroupTimeSeriesResponse' {Maybe [TimeSeries]
timeSeriesList :: Maybe [TimeSeries]
$sel:timeSeriesList:ListAnomalyGroupTimeSeriesResponse' :: ListAnomalyGroupTimeSeriesResponse -> Maybe [TimeSeries]
timeSeriesList} -> Maybe [TimeSeries]
timeSeriesList) (\s :: ListAnomalyGroupTimeSeriesResponse
s@ListAnomalyGroupTimeSeriesResponse' {} Maybe [TimeSeries]
a -> ListAnomalyGroupTimeSeriesResponse
s {$sel:timeSeriesList:ListAnomalyGroupTimeSeriesResponse' :: Maybe [TimeSeries]
timeSeriesList = Maybe [TimeSeries]
a} :: ListAnomalyGroupTimeSeriesResponse) 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

-- | Timestamps for the anomalous metrics.
listAnomalyGroupTimeSeriesResponse_timestampList :: Lens.Lens' ListAnomalyGroupTimeSeriesResponse (Prelude.Maybe [Prelude.Text])
listAnomalyGroupTimeSeriesResponse_timestampList :: Lens' ListAnomalyGroupTimeSeriesResponse (Maybe [Text])
listAnomalyGroupTimeSeriesResponse_timestampList = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAnomalyGroupTimeSeriesResponse' {Maybe [Text]
timestampList :: Maybe [Text]
$sel:timestampList:ListAnomalyGroupTimeSeriesResponse' :: ListAnomalyGroupTimeSeriesResponse -> Maybe [Text]
timestampList} -> Maybe [Text]
timestampList) (\s :: ListAnomalyGroupTimeSeriesResponse
s@ListAnomalyGroupTimeSeriesResponse' {} Maybe [Text]
a -> ListAnomalyGroupTimeSeriesResponse
s {$sel:timestampList:ListAnomalyGroupTimeSeriesResponse' :: Maybe [Text]
timestampList = Maybe [Text]
a} :: ListAnomalyGroupTimeSeriesResponse) 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 response's http status code.
listAnomalyGroupTimeSeriesResponse_httpStatus :: Lens.Lens' ListAnomalyGroupTimeSeriesResponse Prelude.Int
listAnomalyGroupTimeSeriesResponse_httpStatus :: Lens' ListAnomalyGroupTimeSeriesResponse Int
listAnomalyGroupTimeSeriesResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListAnomalyGroupTimeSeriesResponse' {Int
httpStatus :: Int
$sel:httpStatus:ListAnomalyGroupTimeSeriesResponse' :: ListAnomalyGroupTimeSeriesResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: ListAnomalyGroupTimeSeriesResponse
s@ListAnomalyGroupTimeSeriesResponse' {} Int
a -> ListAnomalyGroupTimeSeriesResponse
s {$sel:httpStatus:ListAnomalyGroupTimeSeriesResponse' :: Int
httpStatus = Int
a} :: ListAnomalyGroupTimeSeriesResponse)

instance
  Prelude.NFData
    ListAnomalyGroupTimeSeriesResponse
  where
  rnf :: ListAnomalyGroupTimeSeriesResponse -> ()
rnf ListAnomalyGroupTimeSeriesResponse' {Int
Maybe [Text]
Maybe [TimeSeries]
Maybe Text
httpStatus :: Int
timestampList :: Maybe [Text]
timeSeriesList :: Maybe [TimeSeries]
nextToken :: Maybe Text
metricName :: Maybe Text
anomalyGroupId :: Maybe Text
$sel:httpStatus:ListAnomalyGroupTimeSeriesResponse' :: ListAnomalyGroupTimeSeriesResponse -> Int
$sel:timestampList:ListAnomalyGroupTimeSeriesResponse' :: ListAnomalyGroupTimeSeriesResponse -> Maybe [Text]
$sel:timeSeriesList:ListAnomalyGroupTimeSeriesResponse' :: ListAnomalyGroupTimeSeriesResponse -> Maybe [TimeSeries]
$sel:nextToken:ListAnomalyGroupTimeSeriesResponse' :: ListAnomalyGroupTimeSeriesResponse -> Maybe Text
$sel:metricName:ListAnomalyGroupTimeSeriesResponse' :: ListAnomalyGroupTimeSeriesResponse -> Maybe Text
$sel:anomalyGroupId:ListAnomalyGroupTimeSeriesResponse' :: ListAnomalyGroupTimeSeriesResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
anomalyGroupId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
metricName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [TimeSeries]
timeSeriesList
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
timestampList
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus