{-# 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 #-}
module Amazonka.Redshift.Types.ScheduledActionType 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.Redshift.Internal
import Amazonka.Redshift.Types.PauseClusterMessage
import Amazonka.Redshift.Types.ResizeClusterMessage
import Amazonka.Redshift.Types.ResumeClusterMessage
data ScheduledActionType = ScheduledActionType'
{
ScheduledActionType -> Maybe PauseClusterMessage
pauseCluster :: Prelude.Maybe PauseClusterMessage,
ScheduledActionType -> Maybe ResizeClusterMessage
resizeCluster :: Prelude.Maybe ResizeClusterMessage,
ScheduledActionType -> Maybe ResumeClusterMessage
resumeCluster :: Prelude.Maybe ResumeClusterMessage
}
deriving (ScheduledActionType -> ScheduledActionType -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ScheduledActionType -> ScheduledActionType -> Bool
$c/= :: ScheduledActionType -> ScheduledActionType -> Bool
== :: ScheduledActionType -> ScheduledActionType -> Bool
$c== :: ScheduledActionType -> ScheduledActionType -> Bool
Prelude.Eq, ReadPrec [ScheduledActionType]
ReadPrec ScheduledActionType
Int -> ReadS ScheduledActionType
ReadS [ScheduledActionType]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ScheduledActionType]
$creadListPrec :: ReadPrec [ScheduledActionType]
readPrec :: ReadPrec ScheduledActionType
$creadPrec :: ReadPrec ScheduledActionType
readList :: ReadS [ScheduledActionType]
$creadList :: ReadS [ScheduledActionType]
readsPrec :: Int -> ReadS ScheduledActionType
$creadsPrec :: Int -> ReadS ScheduledActionType
Prelude.Read, Int -> ScheduledActionType -> ShowS
[ScheduledActionType] -> ShowS
ScheduledActionType -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ScheduledActionType] -> ShowS
$cshowList :: [ScheduledActionType] -> ShowS
show :: ScheduledActionType -> String
$cshow :: ScheduledActionType -> String
showsPrec :: Int -> ScheduledActionType -> ShowS
$cshowsPrec :: Int -> ScheduledActionType -> ShowS
Prelude.Show, forall x. Rep ScheduledActionType x -> ScheduledActionType
forall x. ScheduledActionType -> Rep ScheduledActionType x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ScheduledActionType x -> ScheduledActionType
$cfrom :: forall x. ScheduledActionType -> Rep ScheduledActionType x
Prelude.Generic)
newScheduledActionType ::
ScheduledActionType
newScheduledActionType :: ScheduledActionType
newScheduledActionType =
ScheduledActionType'
{ $sel:pauseCluster:ScheduledActionType' :: Maybe PauseClusterMessage
pauseCluster =
forall a. Maybe a
Prelude.Nothing,
$sel:resizeCluster:ScheduledActionType' :: Maybe ResizeClusterMessage
resizeCluster = forall a. Maybe a
Prelude.Nothing,
$sel:resumeCluster:ScheduledActionType' :: Maybe ResumeClusterMessage
resumeCluster = forall a. Maybe a
Prelude.Nothing
}
scheduledActionType_pauseCluster :: Lens.Lens' ScheduledActionType (Prelude.Maybe PauseClusterMessage)
scheduledActionType_pauseCluster :: Lens' ScheduledActionType (Maybe PauseClusterMessage)
scheduledActionType_pauseCluster = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ScheduledActionType' {Maybe PauseClusterMessage
pauseCluster :: Maybe PauseClusterMessage
$sel:pauseCluster:ScheduledActionType' :: ScheduledActionType -> Maybe PauseClusterMessage
pauseCluster} -> Maybe PauseClusterMessage
pauseCluster) (\s :: ScheduledActionType
s@ScheduledActionType' {} Maybe PauseClusterMessage
a -> ScheduledActionType
s {$sel:pauseCluster:ScheduledActionType' :: Maybe PauseClusterMessage
pauseCluster = Maybe PauseClusterMessage
a} :: ScheduledActionType)
scheduledActionType_resizeCluster :: Lens.Lens' ScheduledActionType (Prelude.Maybe ResizeClusterMessage)
scheduledActionType_resizeCluster :: Lens' ScheduledActionType (Maybe ResizeClusterMessage)
scheduledActionType_resizeCluster = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ScheduledActionType' {Maybe ResizeClusterMessage
resizeCluster :: Maybe ResizeClusterMessage
$sel:resizeCluster:ScheduledActionType' :: ScheduledActionType -> Maybe ResizeClusterMessage
resizeCluster} -> Maybe ResizeClusterMessage
resizeCluster) (\s :: ScheduledActionType
s@ScheduledActionType' {} Maybe ResizeClusterMessage
a -> ScheduledActionType
s {$sel:resizeCluster:ScheduledActionType' :: Maybe ResizeClusterMessage
resizeCluster = Maybe ResizeClusterMessage
a} :: ScheduledActionType)
scheduledActionType_resumeCluster :: Lens.Lens' ScheduledActionType (Prelude.Maybe ResumeClusterMessage)
scheduledActionType_resumeCluster :: Lens' ScheduledActionType (Maybe ResumeClusterMessage)
scheduledActionType_resumeCluster = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ScheduledActionType' {Maybe ResumeClusterMessage
resumeCluster :: Maybe ResumeClusterMessage
$sel:resumeCluster:ScheduledActionType' :: ScheduledActionType -> Maybe ResumeClusterMessage
resumeCluster} -> Maybe ResumeClusterMessage
resumeCluster) (\s :: ScheduledActionType
s@ScheduledActionType' {} Maybe ResumeClusterMessage
a -> ScheduledActionType
s {$sel:resumeCluster:ScheduledActionType' :: Maybe ResumeClusterMessage
resumeCluster = Maybe ResumeClusterMessage
a} :: ScheduledActionType)
instance Data.FromXML ScheduledActionType where
parseXML :: [Node] -> Either String ScheduledActionType
parseXML [Node]
x =
Maybe PauseClusterMessage
-> Maybe ResizeClusterMessage
-> Maybe ResumeClusterMessage
-> ScheduledActionType
ScheduledActionType'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"PauseCluster")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"ResizeCluster")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"ResumeCluster")
instance Prelude.Hashable ScheduledActionType where
hashWithSalt :: Int -> ScheduledActionType -> Int
hashWithSalt Int
_salt ScheduledActionType' {Maybe PauseClusterMessage
Maybe ResizeClusterMessage
Maybe ResumeClusterMessage
resumeCluster :: Maybe ResumeClusterMessage
resizeCluster :: Maybe ResizeClusterMessage
pauseCluster :: Maybe PauseClusterMessage
$sel:resumeCluster:ScheduledActionType' :: ScheduledActionType -> Maybe ResumeClusterMessage
$sel:resizeCluster:ScheduledActionType' :: ScheduledActionType -> Maybe ResizeClusterMessage
$sel:pauseCluster:ScheduledActionType' :: ScheduledActionType -> Maybe PauseClusterMessage
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PauseClusterMessage
pauseCluster
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ResizeClusterMessage
resizeCluster
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ResumeClusterMessage
resumeCluster
instance Prelude.NFData ScheduledActionType where
rnf :: ScheduledActionType -> ()
rnf ScheduledActionType' {Maybe PauseClusterMessage
Maybe ResizeClusterMessage
Maybe ResumeClusterMessage
resumeCluster :: Maybe ResumeClusterMessage
resizeCluster :: Maybe ResizeClusterMessage
pauseCluster :: Maybe PauseClusterMessage
$sel:resumeCluster:ScheduledActionType' :: ScheduledActionType -> Maybe ResumeClusterMessage
$sel:resizeCluster:ScheduledActionType' :: ScheduledActionType -> Maybe ResizeClusterMessage
$sel:pauseCluster:ScheduledActionType' :: ScheduledActionType -> Maybe PauseClusterMessage
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe PauseClusterMessage
pauseCluster
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ResizeClusterMessage
resizeCluster
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ResumeClusterMessage
resumeCluster
instance Data.ToQuery ScheduledActionType where
toQuery :: ScheduledActionType -> QueryString
toQuery ScheduledActionType' {Maybe PauseClusterMessage
Maybe ResizeClusterMessage
Maybe ResumeClusterMessage
resumeCluster :: Maybe ResumeClusterMessage
resizeCluster :: Maybe ResizeClusterMessage
pauseCluster :: Maybe PauseClusterMessage
$sel:resumeCluster:ScheduledActionType' :: ScheduledActionType -> Maybe ResumeClusterMessage
$sel:resizeCluster:ScheduledActionType' :: ScheduledActionType -> Maybe ResizeClusterMessage
$sel:pauseCluster:ScheduledActionType' :: ScheduledActionType -> Maybe PauseClusterMessage
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"PauseCluster" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe PauseClusterMessage
pauseCluster,
ByteString
"ResizeCluster" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe ResizeClusterMessage
resizeCluster,
ByteString
"ResumeCluster" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe ResumeClusterMessage
resumeCluster
]