amazonka-timestream-query-2.0: gen/Amazonka/TimeStreamQuery/Types/ExecutionStats.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Amazonka.TimeStreamQuery.Types.ExecutionStats
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.TimeStreamQuery.Types.ExecutionStats 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
-- | Statistics for a single scheduled query run.
--
-- /See:/ 'newExecutionStats' smart constructor.
data ExecutionStats = ExecutionStats'
{ -- | Bytes metered for a single scheduled query run.
bytesMetered :: Prelude.Maybe Prelude.Integer,
-- | Data writes metered for records ingested in a single scheduled query
-- run.
dataWrites :: Prelude.Maybe Prelude.Integer,
-- | Total time, measured in milliseconds, that was needed for the scheduled
-- query run to complete.
executionTimeInMillis :: Prelude.Maybe Prelude.Integer,
-- | Number of rows present in the output from running a query before
-- ingestion to destination data source.
queryResultRows :: Prelude.Maybe Prelude.Integer,
-- | The number of records ingested for a single scheduled query run.
recordsIngested :: Prelude.Maybe Prelude.Integer
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'ExecutionStats' 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:
--
-- 'bytesMetered', 'executionStats_bytesMetered' - Bytes metered for a single scheduled query run.
--
-- 'dataWrites', 'executionStats_dataWrites' - Data writes metered for records ingested in a single scheduled query
-- run.
--
-- 'executionTimeInMillis', 'executionStats_executionTimeInMillis' - Total time, measured in milliseconds, that was needed for the scheduled
-- query run to complete.
--
-- 'queryResultRows', 'executionStats_queryResultRows' - Number of rows present in the output from running a query before
-- ingestion to destination data source.
--
-- 'recordsIngested', 'executionStats_recordsIngested' - The number of records ingested for a single scheduled query run.
newExecutionStats ::
ExecutionStats
newExecutionStats =
ExecutionStats'
{ bytesMetered = Prelude.Nothing,
dataWrites = Prelude.Nothing,
executionTimeInMillis = Prelude.Nothing,
queryResultRows = Prelude.Nothing,
recordsIngested = Prelude.Nothing
}
-- | Bytes metered for a single scheduled query run.
executionStats_bytesMetered :: Lens.Lens' ExecutionStats (Prelude.Maybe Prelude.Integer)
executionStats_bytesMetered = Lens.lens (\ExecutionStats' {bytesMetered} -> bytesMetered) (\s@ExecutionStats' {} a -> s {bytesMetered = a} :: ExecutionStats)
-- | Data writes metered for records ingested in a single scheduled query
-- run.
executionStats_dataWrites :: Lens.Lens' ExecutionStats (Prelude.Maybe Prelude.Integer)
executionStats_dataWrites = Lens.lens (\ExecutionStats' {dataWrites} -> dataWrites) (\s@ExecutionStats' {} a -> s {dataWrites = a} :: ExecutionStats)
-- | Total time, measured in milliseconds, that was needed for the scheduled
-- query run to complete.
executionStats_executionTimeInMillis :: Lens.Lens' ExecutionStats (Prelude.Maybe Prelude.Integer)
executionStats_executionTimeInMillis = Lens.lens (\ExecutionStats' {executionTimeInMillis} -> executionTimeInMillis) (\s@ExecutionStats' {} a -> s {executionTimeInMillis = a} :: ExecutionStats)
-- | Number of rows present in the output from running a query before
-- ingestion to destination data source.
executionStats_queryResultRows :: Lens.Lens' ExecutionStats (Prelude.Maybe Prelude.Integer)
executionStats_queryResultRows = Lens.lens (\ExecutionStats' {queryResultRows} -> queryResultRows) (\s@ExecutionStats' {} a -> s {queryResultRows = a} :: ExecutionStats)
-- | The number of records ingested for a single scheduled query run.
executionStats_recordsIngested :: Lens.Lens' ExecutionStats (Prelude.Maybe Prelude.Integer)
executionStats_recordsIngested = Lens.lens (\ExecutionStats' {recordsIngested} -> recordsIngested) (\s@ExecutionStats' {} a -> s {recordsIngested = a} :: ExecutionStats)
instance Data.FromJSON ExecutionStats where
parseJSON =
Data.withObject
"ExecutionStats"
( \x ->
ExecutionStats'
Prelude.<$> (x Data..:? "BytesMetered")
Prelude.<*> (x Data..:? "DataWrites")
Prelude.<*> (x Data..:? "ExecutionTimeInMillis")
Prelude.<*> (x Data..:? "QueryResultRows")
Prelude.<*> (x Data..:? "RecordsIngested")
)
instance Prelude.Hashable ExecutionStats where
hashWithSalt _salt ExecutionStats' {..} =
_salt
`Prelude.hashWithSalt` bytesMetered
`Prelude.hashWithSalt` dataWrites
`Prelude.hashWithSalt` executionTimeInMillis
`Prelude.hashWithSalt` queryResultRows
`Prelude.hashWithSalt` recordsIngested
instance Prelude.NFData ExecutionStats where
rnf ExecutionStats' {..} =
Prelude.rnf bytesMetered
`Prelude.seq` Prelude.rnf dataWrites
`Prelude.seq` Prelude.rnf executionTimeInMillis
`Prelude.seq` Prelude.rnf queryResultRows
`Prelude.seq` Prelude.rnf recordsIngested