module Stratosphere.AutoScalingPlans.ScalingPlan (
module Exports, ScalingPlan(..), mkScalingPlan
) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.AutoScalingPlans.ScalingPlan.ApplicationSourceProperty as Exports
import {-# SOURCE #-} Stratosphere.AutoScalingPlans.ScalingPlan.ScalingInstructionProperty as Exports
import Stratosphere.ResourceProperties
data ScalingPlan
=
ScalingPlan {ScalingPlan -> ()
haddock_workaround_ :: (),
ScalingPlan -> ApplicationSourceProperty
applicationSource :: ApplicationSourceProperty,
ScalingPlan -> [ScalingInstructionProperty]
scalingInstructions :: [ScalingInstructionProperty]}
deriving stock (ScalingPlan -> ScalingPlan -> Bool
(ScalingPlan -> ScalingPlan -> Bool)
-> (ScalingPlan -> ScalingPlan -> Bool) -> Eq ScalingPlan
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ScalingPlan -> ScalingPlan -> Bool
== :: ScalingPlan -> ScalingPlan -> Bool
$c/= :: ScalingPlan -> ScalingPlan -> Bool
/= :: ScalingPlan -> ScalingPlan -> Bool
Prelude.Eq, Int -> ScalingPlan -> ShowS
[ScalingPlan] -> ShowS
ScalingPlan -> String
(Int -> ScalingPlan -> ShowS)
-> (ScalingPlan -> String)
-> ([ScalingPlan] -> ShowS)
-> Show ScalingPlan
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ScalingPlan -> ShowS
showsPrec :: Int -> ScalingPlan -> ShowS
$cshow :: ScalingPlan -> String
show :: ScalingPlan -> String
$cshowList :: [ScalingPlan] -> ShowS
showList :: [ScalingPlan] -> ShowS
Prelude.Show)
mkScalingPlan ::
ApplicationSourceProperty
-> [ScalingInstructionProperty] -> ScalingPlan
mkScalingPlan :: ApplicationSourceProperty
-> [ScalingInstructionProperty] -> ScalingPlan
mkScalingPlan ApplicationSourceProperty
applicationSource [ScalingInstructionProperty]
scalingInstructions
= ScalingPlan
{haddock_workaround_ :: ()
haddock_workaround_ = (), applicationSource :: ApplicationSourceProperty
applicationSource = ApplicationSourceProperty
applicationSource,
scalingInstructions :: [ScalingInstructionProperty]
scalingInstructions = [ScalingInstructionProperty]
scalingInstructions}
instance ToResourceProperties ScalingPlan where
toResourceProperties :: ScalingPlan -> ResourceProperties
toResourceProperties ScalingPlan {[ScalingInstructionProperty]
()
ApplicationSourceProperty
haddock_workaround_ :: ScalingPlan -> ()
applicationSource :: ScalingPlan -> ApplicationSourceProperty
scalingInstructions :: ScalingPlan -> [ScalingInstructionProperty]
haddock_workaround_ :: ()
applicationSource :: ApplicationSourceProperty
scalingInstructions :: [ScalingInstructionProperty]
..}
= ResourceProperties
{awsType :: Text
awsType = Text
"AWS::AutoScalingPlans::ScalingPlan",
supportsTags :: Bool
supportsTags = Bool
Prelude.False,
properties :: Object
properties = [Key
"ApplicationSource" Key -> ApplicationSourceProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ApplicationSourceProperty
applicationSource,
Key
"ScalingInstructions" Key -> [ScalingInstructionProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [ScalingInstructionProperty]
scalingInstructions]}
instance JSON.ToJSON ScalingPlan where
toJSON :: ScalingPlan -> Value
toJSON ScalingPlan {[ScalingInstructionProperty]
()
ApplicationSourceProperty
haddock_workaround_ :: ScalingPlan -> ()
applicationSource :: ScalingPlan -> ApplicationSourceProperty
scalingInstructions :: ScalingPlan -> [ScalingInstructionProperty]
haddock_workaround_ :: ()
applicationSource :: ApplicationSourceProperty
scalingInstructions :: [ScalingInstructionProperty]
..}
= [(Key, Value)] -> Value
JSON.object
[Key
"ApplicationSource" Key -> ApplicationSourceProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ApplicationSourceProperty
applicationSource,
Key
"ScalingInstructions" Key -> [ScalingInstructionProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [ScalingInstructionProperty]
scalingInstructions]
instance Property "ApplicationSource" ScalingPlan where
type PropertyType "ApplicationSource" ScalingPlan = ApplicationSourceProperty
set :: PropertyType "ApplicationSource" ScalingPlan
-> ScalingPlan -> ScalingPlan
set PropertyType "ApplicationSource" ScalingPlan
newValue ScalingPlan {[ScalingInstructionProperty]
()
ApplicationSourceProperty
haddock_workaround_ :: ScalingPlan -> ()
applicationSource :: ScalingPlan -> ApplicationSourceProperty
scalingInstructions :: ScalingPlan -> [ScalingInstructionProperty]
haddock_workaround_ :: ()
applicationSource :: ApplicationSourceProperty
scalingInstructions :: [ScalingInstructionProperty]
..}
= ScalingPlan {applicationSource :: ApplicationSourceProperty
applicationSource = PropertyType "ApplicationSource" ScalingPlan
ApplicationSourceProperty
newValue, [ScalingInstructionProperty]
()
haddock_workaround_ :: ()
scalingInstructions :: [ScalingInstructionProperty]
haddock_workaround_ :: ()
scalingInstructions :: [ScalingInstructionProperty]
..}
instance Property "ScalingInstructions" ScalingPlan where
type PropertyType "ScalingInstructions" ScalingPlan = [ScalingInstructionProperty]
set :: PropertyType "ScalingInstructions" ScalingPlan
-> ScalingPlan -> ScalingPlan
set PropertyType "ScalingInstructions" ScalingPlan
newValue ScalingPlan {[ScalingInstructionProperty]
()
ApplicationSourceProperty
haddock_workaround_ :: ScalingPlan -> ()
applicationSource :: ScalingPlan -> ApplicationSourceProperty
scalingInstructions :: ScalingPlan -> [ScalingInstructionProperty]
haddock_workaround_ :: ()
applicationSource :: ApplicationSourceProperty
scalingInstructions :: [ScalingInstructionProperty]
..}
= ScalingPlan {scalingInstructions :: [ScalingInstructionProperty]
scalingInstructions = [ScalingInstructionProperty]
PropertyType "ScalingInstructions" ScalingPlan
newValue, ()
ApplicationSourceProperty
haddock_workaround_ :: ()
applicationSource :: ApplicationSourceProperty
haddock_workaround_ :: ()
applicationSource :: ApplicationSourceProperty
..}