{-# 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.Rum.GetAppMonitorData
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Retrieves the raw performance events that RUM has collected from your
-- web application, so that you can do your own processing or analysis of
-- this data.
--
-- This operation returns paginated results.
module Amazonka.Rum.GetAppMonitorData
  ( -- * Creating a Request
    GetAppMonitorData (..),
    newGetAppMonitorData,

    -- * Request Lenses
    getAppMonitorData_filters,
    getAppMonitorData_maxResults,
    getAppMonitorData_nextToken,
    getAppMonitorData_name,
    getAppMonitorData_timeRange,

    -- * Destructuring the Response
    GetAppMonitorDataResponse (..),
    newGetAppMonitorDataResponse,

    -- * Response Lenses
    getAppMonitorDataResponse_events,
    getAppMonitorDataResponse_nextToken,
    getAppMonitorDataResponse_httpStatus,
  )
where

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

-- | /See:/ 'newGetAppMonitorData' smart constructor.
data GetAppMonitorData = GetAppMonitorData'
  { -- | An array of structures that you can use to filter the results to those
    -- that match one or more sets of key-value pairs that you specify.
    GetAppMonitorData -> Maybe [QueryFilter]
filters :: Prelude.Maybe [QueryFilter],
    -- | The maximum number of results to return in one operation.
    GetAppMonitorData -> Maybe Natural
maxResults :: Prelude.Maybe Prelude.Natural,
    -- | Use the token returned by the previous operation to request the next
    -- page of results.
    GetAppMonitorData -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The name of the app monitor that collected the data that you want to
    -- retrieve.
    GetAppMonitorData -> Text
name :: Prelude.Text,
    -- | A structure that defines the time range that you want to retrieve
    -- results from.
    GetAppMonitorData -> TimeRange
timeRange :: TimeRange
  }
  deriving (GetAppMonitorData -> GetAppMonitorData -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetAppMonitorData -> GetAppMonitorData -> Bool
$c/= :: GetAppMonitorData -> GetAppMonitorData -> Bool
== :: GetAppMonitorData -> GetAppMonitorData -> Bool
$c== :: GetAppMonitorData -> GetAppMonitorData -> Bool
Prelude.Eq, ReadPrec [GetAppMonitorData]
ReadPrec GetAppMonitorData
Int -> ReadS GetAppMonitorData
ReadS [GetAppMonitorData]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetAppMonitorData]
$creadListPrec :: ReadPrec [GetAppMonitorData]
readPrec :: ReadPrec GetAppMonitorData
$creadPrec :: ReadPrec GetAppMonitorData
readList :: ReadS [GetAppMonitorData]
$creadList :: ReadS [GetAppMonitorData]
readsPrec :: Int -> ReadS GetAppMonitorData
$creadsPrec :: Int -> ReadS GetAppMonitorData
Prelude.Read, Int -> GetAppMonitorData -> ShowS
[GetAppMonitorData] -> ShowS
GetAppMonitorData -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetAppMonitorData] -> ShowS
$cshowList :: [GetAppMonitorData] -> ShowS
show :: GetAppMonitorData -> String
$cshow :: GetAppMonitorData -> String
showsPrec :: Int -> GetAppMonitorData -> ShowS
$cshowsPrec :: Int -> GetAppMonitorData -> ShowS
Prelude.Show, forall x. Rep GetAppMonitorData x -> GetAppMonitorData
forall x. GetAppMonitorData -> Rep GetAppMonitorData x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetAppMonitorData x -> GetAppMonitorData
$cfrom :: forall x. GetAppMonitorData -> Rep GetAppMonitorData x
Prelude.Generic)

-- |
-- Create a value of 'GetAppMonitorData' 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:
--
-- 'filters', 'getAppMonitorData_filters' - An array of structures that you can use to filter the results to those
-- that match one or more sets of key-value pairs that you specify.
--
-- 'maxResults', 'getAppMonitorData_maxResults' - The maximum number of results to return in one operation.
--
-- 'nextToken', 'getAppMonitorData_nextToken' - Use the token returned by the previous operation to request the next
-- page of results.
--
-- 'name', 'getAppMonitorData_name' - The name of the app monitor that collected the data that you want to
-- retrieve.
--
-- 'timeRange', 'getAppMonitorData_timeRange' - A structure that defines the time range that you want to retrieve
-- results from.
newGetAppMonitorData ::
  -- | 'name'
  Prelude.Text ->
  -- | 'timeRange'
  TimeRange ->
  GetAppMonitorData
newGetAppMonitorData :: Text -> TimeRange -> GetAppMonitorData
newGetAppMonitorData Text
pName_ TimeRange
pTimeRange_ =
  GetAppMonitorData'
    { $sel:filters:GetAppMonitorData' :: Maybe [QueryFilter]
filters = forall a. Maybe a
Prelude.Nothing,
      $sel:maxResults:GetAppMonitorData' :: Maybe Natural
maxResults = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:GetAppMonitorData' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:name:GetAppMonitorData' :: Text
name = Text
pName_,
      $sel:timeRange:GetAppMonitorData' :: TimeRange
timeRange = TimeRange
pTimeRange_
    }

-- | An array of structures that you can use to filter the results to those
-- that match one or more sets of key-value pairs that you specify.
getAppMonitorData_filters :: Lens.Lens' GetAppMonitorData (Prelude.Maybe [QueryFilter])
getAppMonitorData_filters :: Lens' GetAppMonitorData (Maybe [QueryFilter])
getAppMonitorData_filters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAppMonitorData' {Maybe [QueryFilter]
filters :: Maybe [QueryFilter]
$sel:filters:GetAppMonitorData' :: GetAppMonitorData -> Maybe [QueryFilter]
filters} -> Maybe [QueryFilter]
filters) (\s :: GetAppMonitorData
s@GetAppMonitorData' {} Maybe [QueryFilter]
a -> GetAppMonitorData
s {$sel:filters:GetAppMonitorData' :: Maybe [QueryFilter]
filters = Maybe [QueryFilter]
a} :: GetAppMonitorData) 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 maximum number of results to return in one operation.
getAppMonitorData_maxResults :: Lens.Lens' GetAppMonitorData (Prelude.Maybe Prelude.Natural)
getAppMonitorData_maxResults :: Lens' GetAppMonitorData (Maybe Natural)
getAppMonitorData_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAppMonitorData' {Maybe Natural
maxResults :: Maybe Natural
$sel:maxResults:GetAppMonitorData' :: GetAppMonitorData -> Maybe Natural
maxResults} -> Maybe Natural
maxResults) (\s :: GetAppMonitorData
s@GetAppMonitorData' {} Maybe Natural
a -> GetAppMonitorData
s {$sel:maxResults:GetAppMonitorData' :: Maybe Natural
maxResults = Maybe Natural
a} :: GetAppMonitorData)

-- | Use the token returned by the previous operation to request the next
-- page of results.
getAppMonitorData_nextToken :: Lens.Lens' GetAppMonitorData (Prelude.Maybe Prelude.Text)
getAppMonitorData_nextToken :: Lens' GetAppMonitorData (Maybe Text)
getAppMonitorData_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAppMonitorData' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:GetAppMonitorData' :: GetAppMonitorData -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: GetAppMonitorData
s@GetAppMonitorData' {} Maybe Text
a -> GetAppMonitorData
s {$sel:nextToken:GetAppMonitorData' :: Maybe Text
nextToken = Maybe Text
a} :: GetAppMonitorData)

-- | The name of the app monitor that collected the data that you want to
-- retrieve.
getAppMonitorData_name :: Lens.Lens' GetAppMonitorData Prelude.Text
getAppMonitorData_name :: Lens' GetAppMonitorData Text
getAppMonitorData_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAppMonitorData' {Text
name :: Text
$sel:name:GetAppMonitorData' :: GetAppMonitorData -> Text
name} -> Text
name) (\s :: GetAppMonitorData
s@GetAppMonitorData' {} Text
a -> GetAppMonitorData
s {$sel:name:GetAppMonitorData' :: Text
name = Text
a} :: GetAppMonitorData)

-- | A structure that defines the time range that you want to retrieve
-- results from.
getAppMonitorData_timeRange :: Lens.Lens' GetAppMonitorData TimeRange
getAppMonitorData_timeRange :: Lens' GetAppMonitorData TimeRange
getAppMonitorData_timeRange = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAppMonitorData' {TimeRange
timeRange :: TimeRange
$sel:timeRange:GetAppMonitorData' :: GetAppMonitorData -> TimeRange
timeRange} -> TimeRange
timeRange) (\s :: GetAppMonitorData
s@GetAppMonitorData' {} TimeRange
a -> GetAppMonitorData
s {$sel:timeRange:GetAppMonitorData' :: TimeRange
timeRange = TimeRange
a} :: GetAppMonitorData)

instance Core.AWSPager GetAppMonitorData where
  page :: GetAppMonitorData
-> AWSResponse GetAppMonitorData -> Maybe GetAppMonitorData
page GetAppMonitorData
rq AWSResponse GetAppMonitorData
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse GetAppMonitorData
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' GetAppMonitorDataResponse (Maybe Text)
getAppMonitorDataResponse_nextToken
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse GetAppMonitorData
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' GetAppMonitorDataResponse (Maybe [Text])
getAppMonitorDataResponse_events
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | Bool
Prelude.otherwise =
        forall a. a -> Maybe a
Prelude.Just
          forall a b. (a -> b) -> a -> b
Prelude.$ GetAppMonitorData
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' GetAppMonitorData (Maybe Text)
getAppMonitorData_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse GetAppMonitorData
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' GetAppMonitorDataResponse (Maybe Text)
getAppMonitorDataResponse_nextToken
          forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just

instance Core.AWSRequest GetAppMonitorData where
  type
    AWSResponse GetAppMonitorData =
      GetAppMonitorDataResponse
  request :: (Service -> Service)
-> GetAppMonitorData -> Request GetAppMonitorData
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 GetAppMonitorData
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse GetAppMonitorData)))
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 -> Int -> GetAppMonitorDataResponse
GetAppMonitorDataResponse'
            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
"Events" 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
"NextToken")
            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 GetAppMonitorData where
  hashWithSalt :: Int -> GetAppMonitorData -> Int
hashWithSalt Int
_salt GetAppMonitorData' {Maybe Natural
Maybe [QueryFilter]
Maybe Text
Text
TimeRange
timeRange :: TimeRange
name :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
filters :: Maybe [QueryFilter]
$sel:timeRange:GetAppMonitorData' :: GetAppMonitorData -> TimeRange
$sel:name:GetAppMonitorData' :: GetAppMonitorData -> Text
$sel:nextToken:GetAppMonitorData' :: GetAppMonitorData -> Maybe Text
$sel:maxResults:GetAppMonitorData' :: GetAppMonitorData -> Maybe Natural
$sel:filters:GetAppMonitorData' :: GetAppMonitorData -> Maybe [QueryFilter]
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [QueryFilter]
filters
      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
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` TimeRange
timeRange

instance Prelude.NFData GetAppMonitorData where
  rnf :: GetAppMonitorData -> ()
rnf GetAppMonitorData' {Maybe Natural
Maybe [QueryFilter]
Maybe Text
Text
TimeRange
timeRange :: TimeRange
name :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
filters :: Maybe [QueryFilter]
$sel:timeRange:GetAppMonitorData' :: GetAppMonitorData -> TimeRange
$sel:name:GetAppMonitorData' :: GetAppMonitorData -> Text
$sel:nextToken:GetAppMonitorData' :: GetAppMonitorData -> Maybe Text
$sel:maxResults:GetAppMonitorData' :: GetAppMonitorData -> Maybe Natural
$sel:filters:GetAppMonitorData' :: GetAppMonitorData -> Maybe [QueryFilter]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [QueryFilter]
filters
      seq :: forall a b. a -> b -> b
`Prelude.seq` 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
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf TimeRange
timeRange

instance Data.ToHeaders GetAppMonitorData where
  toHeaders :: GetAppMonitorData -> 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 GetAppMonitorData where
  toJSON :: GetAppMonitorData -> Value
toJSON GetAppMonitorData' {Maybe Natural
Maybe [QueryFilter]
Maybe Text
Text
TimeRange
timeRange :: TimeRange
name :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
filters :: Maybe [QueryFilter]
$sel:timeRange:GetAppMonitorData' :: GetAppMonitorData -> TimeRange
$sel:name:GetAppMonitorData' :: GetAppMonitorData -> Text
$sel:nextToken:GetAppMonitorData' :: GetAppMonitorData -> Maybe Text
$sel:maxResults:GetAppMonitorData' :: GetAppMonitorData -> Maybe Natural
$sel:filters:GetAppMonitorData' :: GetAppMonitorData -> Maybe [QueryFilter]
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"Filters" 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 [QueryFilter]
filters,
            (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
"TimeRange" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= TimeRange
timeRange)
          ]
      )

instance Data.ToPath GetAppMonitorData where
  toPath :: GetAppMonitorData -> ByteString
toPath GetAppMonitorData' {Maybe Natural
Maybe [QueryFilter]
Maybe Text
Text
TimeRange
timeRange :: TimeRange
name :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
filters :: Maybe [QueryFilter]
$sel:timeRange:GetAppMonitorData' :: GetAppMonitorData -> TimeRange
$sel:name:GetAppMonitorData' :: GetAppMonitorData -> Text
$sel:nextToken:GetAppMonitorData' :: GetAppMonitorData -> Maybe Text
$sel:maxResults:GetAppMonitorData' :: GetAppMonitorData -> Maybe Natural
$sel:filters:GetAppMonitorData' :: GetAppMonitorData -> Maybe [QueryFilter]
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/appmonitor/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
name, ByteString
"/data"]

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

-- | /See:/ 'newGetAppMonitorDataResponse' smart constructor.
data GetAppMonitorDataResponse = GetAppMonitorDataResponse'
  { -- | The events that RUM collected that match your request.
    GetAppMonitorDataResponse -> Maybe [Text]
events :: Prelude.Maybe [Prelude.Text],
    -- | A token that you can use in a subsequent operation to retrieve the next
    -- set of results.
    GetAppMonitorDataResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    GetAppMonitorDataResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetAppMonitorDataResponse -> GetAppMonitorDataResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetAppMonitorDataResponse -> GetAppMonitorDataResponse -> Bool
$c/= :: GetAppMonitorDataResponse -> GetAppMonitorDataResponse -> Bool
== :: GetAppMonitorDataResponse -> GetAppMonitorDataResponse -> Bool
$c== :: GetAppMonitorDataResponse -> GetAppMonitorDataResponse -> Bool
Prelude.Eq, ReadPrec [GetAppMonitorDataResponse]
ReadPrec GetAppMonitorDataResponse
Int -> ReadS GetAppMonitorDataResponse
ReadS [GetAppMonitorDataResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetAppMonitorDataResponse]
$creadListPrec :: ReadPrec [GetAppMonitorDataResponse]
readPrec :: ReadPrec GetAppMonitorDataResponse
$creadPrec :: ReadPrec GetAppMonitorDataResponse
readList :: ReadS [GetAppMonitorDataResponse]
$creadList :: ReadS [GetAppMonitorDataResponse]
readsPrec :: Int -> ReadS GetAppMonitorDataResponse
$creadsPrec :: Int -> ReadS GetAppMonitorDataResponse
Prelude.Read, Int -> GetAppMonitorDataResponse -> ShowS
[GetAppMonitorDataResponse] -> ShowS
GetAppMonitorDataResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetAppMonitorDataResponse] -> ShowS
$cshowList :: [GetAppMonitorDataResponse] -> ShowS
show :: GetAppMonitorDataResponse -> String
$cshow :: GetAppMonitorDataResponse -> String
showsPrec :: Int -> GetAppMonitorDataResponse -> ShowS
$cshowsPrec :: Int -> GetAppMonitorDataResponse -> ShowS
Prelude.Show, forall x.
Rep GetAppMonitorDataResponse x -> GetAppMonitorDataResponse
forall x.
GetAppMonitorDataResponse -> Rep GetAppMonitorDataResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetAppMonitorDataResponse x -> GetAppMonitorDataResponse
$cfrom :: forall x.
GetAppMonitorDataResponse -> Rep GetAppMonitorDataResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetAppMonitorDataResponse' 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:
--
-- 'events', 'getAppMonitorDataResponse_events' - The events that RUM collected that match your request.
--
-- 'nextToken', 'getAppMonitorDataResponse_nextToken' - A token that you can use in a subsequent operation to retrieve the next
-- set of results.
--
-- 'httpStatus', 'getAppMonitorDataResponse_httpStatus' - The response's http status code.
newGetAppMonitorDataResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetAppMonitorDataResponse
newGetAppMonitorDataResponse :: Int -> GetAppMonitorDataResponse
newGetAppMonitorDataResponse Int
pHttpStatus_ =
  GetAppMonitorDataResponse'
    { $sel:events:GetAppMonitorDataResponse' :: Maybe [Text]
events =
        forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:GetAppMonitorDataResponse' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetAppMonitorDataResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The events that RUM collected that match your request.
getAppMonitorDataResponse_events :: Lens.Lens' GetAppMonitorDataResponse (Prelude.Maybe [Prelude.Text])
getAppMonitorDataResponse_events :: Lens' GetAppMonitorDataResponse (Maybe [Text])
getAppMonitorDataResponse_events = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAppMonitorDataResponse' {Maybe [Text]
events :: Maybe [Text]
$sel:events:GetAppMonitorDataResponse' :: GetAppMonitorDataResponse -> Maybe [Text]
events} -> Maybe [Text]
events) (\s :: GetAppMonitorDataResponse
s@GetAppMonitorDataResponse' {} Maybe [Text]
a -> GetAppMonitorDataResponse
s {$sel:events:GetAppMonitorDataResponse' :: Maybe [Text]
events = Maybe [Text]
a} :: GetAppMonitorDataResponse) 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 token that you can use in a subsequent operation to retrieve the next
-- set of results.
getAppMonitorDataResponse_nextToken :: Lens.Lens' GetAppMonitorDataResponse (Prelude.Maybe Prelude.Text)
getAppMonitorDataResponse_nextToken :: Lens' GetAppMonitorDataResponse (Maybe Text)
getAppMonitorDataResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAppMonitorDataResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:GetAppMonitorDataResponse' :: GetAppMonitorDataResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: GetAppMonitorDataResponse
s@GetAppMonitorDataResponse' {} Maybe Text
a -> GetAppMonitorDataResponse
s {$sel:nextToken:GetAppMonitorDataResponse' :: Maybe Text
nextToken = Maybe Text
a} :: GetAppMonitorDataResponse)

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

instance Prelude.NFData GetAppMonitorDataResponse where
  rnf :: GetAppMonitorDataResponse -> ()
rnf GetAppMonitorDataResponse' {Int
Maybe [Text]
Maybe Text
httpStatus :: Int
nextToken :: Maybe Text
events :: Maybe [Text]
$sel:httpStatus:GetAppMonitorDataResponse' :: GetAppMonitorDataResponse -> Int
$sel:nextToken:GetAppMonitorDataResponse' :: GetAppMonitorDataResponse -> Maybe Text
$sel:events:GetAppMonitorDataResponse' :: GetAppMonitorDataResponse -> Maybe [Text]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
events
      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 Int
httpStatus