module Stratosphere.Redshift.ScheduledAction.ResizeClusterMessageProperty (
        ResizeClusterMessageProperty(..), mkResizeClusterMessageProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data ResizeClusterMessageProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-resizeclustermessage.html>
    ResizeClusterMessageProperty {ResizeClusterMessageProperty -> ()
haddock_workaround_ :: (),
                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-resizeclustermessage.html#cfn-redshift-scheduledaction-resizeclustermessage-classic>
                                  ResizeClusterMessageProperty -> Maybe (Value Bool)
classic :: (Prelude.Maybe (Value Prelude.Bool)),
                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-resizeclustermessage.html#cfn-redshift-scheduledaction-resizeclustermessage-clusteridentifier>
                                  ResizeClusterMessageProperty -> Value Text
clusterIdentifier :: (Value Prelude.Text),
                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-resizeclustermessage.html#cfn-redshift-scheduledaction-resizeclustermessage-clustertype>
                                  ResizeClusterMessageProperty -> Maybe (Value Text)
clusterType :: (Prelude.Maybe (Value Prelude.Text)),
                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-resizeclustermessage.html#cfn-redshift-scheduledaction-resizeclustermessage-nodetype>
                                  ResizeClusterMessageProperty -> Maybe (Value Text)
nodeType :: (Prelude.Maybe (Value Prelude.Text)),
                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-resizeclustermessage.html#cfn-redshift-scheduledaction-resizeclustermessage-numberofnodes>
                                  ResizeClusterMessageProperty -> Maybe (Value Integer)
numberOfNodes :: (Prelude.Maybe (Value Prelude.Integer))}
  deriving stock (ResizeClusterMessageProperty
-> ResizeClusterMessageProperty -> Bool
(ResizeClusterMessageProperty
 -> ResizeClusterMessageProperty -> Bool)
-> (ResizeClusterMessageProperty
    -> ResizeClusterMessageProperty -> Bool)
-> Eq ResizeClusterMessageProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ResizeClusterMessageProperty
-> ResizeClusterMessageProperty -> Bool
== :: ResizeClusterMessageProperty
-> ResizeClusterMessageProperty -> Bool
$c/= :: ResizeClusterMessageProperty
-> ResizeClusterMessageProperty -> Bool
/= :: ResizeClusterMessageProperty
-> ResizeClusterMessageProperty -> Bool
Prelude.Eq, Int -> ResizeClusterMessageProperty -> ShowS
[ResizeClusterMessageProperty] -> ShowS
ResizeClusterMessageProperty -> String
(Int -> ResizeClusterMessageProperty -> ShowS)
-> (ResizeClusterMessageProperty -> String)
-> ([ResizeClusterMessageProperty] -> ShowS)
-> Show ResizeClusterMessageProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ResizeClusterMessageProperty -> ShowS
showsPrec :: Int -> ResizeClusterMessageProperty -> ShowS
$cshow :: ResizeClusterMessageProperty -> String
show :: ResizeClusterMessageProperty -> String
$cshowList :: [ResizeClusterMessageProperty] -> ShowS
showList :: [ResizeClusterMessageProperty] -> ShowS
Prelude.Show)
mkResizeClusterMessageProperty ::
  Value Prelude.Text -> ResizeClusterMessageProperty
mkResizeClusterMessageProperty :: Value Text -> ResizeClusterMessageProperty
mkResizeClusterMessageProperty Value Text
clusterIdentifier
  = ResizeClusterMessageProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), clusterIdentifier :: Value Text
clusterIdentifier = Value Text
clusterIdentifier,
       classic :: Maybe (Value Bool)
classic = Maybe (Value Bool)
forall a. Maybe a
Prelude.Nothing, clusterType :: Maybe (Value Text)
clusterType = Maybe (Value Text)
forall a. Maybe a
Prelude.Nothing,
       nodeType :: Maybe (Value Text)
nodeType = Maybe (Value Text)
forall a. Maybe a
Prelude.Nothing, numberOfNodes :: Maybe (Value Integer)
numberOfNodes = Maybe (Value Integer)
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties ResizeClusterMessageProperty where
  toResourceProperties :: ResizeClusterMessageProperty -> ResourceProperties
toResourceProperties ResizeClusterMessageProperty {Maybe (Value Bool)
Maybe (Value Integer)
Maybe (Value Text)
()
Value Text
haddock_workaround_ :: ResizeClusterMessageProperty -> ()
classic :: ResizeClusterMessageProperty -> Maybe (Value Bool)
clusterIdentifier :: ResizeClusterMessageProperty -> Value Text
clusterType :: ResizeClusterMessageProperty -> Maybe (Value Text)
nodeType :: ResizeClusterMessageProperty -> Maybe (Value Text)
numberOfNodes :: ResizeClusterMessageProperty -> Maybe (Value Integer)
haddock_workaround_ :: ()
classic :: Maybe (Value Bool)
clusterIdentifier :: Value Text
clusterType :: Maybe (Value Text)
nodeType :: Maybe (Value Text)
numberOfNodes :: Maybe (Value Integer)
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Redshift::ScheduledAction.ResizeClusterMessage",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
                           [Key
"ClusterIdentifier" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
clusterIdentifier]
                           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                              [Key -> Value Bool -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Classic" (Value Bool -> (Key, Value))
-> Maybe (Value Bool) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Bool)
classic,
                               Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"ClusterType" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
clusterType,
                               Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"NodeType" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
nodeType,
                               Key -> Value Integer -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"NumberOfNodes" (Value Integer -> (Key, Value))
-> Maybe (Value Integer) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Integer)
numberOfNodes]))}
instance JSON.ToJSON ResizeClusterMessageProperty where
  toJSON :: ResizeClusterMessageProperty -> Value
toJSON ResizeClusterMessageProperty {Maybe (Value Bool)
Maybe (Value Integer)
Maybe (Value Text)
()
Value Text
haddock_workaround_ :: ResizeClusterMessageProperty -> ()
classic :: ResizeClusterMessageProperty -> Maybe (Value Bool)
clusterIdentifier :: ResizeClusterMessageProperty -> Value Text
clusterType :: ResizeClusterMessageProperty -> Maybe (Value Text)
nodeType :: ResizeClusterMessageProperty -> Maybe (Value Text)
numberOfNodes :: ResizeClusterMessageProperty -> Maybe (Value Integer)
haddock_workaround_ :: ()
classic :: Maybe (Value Bool)
clusterIdentifier :: Value Text
clusterType :: Maybe (Value Text)
nodeType :: Maybe (Value Text)
numberOfNodes :: Maybe (Value Integer)
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
              [Key
"ClusterIdentifier" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
clusterIdentifier]
              ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                 [Key -> Value Bool -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Classic" (Value Bool -> (Key, Value))
-> Maybe (Value Bool) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Bool)
classic,
                  Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"ClusterType" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
clusterType,
                  Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"NodeType" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
nodeType,
                  Key -> Value Integer -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"NumberOfNodes" (Value Integer -> (Key, Value))
-> Maybe (Value Integer) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Integer)
numberOfNodes])))
instance Property "Classic" ResizeClusterMessageProperty where
  type PropertyType "Classic" ResizeClusterMessageProperty = Value Prelude.Bool
  set :: PropertyType "Classic" ResizeClusterMessageProperty
-> ResizeClusterMessageProperty -> ResizeClusterMessageProperty
set PropertyType "Classic" ResizeClusterMessageProperty
newValue ResizeClusterMessageProperty {Maybe (Value Bool)
Maybe (Value Integer)
Maybe (Value Text)
()
Value Text
haddock_workaround_ :: ResizeClusterMessageProperty -> ()
classic :: ResizeClusterMessageProperty -> Maybe (Value Bool)
clusterIdentifier :: ResizeClusterMessageProperty -> Value Text
clusterType :: ResizeClusterMessageProperty -> Maybe (Value Text)
nodeType :: ResizeClusterMessageProperty -> Maybe (Value Text)
numberOfNodes :: ResizeClusterMessageProperty -> Maybe (Value Integer)
haddock_workaround_ :: ()
classic :: Maybe (Value Bool)
clusterIdentifier :: Value Text
clusterType :: Maybe (Value Text)
nodeType :: Maybe (Value Text)
numberOfNodes :: Maybe (Value Integer)
..}
    = ResizeClusterMessageProperty
        {classic :: Maybe (Value Bool)
classic = Value Bool -> Maybe (Value Bool)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "Classic" ResizeClusterMessageProperty
Value Bool
newValue, Maybe (Value Integer)
Maybe (Value Text)
()
Value Text
haddock_workaround_ :: ()
clusterIdentifier :: Value Text
clusterType :: Maybe (Value Text)
nodeType :: Maybe (Value Text)
numberOfNodes :: Maybe (Value Integer)
haddock_workaround_ :: ()
clusterIdentifier :: Value Text
clusterType :: Maybe (Value Text)
nodeType :: Maybe (Value Text)
numberOfNodes :: Maybe (Value Integer)
..}
instance Property "ClusterIdentifier" ResizeClusterMessageProperty where
  type PropertyType "ClusterIdentifier" ResizeClusterMessageProperty = Value Prelude.Text
  set :: PropertyType "ClusterIdentifier" ResizeClusterMessageProperty
-> ResizeClusterMessageProperty -> ResizeClusterMessageProperty
set PropertyType "ClusterIdentifier" ResizeClusterMessageProperty
newValue ResizeClusterMessageProperty {Maybe (Value Bool)
Maybe (Value Integer)
Maybe (Value Text)
()
Value Text
haddock_workaround_ :: ResizeClusterMessageProperty -> ()
classic :: ResizeClusterMessageProperty -> Maybe (Value Bool)
clusterIdentifier :: ResizeClusterMessageProperty -> Value Text
clusterType :: ResizeClusterMessageProperty -> Maybe (Value Text)
nodeType :: ResizeClusterMessageProperty -> Maybe (Value Text)
numberOfNodes :: ResizeClusterMessageProperty -> Maybe (Value Integer)
haddock_workaround_ :: ()
classic :: Maybe (Value Bool)
clusterIdentifier :: Value Text
clusterType :: Maybe (Value Text)
nodeType :: Maybe (Value Text)
numberOfNodes :: Maybe (Value Integer)
..}
    = ResizeClusterMessageProperty {clusterIdentifier :: Value Text
clusterIdentifier = PropertyType "ClusterIdentifier" ResizeClusterMessageProperty
Value Text
newValue, Maybe (Value Bool)
Maybe (Value Integer)
Maybe (Value Text)
()
haddock_workaround_ :: ()
classic :: Maybe (Value Bool)
clusterType :: Maybe (Value Text)
nodeType :: Maybe (Value Text)
numberOfNodes :: Maybe (Value Integer)
haddock_workaround_ :: ()
classic :: Maybe (Value Bool)
clusterType :: Maybe (Value Text)
nodeType :: Maybe (Value Text)
numberOfNodes :: Maybe (Value Integer)
..}
instance Property "ClusterType" ResizeClusterMessageProperty where
  type PropertyType "ClusterType" ResizeClusterMessageProperty = Value Prelude.Text
  set :: PropertyType "ClusterType" ResizeClusterMessageProperty
-> ResizeClusterMessageProperty -> ResizeClusterMessageProperty
set PropertyType "ClusterType" ResizeClusterMessageProperty
newValue ResizeClusterMessageProperty {Maybe (Value Bool)
Maybe (Value Integer)
Maybe (Value Text)
()
Value Text
haddock_workaround_ :: ResizeClusterMessageProperty -> ()
classic :: ResizeClusterMessageProperty -> Maybe (Value Bool)
clusterIdentifier :: ResizeClusterMessageProperty -> Value Text
clusterType :: ResizeClusterMessageProperty -> Maybe (Value Text)
nodeType :: ResizeClusterMessageProperty -> Maybe (Value Text)
numberOfNodes :: ResizeClusterMessageProperty -> Maybe (Value Integer)
haddock_workaround_ :: ()
classic :: Maybe (Value Bool)
clusterIdentifier :: Value Text
clusterType :: Maybe (Value Text)
nodeType :: Maybe (Value Text)
numberOfNodes :: Maybe (Value Integer)
..}
    = ResizeClusterMessageProperty
        {clusterType :: Maybe (Value Text)
clusterType = Value Text -> Maybe (Value Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "ClusterType" ResizeClusterMessageProperty
Value Text
newValue, Maybe (Value Bool)
Maybe (Value Integer)
Maybe (Value Text)
()
Value Text
haddock_workaround_ :: ()
classic :: Maybe (Value Bool)
clusterIdentifier :: Value Text
nodeType :: Maybe (Value Text)
numberOfNodes :: Maybe (Value Integer)
haddock_workaround_ :: ()
classic :: Maybe (Value Bool)
clusterIdentifier :: Value Text
nodeType :: Maybe (Value Text)
numberOfNodes :: Maybe (Value Integer)
..}
instance Property "NodeType" ResizeClusterMessageProperty where
  type PropertyType "NodeType" ResizeClusterMessageProperty = Value Prelude.Text
  set :: PropertyType "NodeType" ResizeClusterMessageProperty
-> ResizeClusterMessageProperty -> ResizeClusterMessageProperty
set PropertyType "NodeType" ResizeClusterMessageProperty
newValue ResizeClusterMessageProperty {Maybe (Value Bool)
Maybe (Value Integer)
Maybe (Value Text)
()
Value Text
haddock_workaround_ :: ResizeClusterMessageProperty -> ()
classic :: ResizeClusterMessageProperty -> Maybe (Value Bool)
clusterIdentifier :: ResizeClusterMessageProperty -> Value Text
clusterType :: ResizeClusterMessageProperty -> Maybe (Value Text)
nodeType :: ResizeClusterMessageProperty -> Maybe (Value Text)
numberOfNodes :: ResizeClusterMessageProperty -> Maybe (Value Integer)
haddock_workaround_ :: ()
classic :: Maybe (Value Bool)
clusterIdentifier :: Value Text
clusterType :: Maybe (Value Text)
nodeType :: Maybe (Value Text)
numberOfNodes :: Maybe (Value Integer)
..}
    = ResizeClusterMessageProperty
        {nodeType :: Maybe (Value Text)
nodeType = Value Text -> Maybe (Value Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "NodeType" ResizeClusterMessageProperty
Value Text
newValue, Maybe (Value Bool)
Maybe (Value Integer)
Maybe (Value Text)
()
Value Text
haddock_workaround_ :: ()
classic :: Maybe (Value Bool)
clusterIdentifier :: Value Text
clusterType :: Maybe (Value Text)
numberOfNodes :: Maybe (Value Integer)
haddock_workaround_ :: ()
classic :: Maybe (Value Bool)
clusterIdentifier :: Value Text
clusterType :: Maybe (Value Text)
numberOfNodes :: Maybe (Value Integer)
..}
instance Property "NumberOfNodes" ResizeClusterMessageProperty where
  type PropertyType "NumberOfNodes" ResizeClusterMessageProperty = Value Prelude.Integer
  set :: PropertyType "NumberOfNodes" ResizeClusterMessageProperty
-> ResizeClusterMessageProperty -> ResizeClusterMessageProperty
set PropertyType "NumberOfNodes" ResizeClusterMessageProperty
newValue ResizeClusterMessageProperty {Maybe (Value Bool)
Maybe (Value Integer)
Maybe (Value Text)
()
Value Text
haddock_workaround_ :: ResizeClusterMessageProperty -> ()
classic :: ResizeClusterMessageProperty -> Maybe (Value Bool)
clusterIdentifier :: ResizeClusterMessageProperty -> Value Text
clusterType :: ResizeClusterMessageProperty -> Maybe (Value Text)
nodeType :: ResizeClusterMessageProperty -> Maybe (Value Text)
numberOfNodes :: ResizeClusterMessageProperty -> Maybe (Value Integer)
haddock_workaround_ :: ()
classic :: Maybe (Value Bool)
clusterIdentifier :: Value Text
clusterType :: Maybe (Value Text)
nodeType :: Maybe (Value Text)
numberOfNodes :: Maybe (Value Integer)
..}
    = ResizeClusterMessageProperty
        {numberOfNodes :: Maybe (Value Integer)
numberOfNodes = Value Integer -> Maybe (Value Integer)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "NumberOfNodes" ResizeClusterMessageProperty
Value Integer
newValue, Maybe (Value Bool)
Maybe (Value Text)
()
Value Text
haddock_workaround_ :: ()
classic :: Maybe (Value Bool)
clusterIdentifier :: Value Text
clusterType :: Maybe (Value Text)
nodeType :: Maybe (Value Text)
haddock_workaround_ :: ()
classic :: Maybe (Value Bool)
clusterIdentifier :: Value Text
clusterType :: Maybe (Value Text)
nodeType :: Maybe (Value Text)
..}