amazonka-timestream-query-2.0: gen/Amazonka/TimeStreamQuery/Types/ScheduledQueryDescription.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.ScheduledQueryDescription
-- 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.ScheduledQueryDescription 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 Amazonka.TimeStreamQuery.Types.ErrorReportConfiguration
import Amazonka.TimeStreamQuery.Types.NotificationConfiguration
import Amazonka.TimeStreamQuery.Types.ScheduleConfiguration
import Amazonka.TimeStreamQuery.Types.ScheduledQueryRunSummary
import Amazonka.TimeStreamQuery.Types.ScheduledQueryState
import Amazonka.TimeStreamQuery.Types.TargetConfiguration
-- | Structure that describes scheduled query.
--
-- /See:/ 'newScheduledQueryDescription' smart constructor.
data ScheduledQueryDescription = ScheduledQueryDescription'
{ -- | Creation time of the scheduled query.
creationTime :: Prelude.Maybe Data.POSIX,
-- | Error-reporting configuration for the scheduled query.
errorReportConfiguration :: Prelude.Maybe ErrorReportConfiguration,
-- | A customer provided KMS key used to encrypt the scheduled query
-- resource.
kmsKeyId :: Prelude.Maybe Prelude.Text,
-- | Runtime summary for the last scheduled query run.
lastRunSummary :: Prelude.Maybe ScheduledQueryRunSummary,
-- | The next time the scheduled query is scheduled to run.
nextInvocationTime :: Prelude.Maybe Data.POSIX,
-- | Last time the query was run.
previousInvocationTime :: Prelude.Maybe Data.POSIX,
-- | Runtime summary for the last five failed scheduled query runs.
recentlyFailedRuns :: Prelude.Maybe [ScheduledQueryRunSummary],
-- | IAM role that Timestream uses to run the schedule query.
scheduledQueryExecutionRoleArn :: Prelude.Maybe Prelude.Text,
-- | Scheduled query target store configuration.
targetConfiguration :: Prelude.Maybe TargetConfiguration,
-- | Scheduled query ARN.
arn :: Prelude.Text,
-- | Name of the scheduled query.
name :: Prelude.Text,
-- | The query to be run.
queryString :: Data.Sensitive Prelude.Text,
-- | State of the scheduled query.
state :: ScheduledQueryState,
-- | Schedule configuration.
scheduleConfiguration :: ScheduleConfiguration,
-- | Notification configuration.
notificationConfiguration :: NotificationConfiguration
}
deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'ScheduledQueryDescription' 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:
--
-- 'creationTime', 'scheduledQueryDescription_creationTime' - Creation time of the scheduled query.
--
-- 'errorReportConfiguration', 'scheduledQueryDescription_errorReportConfiguration' - Error-reporting configuration for the scheduled query.
--
-- 'kmsKeyId', 'scheduledQueryDescription_kmsKeyId' - A customer provided KMS key used to encrypt the scheduled query
-- resource.
--
-- 'lastRunSummary', 'scheduledQueryDescription_lastRunSummary' - Runtime summary for the last scheduled query run.
--
-- 'nextInvocationTime', 'scheduledQueryDescription_nextInvocationTime' - The next time the scheduled query is scheduled to run.
--
-- 'previousInvocationTime', 'scheduledQueryDescription_previousInvocationTime' - Last time the query was run.
--
-- 'recentlyFailedRuns', 'scheduledQueryDescription_recentlyFailedRuns' - Runtime summary for the last five failed scheduled query runs.
--
-- 'scheduledQueryExecutionRoleArn', 'scheduledQueryDescription_scheduledQueryExecutionRoleArn' - IAM role that Timestream uses to run the schedule query.
--
-- 'targetConfiguration', 'scheduledQueryDescription_targetConfiguration' - Scheduled query target store configuration.
--
-- 'arn', 'scheduledQueryDescription_arn' - Scheduled query ARN.
--
-- 'name', 'scheduledQueryDescription_name' - Name of the scheduled query.
--
-- 'queryString', 'scheduledQueryDescription_queryString' - The query to be run.
--
-- 'state', 'scheduledQueryDescription_state' - State of the scheduled query.
--
-- 'scheduleConfiguration', 'scheduledQueryDescription_scheduleConfiguration' - Schedule configuration.
--
-- 'notificationConfiguration', 'scheduledQueryDescription_notificationConfiguration' - Notification configuration.
newScheduledQueryDescription ::
-- | 'arn'
Prelude.Text ->
-- | 'name'
Prelude.Text ->
-- | 'queryString'
Prelude.Text ->
-- | 'state'
ScheduledQueryState ->
-- | 'scheduleConfiguration'
ScheduleConfiguration ->
-- | 'notificationConfiguration'
NotificationConfiguration ->
ScheduledQueryDescription
newScheduledQueryDescription
pArn_
pName_
pQueryString_
pState_
pScheduleConfiguration_
pNotificationConfiguration_ =
ScheduledQueryDescription'
{ creationTime =
Prelude.Nothing,
errorReportConfiguration = Prelude.Nothing,
kmsKeyId = Prelude.Nothing,
lastRunSummary = Prelude.Nothing,
nextInvocationTime = Prelude.Nothing,
previousInvocationTime = Prelude.Nothing,
recentlyFailedRuns = Prelude.Nothing,
scheduledQueryExecutionRoleArn = Prelude.Nothing,
targetConfiguration = Prelude.Nothing,
arn = pArn_,
name = pName_,
queryString =
Data._Sensitive Lens.# pQueryString_,
state = pState_,
scheduleConfiguration = pScheduleConfiguration_,
notificationConfiguration =
pNotificationConfiguration_
}
-- | Creation time of the scheduled query.
scheduledQueryDescription_creationTime :: Lens.Lens' ScheduledQueryDescription (Prelude.Maybe Prelude.UTCTime)
scheduledQueryDescription_creationTime = Lens.lens (\ScheduledQueryDescription' {creationTime} -> creationTime) (\s@ScheduledQueryDescription' {} a -> s {creationTime = a} :: ScheduledQueryDescription) Prelude.. Lens.mapping Data._Time
-- | Error-reporting configuration for the scheduled query.
scheduledQueryDescription_errorReportConfiguration :: Lens.Lens' ScheduledQueryDescription (Prelude.Maybe ErrorReportConfiguration)
scheduledQueryDescription_errorReportConfiguration = Lens.lens (\ScheduledQueryDescription' {errorReportConfiguration} -> errorReportConfiguration) (\s@ScheduledQueryDescription' {} a -> s {errorReportConfiguration = a} :: ScheduledQueryDescription)
-- | A customer provided KMS key used to encrypt the scheduled query
-- resource.
scheduledQueryDescription_kmsKeyId :: Lens.Lens' ScheduledQueryDescription (Prelude.Maybe Prelude.Text)
scheduledQueryDescription_kmsKeyId = Lens.lens (\ScheduledQueryDescription' {kmsKeyId} -> kmsKeyId) (\s@ScheduledQueryDescription' {} a -> s {kmsKeyId = a} :: ScheduledQueryDescription)
-- | Runtime summary for the last scheduled query run.
scheduledQueryDescription_lastRunSummary :: Lens.Lens' ScheduledQueryDescription (Prelude.Maybe ScheduledQueryRunSummary)
scheduledQueryDescription_lastRunSummary = Lens.lens (\ScheduledQueryDescription' {lastRunSummary} -> lastRunSummary) (\s@ScheduledQueryDescription' {} a -> s {lastRunSummary = a} :: ScheduledQueryDescription)
-- | The next time the scheduled query is scheduled to run.
scheduledQueryDescription_nextInvocationTime :: Lens.Lens' ScheduledQueryDescription (Prelude.Maybe Prelude.UTCTime)
scheduledQueryDescription_nextInvocationTime = Lens.lens (\ScheduledQueryDescription' {nextInvocationTime} -> nextInvocationTime) (\s@ScheduledQueryDescription' {} a -> s {nextInvocationTime = a} :: ScheduledQueryDescription) Prelude.. Lens.mapping Data._Time
-- | Last time the query was run.
scheduledQueryDescription_previousInvocationTime :: Lens.Lens' ScheduledQueryDescription (Prelude.Maybe Prelude.UTCTime)
scheduledQueryDescription_previousInvocationTime = Lens.lens (\ScheduledQueryDescription' {previousInvocationTime} -> previousInvocationTime) (\s@ScheduledQueryDescription' {} a -> s {previousInvocationTime = a} :: ScheduledQueryDescription) Prelude.. Lens.mapping Data._Time
-- | Runtime summary for the last five failed scheduled query runs.
scheduledQueryDescription_recentlyFailedRuns :: Lens.Lens' ScheduledQueryDescription (Prelude.Maybe [ScheduledQueryRunSummary])
scheduledQueryDescription_recentlyFailedRuns = Lens.lens (\ScheduledQueryDescription' {recentlyFailedRuns} -> recentlyFailedRuns) (\s@ScheduledQueryDescription' {} a -> s {recentlyFailedRuns = a} :: ScheduledQueryDescription) Prelude.. Lens.mapping Lens.coerced
-- | IAM role that Timestream uses to run the schedule query.
scheduledQueryDescription_scheduledQueryExecutionRoleArn :: Lens.Lens' ScheduledQueryDescription (Prelude.Maybe Prelude.Text)
scheduledQueryDescription_scheduledQueryExecutionRoleArn = Lens.lens (\ScheduledQueryDescription' {scheduledQueryExecutionRoleArn} -> scheduledQueryExecutionRoleArn) (\s@ScheduledQueryDescription' {} a -> s {scheduledQueryExecutionRoleArn = a} :: ScheduledQueryDescription)
-- | Scheduled query target store configuration.
scheduledQueryDescription_targetConfiguration :: Lens.Lens' ScheduledQueryDescription (Prelude.Maybe TargetConfiguration)
scheduledQueryDescription_targetConfiguration = Lens.lens (\ScheduledQueryDescription' {targetConfiguration} -> targetConfiguration) (\s@ScheduledQueryDescription' {} a -> s {targetConfiguration = a} :: ScheduledQueryDescription)
-- | Scheduled query ARN.
scheduledQueryDescription_arn :: Lens.Lens' ScheduledQueryDescription Prelude.Text
scheduledQueryDescription_arn = Lens.lens (\ScheduledQueryDescription' {arn} -> arn) (\s@ScheduledQueryDescription' {} a -> s {arn = a} :: ScheduledQueryDescription)
-- | Name of the scheduled query.
scheduledQueryDescription_name :: Lens.Lens' ScheduledQueryDescription Prelude.Text
scheduledQueryDescription_name = Lens.lens (\ScheduledQueryDescription' {name} -> name) (\s@ScheduledQueryDescription' {} a -> s {name = a} :: ScheduledQueryDescription)
-- | The query to be run.
scheduledQueryDescription_queryString :: Lens.Lens' ScheduledQueryDescription Prelude.Text
scheduledQueryDescription_queryString = Lens.lens (\ScheduledQueryDescription' {queryString} -> queryString) (\s@ScheduledQueryDescription' {} a -> s {queryString = a} :: ScheduledQueryDescription) Prelude.. Data._Sensitive
-- | State of the scheduled query.
scheduledQueryDescription_state :: Lens.Lens' ScheduledQueryDescription ScheduledQueryState
scheduledQueryDescription_state = Lens.lens (\ScheduledQueryDescription' {state} -> state) (\s@ScheduledQueryDescription' {} a -> s {state = a} :: ScheduledQueryDescription)
-- | Schedule configuration.
scheduledQueryDescription_scheduleConfiguration :: Lens.Lens' ScheduledQueryDescription ScheduleConfiguration
scheduledQueryDescription_scheduleConfiguration = Lens.lens (\ScheduledQueryDescription' {scheduleConfiguration} -> scheduleConfiguration) (\s@ScheduledQueryDescription' {} a -> s {scheduleConfiguration = a} :: ScheduledQueryDescription)
-- | Notification configuration.
scheduledQueryDescription_notificationConfiguration :: Lens.Lens' ScheduledQueryDescription NotificationConfiguration
scheduledQueryDescription_notificationConfiguration = Lens.lens (\ScheduledQueryDescription' {notificationConfiguration} -> notificationConfiguration) (\s@ScheduledQueryDescription' {} a -> s {notificationConfiguration = a} :: ScheduledQueryDescription)
instance Data.FromJSON ScheduledQueryDescription where
parseJSON =
Data.withObject
"ScheduledQueryDescription"
( \x ->
ScheduledQueryDescription'
Prelude.<$> (x Data..:? "CreationTime")
Prelude.<*> (x Data..:? "ErrorReportConfiguration")
Prelude.<*> (x Data..:? "KmsKeyId")
Prelude.<*> (x Data..:? "LastRunSummary")
Prelude.<*> (x Data..:? "NextInvocationTime")
Prelude.<*> (x Data..:? "PreviousInvocationTime")
Prelude.<*> ( x
Data..:? "RecentlyFailedRuns"
Data..!= Prelude.mempty
)
Prelude.<*> (x Data..:? "ScheduledQueryExecutionRoleArn")
Prelude.<*> (x Data..:? "TargetConfiguration")
Prelude.<*> (x Data..: "Arn")
Prelude.<*> (x Data..: "Name")
Prelude.<*> (x Data..: "QueryString")
Prelude.<*> (x Data..: "State")
Prelude.<*> (x Data..: "ScheduleConfiguration")
Prelude.<*> (x Data..: "NotificationConfiguration")
)
instance Prelude.Hashable ScheduledQueryDescription where
hashWithSalt _salt ScheduledQueryDescription' {..} =
_salt
`Prelude.hashWithSalt` creationTime
`Prelude.hashWithSalt` errorReportConfiguration
`Prelude.hashWithSalt` kmsKeyId
`Prelude.hashWithSalt` lastRunSummary
`Prelude.hashWithSalt` nextInvocationTime
`Prelude.hashWithSalt` previousInvocationTime
`Prelude.hashWithSalt` recentlyFailedRuns
`Prelude.hashWithSalt` scheduledQueryExecutionRoleArn
`Prelude.hashWithSalt` targetConfiguration
`Prelude.hashWithSalt` arn
`Prelude.hashWithSalt` name
`Prelude.hashWithSalt` queryString
`Prelude.hashWithSalt` state
`Prelude.hashWithSalt` scheduleConfiguration
`Prelude.hashWithSalt` notificationConfiguration
instance Prelude.NFData ScheduledQueryDescription where
rnf ScheduledQueryDescription' {..} =
Prelude.rnf creationTime
`Prelude.seq` Prelude.rnf errorReportConfiguration
`Prelude.seq` Prelude.rnf kmsKeyId
`Prelude.seq` Prelude.rnf lastRunSummary
`Prelude.seq` Prelude.rnf nextInvocationTime
`Prelude.seq` Prelude.rnf previousInvocationTime
`Prelude.seq` Prelude.rnf recentlyFailedRuns
`Prelude.seq` Prelude.rnf scheduledQueryExecutionRoleArn
`Prelude.seq` Prelude.rnf targetConfiguration
`Prelude.seq` Prelude.rnf arn
`Prelude.seq` Prelude.rnf name
`Prelude.seq` Prelude.rnf queryString
`Prelude.seq` Prelude.rnf state
`Prelude.seq` Prelude.rnf scheduleConfiguration
`Prelude.seq` Prelude.rnf notificationConfiguration