{-# 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 or 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