amazonka-lakeformation-2.0: gen/Amazonka/LakeFormation/GetQueryStatistics.hs
{-# 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.LakeFormation.GetQueryStatistics
-- 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 statistics on the planning and execution of a query.
module Amazonka.LakeFormation.GetQueryStatistics
( -- * Creating a Request
GetQueryStatistics (..),
newGetQueryStatistics,
-- * Request Lenses
getQueryStatistics_queryId,
-- * Destructuring the Response
GetQueryStatisticsResponse (..),
newGetQueryStatisticsResponse,
-- * Response Lenses
getQueryStatisticsResponse_executionStatistics,
getQueryStatisticsResponse_planningStatistics,
getQueryStatisticsResponse_querySubmissionTime,
getQueryStatisticsResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.LakeFormation.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
-- | /See:/ 'newGetQueryStatistics' smart constructor.
data GetQueryStatistics = GetQueryStatistics'
{ -- | The ID of the plan query operation.
queryId :: Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'GetQueryStatistics' 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:
--
-- 'queryId', 'getQueryStatistics_queryId' - The ID of the plan query operation.
newGetQueryStatistics ::
-- | 'queryId'
Prelude.Text ->
GetQueryStatistics
newGetQueryStatistics pQueryId_ =
GetQueryStatistics' {queryId = pQueryId_}
-- | The ID of the plan query operation.
getQueryStatistics_queryId :: Lens.Lens' GetQueryStatistics Prelude.Text
getQueryStatistics_queryId = Lens.lens (\GetQueryStatistics' {queryId} -> queryId) (\s@GetQueryStatistics' {} a -> s {queryId = a} :: GetQueryStatistics)
instance Core.AWSRequest GetQueryStatistics where
type
AWSResponse GetQueryStatistics =
GetQueryStatisticsResponse
request overrides =
Request.postJSON (overrides defaultService)
response =
Response.receiveJSON
( \s h x ->
GetQueryStatisticsResponse'
Prelude.<$> (x Data..?> "ExecutionStatistics")
Prelude.<*> (x Data..?> "PlanningStatistics")
Prelude.<*> (x Data..?> "QuerySubmissionTime")
Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
)
instance Prelude.Hashable GetQueryStatistics where
hashWithSalt _salt GetQueryStatistics' {..} =
_salt `Prelude.hashWithSalt` queryId
instance Prelude.NFData GetQueryStatistics where
rnf GetQueryStatistics' {..} = Prelude.rnf queryId
instance Data.ToHeaders GetQueryStatistics where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON GetQueryStatistics where
toJSON GetQueryStatistics' {..} =
Data.object
( Prelude.catMaybes
[Prelude.Just ("QueryId" Data..= queryId)]
)
instance Data.ToPath GetQueryStatistics where
toPath = Prelude.const "/GetQueryStatistics"
instance Data.ToQuery GetQueryStatistics where
toQuery = Prelude.const Prelude.mempty
-- | /See:/ 'newGetQueryStatisticsResponse' smart constructor.
data GetQueryStatisticsResponse = GetQueryStatisticsResponse'
{ -- | An @ExecutionStatistics@ structure containing execution statistics.
executionStatistics :: Prelude.Maybe ExecutionStatistics,
-- | A @PlanningStatistics@ structure containing query planning statistics.
planningStatistics :: Prelude.Maybe PlanningStatistics,
-- | The time that the query was submitted.
querySubmissionTime :: Prelude.Maybe Data.ISO8601,
-- | The response's http status code.
httpStatus :: Prelude.Int
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'GetQueryStatisticsResponse' 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:
--
-- 'executionStatistics', 'getQueryStatisticsResponse_executionStatistics' - An @ExecutionStatistics@ structure containing execution statistics.
--
-- 'planningStatistics', 'getQueryStatisticsResponse_planningStatistics' - A @PlanningStatistics@ structure containing query planning statistics.
--
-- 'querySubmissionTime', 'getQueryStatisticsResponse_querySubmissionTime' - The time that the query was submitted.
--
-- 'httpStatus', 'getQueryStatisticsResponse_httpStatus' - The response's http status code.
newGetQueryStatisticsResponse ::
-- | 'httpStatus'
Prelude.Int ->
GetQueryStatisticsResponse
newGetQueryStatisticsResponse pHttpStatus_ =
GetQueryStatisticsResponse'
{ executionStatistics =
Prelude.Nothing,
planningStatistics = Prelude.Nothing,
querySubmissionTime = Prelude.Nothing,
httpStatus = pHttpStatus_
}
-- | An @ExecutionStatistics@ structure containing execution statistics.
getQueryStatisticsResponse_executionStatistics :: Lens.Lens' GetQueryStatisticsResponse (Prelude.Maybe ExecutionStatistics)
getQueryStatisticsResponse_executionStatistics = Lens.lens (\GetQueryStatisticsResponse' {executionStatistics} -> executionStatistics) (\s@GetQueryStatisticsResponse' {} a -> s {executionStatistics = a} :: GetQueryStatisticsResponse)
-- | A @PlanningStatistics@ structure containing query planning statistics.
getQueryStatisticsResponse_planningStatistics :: Lens.Lens' GetQueryStatisticsResponse (Prelude.Maybe PlanningStatistics)
getQueryStatisticsResponse_planningStatistics = Lens.lens (\GetQueryStatisticsResponse' {planningStatistics} -> planningStatistics) (\s@GetQueryStatisticsResponse' {} a -> s {planningStatistics = a} :: GetQueryStatisticsResponse)
-- | The time that the query was submitted.
getQueryStatisticsResponse_querySubmissionTime :: Lens.Lens' GetQueryStatisticsResponse (Prelude.Maybe Prelude.UTCTime)
getQueryStatisticsResponse_querySubmissionTime = Lens.lens (\GetQueryStatisticsResponse' {querySubmissionTime} -> querySubmissionTime) (\s@GetQueryStatisticsResponse' {} a -> s {querySubmissionTime = a} :: GetQueryStatisticsResponse) Prelude.. Lens.mapping Data._Time
-- | The response's http status code.
getQueryStatisticsResponse_httpStatus :: Lens.Lens' GetQueryStatisticsResponse Prelude.Int
getQueryStatisticsResponse_httpStatus = Lens.lens (\GetQueryStatisticsResponse' {httpStatus} -> httpStatus) (\s@GetQueryStatisticsResponse' {} a -> s {httpStatus = a} :: GetQueryStatisticsResponse)
instance Prelude.NFData GetQueryStatisticsResponse where
rnf GetQueryStatisticsResponse' {..} =
Prelude.rnf executionStatistics
`Prelude.seq` Prelude.rnf planningStatistics
`Prelude.seq` Prelude.rnf querySubmissionTime
`Prelude.seq` Prelude.rnf httpStatus