{-# 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.CloudTrail.GetQueryResults
-- 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 event data results of a query. You must specify the @QueryID@ value
-- returned by the @StartQuery@ operation, and an ARN for @EventDataStore@.
module Amazonka.CloudTrail.GetQueryResults
  ( -- * Creating a Request
    GetQueryResults (..),
    newGetQueryResults,

    -- * Request Lenses
    getQueryResults_eventDataStore,
    getQueryResults_maxQueryResults,
    getQueryResults_nextToken,
    getQueryResults_queryId,

    -- * Destructuring the Response
    GetQueryResultsResponse (..),
    newGetQueryResultsResponse,

    -- * Response Lenses
    getQueryResultsResponse_errorMessage,
    getQueryResultsResponse_nextToken,
    getQueryResultsResponse_queryResultRows,
    getQueryResultsResponse_queryStatistics,
    getQueryResultsResponse_queryStatus,
    getQueryResultsResponse_httpStatus,
  )
where

import Amazonka.CloudTrail.Types
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

-- | /See:/ 'newGetQueryResults' smart constructor.
data GetQueryResults = GetQueryResults'
  { -- | The ARN (or ID suffix of the ARN) of the event data store against which
    -- the query was run.
    GetQueryResults -> Maybe Text
eventDataStore :: Prelude.Maybe Prelude.Text,
    -- | The maximum number of query results to display on a single page.
    GetQueryResults -> Maybe Natural
maxQueryResults :: Prelude.Maybe Prelude.Natural,
    -- | A token you can use to get the next page of query results.
    GetQueryResults -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The ID of the query for which you want to get results.
    GetQueryResults -> Text
queryId :: Prelude.Text
  }
  deriving (GetQueryResults -> GetQueryResults -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetQueryResults -> GetQueryResults -> Bool
$c/= :: GetQueryResults -> GetQueryResults -> Bool
== :: GetQueryResults -> GetQueryResults -> Bool
$c== :: GetQueryResults -> GetQueryResults -> Bool
Prelude.Eq, ReadPrec [GetQueryResults]
ReadPrec GetQueryResults
Int -> ReadS GetQueryResults
ReadS [GetQueryResults]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetQueryResults]
$creadListPrec :: ReadPrec [GetQueryResults]
readPrec :: ReadPrec GetQueryResults
$creadPrec :: ReadPrec GetQueryResults
readList :: ReadS [GetQueryResults]
$creadList :: ReadS [GetQueryResults]
readsPrec :: Int -> ReadS GetQueryResults
$creadsPrec :: Int -> ReadS GetQueryResults
Prelude.Read, Int -> GetQueryResults -> ShowS
[GetQueryResults] -> ShowS
GetQueryResults -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetQueryResults] -> ShowS
$cshowList :: [GetQueryResults] -> ShowS
show :: GetQueryResults -> String
$cshow :: GetQueryResults -> String
showsPrec :: Int -> GetQueryResults -> ShowS
$cshowsPrec :: Int -> GetQueryResults -> ShowS
Prelude.Show, forall x. Rep GetQueryResults x -> GetQueryResults
forall x. GetQueryResults -> Rep GetQueryResults x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetQueryResults x -> GetQueryResults
$cfrom :: forall x. GetQueryResults -> Rep GetQueryResults x
Prelude.Generic)

-- |
-- Create a value of 'GetQueryResults' 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:
--
-- 'eventDataStore', 'getQueryResults_eventDataStore' - The ARN (or ID suffix of the ARN) of the event data store against which
-- the query was run.
--
-- 'maxQueryResults', 'getQueryResults_maxQueryResults' - The maximum number of query results to display on a single page.
--
-- 'nextToken', 'getQueryResults_nextToken' - A token you can use to get the next page of query results.
--
-- 'queryId', 'getQueryResults_queryId' - The ID of the query for which you want to get results.
newGetQueryResults ::
  -- | 'queryId'
  Prelude.Text ->
  GetQueryResults
newGetQueryResults :: Text -> GetQueryResults
newGetQueryResults Text
pQueryId_ =
  GetQueryResults'
    { $sel:eventDataStore:GetQueryResults' :: Maybe Text
eventDataStore = forall a. Maybe a
Prelude.Nothing,
      $sel:maxQueryResults:GetQueryResults' :: Maybe Natural
maxQueryResults = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:GetQueryResults' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:queryId:GetQueryResults' :: Text
queryId = Text
pQueryId_
    }

-- | The ARN (or ID suffix of the ARN) of the event data store against which
-- the query was run.
getQueryResults_eventDataStore :: Lens.Lens' GetQueryResults (Prelude.Maybe Prelude.Text)
getQueryResults_eventDataStore :: Lens' GetQueryResults (Maybe Text)
getQueryResults_eventDataStore = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetQueryResults' {Maybe Text
eventDataStore :: Maybe Text
$sel:eventDataStore:GetQueryResults' :: GetQueryResults -> Maybe Text
eventDataStore} -> Maybe Text
eventDataStore) (\s :: GetQueryResults
s@GetQueryResults' {} Maybe Text
a -> GetQueryResults
s {$sel:eventDataStore:GetQueryResults' :: Maybe Text
eventDataStore = Maybe Text
a} :: GetQueryResults)

-- | The maximum number of query results to display on a single page.
getQueryResults_maxQueryResults :: Lens.Lens' GetQueryResults (Prelude.Maybe Prelude.Natural)
getQueryResults_maxQueryResults :: Lens' GetQueryResults (Maybe Natural)
getQueryResults_maxQueryResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetQueryResults' {Maybe Natural
maxQueryResults :: Maybe Natural
$sel:maxQueryResults:GetQueryResults' :: GetQueryResults -> Maybe Natural
maxQueryResults} -> Maybe Natural
maxQueryResults) (\s :: GetQueryResults
s@GetQueryResults' {} Maybe Natural
a -> GetQueryResults
s {$sel:maxQueryResults:GetQueryResults' :: Maybe Natural
maxQueryResults = Maybe Natural
a} :: GetQueryResults)

-- | A token you can use to get the next page of query results.
getQueryResults_nextToken :: Lens.Lens' GetQueryResults (Prelude.Maybe Prelude.Text)
getQueryResults_nextToken :: Lens' GetQueryResults (Maybe Text)
getQueryResults_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetQueryResults' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:GetQueryResults' :: GetQueryResults -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: GetQueryResults
s@GetQueryResults' {} Maybe Text
a -> GetQueryResults
s {$sel:nextToken:GetQueryResults' :: Maybe Text
nextToken = Maybe Text
a} :: GetQueryResults)

-- | The ID of the query for which you want to get results.
getQueryResults_queryId :: Lens.Lens' GetQueryResults Prelude.Text
getQueryResults_queryId :: Lens' GetQueryResults Text
getQueryResults_queryId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetQueryResults' {Text
queryId :: Text
$sel:queryId:GetQueryResults' :: GetQueryResults -> Text
queryId} -> Text
queryId) (\s :: GetQueryResults
s@GetQueryResults' {} Text
a -> GetQueryResults
s {$sel:queryId:GetQueryResults' :: Text
queryId = Text
a} :: GetQueryResults)

instance Core.AWSRequest GetQueryResults where
  type
    AWSResponse GetQueryResults =
      GetQueryResultsResponse
  request :: (Service -> Service) -> GetQueryResults -> Request GetQueryResults
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 GetQueryResults
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GetQueryResults)))
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 [[HashMap Text Text]]
-> Maybe QueryStatistics
-> Maybe QueryStatus
-> Int
-> GetQueryResultsResponse
GetQueryResultsResponse'
            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
"ErrorMessage")
            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
"QueryResultRows"
                            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
"QueryStatistics")
            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
"QueryStatus")
            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 GetQueryResults where
  hashWithSalt :: Int -> GetQueryResults -> Int
hashWithSalt Int
_salt GetQueryResults' {Maybe Natural
Maybe Text
Text
queryId :: Text
nextToken :: Maybe Text
maxQueryResults :: Maybe Natural
eventDataStore :: Maybe Text
$sel:queryId:GetQueryResults' :: GetQueryResults -> Text
$sel:nextToken:GetQueryResults' :: GetQueryResults -> Maybe Text
$sel:maxQueryResults:GetQueryResults' :: GetQueryResults -> Maybe Natural
$sel:eventDataStore:GetQueryResults' :: GetQueryResults -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
eventDataStore
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
maxQueryResults
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
queryId

instance Prelude.NFData GetQueryResults where
  rnf :: GetQueryResults -> ()
rnf GetQueryResults' {Maybe Natural
Maybe Text
Text
queryId :: Text
nextToken :: Maybe Text
maxQueryResults :: Maybe Natural
eventDataStore :: Maybe Text
$sel:queryId:GetQueryResults' :: GetQueryResults -> Text
$sel:nextToken:GetQueryResults' :: GetQueryResults -> Maybe Text
$sel:maxQueryResults:GetQueryResults' :: GetQueryResults -> Maybe Natural
$sel:eventDataStore:GetQueryResults' :: GetQueryResults -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
eventDataStore
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
maxQueryResults
      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
queryId

instance Data.ToHeaders GetQueryResults where
  toHeaders :: GetQueryResults -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"X-Amz-Target"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101.GetQueryResults" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON GetQueryResults where
  toJSON :: GetQueryResults -> Value
toJSON GetQueryResults' {Maybe Natural
Maybe Text
Text
queryId :: Text
nextToken :: Maybe Text
maxQueryResults :: Maybe Natural
eventDataStore :: Maybe Text
$sel:queryId:GetQueryResults' :: GetQueryResults -> Text
$sel:nextToken:GetQueryResults' :: GetQueryResults -> Maybe Text
$sel:maxQueryResults:GetQueryResults' :: GetQueryResults -> Maybe Natural
$sel:eventDataStore:GetQueryResults' :: GetQueryResults -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"EventDataStore" 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
eventDataStore,
            (Key
"MaxQueryResults" 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
maxQueryResults,
            (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
"QueryId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
queryId)
          ]
      )

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

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

-- | /See:/ 'newGetQueryResultsResponse' smart constructor.
data GetQueryResultsResponse = GetQueryResultsResponse'
  { -- | The error message returned if a query failed.
    GetQueryResultsResponse -> Maybe Text
errorMessage :: Prelude.Maybe Prelude.Text,
    -- | A token you can use to get the next page of query results.
    GetQueryResultsResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | Contains the individual event results of the query.
    GetQueryResultsResponse -> Maybe [[HashMap Text Text]]
queryResultRows :: Prelude.Maybe [[Prelude.HashMap Prelude.Text Prelude.Text]],
    -- | Shows the count of query results.
    GetQueryResultsResponse -> Maybe QueryStatistics
queryStatistics :: Prelude.Maybe QueryStatistics,
    -- | The status of the query. Values include @QUEUED@, @RUNNING@, @FINISHED@,
    -- @FAILED@, @TIMED_OUT@, or @CANCELLED@.
    GetQueryResultsResponse -> Maybe QueryStatus
queryStatus :: Prelude.Maybe QueryStatus,
    -- | The response's http status code.
    GetQueryResultsResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetQueryResultsResponse -> GetQueryResultsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetQueryResultsResponse -> GetQueryResultsResponse -> Bool
$c/= :: GetQueryResultsResponse -> GetQueryResultsResponse -> Bool
== :: GetQueryResultsResponse -> GetQueryResultsResponse -> Bool
$c== :: GetQueryResultsResponse -> GetQueryResultsResponse -> Bool
Prelude.Eq, ReadPrec [GetQueryResultsResponse]
ReadPrec GetQueryResultsResponse
Int -> ReadS GetQueryResultsResponse
ReadS [GetQueryResultsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetQueryResultsResponse]
$creadListPrec :: ReadPrec [GetQueryResultsResponse]
readPrec :: ReadPrec GetQueryResultsResponse
$creadPrec :: ReadPrec GetQueryResultsResponse
readList :: ReadS [GetQueryResultsResponse]
$creadList :: ReadS [GetQueryResultsResponse]
readsPrec :: Int -> ReadS GetQueryResultsResponse
$creadsPrec :: Int -> ReadS GetQueryResultsResponse
Prelude.Read, Int -> GetQueryResultsResponse -> ShowS
[GetQueryResultsResponse] -> ShowS
GetQueryResultsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetQueryResultsResponse] -> ShowS
$cshowList :: [GetQueryResultsResponse] -> ShowS
show :: GetQueryResultsResponse -> String
$cshow :: GetQueryResultsResponse -> String
showsPrec :: Int -> GetQueryResultsResponse -> ShowS
$cshowsPrec :: Int -> GetQueryResultsResponse -> ShowS
Prelude.Show, forall x. Rep GetQueryResultsResponse x -> GetQueryResultsResponse
forall x. GetQueryResultsResponse -> Rep GetQueryResultsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetQueryResultsResponse x -> GetQueryResultsResponse
$cfrom :: forall x. GetQueryResultsResponse -> Rep GetQueryResultsResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetQueryResultsResponse' 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:
--
-- 'errorMessage', 'getQueryResultsResponse_errorMessage' - The error message returned if a query failed.
--
-- 'nextToken', 'getQueryResultsResponse_nextToken' - A token you can use to get the next page of query results.
--
-- 'queryResultRows', 'getQueryResultsResponse_queryResultRows' - Contains the individual event results of the query.
--
-- 'queryStatistics', 'getQueryResultsResponse_queryStatistics' - Shows the count of query results.
--
-- 'queryStatus', 'getQueryResultsResponse_queryStatus' - The status of the query. Values include @QUEUED@, @RUNNING@, @FINISHED@,
-- @FAILED@, @TIMED_OUT@, or @CANCELLED@.
--
-- 'httpStatus', 'getQueryResultsResponse_httpStatus' - The response's http status code.
newGetQueryResultsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetQueryResultsResponse
newGetQueryResultsResponse :: Int -> GetQueryResultsResponse
newGetQueryResultsResponse Int
pHttpStatus_ =
  GetQueryResultsResponse'
    { $sel:errorMessage:GetQueryResultsResponse' :: Maybe Text
errorMessage =
        forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:GetQueryResultsResponse' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:queryResultRows:GetQueryResultsResponse' :: Maybe [[HashMap Text Text]]
queryResultRows = forall a. Maybe a
Prelude.Nothing,
      $sel:queryStatistics:GetQueryResultsResponse' :: Maybe QueryStatistics
queryStatistics = forall a. Maybe a
Prelude.Nothing,
      $sel:queryStatus:GetQueryResultsResponse' :: Maybe QueryStatus
queryStatus = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetQueryResultsResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The error message returned if a query failed.
getQueryResultsResponse_errorMessage :: Lens.Lens' GetQueryResultsResponse (Prelude.Maybe Prelude.Text)
getQueryResultsResponse_errorMessage :: Lens' GetQueryResultsResponse (Maybe Text)
getQueryResultsResponse_errorMessage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetQueryResultsResponse' {Maybe Text
errorMessage :: Maybe Text
$sel:errorMessage:GetQueryResultsResponse' :: GetQueryResultsResponse -> Maybe Text
errorMessage} -> Maybe Text
errorMessage) (\s :: GetQueryResultsResponse
s@GetQueryResultsResponse' {} Maybe Text
a -> GetQueryResultsResponse
s {$sel:errorMessage:GetQueryResultsResponse' :: Maybe Text
errorMessage = Maybe Text
a} :: GetQueryResultsResponse)

-- | A token you can use to get the next page of query results.
getQueryResultsResponse_nextToken :: Lens.Lens' GetQueryResultsResponse (Prelude.Maybe Prelude.Text)
getQueryResultsResponse_nextToken :: Lens' GetQueryResultsResponse (Maybe Text)
getQueryResultsResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetQueryResultsResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:GetQueryResultsResponse' :: GetQueryResultsResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: GetQueryResultsResponse
s@GetQueryResultsResponse' {} Maybe Text
a -> GetQueryResultsResponse
s {$sel:nextToken:GetQueryResultsResponse' :: Maybe Text
nextToken = Maybe Text
a} :: GetQueryResultsResponse)

-- | Contains the individual event results of the query.
getQueryResultsResponse_queryResultRows :: Lens.Lens' GetQueryResultsResponse (Prelude.Maybe [[Prelude.HashMap Prelude.Text Prelude.Text]])
getQueryResultsResponse_queryResultRows :: Lens' GetQueryResultsResponse (Maybe [[HashMap Text Text]])
getQueryResultsResponse_queryResultRows = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetQueryResultsResponse' {Maybe [[HashMap Text Text]]
queryResultRows :: Maybe [[HashMap Text Text]]
$sel:queryResultRows:GetQueryResultsResponse' :: GetQueryResultsResponse -> Maybe [[HashMap Text Text]]
queryResultRows} -> Maybe [[HashMap Text Text]]
queryResultRows) (\s :: GetQueryResultsResponse
s@GetQueryResultsResponse' {} Maybe [[HashMap Text Text]]
a -> GetQueryResultsResponse
s {$sel:queryResultRows:GetQueryResultsResponse' :: Maybe [[HashMap Text Text]]
queryResultRows = Maybe [[HashMap Text Text]]
a} :: GetQueryResultsResponse) 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

-- | Shows the count of query results.
getQueryResultsResponse_queryStatistics :: Lens.Lens' GetQueryResultsResponse (Prelude.Maybe QueryStatistics)
getQueryResultsResponse_queryStatistics :: Lens' GetQueryResultsResponse (Maybe QueryStatistics)
getQueryResultsResponse_queryStatistics = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetQueryResultsResponse' {Maybe QueryStatistics
queryStatistics :: Maybe QueryStatistics
$sel:queryStatistics:GetQueryResultsResponse' :: GetQueryResultsResponse -> Maybe QueryStatistics
queryStatistics} -> Maybe QueryStatistics
queryStatistics) (\s :: GetQueryResultsResponse
s@GetQueryResultsResponse' {} Maybe QueryStatistics
a -> GetQueryResultsResponse
s {$sel:queryStatistics:GetQueryResultsResponse' :: Maybe QueryStatistics
queryStatistics = Maybe QueryStatistics
a} :: GetQueryResultsResponse)

-- | The status of the query. Values include @QUEUED@, @RUNNING@, @FINISHED@,
-- @FAILED@, @TIMED_OUT@, or @CANCELLED@.
getQueryResultsResponse_queryStatus :: Lens.Lens' GetQueryResultsResponse (Prelude.Maybe QueryStatus)
getQueryResultsResponse_queryStatus :: Lens' GetQueryResultsResponse (Maybe QueryStatus)
getQueryResultsResponse_queryStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetQueryResultsResponse' {Maybe QueryStatus
queryStatus :: Maybe QueryStatus
$sel:queryStatus:GetQueryResultsResponse' :: GetQueryResultsResponse -> Maybe QueryStatus
queryStatus} -> Maybe QueryStatus
queryStatus) (\s :: GetQueryResultsResponse
s@GetQueryResultsResponse' {} Maybe QueryStatus
a -> GetQueryResultsResponse
s {$sel:queryStatus:GetQueryResultsResponse' :: Maybe QueryStatus
queryStatus = Maybe QueryStatus
a} :: GetQueryResultsResponse)

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

instance Prelude.NFData GetQueryResultsResponse where
  rnf :: GetQueryResultsResponse -> ()
rnf GetQueryResultsResponse' {Int
Maybe [[HashMap Text Text]]
Maybe Text
Maybe QueryStatistics
Maybe QueryStatus
httpStatus :: Int
queryStatus :: Maybe QueryStatus
queryStatistics :: Maybe QueryStatistics
queryResultRows :: Maybe [[HashMap Text Text]]
nextToken :: Maybe Text
errorMessage :: Maybe Text
$sel:httpStatus:GetQueryResultsResponse' :: GetQueryResultsResponse -> Int
$sel:queryStatus:GetQueryResultsResponse' :: GetQueryResultsResponse -> Maybe QueryStatus
$sel:queryStatistics:GetQueryResultsResponse' :: GetQueryResultsResponse -> Maybe QueryStatistics
$sel:queryResultRows:GetQueryResultsResponse' :: GetQueryResultsResponse -> Maybe [[HashMap Text Text]]
$sel:nextToken:GetQueryResultsResponse' :: GetQueryResultsResponse -> Maybe Text
$sel:errorMessage:GetQueryResultsResponse' :: GetQueryResultsResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
errorMessage
      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 [[HashMap Text Text]]
queryResultRows
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe QueryStatistics
queryStatistics
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe QueryStatus
queryStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus